debuerreotype / docker-debian-artifacts

Official builds of debuerreotype-generated Debian tarballs for use in Docker
https://docker.debian.net
Apache License 2.0
315 stars 103 forks source link

Please add support for loongarch64 #220

Open Qinka opened 5 months ago

Qinka commented 5 months ago

Please add support of loongarch64 for debian sid and unstable.

tianon commented 5 months ago

Since debuerreotype itself does support loongarch64 (see ports-related flags, which is where loongarch64 lives in Debian upstream right now), I'm going to instead assume this request for was for https://hub.docker.com/_/debian to support loongarch64, and I'm going to move it to https://github.com/debuerreotype/docker-debian-artifacts accordingly before answering it. :bow:

tianon commented 5 months ago

I have a few high-level initial issues with supporting this personally in my builds here:

  1. it being in Debian Ports really complicates my build matrix (my experience building riscv64 while it was in Ports was pretty negative all around) -- this is fixable and I do have plans to refactor my build matrix eventually so that things like this get easier, but it's non-trivial and not a high priority for me at this time

  2. I have no access to loong64 hardware -- I know that Loongson has been very generous with sending folks hardware, but I also have experience receiving hardware from Loongson in the past, and it is still a nightmare (non-mainline kernel, a custom GRUB fork, its very own special implementation of UEFI that nothing else supports correctly, etc), not to mention the social and political issues I've had doing so (having issues with customs/import taxes while trying to receive the box, having a language barrier with the folks providing the box, Loongson apparently now being on the US Federal Government's "Entity List" which makes it hard to determine whether it's even legally OK for me to accept hardware from them, etc), and then at the end of the day, the hardware itself is objectively a terrible experience (slow, unreliable, can't run mainline/stock Debian) and not a very suitable platform for a CI/CD build system

  3. not well-supported by other projects/users (likely for similar reasons to the above); see https://github.com/docker-library/gcc/issues/67 for a parallel example of MIPS support decaying over time

So in short, I unfortunately have no plans to support loong64 at this time.

However, to make this more concrete, here are things that would need to happen for me to reconsider that:

  1. availability of hardware

    • from a US-based supplier / US-fed-approved cloud provider
    • running 100% stock upstream mainline Debian, on officially Debian-built kernels and a Debian-built bootloader
    • "reasonable" performance characteristics -- decent number of cores, amount of RAM, overall bus/system latency, etc (to be slightly more concrete, if it takes more than an hour to build one single version/variant of https://github.com/docker-library/gcc, it's probably not good enough)
  2. either part of Debian proper (graduating from Ports), or me finding time to refactor the way I perform builds (which would be a lot more attractive to work on if the availability problems were solved reasonably and hardware worth using were available in a form/locale I could actually access)

I know this isn't the answer you're hoping for, but hopefully the transparency into my personal thoughts/feelings/plans on the matter are helpful.

tianon commented 3 months ago

Cross-linking https://github.com/docker-library/official-images/issues/16404 (a related downstream issue).

T7x77 commented 2 months ago

unstable. adding support for loongarch64:

Request: The user Qinka requested support for loongarch64 in Debian sid and unstable. Challenges: The contributor tianon highlighted several challenges, including complex build matrix, lack of hardware access, and poor hardware performance. Conditions for Support: Availability of suitable hardware, running stock upstream mainline Debian, and better performance characteristics are needed for reconsideration.