Earlier quoted context omitted.
They ought to have said Gnu/Linux, as per their own propaganda! I'm guessing if the word "Hurd" doesn't appear anywhere on the page, it's still Linux.
Linux is just the kernel. GNU as a name for the system is okay, while Linux is arguably not. GNU/Linux is just a compromise for those who insist on naming Linux. Also, from the projects website, we have "GuixSD is a distribution of the GNU operating system centered on the GNU Guix package manager. It uses the Linux-libre kernel, and support for the Hurd is being worked on." https://www.gnu.org/software/guix/about/
GNU Guix and GuixSD 0.14.0 released
11–20 of 26 posts
Re: GNU Guix and GuixSD 0.14.0 released
#12What is the benefit of directly using Scheme for the package declarations over using NixOS's DSL? Specifically, what technical features does Scheme make possible which are not possible in NixOS?
Re: GNU Guix and GuixSD 0.14.0 released
#13I really wish Guix and NixOS had more usage in the industry. I am not sure if these are the projects that are going to drive the innovation, if they are only showing the way for the 2nd-generation functional package managers, or if this will just remain a niche forever.
Nix does not use versions for packages, instead relying on channels and pinning, which can be confusing at best.
There is a manual, but not a good wiki. While you can learn to read the syntax, there isn't any good introduction to write it. Nix derivations are very unique, and difficult to approach without examples and guidance.
Re: GNU Guix and GuixSD 0.14.0 released
#14Earlier quoted context omitted.
The problem is that _every_ _single_ _program_ has to have its configuration files rewritten to take nix or guix into account, and every sysadmin has to know how to use the new nix or guix way.
I don't think this is the case. I've packaged several things for Guix, and patches are rare. Stuff that has good configuration (e.g. uses GNU make, and thus accepts --prefix) will be fine.
I never really tried guix, but that's how nix works ( https://nixos.org/nixos/manual/index.html ). So how does Apache configuration on upstream (meaning, how it's configured on Windows/Linux/FreeBSD) correlate to how it's configured on nixos/guix?
Re: GNU Guix and GuixSD 0.14.0 released
#15Earlier quoted context omitted.
I don't think this is the case. I've packaged several things for Guix, and patches are rare. Stuff that has good configuration (e.g. uses GNU make, and thus accepts --prefix) will be fine.
Wait, I thought that guix (like nix) keep their full configuration in flat nix or lisp files (like https://www.gnu.org/software/guix/manual/html_node/Using-the... )? I never really tried guix, but that's how nix works ( https://nixos.org/nixos/manual/index.html ). So how does Apache configuration on upstream (meaning, how it's configured on Windows/Linux/FreeBSD) correlate to how it's configured on nixos/guix?
Or, if it's a service you want to make the configuration totally reproducible, you can use https://www.gnu.org/software/guix/manual/html_node/Services.... interfaces for those packages that have some written for them.
But there's nothing wrong with regular dotfiles.
Re: GNU Guix and GuixSD 0.14.0 released
#16> Hackable. It provides Guile Scheme APIs, including high-level embedded domain-specific languages (EDSLs) to define packages and whole-system configurations. What is the benefit of directly using Scheme for the package declarations over using NixOS's DSL? Specifically, what technical features does Scheme make possible which are not possible in NixOS?
Integration of all stages. We use the same language on the build side as on the host side; the same language to execute builds as to define packages. In Guix there is no mix of languages, so we don't need to glue strings together produce build-side shell scripts. Instead we can use higher-level S-expressions and code staging.
For more on code staging see this paper:
https://hal.inria.fr/hal-01580582/en
This allows for code reuse, even across projects, e.g. the GNU Shepherd init system can take the container code from Guix and run services in isolated environments with very little effort. See this blog post for details: https://www.gnu.org/software/guix/blog/2017/running-system-services-in-containers/
FWIW, Guix implements a DSL that's embedded in Scheme (it's not just "raw" Scheme). The advantage of embedding is tooling: you can work with package definitions right there in the REPL / with Emacs+Geiser; you can use the Guile debugger features.Another result is that all these package definitions form a lazy graph of live Scheme values. In Nix you have a large hash table of identifiers to functions. Think code vs data. In Guix the primary data structure is an emergent lazy graph; it is not merely an inert description of such a graph. Each package definition is just another Scheme value.
Re: GNU Guix and GuixSD 0.14.0 released
#17I really wish Guix and NixOS had more usage in the industry. I am not sure if these are the projects that are going to drive the innovation, if they are only showing the way for the 2nd-generation functional package managers, or if this will just remain a niche forever.
Re: GNU Guix and GuixSD 0.14.0 released
#18> Hackable. It provides Guile Scheme APIs, including high-level embedded domain-specific languages (EDSLs) to define packages and whole-system configurations. What is the benefit of directly using Scheme for the package declarations over using NixOS's DSL? Specifically, what technical features does Scheme make possible which are not possible in NixOS?
Nix's Firefox: https://github.com/NixOS/nixpkgs/blob/master/pkgs/applicatio...
Guix IceCat: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages...
Re: GNU Guix and GuixSD 0.14.0 released
#19I really wish Guix and NixOS had more usage in the industry. I am not sure if these are the projects that are going to drive the innovation, if they are only showing the way for the 2nd-generation functional package managers, or if this will just remain a niche forever.
There are still, unfortunately, some rough edges with Nix. Nix does not use versions for packages, instead relying on channels and pinning, which can be confusing at best. There is a manual, but not a good wiki. While you can learn to read the syntax, there isn't any good introduction to write it. Nix derivations are very unique, and difficult to approach without examples and guidance.
Re: GNU Guix and GuixSD 0.14.0 released
#20> Hackable. It provides Guile Scheme APIs, including high-level embedded domain-specific languages (EDSLs) to define packages and whole-system configurations. What is the benefit of directly using Scheme for the package declarations over using NixOS's DSL? Specifically, what technical features does Scheme make possible which are not possible in NixOS?
I'm a complete beginner but, for example, comparing Nix's Firefox and Guix's IceCat you can see that with Nix you have to fallback to shell scripting for some tasks while with Guile you can perform those operations with Scheme. Nix's Firefox: https://github.com/NixOS/nixpkgs/blob/master/pkgs/applicatio... Guix IceCat: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages...