Why Gentoo?

(blogs.gentoo.org)

66 points | by akhuettel a day ago ago

74 comments

  • clippy99 18 hours ago ago
    • bot403 18 hours ago ago

      This is the exact article I thought of when I saw this headline. I'm surprised it's still around.

  • nubinetwork 21 hours ago ago

    I've been using Gentoo since 2003, and I don't really plan on changing any time soon...

    > We don’t go out of our way to tell you how to use your system

    I'm not really sure I believe this, because the default profiles do exactly that. One day you'll be happy with your pam config, then bam, package updates and you're forced into passwdqc and faillock.

    • wtallis 19 hours ago ago

      > One day you'll be happy with your pam config, then bam, package updates and you're forced into passwdqc and faillock.

      Are you saying you've had your PAM config broken by a package update when you didn't update anything in /etc, or that you had your PAM config broken by a package update where you blindly accepted changes to stuff in /etc?

      • nubinetwork 14 hours ago ago

        Both, really. Pam is a very annoying piece of software to deal with... if you configure it wrong, you'll either lock everyone out, or let everyone in regardless of what password they use. If you’re using a central LDAP server, and accidentally compile out LDAP support, you'll probably lose access to that machine pretty quickly. Any time I upgrade pam/shadow, I have a root window open and ready to save my butt after something goes sideways.

        Honestly, I hate Pam. It's one of the few pieces of software on Linux that desperately needs a replacement that isn't just a clone of the original. (nss also needs the boot)

        If you want an idea of how bad things are, buy a copy of Michael W Lucas' FreeBSD Pam mastery...

        • NekkoDroid 12 hours ago ago

          > Honestly, I hate Pam. It's one of the few pieces of software on Linux that desperately needs a replacement that isn't just a clone of the original.

          There were some discussions in systemd[1] about a protocol that would in future possibly provide a replacement for it if you are interested. Discussions have stalled and I am unsure why, but the thoughts do exist.

          [1]: https://github.com/systemd/systemd/pull/39855

        • fragmede 13 hours ago ago

          > or let everyone in regardless of what password they use

          Learned that lesson, oof. Taught me a few things about writing tests that I carry around with me though.

      • eeeficus 19 hours ago ago

        This a trap! Don’t answer!

    • adrian_b 12 hours ago ago

      > I've been using Gentoo since 2003, and I don't really plan on changing any time soon...

      Exactly the same is true for me.

  • DiscourseFan 15 hours ago ago

    I have not had the, ahem, privelege yet of installing Gentoo. I gave up on Linux a while back after I bricked my computer because I missed an update on Arch Linux (no joke). Got a macbook and I’ve been happy ever since…well, at least until I was trying to shareplay Mulholland Drive with my girlfriend while she’s out of town and discovered that the only way to manually adjust audio levels of facetime vs, say, the movie we were trying to watch, which was nearly muted because of the call, was to purchase and install a $20 piece of software. Now, I could go ahead and buy a windows machine which comes preloaded with this feature, but let’s be honest, windows sucks major ass and there is virtually no advantage these days to using it over Linux or a Mac. The software might be a little screwed up but Tim Cook really made some magical consumer grade hardware that outperforms virtually all its possible competitors…still, the audio levels.

    I don’t have time to futz around installing Linux distros instead of getting laid like I did as a teenager. I have a job and a girlfriend and more than enough of a social life to keep me busy day to day. But something keeps nipping at my heels, telling me to return to the pen—-the sun is setting on my long sojourn in the warm fields of average life, the long night of idle tinkering approaches once more, that I might sooner forget the morning before it ends.

    • techcode 15 hours ago ago

      If you're thinking about Linux/Gentoo - but don't want to spend a lot of time for maintaining/updating and most importantly not need time to fix stuff that broke because you didn't update it in months...

      I would suggest Calculate Linux.

      It's 100% Gentoo, with additional customization (e.g. profiles presetting not just sane defaults, but also things you usually want on desktop [e.g. samba, network printers ...]), there are pre built binaries for all profiles and basically all the software (but you can still override some and get it compiled with or without specific features) ...

      And perhaps most importantly - there's extra tooling/automation around the Gentoo/portage updates and such.

      With vanilla Gentoo - beyond regular PITA to update packages due to various package/use-flags conflicts (which would make me do it even less often). I was also regularly (every few years) having to reinstall Gentoo because my glibc/bintools/python/etc were so far behind that during system update something would break and fixing it was basically reinstalling Gentoo from stage3 tarball.

      It's been ~10 years that I've "switched" to Calculate Linux - and it's "cl-update" was automatically solving even those things that would've left me with world update broken system.

    • poopstillbest 9 hours ago ago

      This is the worst comment in the history of HN and I was here to see it.

    • graemep 13 hours ago ago

      > I gave up on Linux a while back after I bricked my computer because I missed an update on Arch Linux (no joke)

      if you did not want a high maintenance distro why choose Arch? Its meant for the opposite of a Mac user - people who want to control everything, vs people who want it all taken care of for them. There are lots of things in the middle.

      > I don’t have time to futz around installing Linux distros instead of getting laid like I did as a teenager.

      Install one and resist the temptation to distro-hop. Even better, buy a machine with Linux preinstalled.

      • Gud 12 hours ago ago

        What are these Linux distributions “in the middle”?

        I use FreeBSD and Arch primarily. FreeBSD gives me a lot of customisation options(ports ftw) while at the same time, it’s remarkably stable.

        With Arch I find myself praying shit won’t break with every update, and a lot of 3rd party software just don’t work.

        Hence why I keep returning to FreeBSD for my servers.

        • graemep 6 hours ago ago

          Depending where on the rather broad spectrum between Arch and MacOS you want to be (GP switched from Arch to MacOS because Arch needs maintenance and can break) I would say any of Manjaro, Suse, Debian, Ubuntu, Mint, Fedora, RH and many more.

          > Hence why I keep returning to FreeBSD for my servers.

          It sounds like you were using Arch on a sever. You use Arch if you are happy fixing breaking changes. its not for something you just want to keep running.

          Specifically for servers Debian is an obvious choice. Suse and a few others are fine too. Possibly Alpine if you want something lighter. Nix if it appeals to you. Void is supposed to be a stable rolling distro and is probably appealing to a BSD user. Many more.

    • Cider9986 13 hours ago ago

      Check out Fedora Asahi Remix. Runs on M series macs, you keep your regular MacOS install the same. Installed from terminal, runs great.

      Before I switched, I did really like the piracy scene. Soundsource, the software you mentioned, was definitely one of the first I got.

      Now, I think there's an open source MacOS volume manager thing.

      Edit. I think it's this: https://github.com/ronitsingh10/FineTune

    • trelane 12 hours ago ago

      > I don’t have time to futz around installing Linux distros instead of getting laid like I did as a teenager

      Good news! These days, you can just buy a computer with Linux preinstalled, with support!

      Just leave the distro it shipped with alone and live your life.

    • fragmede 13 hours ago ago

      You have a job. Why not pay the $20?

  • Gualdrapo 20 hours ago ago

    Gentoo is customizable. But really customizable. That's my #1 reason for using it.

    • bombcar 18 hours ago ago

      Gentoo let me install mpg123 on a headless box without bringing in X, which is what pissed me off about RedHat at the time.

      • tosti 15 hours ago ago

        I've patched grub, the kernel, linux-util, coreutils and a dozen others. What's the point of having freedom 1 if all you get is binary packages? On other distros, having custom patches is such a chore. With portage all it takes is to have the patch sit in /etc/portage/patches. It doesn't get better than that.

  • omgwtfbyobbq 18 hours ago ago

    How else was I supposed to slowly roast my motherboard in 2002?

    I did think it was neat finding a memory leak in visual boy advance.

  • aidenn0 18 hours ago ago

    I agree 100% with this article. However I switched to NixOS several years ago.

    On the axes I most care about, NixOS is better than Gentoo. In particular, managing configurations in NixOS is really a breeze. No more merging diffs of random files in /etc.

    On one hand, you could say that Nix has more magic than Gentoo, but on the other hand, the online nix option search links directly to the source code implementing the option.

    Gentoo wins on documentation and supporting more than one init system. It probably also wins on security; I haven't dug recently, but NixOS doesn't have a great story for e.g. Mandatory Access Control. Also the nix store is world-readable, so it is much easier than it should be to accidentally spill your secrets to the entire system.

  • kombine 20 hours ago ago

    Never used Gentoo, but what is its advantages over, say, Guix? I don't actually use guix or nix as a daily driver, although one year ago I did install Guix on a separate partition of my desktop PC and I use nix via Home manager to install various cli-based tools.

    • wasting_time 18 hours ago ago

      The main selling point is that you compile out any features you are not using, on a global level. Want to remove PulseAudio? Add -pulseaudio to the USE flags and rebuild. Prefer GnuTLS over OpenSSL? Declare it in make.conf and packages that support either will only use your choice.

      That's unique to the Gentoo model and gives a fine-tuned system with virtually zero bloat. Other distros inevitably pull in dependencies you don't need because they are linked at build-time in case someone relies on it; choices like crypto backend are made for you by the packager.

      Guix lets you tweak things on a per-package level, but currently offers no global feature flags. You can do wild stuff like replace OpenSSL with LibreSSL everywhere, but only as long as they are API- or ABI-compatible.

      • techcode 18 hours ago ago

        And at the same time, at least for last few years - you can also get the same (same but different) experience/convenience of having binaries available.

        The Gentoo profiles mentioned in another comment is what still allows the system to have packages compiled with a consistent subset of things.

    • notme43 9 hours ago ago

      They solve some of the same problems. I wanted to say the project is not focused on being stateful or reproducible, and it isn't, but honestly all the tools are there if you want to craft your install like that. Portage is reminiscent of BSD ports, and features like USE flags are where it really shines. It's designed to be super flexible. Roll your own distro basically.

  • techcode 17 hours ago ago

    Let me just leave it here...

    With Gentoo you get to choose SystemD or no SystemD ;)

  • bombcar 18 hours ago ago

    > For example, we are probably one of the few distributions that do not amend our bzip2 package with a nonstandard pkg-config file; so if you develop on Gentoo, you won’t make the absurdly common mistake of publishing a package that requires that file.

    What's this in reference to?

    • nubinetwork 13 hours ago ago

      They might be referring to deb files, which are like zip files with extra junk inside. Or possibly another format, apks on android are kindof the same way.

  • ajsnigrutin 20 hours ago ago

    Gentoo is great!

    You can just drop a patch into a folder, and every time you re/install or upgrade a package, it'll get applied!

    You know that weird thing that bothers you in that specific software? That random popup when you start it? That additional, unneeded "ok" prompt? That donation-begging screen? That stupid checkmark checked on/off by default when it should be off/on instead?

    Well, make a patch to fix it, drop it into /etc/portage/patches/<category>/<packagename>/ and it'll get applied automatically every time! And if it's truly a minor thing that bugs you, that patch will work for many new versions too!

    (no, i'm not being paid by gentoo to promote them)

    • techcode 18 hours ago ago

      And for the things that aren't in official portage nor one of 100s of other repositories - you basically just drop an ebuild file (that LLM can do for you ) into your own local repo.

      There's already tooling for using say .deb or golang packages - but still having them installed as proper Gentoo/portage ones.

      PS. Tek sada videh korisničko

    • undefined 17 hours ago ago
      [deleted]
  • aeonik 21 hours ago ago

    I didn't realize how strict they were against LLMs.

    Codex has really helped my fix and tighten up my AUR PKGBUILDs.

    I was thinking about trying Gentoo in the future, but not being able to contribute because I use LLMs in my workflow sucks.

    • nubinetwork 20 hours ago ago

      You can always run your own portage overlay. I do it for some random packages that aren't in the main tree.

      • aeonik 11 hours ago ago

        Is there a third party like the AUR?

        If not we should make one. We should call it Sloppage so the Gentoo devs know what it's about. X-D

        • nubinetwork 11 hours ago ago

          There is one called guru, but its probably subject to the same restrictions since its a semi official overlay.

    • hparadiz 20 hours ago ago

      I know for a fact that some stuff merged into Gentoo is already LLM modified in upstream so their stance is dumb and not even logically consistent.

      • jayofdoom 19 hours ago ago

        It's pretty consistent. If you check out something from a Gentoo-official repo, it's going to have been created by humans without the use of LLM tooling. LLM tooling is used for the kernel, systemd, and a litany of other packages -- trying to run a "non-LLM OS" is more like a fork of the whole ecosystem than a distribution.

        I can appreciate the concept that Gentoo is placing a high value on human curation. I used to be firmly against our anti-LLM policy, but honestly it's a pretty strong differentiator from other distributions -- and I'm getting more and more sick of AI tech in general.

        (note: I am a Gentoo developer)

        • hparadiz 18 hours ago ago

          Been using Gentoo for over 20 years and have accepted PRs to the repo.

          I don't get any value from this "no LLMs" stance. In fact it's quite the opposite.

          I watch extremely famous C devs at work using LLMs all day everyday working on stuff that is merged into Gentoo all the time. You guys are shooting yourselves in the foot and just wasting everyone's time and it's exhausting.

      • collinfunk 20 hours ago ago

        Well, they have held back some slop in CPAN (a surprising place to find slop) [1]. Some of said slop recently caused GNU coreutils test suite to fail [2]. Surely the bot will get it right one day, right?

        [1] https://bugs.gentoo.org/971488 [2] https://github.com/cpan-authors/IO-Tty/issues/91

        • hparadiz 19 hours ago ago

          Python being a dependency of portage is gentoo's original sin. They have no business calling anything slop with how portage is coded. Truly the epitome of throwing bricks from a glass house.

    • userbinator 18 hours ago ago

      If you're so good at it that they can't tell, does it matter?

      • yjftsjthsd-h 17 hours ago ago

        Some people have a view of ethics/integrity that constrains them to following rules even if they can't get caught and consider the rules in question to be ill advised.

  • hparadiz 20 hours ago ago

    I think it's time to use an LLM to rewrite portage in C. Might be one of my next projects. Should not take long and the result will be easy to deterministically test side by side.

    • bombcar 18 hours ago ago

      Switch to using a git backend and portage will fly fast enough.

        tank ~ # time emerge --sync
         * Using keys from /usr/share/openpgp-keys/gentoo-release.asc
        emerge --sync  3.18s user 5.15s system 67% cpu 12.324 total
      
      https://wiki.gentoo.org/wiki/Portage_with_Git
      • yjftsjthsd-h 17 hours ago ago

        Wait, it's that easy? Why isn't that the default?

        • bombcar 17 hours ago ago

          I have no idea - I randomly stumbled on that when looking for something else and it blew my mind.

      • hparadiz 18 hours ago ago

        The sync has nothing to do with it's slowness when reconciling dependency conflicts.

    • tanderson92 19 hours ago ago

      There have existed portage replacements in C++ in the past. What you will find on reading the history is that personalities in the Gentoo community can play a more important role than technical excellence.

    • Gualdrapo 20 hours ago ago

      And get rid of the bashims in OpenRC to make it posix-sh compliand while we're at that.

      • adrian_b 12 hours ago ago

        I do not agree with this. Here the guilty part is POSIX, not bash.

        Most bashisms are very old and they come from ksh. Bash has added very few features beyond what was already quasi-standard in UNIX shells.

        POSIX has standardized a shell variant that had already been obsolete for a long time.

        The scripts that use the additional facilities added by ksh and also a few added by zsh, which now are all available in bash, can be written in a way that makes them more concise, more clear and less prone to bugs.

        I believe that bash must be considered the standard for shell scripts, not the POSIX shell, which has been obsolete for more than 3 decades, i.e. since long before the existence of the POSIX standard.

        When using a POSIX shell, there are many unavoidable things that can be performed only by invoking external command line utilities, instead of using intrinsic shell features. This not only can make the script much slower, but it adds extra software package dependencies, instead of avoiding such dependencies, which is the declared purpose of using a POSIX shell.

        Making your shell script dependent on the existence of bash is less risky than making it dependent on the existence of awk, which may be forced when using a POSIX shell. (The existence of awk is mandated by POSIX, but there are plenty of Linux systems that do not have installed all the POSIX utilities, but they have bash.)

        It is true that bash is ubiquitous only on Linux, while on *BSD it is optional. I have used FreeBSD and other *BSD systems for as many decades as I have used Linux. My first action when installing a *BSD system, after the base system is installed, has always been to install bash. I believe that whoever does not do this is mistaken and they should not demand to receive scripts that can be run without having installed one of the bash, ksh or zsh shells.

      • mid-kid 11 hours ago ago

        It already is, though? I've been using dash as /bin/sh for years, openrc is using that.

    • themafia 17 hours ago ago

      > will be easy to deterministically test side by side.

      How are you ever going to get test coverage over the massive number of possible system states and configurations? Are you going to compile every package in portage on every architecture it supports?

      • hparadiz 17 hours ago ago

        portage doesn't compile anything. it tells gcc et al to do stuff. the commands it runs are deterministic and the unit tests that portage comes with can easily be used. whether or not some ebuild builds on your machine is kind of between you and gcc and has nothing to do with anything gentoo.

        I don't really care about it being a replacement overall. I just want my own emerge command to be faster. I can't believe it's not instant like it should be.

        • themafia 2 hours ago ago

          > portage doesn't compile anything. it tells gcc et al to do stuff.

          That's a difference without distinction. Portage does patch packages. So it involves itself directly in the compilation cycle.

          > it runs are deterministic

          Well, I don't think so, but good luck to you anyways.

    • lanstin 20 hours ago ago

      Rust or Go please.

  • sharts 19 hours ago ago

    What kinda baby would come from mashing together gentoo, void, freebsd, and nix?

    • nubinetwork 14 hours ago ago

      Gentoo's portage is already based (in theory) off of FreeBSD's ports system.

      • adrian_b 12 hours ago ago

        Not in theory, but in reality.

        Of course, nowadays there is little resemblance between portage and the FreeBSD ports, after a few decades of separate evolution.

        When I switched to Gentoo (in 2003), among the Linux distributions (after previously using many others, like Slackware, Redhat, Suse, Mandrake etc.), I had already used for many years (since around 1995) the FreeBSD ports, so this was what attracted me to Gentoo, its software package system and its documentation, both of which had a level of quality comparable with FreeBSD and much superior to what the other Linux distributions provided at that time.

    • 0x69420 18 hours ago ago

      nixos is already, from a certain perspective, an exotic take on gentoo. take away cache.nixos.org and it becomes a source-based distro. it's not even too out-of-the-question to do traditionally gentoo stuff like globally set -funroll-loops -O3 and rebuild your whole system, but the operational benefit of staying standard is getting to use binary caches since reproducibility lets them substitute transparently for local builds in the standard environment with the standard settings. one thing nixos lacks is an elegant analogue to gentoo USE flags; "tell package A to use optional package B" has like two different conventions in nixpkgs for individual packages, alongside bespoke things like configuring everything to use cuda or not. furthermore, pkgsrc, gentoo prefix, and nix are three of a kind in terms of "third-party package manager on a non-native OS"

      personally, i used gentoo throughout most of my teenage years, and now use nixos viewing it as a successor, since you can screw around using the thing as a meta-distribution, but roll back when you hose your system.

      gentoo freebsd existed for a while for funsies but nobody cared and now it's dead, same with gentoo openbsd. each was portage integrated a little more intentionally on top of a respective bsd than just "bung it in /usr/local/bin and call it a day". practically speaking, they were implementations of gnu/k*bsd.

      nixbsd similarly exists (nix deeply integrated into freebsd), with heroic efforts made to transfer nixos's abstraction over init systems for system-wide configuration; last commit was two months ago so i guess not dead yet?

      you can run nix on gentoo, or gentoo prefix on nixos with nix-ld turned on if you feel like it

      void's claim to fame with xbps is a bunch of sandboxing and bind mounts for build environments. nix already has to sandbox just to get off the ground wrt reproducibility.

      void, gentoo, and nixos all offer some degree of libc freedom. on void it's first-class, on gentoo it nearly is, and on nixos it's here be dragons. libc freedom doesnt really jive with using a bsd as a base; vertical integration is kind of one of the contemporary selling points.

      so to answer your question, the result would be nixbsd in an alternate timeline where nixpkgs's analogues to USE flags/eselect/profiles are not hot garbage (i say this with love as a user), and void would fail to exert a phenotype.

      • tosti 14 hours ago ago

        The sandboxed build environment was a side effect of being able to bootstrap on another distro. The "claim to fame" was a fast package manager.

        Except there's Chimera Linux now (not related to chimeraOS) and I dare say its got the fastest package manager of all operating systems with a package manager.

  • senectus1 20 hours ago ago

    I have fond memories of spending long nights recompiling with new flags to try and get slightly better FPS in games... this was over 25 years ago so not in the proton heyday we have now.

    These days I'm a fair bit lazier, throw Fedora on and use it happily. update frequently and it almost never causes me any issues.

    The Gentoo Forums were a super fun and friendly place back then, I hope they haven't lost that spirit.

    • techcode 18 hours ago ago

      Gentoo has pre built binaries for years now - you can be totally lazy about that ...

      And still benefit from packages/system being smaller/faster because they are not built to cater for all possibilities.

      And you can still override options (use flags) and compile some things exactly as you want/need them.

      • yjftsjthsd-h 17 hours ago ago

        It is super nice to be able to mostly use binary packages but build from source anytime you want different options:)

      • senectus1 17 hours ago ago

        oh thats nice. maybe if i ever feeling rebuilding i'll look into it again.

        but truly, I've been using this install since 33... and am on 44 atm. never have i has such a slick trouble free experience. I've had one nvidia related issue once... I also had to rebuild a mirror once because i wanted to update more than i wanted ZFS, and they were updating the kernel faster than the zfs package was updating. not a big deal. I've moved on happily.

  • alekq 16 hours ago ago

    As a long-time Gentoo user and supporter, my main issue is the time investment. Not the investment in installing and initial setup, not compilation in the background (binary packages make things much easier today), but staying up-to-date with software upgrades and changes. I did not mind it before the "life happened", but now when it takes even one available night in a month or two, it seems a lot.

    Other issue is when you need something promptly, if nothing else to test it out or one-use only and you either have to wait or use something like official binary/flatpak...

  • anon291 19 hours ago ago

    I used to be a hardcore gentoo-er, but Nix is more sensible and has a more cohesive model.

  • huflungdung 20 hours ago ago

    [dead]

  • rdevilla 18 hours ago ago

    [dead]

  • serpspur 12 hours ago ago

    Interesting – I've been looking for a budget-friendly option. How does its backlink analysis compare to Ahrefs' depth?