posts /

Rebuilding Debian/mips

Posted Mon Jan 16 12:31:04 2023 Florian Lohoff

Debian dropped the support for all older MIPS based machines with the transition from Debian/Jessie to Debian/Stretch.

It was decided that from Stretch on all binaries would by default be compiled with --with-arch-32=mips32r2 which is basically only for machines produced after like 2015. All machines i initially boostrapped Debian/mips and Debian/mipsel with back in the 90ies dropped of the supported list.

So all big endian machines like the famous SGI Indy and SGI Indigo2 which were one of the first targets to be supported are now stuck with Debian/Jessie. The little endian machines like the Cobalt Cube and RAQ and the Decstations are also "dead in the water". As these machines are still see Kernel Development its a shame we dont have ANY recent userspace available.

So last week i did some work on Colo the Cobalt bootloader to be buildable with modern toolchains. The i set up sbuild and schroot to build stretch packages for a mips2 based Debian/Stretch. I most likely will not be ALL of Debian packages but just a subset like required, important, build essentials and tools everyone wants.

I start with Stretch as i want to have an upgrade path for the installations out there.

I had and have some issues calculating build order for packages. I have some first hacked improvised script which calculates required binary packages from amd64 Packages by recursive walking through Source Package Build-Depends. Then trying to match those packages to Jessie/Mipsel and rebuild Stretch/mipsel packages, trying to satisfy Build-Depends.

The little Cobalt Cube2, although nearly 25 years old is now very slowly churning through buildable packages.

I still have issues that the resulting Packages are still "uninstallable" as other packages are missing. Like debhelper beeing buildable, but the resulting packet depending on dh-autoreconf which i hadnt had. This rendered debhelper uninstallable in sbuild.

So i guess i need to fix the "incoming" queue for reprepro, not ingesting packages which are not installable by the Stretch repository and the old Debian/Jessie/Mipsel repository, or probably not only matching Build-Depends but also also Depends to get the buildable or needbuild packages.

Soon another machine will join in to build little endian packages and probably i'll find some big endian machine to build also a mips2 based big endian Debian/mips.