|
|
Log in / Subscribe / Register

Distributions

Rethinking Fedora multilib support

By Jake Edge
January 11, 2017

The Fedora Modularity effort is bringing changes to the distribution, particularly in order to build these modules that will encompass a "unit of functionality" such as a web server. An ongoing discussion on the fedora-devel mailing list is looking at the pros and cons of changing the distribution's longstanding multilib mechanism, which is what allows 32 and 64-bit libraries to coexist on the system. An initial proposal to use containers as the new mechanism was shot down quickly, but other possibilities are being discussed. Where it will all lead is anyone's guess, but as noted in our December look at the possibility of annual Fedora releases, the project is clearly considering and discussing fairly massive changes going forward.

The proposals have come from Stephen Gallagher, who posted the first, container-based idea on January 5. In it, he suggested that, instead of separating libraries into /usr/lib for 32-bit libraries and /usr/lib64 for 64-bit ones, there should be a shared 32-bit container runtime used to run 32-bit programs on 64-bit systems. That idea swiftly ran aground.

Gallagher outlined some advantages and disadvantages of the approach, but complaints were immediately heard about programs like Wine, Steam, and Skype that require 32-bit OS support and are not likely to be containerized anytime soon. Beyond that, though, it would fundamentally change the way 32-bit applications are built on top of Fedora. Instead of using the -m32 GCC flag and the relevant 32-bit libraries in /usr/lib, some kind "special dance to enter a container environment" would have to be done, as Tom Hughes put it. In the end, there are no real user benefits, Ben Rosser said:

Speaking from an end-user perspective, I actually really like the way multilib on Fedora is currently implemented. All I need to do to get a 32-bit application-- be it some Windows application under wine, some proprietary application like Steam, etc.-- to work is to install the 32-bit packages via yum/dnf, and then things Just Work.

I understand that from a building-the-distribution perspective the way this is done currently is kind of a hack, but I can't help but notice that the *only* benefits to this proposal would be that it makes building the distribution easier. There are no proposed benefits for our users beyond breaking the way things currently work with probably no upgrade path. And whether we like it or not, users, myself included, install nonfree software like Steam on systems and generally expect it to continue working from release to release.

The fast reactions in the thread led Gallagher to put out a second proposal roughly six hours after the first. He summarized the objections raised to the first proposal and listed two alternatives that had been proposed in the thread. The first would adopt the Debian Multiarch mechanism, which uses a /usr/lib/$ARCH-linux-gnu directory scheme. One advantage to that might be the emergence of a de facto standard between distributions. The other suggestion from the thread was to default installations to a single architecture (i.e. 32 or 64 bit) and only install libraries for that, but to allow additional architectures to be enabled in the DNF package manager for those users that need them.

As Gallagher noted, the two are not incompatible and, in fact, "their combination may indeed prove to be a superior solution to the one I initially came up with and suggested". He then went on to point out some problems that the transition would engender, but called them "surmountable". Moving the libraries would likely require leaving some symbolic links behind for binaries that expect to find them in /usr/lib[64]. RPM specification files may need to be adjusted so that the wrong versions of dependencies don't get installed during times when the i686 and x86_64 mirrors are not in sync. Also:

Switching to this layout might give a false (or possibly accurate, in some cases) impression that one could expect Debian/Ubuntu packages to function "out of the box" on Fedora (if using something like Alien). Education is key here.

There were complaints that the Debian library directory structure does not follow the Filesystem Hierarchy Standard (FHS). But Gallagher seemed unconcerned about strictly following the FHS: "we try to stay as close as possible to it, but if it doesn't meet our needs, we'll work around it". Hughes thinks the Debian organization is clearly an improvement, but is not so sure about making a switch:

If we were starting now to support multilib then I would certainly suggest that the Debian design is the better one but whether it's enough of an improvement to merit the pain of changing is a rather different question.

My reasons for thinking it's better are much the same as what other people have already said - that it treats all arches as equals and scales readily to whatever is needed rather than just bolting on a single 32/64 bit split as a kind of special case.

But Bill Nottingham is concerned that the change is being motivated only by build problems for Fedora and may not be keeping users firmly in mind:

While I fully understand how our current multilib system is a mess for the build and release process (being in certain respects responsible), I'm leery of using that to make drastic changes.

The whole point of building an OS/module/etc for users is to keep the complexity on the build side and out of the users hands - they don't care whether half the packages switched from autoconf to meson, whether twenty things are now written in Rust, or whether the entire python stack jumped minor (or major!) versions. They just want the system to upgrade and the software they use to keep working.

While it is true that build problems are motivating Gallagher to look at the multilib support, he definitely does not want to leave users behind:

As Bill pointed out, things "just work" for users right now and that's something we'd like to avoid breaking. However, that does *not* mean that it is trivial to do on the build side. We're currently building out an entirely new infrastructure to support modules; we'd like to take a look at what we did the first time and see if (with more experience and hindsight) we can do a better job now, and ideally one we can share between the two approaches.

There is still opposition to the whole Modularity idea, however, especially from Kevin Kofler. Most participating in the thread seem to be on board with the plan, but Kofler, as he often does, sees things differently:

What was never discussed was whether modules are something worth rebuilding "an entirely new infrastructure" to begin with. I disagree that they are even a desirable feature to begin with, they just fragment and thus dilute the Fedora platform, and have the potential to seriously hurt integration across the distribution and increase code duplication and its resulting bloat.

As part of the discussion, Langdon White pointed out that, for example, there is no real need for KDE and httpd to be tightly integrated, but that the current Fedora model forces the two to share libraries. Florian Weimer expanded on that:

Apache httpd and KDE are very interesting examples. Both KDE and Apache httpd integrate with Subversion, on two levels: KDE has Subversion client support, Apache httpd has server support. And Subversion is implemented using apr (the Apache Portable Runtime library).

So unless we start building Subversion twice, once for use with Apache httpd, and once for use within KDE, modules containing KDE and Apache httpd will have to agree on the same version of Subversion and the same version of apr.

As Fedora project leader Matthew Miller said, that is an example of where the distribution has hobbled itself "in our well-meaning attempt to integrate everything". There are other ways to handle those kinds of problems in today's Fedora (using multiple libraries with version numbers as part of the name as Weimer noted), but the Modularity effort will provide an easier way to do that.

The conversation is still ongoing as of this writing and no real conclusions have been drawn. The Fedora project, and its leader in particular, are looking toward a future where distributions do their jobs in a different way than they do today. It is not so much that the role that a distribution project plays is changing, but that the way it goes about it is. As Miller put it: "It is entirely about how we can better deliver the universe of free and open source software." That has always been a distribution's job, but the way to do so seems different these days and Fedora is doing its best to keep up.

Comments (14 posted)

Brief items

Distribution quotes of the week

Ultimately Gentoo is working together to produce a product. If it is a product that you want to use, then use it. If it is a product that you don't want to use, please contact us for a full refund, and consider contributing to somebody who makes a product that you do want to use. That's why we have 4000 linux distributions and not one. There is no rule saying we can have only one source-based distro either, we certainly don't have just one binary distribution. Of late, I'm not convinced that a lot of newer Gentoo users even care that it is source-based. There is also no rule saying that we can only have one distro that doesn't require running systemd... :)
Rich Freeman

A few months after joining, someone figured out that to pgp signatures to be useful, keys need to be cross-signed. Hence young me taking a long bus trip from countryside Finland to the capital Helsinki to meet the only other DD in Finland in a cafe. It would still take another two years until I met more Debian people, and it could be proven that I'm not just an alter ego of Lars ;)
Riku Voipio

It'd be nice to have the newest of the newest of everything in a Debian stable release. That seems to be incompatible with actually making a stable release.
Lars Wirzenius

I knew it as soon as I crowned Fedora 25 the best distro of 2016—I was going to hear about it from Linux Mint fans.

How could I proclaim the best distro of the year before the latest version of Mint arrived? There's nothing like some guy on the Internet overlooking your favorite distro to make the hairs in your neckbeard start twitching angrily [/sarcasm]. I understand, it happens to me every time someone fails to recognize that Arch is the best distro of every year.

Scott Gilbertson (reviews Linux Mint 18.1)

Comments (none posted)

Distribution News

Debian GNU/Linux

Delegation for the DebConf Committee

Debian project leader Mehdi Dogguy has announced the creation of the DebConf Committee as an official team of the Debian project. This committee will make final decisions about who will organize DebConf, take long-term responsibility for DebConf, and advise the DPL on decisions that are not delegated.

Full Story (comments: none)

Release update: Soft freeze for stretch

Debian stretch is now in soft freeze. No new source packages will enter stretch now. The full freeze is scheduled for February 5.

Full Story (comments: none)

Fedora

Fedora 2017 January Elections: Interviews

Fedora elections are open for voting until January 19. The Fedora Community Blog has pointers to interviews with the candidates.

Comments (none posted)

Red Hat Enterprise Linux

Red Hat Enterprise Linux 6.9 beta

Red Hat has released a beta for version 6.9 of its Enterprise Linux distribution. "While prioritizing ongoing stability and security features for critical platform deployments, Red Hat Enterprise Linux 6.9 Beta also supports the next generation of cloud-native applications through an updated Red Hat Enterprise Linux 6 base image. The Red Hat Enterprise Linux 6.9 Beta base image enables customers to migrate their existing Red Hat Enterprise Linux 6 workloads into container-based applications - suitable for deployment on Red Hat Enterprise Linux 7, Red Hat Enterprise Linux Atomic Host, and Red Hat OpenShift Container Platform."

Comments (none posted)

Newsletters and articles of interest

Distribution newsletters

Comments (none posted)

The Best Linux Distros for 2017 (Linux.com)

Jack Wallen picks his favorite distributions for different tasks. Parrot Linux for sysadmins, LXLE for a light-weight distribution, Elementary OS for the desktop, and more are covered. "[Best distribution for those with something to prove] is a category specific to those who want to show their prowess with the Linux operating system. This is for those who know Linux better than most and want a distribution built specificly to their needs. When this flavor of Linux is desired, there is only one release that comes to mind...Gentoo."

Comments (none posted)

Page editor: Rebecca Sobol
Next page: Development>>


Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds