pkgbump: from a dumb tool to an irreplaceable helper
Bumping packages is one of the most common tasks of a Gentoo developer. It shouldn’t then be surprising that it is the one most asking for some kind of automation, and that the pkgbump script would be...
View Article2026 Council Manifesto
I joined Gentoo over 15 years ago. I was a university student back then. I had lots of free time and energy. I was enthusiastic about novelties, and wanted to push them into Gentoo. Back then, bleeding...
View ArticleWhy Gentoo?
Multiple times in the past I’ve been thinking of how Gentoo is perceived by the wider public, the non-users. What probably stands out most is compiling. Almost everyone who heard of Gentoo knows it has...
View ArticleThe pinnacle of enshittification, or Large Language Models
Honestly, I hate that I read about LLMs all the time. I hate all the marketing bullshit, but also all the critical pieces. Not because the criticism is wrong. I hate them precisely because they’re...
View ArticleMoney isn’t going to solve the burnout problem
The xz-utils backdoor situation brought the problem of FLOSS maintained burnout into the daylight. This in turn lead to numerous discussion on how to solve the problem, and the recurring theme was...
View ArticleOne jobserver to rule them all
A common problem with running Gentoo builds is concurrency. Many packages include extensive build steps that are either fully serial, or cannot fully utilize the available CPU threads throughout. This...
View ArticleHow we incidentally uncovered a 7-year old bug in gentoo-ci
“Gentoo CI” is the service providing periodic linting for the Gentoo repository. It is a part of the Repository mirror and CI project that I’ve started in 2015. Of course, it all started as a temporary...
View ArticleEPYTEST_PLUGINS and other goodies now in Gentoo
If you are following the gentoo-dev mailing list, you may have noticed that there’s been a fair number of patches sent for the Python eclasses recently. Most of them have been centered on pytest...
View ArticlePoetry(-core), or the ultimate footgun
I’ve been complaining about the Poetry project a lot, in particular about its use (or more precisely, the use of poetry-core) as a build system. In fact, it pretty much became a synonym of a footgun...
View ArticleThe peculiar world of Gentoo package testing
While discussing uv tests with Fedora developers, it occurred to me how different your average Gentoo testing environment is — not only from these used upstream, but also from these used by other Linux...
View ArticleTesting the safe time64 transition path
Recently I’ve been elaborating on the perils of transition to 64-bit time_t, following the debate within Gentoo. Within these deliberations, I have also envisioned potential solutions to ensure that...
View ArticleThe perils of transition to 64-bit time_t
(please note that there’s a correction at the bottom) In the Overview of cross-architecture portability problems, I have dedicated a section to the problems resulting from use of 32-bit time_t type....
View ArticleOverview of cross-architecture portability problems
Ideally, you’d want your program to work everywhere. Unfortunately, that’s not that simple, even if you’re using high-level “portable” languages such as Python. In this blog post, I’d like to focus on...
View ArticleGentoo: profiles and keywords rather than releases
Different distributions have different approaches to releases. For example, Debian simultaneously maintains multiple releases (branches). The “stable” branch is recommended for production use,...
View ArticleOptimizing distutils-r1.eclass via wheel reuse
Yesterday I’ve enabled a new distutils-r1.eclass optimization: wheel reuse. Without this optimization, the eclass would build a separate wheel for every Python implementation enabled, and then install...
View ArticleThe review-work balance, and other dilemmas
One of the biggest problems of working in such a large project as Gentoo, is that there’s always a lot of work to be done. Once you get engaged deeply enough, no matter how hard you’re going to try,...
View ArticleThe dead weight of packages in Gentoo
You’ve probably noticed it already: Gentoo developers are overwhelmed. There is a lot of unresolved bugs. There is a lot of unmaintained packages. There is a lot of open pull requests. This is all...
View ArticleOptimizing parallel extension builds in PEP517 builds
The distutils (and therefore setuptools) build system supports building C extensions in parallel, through the use of -j (--parallel) option, passed either to build_ext or build command. Gentoo...
View ArticleThe story of distutils build directory in Gentoo
The Python distutils build system, as well as setuptools (that it was later merged into), used a two-stage build: first, a build command would prepare a built package version (usually just copy the .py...
View ArticleA format that does one thing well or one-size-fits-all?
The Unix philosophy states that we ought to design programs that “do one thing well”. Nevertheless, the current trend is to design huge monoliths with multiple unrelated functions, with web browsers at...
View Article