A quite late Happy New Year 2023 to all of you!
Once again with 2022 an eventful year has passed, and Gentoo is still alive and kicking!
2023 already started some time ago and some of us have even already been
meeting up and networking at FOSDEM 2023. Still, we are
happy to present once more a review of the Gentoo news of the past year 2022.
for new developers, distribution wide initiatives and improvements,
up-to-date numbers on Gentoo development, tales from the infrastructure, and
all the fresh new packages you can emerge now.
Gentoo in numbers
The number of commits to the main ::gentoo repository
has remained at high level in 2022, from 126920 to 126682.
This is also true for the number of commits by external contributors, 10492,
now across an even increased 440 unique external authors compared to 435 last
GURU, our user-curated repository with a trusted user
model, is clearly growing further.
We have had 5761 commits in 2022, up by 12% from 5131 in 2021.
The number of contributors to GURU has increased similarly, from 125 in
2021 to 144 in 2022. Please join us there and help packaging the latest and
greatest software. That’s the ideal preparation for becoming a full Gentoo developer!
On the Gentoo bugtracker bugs.gentoo.org, both the number
of reported and of resolved bugs has increased clearly. We’ve had 26362 bug reports
created in 2022, compared to 24056 in 2021. The number of resolved bugs shows a similar
trend, with 24499 in 2022 compared to 24076 in 2021.
In 2022 we have gained four new Gentoo developers. They are in chronological order:
Matthew Smith (matthew):
Matthew joined us
already in February from the North East of England. By trade embedded software developer, he helps with
a diverse set of packages, from mold to erlang and from nasm to tree-sitter.
WANG Xuerui (xen0n):
A long-time Gentoo user, Xuerui joined us as a developer in March from Shanghai, China.
He jumped in right into the deep end, bringing LoongArch support to Gentoo as well
as lots of toolchain and qemu expertise (as long as his cat lets him).
Kenton Groombridge (concord):
Kenton comes from the US and from a real Gentoo family (yes, such a thing exists!); he
joined up in May.
His speciality is Gentoo Hardened and SELinux, and he has already collected quite some
Viorel Munteanu (ceamac):
In November, Viorel joined us from
Bucharest, Romania. He’s active in the virtualization and proxy maintainers teams,
and takes care of the VirtualBox stack and, e.g., TigerVNC.
Featured changes and news
Let’s now look at the major improvements and news of 2022 in Gentoo.
LiveGUI Gentoo ISO download: For an instant, full-fledged Gentoo experience we now have
a weekly-built 3.7GByte amd64 LiveGUI ISO
ready for download. It is suitable for booting from DVDs or USB sticks, and boots into a full
KDE Plasma desktop based on stable Gentoo. A ton of ready-to-use
software is included, from dozens of system
utilities, LibreOffice, Inkscape,
and TeXLive all the way to Firefox
and Chromium. Also, all build dependencies are installed and you
can emerge additional packages as you like!
Modern C porting:
This recent cross-distribution initiative has as its objective to port as much open source
software as possible to modern C standards. Upcoming versions of GCC and Clang will eventually
lose support for constructs that have been deprecated for decades, and we will have to be
prepared for that. Together with Fedora
we have taken the lead here, and a lot of effort has already gone into fixing and modernization.
Clang / LLVM as primary system compiler:
Closely related, support for using Clang as the primary system compiler in Gentoo has never
been better than now. For the most popular architectures, we have LLVM stages available which
replace the GNU toolchain as far as possible (also using libc++, compiler-rc, lld, …)
While glibc at the moment still requires GCC to build, the LLVM/musl stages come fully without
New binary package format gpkg:
Gentoo’s package manager Portage now supports a new binary package format defined in
GLEP 78. Besides many minor improvements,
the most important new feature of the file format is that it fully supports cryptographic
signing of packages. This was one of the most important roadblocks for more extensive binary
package support in Gentoo.
merged-usr profiles and systemd merged-usr stages:
All systemd profiles have now gained a merged-usr subprofile, corresponding to a
filesystem layout where, e.g., /bin is a symbolic link to /usr/bin. The migration
procedure has been described in detail in a news item.
With this, we prepare for the time when systemd will only support the merged-usr
layout anymore, as already announced by the upstream developers.
Across all architectures, we also now consistently offer in addition to openrc downloads
systemd stages with and without merged-usr layout. Merged-usr openrc stages will follow
In the meantime, LoongArch64,
a Chinese development by Loongson Co. based in parts on MIPS and on RISC-V, has become a
fully supported Gentoo architecture,
with toolchain support, widespread keywording, and up-to-date stages for download.
First server-type chipsets based on these chips are currently being sold.
(Outside mainland China hardware is difficult to obtain though.)
AArch64: An exotic variant of AArch64 (arm64) has been added to our download portfolio:
Big-endian AArch64. Enjoy!
Weekly stage builds for the hppa architecture (PA-RISC) are back, including systemd images
for both hppa-1.1 and hppa-2.0 and an installation CD.
MIPS: The weekly builds for MIPS are back as well! Here, we can now offer downloads
for the o32, n32, and n64 ABI plus multilib stages – and all that for both endianness
variants and init systems. No matter what your hardware is, you should find a starting
Hardened: With more and more hardening becoming de-facto standard, the compiler
settings in the hardened profiles have been tightened again
to include additional experimental switches. In particular, in Gentoo Hardened, gcc
and clang both now default to _FORTIFY_SOURCE=3, C++ standard library assertions,
and enabled stack-clash-protection.
A huge amount of work was done by our Java project to revive the language ecosystem
and in particular recent Java versions in Gentoo. Additionally, OpenJDK 11 and OpenJDK 17 were
bootstrapped for big-endian ppc64, as well as for x86, riscv, and arm64 with musl as C library, enabling
the usage of modern Java on those configurations.
Emacs ebuild-mode has seen a flurry of activity in 2022. New features include
a new ebuild-repo-mode, inserting of user’s name and date stamp in package.mask and friends,
support for pkgdev and pkgcheck commands, support for colors in ebuild command output,
and a major refactoring of the code for keyword highlighting.
Additionally, there’s flycheck-pkgcheck
for on-the-fly linting and
for automatic completion.
Mathematics: The sci-mathematics category has grown with the addition of
theorem provers such as lean, yices2, cadabra, or picosat.
Further, the Coq Proof Assistant ecosystem support has been improved with new
Coq versions, Emacs support via company-coq, and packages
such as coq-mathcomp, coq-serapi, flocq, gappalib-coq …
Many base system utilities exist in different flavours that are more or less drop-in
replacements. One example of this is the compressor bzip2, with lbzip2 and pbzip2 as
parallelizing alternatives; another tar, which exists both as gtar (GNU tar) and as
bsdtar in libarchive. With alternatives
we now have a clean system in place to use either of these options as default program
via a symlinked binary.
In the meantime the default Python version in Gentoo has reached Python 3.10. Additionally we have
also Python 3.11 available stable, which means we’re fully up to date with upstream.
Gentoo testing provides the alpha releases of Python 3.12, so we can easily prepare for
what comes next.
Physical and Software Infrastructure
Hardware: Our infrastructure team has set up two beefy new servers as Ganeti
nodes hosted at OSUOSL, with 2x AMD EPYC 7543, 1TiB RAM, 22TiB NVME, and 25Gbit networking each.
These will provide virtual machines for various services in the future. A new 1/10/25Gbit switch was also added
to better support new and existing servers.
Building on existing coding efforts, an official Gentoo PkgCore project
was created to improve this set of QA and commit tools
for Gentoo developers. Repoman was deprecated and removed from the Portage code base, and
pkgcheck, part of PkgCore, has become the official QA tool for commits to the main Gentoo
repository. It is also the code running our automated continuous integration system.
Tattoo: The new tattoo arch testing system now manages and automates large parts of
the architecture testing process. This has simplified and streamlined the stabilization process,
shortening developer response times and “saving” arch stabilization.
Devmanual: The Gentoo Development Manual has seen major
improvements in 2022. More documentation is good!
Finances of the Gentoo Foundation
Income: The Gentoo Foundation took in approximately $16,500 in fiscal year 2022;
the majority (over 90%) were individual cash donations from the community.
Expenses: Our expenses in 2022 were, as split into the usual three categories,
operating expenses (for services, fees, …) $11,000, capital expenses (for bought
assets) $55,000 (servers, networking gear, SSDs, …), and depreciation expenses
(value loss of existing assets) $9,500.
Balance: We have about $97,000 in the bank as of July 1, 2022 (which is when
our fiscal year 2022 ends for accounting purposes). The draft finanical report
for 2022 is available on the Gentoo Wiki.
Our end of year review of course cannot cover everything that happened in Gentoo in 2022
in detail, and if you look closely you will find much more.
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
And now let’s look forward to the new year 2023, with hopefully less unpleasant surprises
than the last one!