Skip to content

Instantly share code, notes, and snippets.

@mgorny

mgorny/2020.md Secret

Last active June 21, 2021 17:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mgorny/660037bf1a7160cceebfe1076870e24c to your computer and use it in GitHub Desktop.
Save mgorny/660037bf1a7160cceebfe1076870e24c to your computer and use it in GitHub Desktop.
title
Happy New Year 2021; 2020 in retrospect

(some vector with Larry, 2021, fireworks)

While we start into 2021 with fresh energy (and maybe new antibodies), let's take a look back at the past 12 months. 2020 was a year unlike any other. This has impacted many Open Source projects. Nevertheless, we managed some great things this year, and we would like to share them with our community.

Gentoo in numbers

2020 has featured a major increase in commits to the ::gentoo repository, and especially commits from non-developers. The overall number of commits has grown from 73400 to 104500 (by 42%), while the number of commits made by non-developers has grown from 5700 (8% of total) to 11000 (10.5% of total). The latter group has featured 333 unique authors in 2019, and 391 in 2020.

The ::guru repository has thrived in 2020. While 2019 left it with merely 7 contributors and a total of 86 commits, 2020 has featured 55 different contributors and 2725 commits.

There was also a major increase in Bugzilla activity. 2020 featured almost 25500 bugs reported, compared to 15000 in 2019. This is probably largely thanks to Agostino Sarubbo's new tinderboxing effort. The total number of bugs closed in 2020 was 23500, compared to 15000 in 2019.

New developers

We've finished 2020 with three significant additions to the Gentoo family (in chronological order):

  1. Max Magorsch (arzano)

    Max joined us in February to help out with Gentoo Infrastructure. Since then, he has done tons of work. Just to list a few things, he has redesigned and modernized the Gentoo websites and rewritten packages.gentoo.org into the super cool form we have today.

  2. Sam James (sam)

    Sam joined us in July, and has been doing a lot of different work since. He is known as an active member of Security team and multiple arch teams, as well as someone who fixes lots of bugs in different packages.

  3. Stephan Hartmann (sultan)

    Stephan joined us in September, and has started working on our Chromium-related packages immediately. He has been pushing commits to upstream Chromium, and hopefully he'll deal with all the problems specific to us. Thanks to him we have finally caught up with Windows and can offer our users a packaged version of Microsoft Edge.

Featured changes

The following major changes/improvements have happened in 2020:

  • Bugzilla: The Infrastructure team has managed a major improvement to Gentoo Bugzilla performance. The database has been migrated to a newer database cluster, and the backend has been switched to mod_perl.

  • CI / Tinderbox: 2020 brought a second active tinderboxing effort, resulting in more problems being detected and fixed early. This also includes running a variety of QA checks, as well as minimal environment builds that are helpful in detecting missing dependencies.

  • Distribution Kernels: Gentoo now supports building and installing kernels entirely via the Package Manager. The new packages also come with (optional) stock configuration based on well-tested Fedora kernels, to ease the entry barrier and maintenance effort of Gentoo systems.

  • Lua: A new framework has been created that permits multiple versions of Lua to be installed side-by-side. The vast majority of ~arch packages have been migrated to this framework by Yule, enabling new versions of Lua to finally be unmasked.

  • packages.gentoo.org The p.g.o site has received a number of improvements towards being a central sources of information on Gentoo packages. This includes the results of QA checks, bugs and pull requests referencing the package, and a maintainer dashboard indicating stabilization candidates and outdated versions (according to Repology).

  • Python: We have managed to almost withdraw Python 2.7 from Gentoo, to withdraw Python 3.6 and upgrade the default to Python 3.8. Python 2.7 is still available as a build-time dependency for a few packages. We have additionally patched all the vulnerabilities known from later versions of Python.

  • RISC-V: The work on RISC-V support has started, with particular focus on the riscv64 architecture. The RISC-V project provides stage3 files and stable profiles for the soft-float (rv64imac/lp64) and hard-float (rv64gc/lp64d) ABIs already, in both systemd and OpenRC variants. The arch team has managed to run Xorg already!

  • ARM64: Elevated to stable status, no longer experimental. This year brought improved support for ARM64. The ARM64 project now has automatically generated stage3s, and is usually one of the fastest arch teams to test packages. We have worked to bring more packages to ARM64 and make it more feasible to run a full desktop!

  • Wayland: The Wayland support in Gentoo has progressed greatly, making it possible to run Xorg-free desktop. Wayland is supported both with large Desktop Environments such as KDE Plasma and GNOME, as well as with lightweight alternatives such as Sway and Wayfire. The latter make it also possible to use Wayland to a large extent without resorting to XWayland.

  • Prefix: Gentoo Prefix is now (once again) capable of bootstrapping on the latest macOS releases, and work is underway to modernise prefix-specific ebuilds and merge them back into the main tree - ensuring users get the latest software and maintenance burden is reduced.

Please note that we described only a few major pieces of work. We would like to thank all Gentoo developers for their relentless everyday Gentoo work. While they are often not recognized for this work, Gentoo could not exist without them.

Discontinued projects

While Gentoo would like to support as much as our users wish for, we could not manage to continue all of the projects we've started in the past. With limited resources, we had to divert our time and effort from projects showing little promise. The most important projects discontinued in 2020 were:

  • Architectures: Alpha and IA-64 keywords were reduced to ~arch. The HPPA stable keywords were limited to the most important packages. SH support was removed entirely. With very small number of users of these architectures, our arch teams decided that the effort in maintaining them is too great. In case of SuperH, the last available machines died.

  • LibreSSL: By the end of 2020, we have decided to discontinue support for LibreSSL. With little to no support from various upstreams, the effort necessary to maintain package compatibility exceeded the gain, especially given that OpenSSL has made a lot of progress since the forking point.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment