public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Arch Status and Future Plans
@ 2024-06-25 17:33 Arthur Zamarin
  2024-06-25 21:40 ` matoro
                   ` (12 more replies)
  0 siblings, 13 replies; 21+ messages in thread
From: Arthur Zamarin @ 2024-06-25 17:33 UTC (permalink / raw
  To: gentoo-dev


[-- Attachment #1.1: Type: text/plain, Size: 6794 bytes --]

Hi all, this will be a long mail, and might be confusing, I'll try to
organize it, but this is a mess, so bear with me.

As you all know, Gentoo supports many various arches, in various degrees
(stable, dev, exp). Let me explain those 3 statuses fast:

* stable arch - meaning we have stable profile for this arch, and stable
keywords across base-system + varying degree of seriousness. We stable
stuff after ~30 days in tree, and are mostly happy. For example the well
known and common amd64 arch.

* dev arch - meaning we have complete dep-tree (no broken dep-trees),
but no stable profile. If you break here a package (for example
introduce new dep, previously unkeyworded) you are expected to dekeyword
and ask for rekeywording. For example the nearly unknown arch s390.

* exp arch - meaning we support what we support, with possible broken
dep-tree. This is the "scary" state of arch, since it can break at any
moment. For example the noisy (because of the physical fans) arch alpha.

So now that you know the arch statuses each arch can be, we have the
next mess - sub-arch profile. Did you know the ppc64 gentoo arch
consists of ppc64ul (big-endian) and ppc64le (little-endian), with the
latter having a much better support from upstreams. On sparc we have
both sparc32 (32-bit) and sparc64 (64-bit), with the former nearly not
working.

And the next important knowledge to know for this discussion is the
devbox situation. Arches that have a devbox (for example for sparc we
have catbus, a machine running sparc arch) are easier to maintain, since
we have the tattoo cluster (automated handler of arch stable/keyword
bugs), so it is simpler to maintain them. An unofficial requirement for
an arch to be stable arch, it should have a devbox.

Finally, many keywords on arches are continues because of inertia.
Someone added an arch 10-15 years ago, it collected dependencies, we
keyworded it, increase the dep tree, and the cycle continues. For a long
time the default keyword for new package was "~amd64 ~x86" - you see the
point...

So, are you ready for seeing the mess? Here we go.

======== amd64 & arm64 ========

Stable Arches in the best state possible. We recommend people to stable
stuff for those arches, users have great experience with those, handling
on arch testing team is great and simple. No need to think on it.

======== 32-bit arches ========

This includes stable arches x86, arm, ppc, sparc32, dev arches s390, and
maybe more. Those are in much worse situation, with a mess on various
fronts, some of them super hard to continue support. For example
qtwebengine is less and less likely to manage to compile on a
real-hardware, and not 32-bit chroot on 64-bit host. Arch Team want to
minimize our work on those arches, meaning mass-destable and even
mass-dekeyword, with potentially full drop of stable status.

======== x86 ========

Stable 32-bit arch. I'll be honest, I don't believe at all this should
be stable arch anymore. I propose making it dev arch, and mass-dekeyword
stuff we got because of inertia. This arch is close to HW die. (let's
not talk about i486 vs i686).

======== arm ========

Stable 32-bit arch, split into many sub-arches, based on the arm
generation (4, 5, 6, 7, ...). We use a 32-bit chroot on arm64 host to
handle this arch. While not urgent since the host is strong, it is
already collecting tech debt.

I propose we mass-destable and mass-dekeyword stuff. Should still remain
stable arch status.

======== ppc ========

Stable 32-bit arch. Becoming harder and harder with time, with more
broken stuff (which I just destable/dekeyword).

I propose we convert it into dev arch status, not stable. If folks
disagree, once again mass-dekeyword.

======== ppc64 ========

Stable 64-bit arch. So, this is a mess of an arch. Consists of both
ppc64ul (big-endian) and ppc64le (little-endian). The latter is much
better supported by upstream. The profiles inheritance inside is a mess
(we even added running 32 userspace on 64 bit kernel, called ppc64/32ul
- just why?). We have devboxes for both BE and LE, so mostly fine. The
profile inheritance is the messiest I've even seen.

I would hope to split this arch into the two endianness, but I suspect
nobody has the energy to do it. Oh well.

Next proposal is to cleanup profiles: remove the ppc64/32ul, cleanup
profile inheritance, cleanup the masks and unmasks, and continue with
both ppc64ul & ppc64le supported.

======== sparc ========

Stable 32-bit and 64-bit arch. Has the best devbox (just seeing all the
CPUs in htop is warming a Gentoo heart).

32-bit sparc is something which is being removed from the kernel, and
didn't really exist (?), so we can just clean it up and drop support for
that.

64-bit sparc works quite well, with even rust support (what a
surprise!), and we should just cleanup keywords we got ebcause of
inertia. Don't be afraid to dekeyword and destable stuff (consult with
Arch Team), but nothing as mass work.

======== hppa ========

Sigh. Stable 64-bit arch. Out main Gentoo devbox died, and the second
one is always stuck compiling gcc for stage3 (a compilation takes 7
days). Here we have a fight in Arch Team. I prefer to destable it, Sam
prefers to stable it. This one is tough.

======== ia64 ========

Dev 64-bit arch. Kernel dropped support, glibc dropped support, devbox
died - days are short before full exp status or full removal of arch.

======== s390 ========

Dev arch. Has 2 sub-arches: s390 (32-bit) and s390x (64-bit). The latter
works well for its job, a good devbox.

For s390 32-bit we want to drop the profile, to simplify the profile
mess it has (mask&unmasks) for packages that work for 64-bit (like all
the rust stuff) and 32-bit stuff (inherits wd40 profile).

======== loong ========

Dev arch. I have no info on it, but it works. Let's not touch :)

======== riscv ========

Dev arch. I don't have much info on it, but I heard some mess with
riscv32 and riscv64, so maybe time to split it? I leave it to riscv arch
team, which works quite well, but I'll be happy to open discussion for it.

======== alpha ========

Exp arch, with nearly (or maybe already) full correct dep-tree. matoro
did a lot of great work here, so I think we should promote it to dev
arch, so dep-tree remains unbroken. We dekeyworded a lot of stuff,
cleaned it up, so a nice "completion bonus".

======== m68 ========

Exp arch, works ? maybe? I've no idea. Let's not touch :)

======== mips ========

Exp arch, with mostly good dep-tree. Does mips team want to make it dev
arch?

-- 
Arthur Zamarin
arthurzam@gentoo.org
Gentoo Linux developer (Python, pkgcore stack, QA, Arch Teams, GURU)

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2024-06-28 16:13 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-25 17:33 [gentoo-dev] Arch Status and Future Plans Arthur Zamarin
2024-06-25 21:40 ` matoro
2024-06-25 22:55 ` James Le Cuirot
2024-06-26  0:06 ` Notion of stable depgraph vs stable keywords (Re: [gentoo-dev] Arch Status and Future Plans) Sam James
2024-06-28  4:17   ` [gentoo-dev] Re: Notion of stable depgraph vs stable keywords (Re: " Duncan
2024-06-28  5:16     ` Sam James
2024-06-26  0:14 ` Misc arch plans (Re: [gentoo-dev] " Sam James
2024-06-26 20:29   ` ia64, was: " Andreas K. Huettel
2024-06-26 20:45     ` matoro
2024-06-26  0:17 ` On the value (or not?) of stable keywords " Sam James
2024-06-26  0:19 ` time64 & LFS for 32-bit arches " Sam James
2024-06-26  0:20 ` x86 FP issues " Sam James
2024-06-28  5:20   ` Michał Górny
2024-06-26  7:38 ` [gentoo-dev] Re: Arch Status and Future Plans Florian Schmaus
2024-06-26  8:29   ` Christian Bricart
2024-06-26 20:44   ` Immolo
2024-06-26 19:47 ` nomenclature, was: Re: [gentoo-dev] " Andreas K. Huettel
2024-06-26 20:18 ` Andreas K. Huettel
2024-06-26 20:24 ` riscv, was: " Andreas K. Huettel
2024-06-26 21:08 ` 32bit vs 64bit, " Andreas K. Huettel
2024-06-28 16:12 ` splitting keywords, " Andreas K. Huettel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox