Based on our commitment to continue to support i386 userspace in Ubuntu, we have assembled a list of packages for which we have been able to determine there is user demand based on the feedback up to this point. The packages listed below are the ones we are committing to carry forward to 20.04 on parity with amd64. (We will also, necessarily, carry forward the various other packages that those in this list depend on or build-depend on.)
Are there other packages not on this list that you need for 32-bit compatibility? Please let us know!
Methodology
We started by collating the list of all binary packages that exist only on i386 and not on amd64 in Ubuntu, then filtered this list to exclude packages that duplicate functionality that is available under a different package name on amd64 systems, or which are specific to hardware which is not 64-bit-capable.
join -j1 -v1 <(sed -n -eās/^Package: //pā /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_eoan_binary-i386_Packages | sort -u) <(sed -n -eās/^Package: //pā /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_eoan_binary-amd64_Packages | sort -u) | grep -vE ā^lib64|amd64$|linux-gnu|ia32$|signed-template$|mkl|sse|^strace64$|^xserver-xorgā
This gives us a list of 51 i386-only binary packages, including certain well-known ones such as wine and steam.
We then extended this list with the list of library dependencies of the third-party 32-bit-only programs known to us (unity3d; godot; SDL-based games; printer drivers), and those reported through feedback on this topic, giving us 130 runtime library packages.
List of packages we commit to maintaining
The resulting list of packages that we are committing to keep around through 20.04, as long as these packages also continue to be supported on 64-bit, is:
- adlibtracker2
- atitvout
- carla-bridge-linux32
- carla-bridge-win32
- carla-bridge-wine32
- dgen
- digitools
- dxvk-wine32-development
- etqw
- etqw-server
- fenix
- fenix-plugin-mpeg
- fenix-plugins
- fenix-plugins-system
- fnfx-client
- fnfxd
- fp-units-i386
- fp-units-i386-3.0.4
- freeglut3
- gatos
- gogo
- google-android-build-tools-installer
- gstreamer1.0-plugins-bad
- gstreamer1.0-plugins-base
- gstreamer1.0-plugins-good
- gstreamer1.0-libav
- gstreamer1.0-plugins-ugly
- gtk2-engines
- gtk2-engines-murrine
- gtk2-engines-oxygen
- gtk2-engines-pixbuf
- gvfs
- i965-va-driver
- i965-va-driver-shaders
- intel-media-va-driver-non-free
- ibus-gtk
- libacl1
- libaio1
- libao4
- libasound2
- libasound2-plugins
- libasyncns0
- libattr1
- libaudio2
- libcanberra-gtk-module
- libcap2
- libcapi20-3
- libcggl
- libcrystalhd3
- libcups2
- libcupsimage2
- libcurl3-gnutls
- libcurl4
- libd3dadapter9-mesa
- libdbus-glib-1-2
- libflac8
- libfontconfig1
- libfreetype6
- libgail-common
- libgamemode0
- libgatos-dev
- libgatos0
- libgconf-2-4
- libgettextpo0
- libglapi-mesa
- libgl1-mesa-dri
- libgl1-mesa-glx
- libgles2-mesa
- libglib2.0-0
- libglu1-mesa
- libgphoto2-6
- libgphoto2-port12
- libgpm2
- libgtk2.0-0
- libjpeg62
- libmpg123-0
- libncurses5
- libncursesw5
- libnspr4
- libnss-mdns
- libnss-sss
- libnss-winbind
- libnss3
- libnvidia*-418
- libodbc1
- libogg0
- libopenal1
- libosmesa6
- libpangox-1.0-0
- libpulse-mainloop-glib0
- libpulse0
- libpulsedsp
- libqt4-dbus
- libqt4-network
- libqt4-opengl
- libqt4-qt3support
- libqt4-script
- libqt4-scripttools
- libqt4-sql
- libqt4-svg
- libqt4-test
- libqt4-xml
- libqt4-xmlpatterns
- libqtcore4
- libqtgui4
- libqtwebkit4
- librsvg2-common
- libsane
- libsane1
- libsdl-console
- libsdl-gfx1.2-5
- libsdl-gst
- libsdl-image1.2
- libsdl-mixer1.2
- libsdl-net1.2
- libsdl-ocaml
- libsdl-pango1
- libsdl-sge
- libsdl-sound1.2
- libsdl-stretch-0-3
- libsdl-ttf2.0-0
- libsdl1.2debian
- libsdl2-2.0-0
- libsdl2-gfx-1.0-0
- libsdl2-image-2.0-0
- libsdl2-mixer-2.0-0
- libsdl2-net-2.0-0
- libsdl2-ttf-2.0-0
- libsndfile1
- libsqlite3-0
- libstdc++5
- libstdc++6
- libtbb2
- libtheora0
- libv4l-0
- libva-glx2
- libvorbis0a
- libvorbisenc2
- libvorbisfile3
- libwebp6
- libwsbm-dev
- libwsbm1
- libxcursor1
- libxaw7
- libxft2
- libxi6
- libxinerama1
- libxml2
- libxrandr2
- libxrender1
- libxslt1.1
- libxss1
- libxtst6
- lmms-vst-server
- longrun
- lphdisk
- mac-fdisk-cross
- mesa-vulkan-drivers
- odbcinst1debian2
- pcsx2
- pforth
- pixbros
- pixfrogger
- pmac-fdisk-cross
- quake4
- quake4-server
- s3switch
- sb16ctrl-bochs
- sl-modem-daemon
- smlsharp
- speech-dispatcher-ibmtts
- steam
- steamcmd
- va-driver-all
- vdpau-driver-all
- wine32
- wine32-development
- wine32-development-preloader
- wine32-development-tools
- wine32-preloader
- wine32-tools
- xaw3dg
- zlib1g
- zsnes
- zsnes-dbg
Together with the binary dependencies of all of these packages, this gives us a list of 1568 source packages that we will ensure keep working on i386.
Note that a number of these library packages are deprecated and slated for removal on all architectures before the Ubuntu 20.04 release (in particular qt4), hence the caveat about them being supported on i386 only if they are also supported on amd64.
If you require other binary packages that are not included in this list, please tell us here what they are.