One aspect of Guix I found to be really fascinating: That there is basically no conceptual difference between defining a package as a private build script, and using a package as part of the system.

Let me explain: Say you wrote a little program in Python which uses a C library (or a Rust library with C ABI) which is in the distribution. Then, in Guix you would put that librarie’s name and needed version into a manifest.scm file which lists your dependency, and makes it available if you run guix shell in that folder. It does not matter whether you run the full Guix System, or just use Guix as s package manager.

Now, if you want to install your little python program as part of your system, you’ll write an install script or package definition, which is nothing else than a litle piece of Scheme code which contains the name of your program, your dependency, and the information needed to call python’s build tool.

The point I am making is now that the only thing which is different between your local package and a distributed package in Guix is that distributed packages are package definitions hosted in public git repos, called ‘channels’. So, if you put your package’s source into a github or codeberg repo, and the package definition into another repo, you now have published a package which is a part of Guix (in your own channel). Anybody who wants to install and run your package just needs your channel’s URL and the packages name. It is a fully decentral system.

In short, in Guix you have built-in something like Arch’s AUR, just in a much more elegant and clean manner - and in a fully decentralized way.

  • HaraldvonBlauzahn@feddit.orgOP
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    2 days ago

    The only expectation I have for an OS is to work on my devices

    So maybe Guix System is not a good choice for you?

    It has top-priority goals like reproducibility, capability to inspect and verify all source code, and providing a fully free system. These specific goals are not compatible with providing nonfree binary blobs in Guix-core. For example, depending on non-free binary blobs will block exactly reconstructing a system years later if these binaries are not available any more. Guix has scientific applications where reproducibility absolutely matters.

    Also, I can unterstand if companies are hating it which just want to have a free ride and monetize efforts of other people. But for users, there are many many other options and distributions available. Why not chose one that matches your need better?

    • Shareni@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      2 days ago

      Also, I can unterstand if companies are hating it which just want to have a free ride and monetize efforts of other people. But for users, there are many many other options and distributions available. Why not chose one that matches your need better?

      Why get mad about people comparing nix and guix, in a thread comparing nix and guix? Pointing out legitimate disadvantages is not hating. Maybe get off the internet for a bit and touch grass.

      It has top-priority goals like reproducibility, capability to inspect and verify all source code, and providing a fully free system that is not compatible with providing nonfree binary blobs.

      So does nix, nobody is forcing you to opt-in into non-free packages. And guix most certainly is compatible with non-free blobs, as that’s how most people are using it. The only difference is that nix is supporting non-free packages instead of banning even talking about them.

    • Captain Beyond@linkage.ds8.zone
      link
      fedilink
      arrow-up
      1
      ·
      2 days ago

      This

      I use Guix as my “default” distro because I value software-freedom and reproducibility. It fits my needs very well, and I make sure to buy hardware that works with it instead of expecting it to work with whatever I throw at it. For my Windows gaming machine I use PopOS as the replacement OS instead of trying to beat Guix into serving that purpose, because PopOS is better suited for that role, and I have different expectations for it.

      It’s okay if something doesn’t meet your needs, that doesn’t make it bad, just means it’s not the right thing for you. There’s like hundreds of distros for Windows gamers, let us free software zealots have ours too please.

      • HaraldvonBlauzahn@feddit.orgOP
        link
        fedilink
        arrow-up
        1
        ·
        2 days ago

        I make sure to buy hardware that works with it instead of expecting it to work with whatever I throw at it.

        This is the way. Trying to get unsupported hardware to work under Linux in general is such a useless expense of time. In my experience, it is almost never worth it.