I tried #gnu #guix SD for the first night and restored my #debian backup on the same night. It's and has several fascinating ideas but has only few problems which are severe and deal breakers for me.

The idea of having a functional build/package manager system is amazing and an operating system around it is every cooler. Creating your entire OS based on a lisp DSL is the dream. I'm a huge lisp fan and I started using #gnu #guix with love of #gnu, #lisp and #linux on my heart but to be honest it wasn't what i expected.

Show thread

The biggest problem for me was the lack of binary compatibility and the fact that they don't want to be compatible was a instance no for me. You can't use official binaries for #firefox and many other free tools..... #gnu #guix

Show thread

Another one is the fact that they enforce you to follow the #fsf definition of freedom which is like you CAN'T use those softwares that are not free in our opinion that is against the freedom of will and I don't want that. It's sad to see that this mindset is getting more popular and more extreme among gnu project. That's why I like #debian. You're free to do what you want and nothing is holding you back. These reason made me realize the #gnu #guix SD with all the shiny ideas isn't for me.

Show thread

@lxsameer There’s no damage here. Some folks choose to spend time on things we can control. Guix (System) is free software that means other folks can fork it and create a distro supporting blobs†

Supporting blobs has costs: technical ones like making our system not bootstrappable and not reproducible or social ones like not making any consumer pressure on libre hardware cuz if proprietary stuff is convenient on Ubuntu then consumers are blind to the issue.

† pantherx.org/


@lxsameer If you want basically the same thing as Guix System but not following Free System Distribution Guidelines† then NixOS‡ is the way to go—
it doesn't uses lisp but supports proprietary blobs and firmware.

† gnu.org/distros/free-system-di
‡ nixos.org/

@kmicu hey, yeah i know what you mean, I would've been fine with most of it but the fact that guix hides the gcc package from the user ( the thing that gcc-toolchain is supposed to be the replacement ) forces me to use icecat or other alternatives that i don't like. To me freedome means I should be able to do what ever i want with my system, but guix took that freedom from me....

@kmicu I should be able to run firefox if i want to. I should be able to hack my system how ever i want not the way guix dictates. It's like sacrificing people's freedom in favor of software freedom. Which in my opinion is not great. Guix is an advance system and we should assume that its users are advance as well so it would be good to trust them and let them build their own system the way they want to

@kmicu I really love the idea behind guix and the fact that everything is in lisp but I really want to own my system. I want to be able to run firefox ( it's an example of many other things ). If i can't do these two i can't enjoy my working environment

@lxsameer Some Guix folks run Firefox, others create forks like PantherX. Expecting that other should support problematic software for us it’s like going to a vegan restaurant and saying that the owner limits our freedom to eat whatever we like cuz meat is not on the menu.

Guix (System) is 100% free software it cannot prevent us from doing whatever we want; for example I installed nvidia binary blobs on it and wifi blobs.

@kmicu Totally agree but the thing is it too much effort to run binary blob because binary compatibility is not a goal for guix. It makes it harder for everyone and people are trying to hack their way around it. I have to spend too much time on running a blob. and the gcc stuff is just annoying to me, why hide something from me (the user) I understand the rational behind it but i prefer to leave the choice to user rather that forcing my decision to them.

@lxsameer I understand that inconvenience. Breaking implicit assumption in binaries is necessary to have a reproducible system. That’s by design and that’s the trade‑off.

There are escaping hatches like emulating FHS† or running in containers but those solutions are inconvenient because the primary goal is to have solid immutable and reproducible system. That’s not possible in a traditional way.

Similar design decisions were made by Rich, Nolen et al in Clojure.

† en.wikipedia.org/wiki/Filesyst

@kmicu agree. but i wish as a user I had a easier way around this inconvenience.
Even if that problem didn't exist. the fact that the OS dictates some stuff like (you're not allowed to use this GCC, use that one instead) is annoying. I want my OS to give me the freedom what ever i want to do. doing so isn't breaking any software freedom. Even #clojrue gives us that level of freedom as well.

@lxsameer Clojure prevents former Java devs from mutating whenever they want. They need to go deep into Java inter‑op and then their software loses functional guarantees provided by Clojure. The same story.

To provide additional guarantees, Haskell, Clojure, Nix, Guix must take away some freedoms. Those additional limits let us reason about the system better cuz not everything is allowed.

It’s perfectly ok to not like that and choose different trade‑offs. Nothing wrong with that.

@kmicu yeah but Clojure is a programming language and guix SD an operating system, two different ecosystem. right ? users of an OS has different needs in much wider domain

Basically, you're doing things "the old way". You oant to mutate your system state by installing a binary firefox. Ideally, you would rather have a package for firefox. It doesn't matter if it's a package built from source or not. If not, then a bit of patchelf usually is enough to make it working. That way you keep the nice guarantees of guix, while using your own packages.

@lxsameer @kmicu
There's also the nonguix channel, not maintained by guix that provides a few non free software you might want to have (including a linux kernel). I think there was a fhs service floating around, but I don't know what happened to it.

@roptat @kmicu ok. Now it makes sense. It is the best reasoning i heard about it in the past few days

@lxsameer Sorry, I don't understand the GCC issue. Guix hides the GCC package because it doesn't work if you install it directly. It needs other supporting binaries, so the GCC toolchain package includes enough to make GCC actually work.

If you really want to install GCC directly it's easy to provide a scheme expression to look up the package. One key difference between Guix and other distributions is that Guix exposes a rich scheme API that it expects you to use.

Sign in to participate in the conversation

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!