LWN: Comments on "Fedora's modularity mess" https://lwn.net/Articles/805180/ This is a special feed containing comments posted to the individual LWN article titled "Fedora's modularity mess". en-us Tue, 30 Sep 2025 23:42:50 +0000 Tue, 30 Sep 2025 23:42:50 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Fedora's modularity mess https://lwn.net/Articles/872913/ https://lwn.net/Articles/872913/ cortana <div class="FormattedComment"> The pain continues. Red Hat&#x27;s otherwise quite nice Insights dashboard doesn&#x27;t understand modules. It shows packages updates that would require module streams to be switched, or even disabled entirely.<br> <p> What makes this particularly irritating is that enabling a module stream causes non-modular packages from enabled repositories to completely disappear when querying DNF. So you have Insights telling you that you can upgrade the softhsm package, but &#x27;dnf list --showduplicates softhsm&#x27; only shows the package from the currently-enabled idm:DL1 module from the AppStream repo, and not the hidden &#x27;ursine&#x27; module in EPEL.<br> </div> Thu, 14 Oct 2021 08:26:14 +0000 Fedora's modularity mess https://lwn.net/Articles/807213/ https://lwn.net/Articles/807213/ Wol <div class="FormattedComment"> Especially when you have polar opposites <br> <p> Cheers,<br> Wol<br> </div> Thu, 12 Dec 2019 20:21:20 +0000 Fixed https://lwn.net/Articles/806472/ https://lwn.net/Articles/806472/ kmweber <div class="FormattedComment"> In the meantime, we'll just have to grin and bear it?<br> </div> Thu, 05 Dec 2019 22:20:31 +0000 Fedora's modularity mess https://lwn.net/Articles/806085/ https://lwn.net/Articles/806085/ rahulsundaram <div class="FormattedComment"> <font class="QuotedText">&gt; EPEL is packaged by Fedora maintainers using the libraries in Red Hat Enterprise as a base - so a third party repository for the main Enterprise distribution. Then you have Freshrpms / Livna / Elrepo / RPMFusion / whatever else Dag Wiers has contributed to :) (and whatever is today's hot repository).</font><br> <p> If we are talking about RHEL here specifically, there are essentially two repositories in widespread use<br> <p> Core - Commercially supported by Red Hat. <br> EPEL - Community supported<br> <p> Packaging policy has nothing at all to do with this split clearly. This is in impact of RHEL being a commercial product<br> <p> RPM Fusion is akin to non-free in Debian. Others got merged into RPM Fusion years and years back. It is far more popular in the Fedora space than within RHEL community. There isn't anything new or "hot" here. Again, the difference here is a combination of Fedora licensing policy and Red Hat is a commercial entity and doesn't want to take on liability of distributing patent encumbered code. Nothing in the RPM format or packaging policy is going to change any of this. It also has nothing to do with the modularity effort. So I am afraid I don't see the relevance<br> </div> Mon, 02 Dec 2019 17:49:12 +0000 Fedora's modularity mess https://lwn.net/Articles/806081/ https://lwn.net/Articles/806081/ amacater <div class="FormattedComment"> kleptog has, essentially, made my point for me and clarified what I wanted to say but expressed badly.<br> <p> Packaging policy can be applied equally to .debs and to RPM - but it isn't applied in the same way in most RPM based distributions and the IBM RPM ecosystem itself tends to depend on a mess of third party repositories, each from a small number of maintainers.<br> <p> EPEL is packaged by Fedora maintainers using the libraries in Red Hat Enterprise as a base - so a third party repository for the main Enterprise distribution. Then you have Freshrpms / Livna / Elrepo / RPMFusion / whatever else Dag Wiers has contributed to :) (and whatever is today's hot repository).<br> <p> Also you have the problem that the RPM ecosystem has historically only worked on a limited number of architectures so it's coming to ARM fifteen years late. <br> <p> [And note, this suggestion from me is nothing new - I made a similar suggestion to rgb for the beginnings of the Beowulf project.]<br> </div> Mon, 02 Dec 2019 17:01:30 +0000 Fedora's modularity mess https://lwn.net/Articles/806080/ https://lwn.net/Articles/806080/ Conan_Kudo RPM macros are "inspired" by an unholy combination between m4 and bash. There are some primitives that are bash-like and some that are m4-like. You can <i>mostly</i> get away from this if you write your logic in Lua (the other programming language supported by RPM), but most people don't. Mon, 02 Dec 2019 15:58:17 +0000 Fedora's modularity mess https://lwn.net/Articles/806001/ https://lwn.net/Articles/806001/ rahulsundaram <div class="FormattedComment"> <font class="QuotedText">&gt; There is nothing very special about the format, it's the Debian Packaging Policy that makes the difference</font><br> <p> Indeed. So switching from RPM to Deb solves none of the problems and packaging policy can be applied in an identical way in an RPM based system. In fact, such packages already exist in Fedora and is not fundamentally different from software collections (which was more heavily used in RHEL and did not see much adoption in Fedora). The modularity group is just trying a different approach to solve it<br> </div> Mon, 02 Dec 2019 12:06:32 +0000 Fedora's modularity mess https://lwn.net/Articles/805988/ https://lwn.net/Articles/805988/ kleptog <div class="FormattedComment"> There is nothing very special about the format, it's the Debian Packaging Policy that makes the difference. You start with the basic choice that "if you think people might want to parallel install packages they must have different names".<br> <p> So you don't have postgresql:10 and postgresql:11, you have postgresql-server-10:10.11 and postgresql-server-11:11.6 and the corresponding client packages. The libraries libssl1.1, libssl1.0.2 and libssl1.0.0 are also distinct packages, the package name reflects the ABI presented. Then the whole discussion becomes much easier, dependencies are clear and installing multiple versions of a single package becomes unnecessary (although it is supported if the architecture is different).<br> <p> To refer to the article, since libgit2-21 and libgit2-27 are co-installable the entire issue vanishes. It doesn't matter if the version 21 disappears from upstream, it remains on the user's system as long as they need it.<br> <p> To make this work smoothly is of course a large part of the rest of the policy regarding file placement and versioning but it seems to me to solve all the issues this article is discussing. There is the choice that this scheme does not apply to dev packages for building, I think mostly because of (for example) lack of useful tooling support for dealing with three versions of the ssl.h header file being installed at the same time.<br> </div> Mon, 02 Dec 2019 09:50:53 +0000 Fedora's modularity mess https://lwn.net/Articles/805890/ https://lwn.net/Articles/805890/ snajpa <div class="FormattedComment"> Hm, you're right, I wonder how I came across that bit of information. I've actually never bothered to validate that.<br> <p> Hell, what do I know. And why do I care, I'll refrain from posting comments such as this in the future, esp. when I don't really care about the thing in question...<br> <p> Sorry for that.<br> </div> Sun, 01 Dec 2019 03:25:24 +0000 Fedora's modularity mess https://lwn.net/Articles/805853/ https://lwn.net/Articles/805853/ rahulsundaram <div class="FormattedComment"> You haven't cited a single unique feature of deb format that RPM format doesn't support. None of those solve the modularity goals. Gentoo slots and Nix does solve them in other ways but Debian doesn't. I would suggest starting with those for comparison points<br> </div> Sat, 30 Nov 2019 23:50:22 +0000 Fedora's modularity mess https://lwn.net/Articles/805847/ https://lwn.net/Articles/805847/ amacater <div class="FormattedComment"> Debian _does_ have dependency resolution, strict packaging policy - and tracking of reverse dependencies. It's (almost) entirely reproducible. It generally works and is readily upgradable between major versions.<br> <p> The modularity and fast moving packages - there's a working alternatives system and the stable/testing/unstable ecosystem generally means that newer versions are being worked on at the same time as stable remaining stable. Comparable in size to Fedora but having longer term support.<br> [Disclaimer: I've been using Debian since version 1.2 and Red Hat since 4.2 - I have to help support both but _still_ can't support developers wanting to use Red Hat for daily development with any degree of satisfaction.]<br> </div> Sat, 30 Nov 2019 21:41:33 +0000 Fedora's modularity mess https://lwn.net/Articles/805846/ https://lwn.net/Articles/805846/ rahulsundaram <div class="FormattedComment"> <font class="QuotedText">&gt; Or just admit that, of the surviving distributions, you were third to the party (after Slackware and Debian) and just ditch RPM for .deb - reproducible, documented - as Red Hat nearly did once before. ...</font><br> <p> Slackware doesn't have a dependency resolver and .deb as a packaging format isn't all that different from .rpm and doesn't solve the modularity problem. So I don't see how that would help at all. Feel free to explain<br> </div> Sat, 30 Nov 2019 21:02:32 +0000 Fedora's modularity mess https://lwn.net/Articles/805845/ https://lwn.net/Articles/805845/ lkundrak <div class="FormattedComment"> <font class="QuotedText">&gt; Who of you actually knows that RPM spec files are m4 language macros?</font><br> <p> What? No.<br> </div> Sat, 30 Nov 2019 20:45:26 +0000 Fedora's modularity mess https://lwn.net/Articles/805844/ https://lwn.net/Articles/805844/ amacater <div class="FormattedComment"> Or just admit that, of the surviving distributions, you were third to the party (after Slackware and Debian) and just ditch RPM for .deb - reproducible, documented - as Red Hat nearly did once before. ...<br> </div> Sat, 30 Nov 2019 20:04:20 +0000 Fedora's modularity mess https://lwn.net/Articles/805843/ https://lwn.net/Articles/805843/ snajpa <div class="FormattedComment"> You Red Hat guys should really take a hard, long and fresh look at Nix and figure out how do you go from the m4-hell you're in now to something like Nix or Guix. At their core, those technologies have solved what you guys will still be only aiming for 10 years from now.<br> <p> Who of you actually knows that RPM spec files are m4 language macros?<br> <p> So, you've been defining packages with a programming language all along.<br> <p> Start doing it properly. You could get configuration management of those packages, auto-generated manual for all the configuration options these packages would provide and mainly, you could get the ability to install whichever versions you'd like on a single system.<br> <p> And you would still be able to reproducibly manage that, which you can't now (Ansible doesn't even come close).<br> <p> It would just solve all of the problems you're never going to solve up the stack. Fix the underlying actual problem that is the RPM's legacy, get it up-to-date with modern systems research and you'll be set for another 25 years as a clear market winner.<br> </div> Sat, 30 Nov 2019 19:42:48 +0000 Fedora's modularity mess https://lwn.net/Articles/805797/ https://lwn.net/Articles/805797/ epa <div class="FormattedComment"> If the new version of X has been packaged in Rawhide then you can usually grab the source package and rebuild it. Or if not, you can take Fedora's current package for X and update it to the new upstream tarball. Either is usually pretty easy, and if not, well somebody has to do the packaging work no matter what kind of release cadence or modularity setup the distribution is using.<br> <p> </div> Fri, 29 Nov 2019 13:02:42 +0000 Fedora's modularity mess https://lwn.net/Articles/805749/ https://lwn.net/Articles/805749/ Cyberax <div class="FormattedComment"> The problem is not the library itself, but its reverse dependencies. There's no real way to encode which library version you want.<br> </div> Thu, 28 Nov 2019 07:19:44 +0000 Fedora's modularity mess https://lwn.net/Articles/805742/ https://lwn.net/Articles/805742/ Conan_Kudo You actually can, RPM doesn't really care. Currently, DNF/YUM and friends encode a policy to forbid it for all but a few packages, but there's no reason we couldn't expand the scope... Thu, 28 Nov 2019 02:49:05 +0000 Fedora's modularity mess https://lwn.net/Articles/805740/ https://lwn.net/Articles/805740/ Conan_Kudo Oi, ain't that the truth... Thu, 28 Nov 2019 02:47:52 +0000 Fedora's modularity mess https://lwn.net/Articles/805687/ https://lwn.net/Articles/805687/ dmnks <div class="FormattedComment"> <font class="QuotedText">&gt; The problem is versioning. You can't easily install two copies of the same RPM package. </font><br> <p> Parallel installation is a solvable problem with RPM. There's no technical reason it couldn't work. In fact, Software Collections is a good example of an implementation that just adds a bunch of RPM macros and scriptlets to achieve exactly this.<br> <p> But then, parallel installability is the one thing that Modularity is explicitly _not_ trying to solve :)<br> </div> Wed, 27 Nov 2019 09:07:46 +0000 Fedora's modularity mess https://lwn.net/Articles/805667/ https://lwn.net/Articles/805667/ Cyberax <div class="FormattedComment"> The problem is versioning. You can't easily install two copies of the same RPM package. <br> </div> Tue, 26 Nov 2019 20:01:12 +0000 Fedora's modularity mess https://lwn.net/Articles/805615/ https://lwn.net/Articles/805615/ dmnks <div class="FormattedComment"> <font class="QuotedText">&gt; I think this stems from us struggling to clearly define what a "package" is. Is it a single binary/library, an application (comprising of multiple binaries), a software bundle (comprising of multiple related applications) or a bundle of bundles (a distribution)? Do we really need different concepts for each level in what appears to be a hierarchy with a clear set of rules and relationships?</font><br> <p> Just to clarify, what I mean is that RPM packages have been historically used to deliver not only single programs and libraries, but also software bundles (as metapackages), so it seems logical to think of modules the same way.<br> </div> Tue, 26 Nov 2019 14:34:21 +0000 Fedora's modularity mess https://lwn.net/Articles/805599/ https://lwn.net/Articles/805599/ dmnks <div class="FormattedComment"> This may sound rather naive, but I've always had the impression that we're just trying to reinvent the wheel here, "poorly". (Please take this with a grain of salt.)<br> <p> Isn't this why we invented (RPM) packages and (YUM) repositories in the first place? Modules seem to share most of the same semantics; they deal with versioning, dependencies, upgrade paths (streams) etc. Why add another layer of complexity to that?<br> <p> I think this stems from us struggling to clearly define what a "package" is. Is it a single binary/library, an application (comprising of multiple binaries), a software bundle (comprising of multiple related applications) or a bundle of bundles (a distribution)? Do we really need different concepts for each level in what appears to be a hierarchy with a clear set of rules and relationships?<br> <p> Shouldn't we just take a step back and rethink the whole desire for "modules" in the simple context of packages and repositories first?<br> </div> Tue, 26 Nov 2019 14:06:01 +0000 Fedora's modularity mess https://lwn.net/Articles/805588/ https://lwn.net/Articles/805588/ jafd <div class="FormattedComment"> It almost sounds as if the Modularity Team and the DNF committers live in two distinct ivory towers, perhaps a continent apart.<br> </div> Tue, 26 Nov 2019 09:40:39 +0000 Fedora's modularity mess https://lwn.net/Articles/805576/ https://lwn.net/Articles/805576/ mattdm <div class="FormattedComment"> <font class="QuotedText">&gt; Tons of fedora package bugs get no reply or an uninterested reply and gets autoclosed after a few years. This seems to be inventing a problem that doesn't exist.</font><br> <p> I think the first part of that _is_ the problem.<br> </div> Tue, 26 Nov 2019 02:50:16 +0000 Fedora's modularity mess https://lwn.net/Articles/805564/ https://lwn.net/Articles/805564/ perennialmind <div class="FormattedComment"> Correction: I did understate it, and what I'm trying to do is walk it back. :-)<br> </div> Mon, 25 Nov 2019 22:08:03 +0000 Fedora's modularity mess https://lwn.net/Articles/805559/ https://lwn.net/Articles/805559/ perennialmind <div class="FormattedComment"> I don't mean to understate the complexity or the work. It would take similar effort to curate a "forward port" inverse of Debian Backports. I pictured opting in to a "FC31-29antiques" repository and pinning a set of packages to that moving target. At least then I get a hint of the complexity and relative age if I try pulling in a hodgepodge from "FC29-28antiques", "FC31-30antiques", "FC31-32backports", etc. For me, it would help set my expectations. It's not hard to see that maintaining Apache 2.2 for all eternity is infeasible, but it's hard to miss if I have to specify "Fedora9" to get it. <br> <p> I'm used to managing repositories, and I like being able to fit with existing abstractions - if it's actually a good fit.<br> </div> Mon, 25 Nov 2019 21:59:18 +0000 Fedora's modularity mess https://lwn.net/Articles/805553/ https://lwn.net/Articles/805553/ sgallagh <div class="FormattedComment"> <font class="QuotedText">&gt; if they could make reaching across Fedora releases it would provide a lovely granularity of version selection.</font><br> <p> That is in fact a core piece of the puzzle: When building a module, you select which releases of Fedora it will work on. Then on upgrade if you had indicated "I want to stick with PostgreSQL 10", you'll stay on the `postgresql:10` stream instead of moving to the `postgresql11` stream, even if it's the default stream for the next release.<br> <p> The big devil in the details for upgrades is determining an appropriate heuristic for when it's okay to switch to the newer module default stream vs. stay on the previous one when upgrading. The closest we've come up with so far is the initial upgrade proposal: <a rel="nofollow" href="https://lwn.net/ml/fedora-devel/CAFoKQtx_rjF6wf_ArY8-hpfGmnvEkruCY=8Gy5mwWd-Y2nJBwQ@mail.gmail.com/">https://lwn.net/ml/fedora-devel/CAFoKQtx_rjF6wf_ArY8-hpfG...</a><br> <p> I'm open to better ideas for the heuristics!<br> </div> Mon, 25 Nov 2019 19:24:43 +0000 Fedora's modularity mess https://lwn.net/Articles/805549/ https://lwn.net/Articles/805549/ langdonwhite <div class="FormattedComment"> We always seem to leave out the use case for when Fedora is too slow. <br> <p> We regularly get a new version of some tool/language/whatnot that misses the release window. Many people say "just wait 6 months for the next Fedora." Well, there a couple big problems with that. The obvious, "well, what if it can't get in then either" risk is pretty scary. However, the more subtle/less obvious problem is that many software projects are implemented and shipped in 6 months. That is a *lifetime* in web projects these days.<br> <p> Without Modularity, I have to either choose to use the last rev of X or not use Fedora to develop my application. <br> </div> Mon, 25 Nov 2019 18:55:01 +0000 Fedora's modularity mess https://lwn.net/Articles/805547/ https://lwn.net/Articles/805547/ hkario <div class="FormattedComment"> <font class="QuotedText">&gt; That's a shame: if they could make reaching across Fedora releases it would provide a lovely granularity of version selection.</font><br> <p> distribution is not just the packages, it's also all the integrations, consistent compilation options etc.<br> While installing FC29 package on FC31 should work in general, it's not guaranteed, let alone if it will work exactly as it did in FC29.<br> </div> Mon, 25 Nov 2019 18:46:40 +0000 Fedora's modularity mess https://lwn.net/Articles/805546/ https://lwn.net/Articles/805546/ langdonwhite <div class="FormattedComment"> Most (if not all) of the Modularity Team members agree with you. However, that is not the way it is implemented in dnf at the moment. <br> </div> Mon, 25 Nov 2019 18:45:59 +0000 Fedora's modularity mess https://lwn.net/Articles/805534/ https://lwn.net/Articles/805534/ JFlorian <div class="FormattedComment"> Indeed. I gave up trying to follow the ML and just *knew* that LWN would get after this eventually. Not disappointed. The wait was short and this gave a good overview.<br> </div> Mon, 25 Nov 2019 15:50:52 +0000 Fedora's modularity mess https://lwn.net/Articles/805489/ https://lwn.net/Articles/805489/ mathstuf <div class="FormattedComment"> A way to mark a package as "maintained due to software stack" that gets a new dependency somewhere could raise a flag saying "I see you're depending on a package that was added just to satisfy dependencies. Do you want to also co-maintain that package?" to help reduce the burden for these would be good. Probably good to stop raising the flag once it has 2 or 3 co-maintainers already (or someone adopts it in a "I actually care about this package specifically" way).<br> </div> Mon, 25 Nov 2019 15:15:03 +0000 Fedora's modularity mess https://lwn.net/Articles/805472/ https://lwn.net/Articles/805472/ amacater <div class="FormattedComment"> Finding the right terminology is always a grisly business ...<br> </div> Mon, 25 Nov 2019 09:51:33 +0000 Fedora's modularity mess https://lwn.net/Articles/805466/ https://lwn.net/Articles/805466/ bkircher <div class="FormattedComment"> This. Thanks so much LWN for bringing a bit of sense and perspective to this mess.<br> </div> Mon, 25 Nov 2019 08:35:40 +0000 Fedora's modularity mess https://lwn.net/Articles/805463/ https://lwn.net/Articles/805463/ IanKelling <div class="FormattedComment"> The more relevant longer requirements quote about not packaging<br> build-time dependencies:<br> <p> <p> <font class="QuotedText">&gt; When a person decides that they want Fedora to carry a particular package</font><br> <font class="QuotedText">&gt; and decides to do the work to accomplish this, it is not uncommon to</font><br> <font class="QuotedText">&gt; discover that the package they care about has additional dependencies that</font><br> <font class="QuotedText">&gt; are not yet packaged in Fedora. Traditionally, this has meant that the</font><br> <font class="QuotedText">&gt; packager has needed to package up those dependencies and then continue to</font><br> <font class="QuotedText">&gt; maintain them for anyone who may be using them for other purposes. This can</font><br> <font class="QuotedText">&gt; sometimes be a significant investment in time and energy, all to support a</font><br> <font class="QuotedText">&gt; package they don’t necessarily care about except for how it supports the</font><br> <font class="QuotedText">&gt; primary package.</font><br> <p> "needed to package up those dependencies" yes, of course, "and then<br> continue to maintain them for anyone who may be using them for other<br> purposes" Huh? I'm pretty sure that is not true at all. There definitely<br> is nothing in <a href="https://docs.fedoraproject.org/en-US/packaging-guidelines/">https://docs.fedoraproject.org/en-US/packaging-guidelines/</a><br> remotely like that. Tons of fedora package bugs get no reply or an<br> uninterested reply and gets autoclosed after a few years. This seems to<br> be inventing a problem that doesn't exist.<br> <p> Yes, publishing build dependencies is hard, but its also a key part of<br> what makes a distro be useful, it enables people to contribute by<br> building and fixing software on their own machines and enables<br> derivatives.<br> <p> </div> Mon, 25 Nov 2019 06:18:39 +0000 Fedora's modularity mess https://lwn.net/Articles/805444/ https://lwn.net/Articles/805444/ roblucid <div class="FormattedComment"> The OpenSuSE distro would let me choose alternative repositories for tracking less stable versions of some projects, say web browser, desktop or kernel. A major update to new release would be handled by updating the base system entirely and then re-enabling the alternative repos after (assuming they were still required).<br> The case of developers building against a stable defined set of libraries would be handled by the build system, which uses an alternative root and an online package building service baselined against OS releases or Tumbleweed snapshots.<br> I struggle to understand what common cases the RHEL/Fedora can fulfill, in return for what appears impractically fragile complexity.<br> As a past sysadmin a key was reproducibility, developer systems which evolved in surprising ways, led to quality problems.<br> </div> Sun, 24 Nov 2019 08:45:32 +0000 Typo reporting https://lwn.net/Articles/805425/ https://lwn.net/Articles/805425/ tome <div class="FormattedComment"> Holy moly, never saw that. It's bold even. Thanks Jake.<br> </div> Sat, 23 Nov 2019 15:17:37 +0000 Fixed https://lwn.net/Articles/805424/ https://lwn.net/Articles/805424/ mebrown <div class="FormattedComment"> I see what you did there.<br> </div> Sat, 23 Nov 2019 14:47:12 +0000 Typo reporting https://lwn.net/Articles/805422/ https://lwn.net/Articles/805422/ jake <div class="FormattedComment"> Also perhaps of interest is that it is prominently noted above every comment editing form:<br> <p> Please do NOT post typos in the article as comments, send them to lwn@lwn.net instead.<br> <p> jake<br> </div> Sat, 23 Nov 2019 14:42:54 +0000