2021 in retrospect & happy new year 2022!
Jan 3, 2022

Gentoo Fireworks Happy New Year 2022!

The past year 2021 brought us all both great and sad news, with the world still fighting the COVID pandemic. Gentoo is going strong however, and we are happy to present once more our review of the events of the last 12 months. Read on for new developers, exciting changes and improvements, and up-to-date numbers on Gentoo development.

Gentoo in numbers

The number of commits to the main ::gentoo repository has once more clearly grown in 2021, from 104507 to 126920, i.e., by 21%. While the number of commits by external contributors, 11775, has remained roughly constant, this number now distributes across 435 unique external authors compared to 391 last year. We may have recruited some of the top contributors. ;)

Contributions to GURU, our user-curated repository with a trusted user model, have increased enormously. We count 4702 commits, up by 73% from 2725 in 2020. The number of contributors has grown even more, to 119, up by 116% from 55 in 2020. Please join us there and help packaging the latest and greatest software!

On our bugtracker bugs.gentoo.org, the number of new bug reports decreased slightly, with 24056 bugs opened in 2021, compared to 25500 in 2020. However, more reports were closed this year, with 24076 bugs resolved in 2021, compared to 23500 in 2020. The ongoing tinderbox efforts as well as the overall high level of activity seem to be paying off!

New developers

In the past year 2021 we have gained an outstanding number of seven new Gentoo developers, much more than in recent years. In chronological order:

  1. John Helmert III (ajak): John was the first one to join in February. He’s focusing on the never-ending security work, wrangling bugs and issuing GLSAs, but also on developing the internal applications and infrastructure of the security team. We will hopefully have a fresh new GLSAmaker soon!

  2. Andrew Ammerlaan (andrewammerlaan): Andrew signed up in May and is well known for working on our scientific software stack (specifically physics and electronics), and also handling user contributions for both the Gentoo repository and the sci overlay. Beyond this he active in the GURU team and also in Python packaging.

  3. Ionen Wolkens (ionen): Ionen started in June and by now is active in many corners of Gentoo. His specific focus area, however, is games, games, games! In addition, he has also taken over one of our somewhat “special fun” packages, nvidia-drivers, and is the author of a whole set of development tools

  4. Florian Schmaus (flow): Also having started in June, Florian is busy with Java support, co-administrating the GURU overlay, and the proxy maintenance team. In addition he contributes to Erlang packaging - one of the more exotic programming languages present in Gentoo.

  5. Arthur Zamarin (arthurzam): Next, in August, came Arthur. He’s contributing a lot to our Python team, keeping the large number of Python packages maintained there up-to-date. In addition, he recently joined several architecture teams, so we can keep offering Gentoo for highly diverse hardware.

  6. Jakov Smolić (jsmolic): Our second new recruit in August was Jakov. Master of odd jobs, he’s fixing bugs across the gentoo tree, solving QA problems, and also weeding out old packages. Last but not least, he has also joined our recently renewed architecture team efforts.

  7. Maciej Barć (xgqt): Finally, November brought us Maciej. He’s coming from the mathematics corner, and consequently his areas of specialization are scientific and in particular mathematical packages, Scheme, but also, for example, OCamML.


Very sad news reached us in February. Kent Fredric (kentnl), a driving force behind our Perl and Rust efforts, died in a drowning accident - just when he had moved to Florida to start a new phase in his life. We will all remember his enthusiasm, helpfulness and love for detail, and wish his family all the best.


Let’s look at the major changes and improvements of 2021 in Gentoo now.

Packages

  • Musl: Stage 3 tarballs for the alternative libc musl are now built using the main Gentoo repository only and have been published for several more arches and configurations. Work is ongoing to import more musl-related fixes and support patches from the musl overlay, with the objective that musl-based installations eventually work out-of-the-box in Gentoo.

  • libxcrypt: GNU glibc based installations have this year migrated from the deprecated internal crypt support to the external, new libxcrypt. With this we follow several other distributions; we gain modern algorithm support for one-way hashing of passwords and much easier bugfixing outside the glibc release cycle.

  • ROCm: the AMD open software platform for high performance / hyperscale GPU computing is now fully packaged in Gentoo, thanks to a contribution within the Summer 2021 Open Source Promotion Plan OSPP of the Chinese Academy of Sciences and the openEuler community. Stay tuned for ROCm-enabled applications from Gentoo, such as Numba, CuPy, TensorFlow, and PyTorch.

  • Python: In the meantime the default Python version in Gentoo has reached Python 3.9. Additionally we have also Python 3.10 available stable, which means we’re fully up to date with upstream, and our Python has gained support for link-time and profile-guided optimization (LTO and PGO) during compilation.

  • Themes Project: The Themes Project was created to maintain X11 themes and to unify their structure.

  • Stable but up-to-date: As examples of the fast pace of Gentoo, our stable set contains among other things gcc 11.2, glibc 2.33, binutils 2.37, LibreOffice 7.1.7, KDE Frameworks 5.88, Plasma 5.23.4, Gear 21.08.3, GNOME 40, and many more packages. If you want to go bleeding edge, then the very latest code releases are often available as testing packages.

Architectures

  • PPC64: The PowerPC profiles and downloads have seen significant updates and enhancements. Several new ppc64 little-endian profiles (desktop, Gnome, …) have been added to the Gentoo repository. Our weekly updated downloads now include little-endian stages optimized for the POWER9 CPU series, and big- and little-endian hardened musl stage files.

  • RISC-V: Support for RISC-V has improved enormously over the past year. Modern desktop environments such as KDE Plasma, Gnome, but also Lxde, Xfce4, and Enlightenment are fully available, as are other packages ranging from Rust to ZFS. Many more are in preparation. Gentoo is running nicely and is actively used on many of the first physical RISC-V systems. Stage files are now published weekly for all supported ABI in both systemd and OpenRC variants. We have adapted the library directory paths to those used by other distributions for better binary compatibility.

  • M68k: Gentoo on Motorola 68000 is back! We have regularly updated stages for download again, and keywording of packages is ongoing.

  • LoongArch64: While this is not an official Gentoo project yet, we have already received first code contributions for Gentoo on LoongArch64, a Chinese development originally based on MIPS.

Infrastructure

  • Release Engineering: This year brought big updates of our build hardware as well as improvements in Catalyst. A new AMD Ryzen 7 3700X 8-core machine at Hetzner now handles our builds for amd64, x86, alpha, m68k, and riscv (the latter via qemu); a new ARM64 Ampere Neoverse-N1 80-core machine provided by Equinix through the Works On Arm program handles arm64 and arm; and two 16-core POWER9 machines provided by OSUOSL POWER Development Hosting handle ppc64 and ppc. This means we have had the capacity to add a large variety of builds, from openrc and systemd variants to musl-based builds whereever possible.

  • HPPA: We have received a donation of a fast HP Precision Architecture (PA-RISC) machine! It will be set up during the new year and significantly help both hppa stabilization / keywording efforts and the release engineering builds.

  • Internal modernization: Our infrastructure team has completed two important internal milestones: the migration from 15 years of cfengine-2 configuration management to puppet, and the update of a roughly 10 years old ganeti-2 cluster to a recent ganeti version. Both steps will help a lot with managing our servers.

Other news

  • GKernelCI, the Gentoo kernel testing system (see also its dashboard page), reached its v2.0 milestone. New features includes: easier to deploy (thanks to docker), addition of new architectures under test (amd64 (tested with both gcc and clang toolchains), arm, arm64, ppc64, sparc), addition of kselftest check (kernel self test tool), and sharing results with KernelCI for supporting upstream Kernel testing and development.

  • Online Gentoo workshops: A series of online workshops in German language started in 2021. The meetings take place in BBB every 2 months on the 3rd Saturday of the month. The events have been very well received, and we also want to provide workshops in English starting on 2022-02-19. All events are listed on https://gentoo-ev.org/.

  • The move to Libera Chat: After major changes in the governance of Freenode IRC, Gentoo and many other open source projects moved their IRC presence to Libera Chat. This new IRC network, founded by former Freenode staffers, has in the meantime become the de-facto replacement of Freenode; we can certainly say that we feel very welcome and at home there and have a very strong presence with over 100 Gentoo channels.

  • Matrix presence: Although we continue to use IRC as our primary means of real-time communication, we have also established presence on Matrix. In addition to Gentoo developers overseeing a native Matrix channel dedicated to our distribution #gentoo:matrix.org, we now maintain a Matrix space #gentoo-linux:matrix.org which includes both the native channel and several bridged Libera Chat IRC channels.

  • Experimental binary package hosting: First steps have started to also provide binary package hosting on the Gentoo mirrors.

Discontinued projects

This year the following projects have been discontinued:

  • Eudev: After several years, Gentoo maintainers decided that keeping this barely modified fork of systemd-udev alive was not worth the effort, in particular since also musl-based installations now work with the original. In the meantime, maintenance of eudev has been picked up by a cross-distribution team, which means it may be available for longer.

  • µClibc: Since µClibc-ng is mostly abandoned upstream, support for the µClibc profiles was dropped, and the package itself removed end of the year. Anyone interested in an alternative libc is encouraged to move to musl.

  • Desktop Miscellaneous: We decided that “miscellaneous” is not really a useful way to group packages. The packages so far maintained by this project were reviewed and reassigned to dissolve the project.

Thank you!

Of course, if you look in detail, there has been much more news; we can’t cover everything here. We would like to thank all Gentoo developers and all who have submitted contributions for their relentless everyday Gentoo work. As a volunteer project, Gentoo could not exist without them.

And now it’s time to break out the champagne - let’s celebrate the new year 2022, let’s hope for good days, and let’s make it even more productive!