Gentoo destroying earth?

I worked a bit with some Gentoo systems the last days and it was no fun. The whole compiling thing is no fun. In fact, it is a danger for the environment. If every computer in the world run Gentoo, power consumption would increase dramatically. There would also be no netbooks, as they are almost unusable for running Gentoo on it, compiling software.

The path chosen by binary distributions like Debian is much better. Packages are compiled centrally and users download and install these pre-compiled packages. But it is also much less flexible in terms of which functionality is supported. We, as package maintainers, have to decide which functionality is likely to be used by the users. In Contrast, Gentoo has USE flags, which allows the user to enable the specific functionality he/she wants.

Should we combine the advantages of both technologies? Provide a normal binary distribution as we do now, but also provide a framework for users to easily recompile their packages, adding new functionality.

Imagine a combination of all these technologies:  User wants to install software X with feature F. The package maintainer has not enabled F in the binary. The user opens the website for his personal archive, selects the F flag and the software and clicks on build. The server builds the software and notifies the user once the binary is ready.

At Ubuntu, the first step has been made into this direction. While the package format is still the same, Launchpad allows users to create so-called PPAs (Personal Package Archives), where users can upload their source packages, which are then compiled and made available to other users. Let’s say Project A releases version X of their software. They can create a source package for it, upload it to the PPA, and provide the binary packages to the users. Prior to PPAs, most users would have used an old version, compile their own version or use tarballs containing pre-compiled software (mozilla does this).

And sorry for the title. I respect the Gentoo community and the Gentoo developers, they are doing great work there. And ebuilds and Gentoo’s boot system (with this runscript stuff) is really easy.

BTW: I also like the way Gentoo displays its boot messages. It looks much more organized than Debian’s boot process. (In terms of the message logging, where Debian writes “done” when something is done, and Gentoo writes “[OK]” to the right side of the screen, in green letters. (This is partially possible in Debian using lsb-base-logging.sh, but not all init scripts use these functions, or they use the wrong ones.)

28 thoughts on “Gentoo destroying earth?

  1. It might not go well. The idea of binary packages in Gentoo comes up frequently on gentoo-dev mailing list. By using customized binary packages, package dependencies now become broken because they are for standard packages only. Weird things will happen.

  2. This is a terrible idea. The community needs consolidation, not some ridiculous uber-use-any-combination-of-features-and-crash-nvidia-drivers packaging system

    1. why does the community need consolidation? I’m so sick of this anti-choice attitude.

      I guess you believe in a “Unified Distro” too?

  3. We were talking at debconf8 about making debian source packages more like gentoo source packages. And a bit of Ligusk discussion too.

  4. Hi, first of all, fix the link on planet ubuntu to your blog, because is pointing back to the planet itself🙂 I would suggest as Russ did to take a look at sabayon, I’m sure that’s more like what you want.

  5. As someone who’s been involved with gcc development, mainly in a test/QA role, for a long time, I find the Gentoo approach deeply worrying, because the tweakers are often using combinations of options that no one has tested. You might get a few percent performance improvement in exchange for new bugs (and all software has bugs).

    Certainly customization sometimes pays, but it should be done in a structured fashion. If you provide people with ten knobs they can tweak, and these knobs have two settings each, that’s 1024 combinations you need to test unless you can prove that they don’t interact.

    Certainly there are circumstances where processor-specific optimization helps, but it’s wise to do that in limited numbers of cases where you know (or can show) that you get a large win. Math-intensive libraries would be one case where you might want to provide both a “generic x86” version, and a version that can take advantage of newer instruction sets.

  6. Arch is a great example of a distro that has the practical side of binary packages & the power of making source packages, just search for archlinux pacman, ABS, AUR & yaourt

  7. I don’t think Gentoo was ever meant to be used everywhere, but that doesn’t mean it doesn’t have its uses (and I mean it’s not like Ubuntu should be everywhere either? I mean the server… meeeh…)

    Anyways, I’ve over the last few years moved most of my stuff to Ubuntu, except my server. Gentoo is still great on the server and supports more officially several things that are hard to get anything but compile-on-your-own time support from any other distro. So if I’m compiling this stuff anyways, might as well use a system where it’s supported and they take bugs on it (the most visibile example is mpm_peruser for apache).

    Also, as a community, I do think that while lots of Gentoo user’s do crazy things with cflags etc, they also end up compiling lots of software in lots of different environments and configurations that developers might not think of and can in fact turn up legitimate bugs. Think of the Gentoo community as a large Q/A community pushing the bounderies of the open source software ecosystem. So they are doing crazy things sometime, they’re not hurting anyone but themselves and if the larger open source community can glean some bugs from them we might otherwise have missed, well then good🙂

    And I think the cflags things is over stated, Yes some people do crazy things with them, but for me, it’s always been more about custom USE flag configurations. You can do some fun stuff.

    Also, portage does support binary packages and has a sweet cross compiling set of tools. I’ve built an ARM environment for my GP2X (a small handheld console) and my IPaq and then cross compiled software for them that wasn’t available in their package managers (familiar linux for the ipaq for example).

    Gentoo has always been more experimental to me and that does mean pushing the limits but lots of valuable ideas and tools can come out of that.

    Gentoo has a place in the community, and I don’t think it was ever intended to take over the world😉

  8. Ha, also, as an aside, everyone is like “wow, Ubuntu wrote their own init system (upstart), amazing”.

    Gentoo has always had it’s own different init system since at least as far back as 2002.

    It’s just one of the many neat things that the community has come up with, in part because Gentoo is more out there.

  9. Indeed you should take a peek at Arch Linux, its simplicity is absolutely beautiful and exhales phenomenal efficiency.

    Also, take a look at its bootloading process, you may like it too, and the source of it is also extremely simple😉 I’m pretty sure it can easily be ported to debian.

  10. Gentoo is usable on netbooks too. I’m using Gentoo on my MSI Wind, and it’s only marginally slower than my pentium M 1.86. Three years ago a lot of people were using computers slower than current netbooks, so that was a quite useless comment… I do have to agree that it can sometimes be a waste of cpu cycles to compile stuff, but there’s no way to get a binary distribution as flexible as Gentoo is right now…

  11. I agree with your sentiments, Gentoo is pretty unweildly. Creating a hybrid binary/compilation system would definitely be ideal, but it gets tough to manage binary/source code dependencies…
    I don’t mind compiling things when I need it, and having everything else come to me as binary packages.😀

  12. To those of you in favor of Arch: I know your distribution.

    I used Arch for some days, but had dramatic problems with instability. But this was a very common Error I had with other distributions too, and it should not happen anymore nowadays.

    I think that pacman is a great package manager. It provides many features and is very easy to use.

    The way Arch builds packages is also great, inspired by CRUX (http://crux.nu/), which I also used for about 1/2 year.

    I know how to create packages for Debian, Arch, CRUX, Gentoo. I know how to configure my network on all of them.

  13. @Dan Ballard: Well, there is some difference. AFAIK, Gentoo still uses the standard sysvinit programs to control the boot process, just different scripts (and of course runscript).

    upstart, instead, is meant to be more. First of all, it completely replaces init, but in the future, it will also be able to take over cronjobs and other stuff.

    Secondly, Upstart is event-based, whereas Gentoo’s init seems to be dependency-based.

    The bad thing with upstart is: nobody really uses it. Fedora and Ubuntu are using upstart, but just in the sysv compatibility mode.

  14. @Michael Croes: I never tried Gentoo on a Netbook, I just guessed. If you are satisfied with the time updates need on a netbook, that’s OK.

    About flexibility:

    Gentoo requires fast internet access, much disk space (~700MB for portage tree), and a lot of time and CPU power for compiling stuff.

    Therefore, Gentoo can not be used for small systems which have to upgrade themselves. But this is a shared problem of all source-based distributions, and not Gentoo’s fault.

  15. @Joe Buck: You’re right. And with X86-64 (AMD64/EM64T), such optimizations are even more useless.

    There may be a user-visible difference between systems compiled for the i386 architecture and systems compiled for i686 (or even newer).

    But I guess the difference between a 64-bit system compiled for standard x86-64 and a system compiled e.g. for Core 2 is very very small.

  16. Gentoo is not for everyone. If Gentoo’s approach has no advantages for you, then you will be probably better off with another distro.

    Gentoo is about giving you the choice which code runs on your computer and which does not. You can mix stable and unstable packages. And you can combine software that would not be distributable in binary form, eg. ffmpeg+libamr.

  17. Julian, there is a whole embedded project @ gentoo which is aiming at gentoo on small devices.

    There are ways to have portage not take up so much disk space, not require massive bandwidth, and to also update from binary packages built on a bigger/faster machine. The crossdev tool is pretty much unmatched on any other distro.

    So your argument that gentoo is not suitable for small devices is not very well researched.

  18. trickie,
    Thank you for setting the masses strait about Gentoo’s embedded efforts. I/we have worked very hard over the years to make it what it is and plan to continue to step up our efforts. At the last Embedded Linux Conf (2008 Mountain View, CA). Gentoo was next to OpenEmbedded as being the favored embedded platform of choice for the FOSS markets.

    Does Gentoo cause global warming? Yes it does. And it’s quite sad.. More people need to learn how to use binary repos with gentoo. Gentoo actually supports binary pkgs quite well. I’ve been maintaining 4 data centers, and a bunch of laptops,desktops,servers using nearly the same binary repo for all of them.

    Anyway good luck all. Run whatever fits your needs and the needs of the task at hand. Be that Gentoo,Ubuntu,RH,Windows etc.. All each have a time and a place. -peace.

  19. That is too simple to say that Gentoo consumes more energy. The problem is a lot more complex than this. First, on what kind of machine? A CPU idling is still consuming energy. What a PSU provides is not linear to what it consumes neither. Remember it has a transformer. And also PSUs are often oversized. So then, the consumption of the computer while idling or not is certainly not a huge difference. If you want to convince me, you will have to show me real numbers. Now… how much time a Gentoo system is updated. That does not take as much time as you think. Updating is not installing. If you do not use KDE, you will certainly not feel it. So is the consumption of energy due to updating a lot compared to the whole usage? I bet now. Now let’s compare to other systems. We know all about windows user having plenty of spyware pumping all the CPU resources. I bet if you convert all these people to Gentoo, then you will maybe save the planet then.

  20. if you want “hybrid” binary/source apps manager, you can use netbsd’s pkgsrc (pkgsrc.org)

  21. Okay, first off, why even mention if the world all ran Gentoo, being that it would never happen, it’s not a very good point. The other thing, yes, compiling can be slow, but it also means, assuming you set up Gentoo correctly, that the software you install is compiled specifically for your hardware configuration. I continue to run into Linux distros and Windows machines where because things weren’t made with your hardware config in mind, it just ends up being this slow bloated monster that seems to work find for awhile then slows down for no reason. Why do you think Macs are known for stability, because they limit thier hardware and so everything is made specifically for that hardware config. Since that’s not going to happen on the pc side, Gentoo has found a nice workaround where the code is compiled specifically for your machine. Also netbooks work just fine. I just set up a EEE PC netbook with gentoo and it runs and compiles fine. When I got to compile X, yeah, no way, but if you look around, Gentoo gives you the option to allow other linux machines to help compile the binary, and when done, will send the binary to the machine. It’s called distcc. Also, combining technologies of binaries and compiling, nice idea in theory, but put it in practice, nobody wants to touch it with a mile long pole. It’s just too big of a project to handle and keep constantly up to date. These wonderful people aren’t getting paid for this, and while that is the best thing about opensource, it also hurts it because a project that big, nobody would want to do without something for thier time, or would just be too overwhelming, and Gentoo is always on cutting edge instead of waiting for packages to wear in a little before adding it to the tree. Finally, here is my personal preference on Ubuntu, it’s like a Linux version of Windows. It installs every driver, every program, everything, or what seems like it, making Ubuntu really big right off the bat. With Gentoo, I only have what I need and nothing more. No reason too have more, otherwise I’d just be slowing down and bloating my machine just like Windows does, which was one reason I moved from Windows. Now just to clarify, I completly respect that not everybody likes Gentoo, and Gentoo isn’t for everybody. Gentoo is a linux OS for powerusers who want allot more control than what they’ve been getting in other places. And yes during compiling it does cause the machine to use a little more energy then when it’s idle, but to say it’s destroying the world? Don’t make me pull Windows Vista out, it eats HDD like no other, it’s also slow, f*ing huge, and is owned by a power hungry corporation. I’m thinking Microsoft is the bigger concern. I guess all I’m saying is, work on the title a little more before you post it, because this one just doesn’t make sense, and some details, which I filled in earlier, where left out.

Comments are closed.