
GNU Guix ported to ARM and other niceties of the new year - toothbrush
https://savannah.gnu.org/forum/forum.php?forum_id=8175
======
toothbrush
For those who don't know Guix, it's similar to Nix(OS), except that packages
are defined as native Guile modules, using extensions to the Scheme language
(in contrast to Nix, where a special-purpose DSL is used to define packages).

------
davexunit
This means that I'll be running Guix on my Novena when it arrives.

------
higherpurpose
Someone should donate them some Cortex A57-based hardware. Most of the more
powerful chips this year will be based on that, and it's also based on the new
ARMv8 architecture.

------
Avshalom
It's not directly guix related but has anyone been using DMD, opinions?

~~~
civodul
I've been using it (disclaimer: I've even been hacking on it. ;-)) The
standalone Guix-based distribution uses dmd as its init system.

The way it is used, dmd itself takes care exclusively of keeping services
running. Services themselves are "translated" to for dmd's configuration file
from their higher-level definition (see
[http://www.gnu.org/software/guix/manual/html_node/Defining-S...](http://www.gnu.org/software/guix/manual/html_node/Defining-
Services.html#Defining-Services) ).

The nice thing is that service actions are written in Scheme so they can do
anything. For instance, 'static-networking-service' at
[http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/...](http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/networking.scm#n94)
uses directly the right ioctls to set up the network; so does 'file-system-
service' at
[http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/...](http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/base.scm#n128)
and so on.

~~~
josteink
Looking at those examples I'm not 100% sold, but as a hobbyist LISPer it's
hard to look at that and _not_ go "Now that's funky".

------
digi_owl
Huh, they use Slim as the login manager? Thought that one was dead with the
closing of berlios.

~~~
davexunit
We use SLiM currently because it was the easiest to get working. We want to
have more options available, of course.

~~~
digi_owl
Heh, i don't mind. Been using it myself for the very same reason. No need
fumble with consolekit or anything similar.

------
listic
How does Guix compare to Nix?

~~~
toothbrush
Having a general-purpose programming language to specify your packages with is
Really Cool™, and personally (disclaimer: perhaps i am the only person on the
planet who feels this way) the learning curve for writing packages seems a
little less steep than for Nix since Guix uses a language one might already
know whereas Nix uses a DSL which i found somewhat obscure and non-intuitive.

Practically, though, Nix has way more packages available since it's been
around longer and has a larger user base. But there's no reason not to help by
porting your favourite package to Guix!

~~~
listic
ok, now how does one install a package manager? I see they are using
installation _images_ for some reason... Why does one need an installation
_image_ to install a package manager?

~~~
toothbrush
I'll make an analogy that hopefully won't earn me flames. It's possible to
install Guix as an "extra" package manager a bit like Brew in the OS X world,
which is done by essentially git-clone'ing the sources and building it in user
land. Instructions are here:
[https://www.gnu.org/software/guix/manual/html_node/Installat...](https://www.gnu.org/software/guix/manual/html_node/Installation.html#Installation)
. Basically you end up with your Linux system as before, plus Guix now
managing packages installed in /gnu/store, which are made accessible via your
$PATH. It is therefore relatively simple to try it out that way and blow it
all away if you decide it sucks.

Otherwise, the images you talk about are for booting a full live system (the
Guix OS if you will) which uses Guix as its package manager. This allows you
to play around with it and/or install it. This works quite well in a virtual
machine such as qemu.

