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.
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.
@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.
@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.
@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....
@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.
@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 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.
lxsameer's understanding of the world.