Guix System

Guix v1.0.0 has officially been released!
Step up to based beautiful future of package management, the GNU operating system, and free software in general.
There's even a graphic installer now for you incapable retards.
And they're just calling the OS `Guix System' now instead of GuixSD.
I'm here to help.

gnu.org/software/guix/download/
gnu.org/software/guix/manual/en/html_node/System-Installation.html

Attached: guixsd.png (462x287, 13K)

Other urls found in this thread:

gnu.org/software/guix/blog/2019/gnu-guix-1.0.0-released/
pastebin.com/TRD6s7pg
twitter.com/NSFWRedditVideo

Will the ISO now work witth a Zalman HDD enclosure?

I don't even know what that is...
It ships with nearly every free driver known to man - If your thing requires nonfree software, then probably not.

Basically, it's an external hdd, which appears as both a hard drive and a cd drive.
You copy the iso on it, then you can boot from it like it was a cd.
It works fine with the ISOs of Ubuntu, Fedora, Clonezilla ...
But last time I tried not with the ISO of GuixSD.

Based GNU

haha upvoted for GNU!!!

I like to install an extremely small instance and then build it up as I need to from there.
You can discover any issues you might have quickly and don't have to wait for a ton of stuff to build before booting into the new install.
Here's about as minimal as you can get:
(use-modules (gnu))
(operating-system
(host-name "desktop")
(timezone "America/Denver")
(locale "en_US.utf8")
(bootloader (bootloader-configuration
(bootloader grub-efi-bootloader)
(target "/boot/efi")))
(file-systems (cons* (file-system
(device (uuid "E4E4-AC21" 'fat))
(mount-point "/boot/efi")
(type "vfat"))
(file-system
(device (file-system-label "a"))
(mount-point "/")
(type "ext4"))
%base-file-systems))
(swap-devices '("/dev/sda3"))
(users (cons* (user-account
(name "buen")
(group "users")
(supplementary-groups '("audio" "netdev" "video" "wheel"))
(home-directory "/home/buen"))
%base-user-accounts))
(packages %base-packages)
(services %base-services))

gnu.org/software/guix/blog/2019/gnu-guix-1.0.0-released/

Attached: kemonofurenzutaakin113799232755b068ec5d1490020.png (159x214, 32K)

I'd just like to interject for a moment. What you're referring to as Guix,
is in fact, GNU/Guix, or as I've recently taken to calling it, GNU plus Guix.
Guix is not an operating system unto itself, but rather another free component
of a fully functioning GNU system made useful by the GNU corelibs, shell
utilities and vital system components comprising a full OS as defined by POSIX.

Many computer users run a modified version of the GNU system every day,
without realizing it. Through a peculiar turn of events, the version of GNU
which is widely used today is often called "Guix", and many of its users are
not aware that it is basically the GNU system, developed by the GNU Project.

There really is a Guix, and these people are using it, but it is just a
part of the system they use. Guix is the kernel: the program in the system
that allocates the machine's resources to the other programs that you run.
The kernel is an essential part of an operating system, but useless by itself;
it can only function in the context of a complete operating system. Guix is
normally used in combination with the GNU operating system: the whole system
is basically GNU with Guix added, or GNU/Guix. All the so-called "Guix"
distributions are really distributions of GNU/Guix.

>Guix is the kernel
What did she mean by this?

Attached: 1552095134993.gif (500x281, 124K)

Attached: butthat'swrong1504400955889.jpg (541x458, 233K)

This is awesome. How do I install proprietary drivers for my atheros wifi card?

>proprietary drivers for my atheros
I'm pretty sure those have Libre drivers. That's why the FSF always seems to recommend Atheros dongles.

I'm doing the graphical install and it chooses a UEFI grub installation even when my disk label is msdos. Can I just edit config.scm and do `guix system init /mnt/etc/config.scm /mnt` before rebooting to fix this?

Thanks. Will test in a VM.

I know it doesn't, it's a qualcomm era card and I already tried linux-libre.

Nevermind, the install doesn't even succeed. I guess I'll just copy the config it generates by hand and do a manual one.

>no ARM support yet
>implying I want to run FOSS just on backdoored systems (x86)

Might check it when they support ARM devices, specifically a Librebooted snsv C201.

A disk label and partition scheme are different things...
You haven't finished the graphic install then?
Yeah, just change ttys and do a manual install like you said and it should be fine assuming everything in the config is how you need/want it.

>or it can be used as a standalone operating system distribution for i686, x86_64, ARMv7, and AArch64 machines
don't know where you got no arm support out of that
the installation image even ships with an example config for the beaglebone black

Might actually try it if so - how much time to get X + i3wm running from a scratch install?

What are you on about? It's only available for x86(_64).
Pic related.

Attached: Screenshot_20190502-181228_Chrome.png (1152x2048, 470K)

I am very interested in Guix, but give me the straight distilled gestalt on why I'd use it instead of NixOS. I've been using NixOS for almost two years and it's been great. Guix seems less mature, with worse documentation and configuration interface (I don't like the lisp/scheme style, it's too loose, I think Nix got it right with the declarative/functional hybrid DSL)

How is Scheme not declarative/functional?

Does Guix support running as dom0 for Xen on a 64-bit UEFI machine? That's really the only way I'd consider using it.

I also don't like Scheme.

Then again, Nix' CLI is such a mess. What the fuck were they thinking with all the poorly designed and often verbose and weird commands to search / install / remove packages and package repository information and so on?

>Free software only
Yikes. Gonna stick with Nix.

cool

How fucking i can configure config.h in GUIXSD?

post plz configuration

luks + lvm dmcrypt and dwm + st + dmenu.

help me plz anons.

i didn't say it wasn't, I said it's too loose, and Guix is less mature than NixOS. As far as I can tell, Guix is just a wrapper for Nix for people that want to configure their OS the same way they configure emacs.

The Nix language was built specifically for the Nix package manager. Guile was made to fit Nix through Guix. I don't see why I'd use Guix when I already know Nix.

I agree on both points. There is slow work being done to rebuild the nix CLI. Personally I have a bunch of functions and aliases in my shell profile to work around the crappy interface.

short answer is
>lisp
>freedom
>no systemd

Some people who were working on Nix wanted to reassess some things that couldn't be touched without starting over from scratch, and Guix was born - So in some sense it's perhaps more mature. It's the logical necessary continuation of everything started with Nix.
If NixOS works for you and you don't care about the points above, by all means stick with it.
Though I think most people will find Guix to be much more clean, cohesive, and friendly.

>The Nix language was built specifically for the Nix package manager.
That doesn't stop it from being a crippled DSL when compared to a general purpose programming language.

If my computer doesn't work well with linux-libre is there any point in even bothering with Guix?

I'll admit that NixOs has some serious flaws, the CLI is one of them, another is that everything is kept in one repository full of files which cant really be decoupled easily, and related to that point, it's not straightforward to create standalone packages or overlays, or even package derivatives for that matter (think like USE flags). I don't see how Guix makes a significant improvement on any of those fronts though. I like that Guix doesn't use systemd, but I also don't think shepherd is as powerful or mature. Despite all of that, I'll try it out, but I'm not going to dump a month of time into making it work for me.

>Guix System Distribution (abbreviated GuixSD) is a Linux distribution built around the GNU Guix package manager.

fuck systemd, fuck nixos faggots.

I'm not convinced they're doing a good job if the rework is slow and their own.

They really should just paludis, emerge/eix, equo, apk (Alpine's... not apt), dnf, git or some such as example, and rework the syntax to be ~the same and then deploy that as nix-env2 and so on.

They probably also should start using Gentoo's package qualifiers ">=media-video/mpv-0.29" or such, although that is a bit more work on the parser.

>I like that Guix doesn't use systemd
I don't. It really should support openrc, runit and systemd for practical reasons even if they really want to also try their toy project (shepherd).

>practical
pandering to casuals and retards is what ruined debian
guix is doing this right
shepherd is fucking awesome

I'd just like to interject for a moment. What you're referring to as GNU/Guix,
is in fact, GNU/Linux/Guix, or as I've recently taken to calling it, GNU/Linux plus Guix.
Guix is not an operating system unto itself, but rather another free component
of a fully functioning GNU/Linux system made useful by the GNU corelibs, shell
utilities and vital system components comprising a full OS as defined by POSIX.

Many computer users run a modified version of the GNU/Linux system every day,
without realizing it. Through a peculiar turn of events, the version of GNU/Linux
which is widely used today is often called "Guix", and many of its users are
not aware that it is basically the GNU system, developed by the GNU Project, using the Linux kernel, developed by Linus Torvalds.

There really is a Guix, and these people are using it, but it is just a
part of the system they use. Guix is the package manager: the program in the system
that installs and manages the software packages you put on your computer.
The package manager is an essential part of an operating system, but useless by itself;
it can only function in the context of a complete operating system. Guix is
normally used in combination with the GNU/Linux operating system: the whole system
is basically GNU/Linux with Guix added, or GNU/Linux/Guix. All the so-called "GNU/Guix"
distributions are really distributions of GNU/Linux/Guix.

Ruined? Debian always had pretty silly package managers, from dpkg over apt-get to apt. They even updated their package managers in a way where some functionality still is in dpkg or apt-get, not the current apt; they even failed to account for their own package managers.

What I'm saying is that ultimately you should look at better manager's CLI and implement these, what use is it to reinvent yours without referring to any others and end up with "nix-env -qa" for a basic search.

Also, looking at Guix, I guess you should not let Lisp/Scheme users participate, they'll try to do fucking everything including the init poorly with Lisp/Scheme.

As long as they make installing nonfree firmware unnecessarily hard, I''m staying on Gentoo.

> what is a source code
> how do I compile

Yes, but you're nothing thinking the Guix way.
I believe the best way to go about that would be to spin up a GuixSD VM, then build and spit out an instal image using guix system for the different architecture, then follow the normal install steps with that image.

I was talking about systemd.
systemdebian became absolutely unusable when they opted to move to it for `practical' reasons.

Having everything be configurable with Guile is the best thing ever.
It's clear and consistent, straightforward yet powerful, easy to read and understand, easy to change or extend.. Finally, a humane way to approach operating system configuration.
I have real trouble understanding how anyone could learn about this and still prefer the mess of chains of scripts and files in all different languages and places we've been struggling with for so long.

>nothing thinking

>I guess you should not let Lisp/Scheme users participate, they'll try to do fucking everything including the init poorly with Lisp/Scheme.
This. We should write 10 new different shitlangs instead to do the job. Surely inventing entirely new shitlangs to deal with a complicated general programming task will not in any way detract from the development of the actual software.

Attached: patchi_fat.png (763x719, 534K)

based

have some hack gross aliases I've found useful:
gpFi () # install all font packages
{
guix package -i $(guix package -s ^font- | grep name: | cut -c 7-)
}
gpG () # list globally available packages
{
INSTALLED="$(PACKAGES="$(guix package -p /run/current-system/profile \
-I | grep -v ^font-)"
echo "$PACKAGES" | while IFS= read -r PACKAGE; do
NAME="$(echo "$PACKAGE" | cut -f 1)"
VERSION="$(echo "$PACKAGE" | cut -f 2)"
OUT=":$(echo "$PACKAGE" | cut -f 3)"
if [ "$OUT" == ":out" ]; then
OUT=""
fi
echo "$NAME""$OUT" "$VERSION"
done)"
echo ""
echo "$INSTALLED" | sort | column -t
echo ""
}
gpI () # list installed packages
{
INSTALLED="$(PACKAGES="$(guix package -I | grep -v ^font-)"
echo "$PACKAGES" | while IFS= read -r PACKAGE; do
NAME="$(echo "$PACKAGE" | cut -f 1)"
VERSION="$(echo "$PACKAGE" | cut -f 2)"
OUT=":$(echo "$PACKAGE" | cut -f 3)"
if [ "$OUT" == ":out" ]; then
OUT=""
fi
echo "$NAME""$OUT" "$VERSION"
done)"
echo ""
echo "$INSTALLED" | sort | column -t
echo ""
echo "$(guix package -I | wc -l) packages in profile"
echo "$(guix package -I | grep ^font- | wc -l) font packages"
echo ""
}

Someone post a screenfetch.

Guix has neofetch instead of screenfetch.
I will when I've upgraded to v1.0.

>luks + lvm dmcrypt
Also interested in this. I can't seem to manage to properly define a config which doesn't somehow fuck up either in the initial stage of booting when you type the password right after "Welcome to GRUB!", or a bit later when you type it a second time and it throws you into a Guile debugging REPL.

[x] guix
[ ] gnunet
[ ] hurd

slowly but surely
the future cometh

Attached: 1502250794963.jpg (1293x1027, 445K)

>no nonfree software
So how does this work? It's just a package manager so nothing's stopping someone from creating a repository with nonfree software, right?

Yes.
Luckily, most of those who don't care about freedom are too stupid to figure out how.

Give me a tl;dr.

Is it a distro?

Guix is a transactional/functional package manager.
Basically impossible to fuck up beyond repair as you can roll back to any previous working state.
Everything about it is configured with Guile[Scheme(Lisp)] so it's easy to read and fully extendable with the power of a real programming language.
But when a package manager exists so perfectly, an OS just sort of falls into place around it.
You can install and use Guix on any distro, but you can also install their distro built around Guix - This is now called Guix System (but you'll probably still see GuixSD[System Distribution] being used for a while).
And Guix System isn't like a normal distro at all, it's far more meta and processive. They give you this nice framework and then you declare exactly what you want your OS to be using Guile - So every instance of it will be unique and perfectly tailored to the one installing it, lisp hackable on every level, and with all the glorious benefits of functional package management and guix.
It's a meta distribution.
It's the best thing ever.
That we ever didn't do package management or OS design like this is in retrospect, absolutely retarded.

ok thanks. I wish them well.
Any other distro adopted or has plans to adopt the package manager?

Thanks, sounds interesting.

I'm trying to do an encrypted install with LUKS. Assuming my mapped-devices is like this
(mapped-devices
(list (mapped-device
(source "/dev/sda3")
(target "cryptroot")
(type luks-device-mapping))))

and my lsblk output looks like pic related, are these file-system declarations correct?
(file-system
(mount-point "/")
(device "/dev/mapper/guixsd-root")
(type "ext4")
(dependencies mapped-devices))

(file-system
(mount-point "/home")
(device "/dev/mapper/guixsd-home")
(type "ext4")
(dependencies mapped-devices))

Attached: lvm.png (544x319, 47K)

I've never done any fully encrypted systems.
I really want to try it though.
If this does work, let me know.

Based.
Lispfags will win.

I really doubt any distro would replace their own package manager with Guix, since it would just be like making another Guix System, but you can use the Guix package manager in any other "host" distro in conjunction with the native package manager, there are instructions on the download page. I even remember reading some tutorials for getting an extremely minimal Debian system working and using Guix for as many packages as possible, these are a bit old though.

Please. Let's finally ditch Linux and complete the GNU system, as it was always meant to be.

Yeah, once you begin to understand the benefits of Guix at all, moving to Guix System becomes inevitable.
Being able to use Guix on other distros is great, but anything along the way seems needlessly restrictive.
Without willfully crippling Guix, anything that embraces it ultimately must become Guix System.
This metadistro thing blows my mind.
The distro tree has finally been deconstructed and will no longer make much sense or be relevant going forward - You either have a Guix System or some arcane mess.

If I already did one `guix system init`, is it safe to run it again from the livecd onto the same /mnt or do I need to run some other command?

>I was talking about systemd.
I have no issues with systemd, although Debian should of course support multiple inits. dpkg/apt/apt-get is fucked up.

> It's clear
Only Lisp/Scheme users would think that way.

The rest of the world prefers key-value or YAML or something else that is actually simple on the user end.

Or at least a programming language that can do imperative as well as functional, because requiring people to FP pretty much everything is retarded; it resulted in almost no production software despite Lisp, Haskell and friends having been around since forever.

> how anyone could learn about this and still prefer the mess of chains of scripts and files in all different languages
No, requiring another esoteric language almost no one was using for anything on top of that doesn't help.

Did it fail?
If not you should boot into the new system and run as root `guix system reconfigure .../config.scm' from there.
I don't know what running a system init twice from the install media would do...

So is this like the terraform of on-prem?

I have no idea what that is, but probably not.

>Only Lisp/Scheme users would think that way.
And what exactly is stopping you from becoming familiar with Scheme?
>key-value or YAML
How the fuck is this simpler or better to use than Scheme? You can't write your entire package manager in YAML, just the shitty package definitions. Which means you immediately lose out on any possibility of the end user extending the package manager/the way you define packages without recompiling the entire program. With Scheme, you can write both the package manager and package definitions in the same language, so you just write a package as you would other "normal" code in the language.
>Or at least a programming language that can do imperative as well as functional
Nice display of your ignorance about what Lisp or Scheme even are.
>esoteric language
How is Scheme "esoteric"? It has really simple syntax and semantics by design. Any retard could start writing programs in it after a really short time of learning.

It technically didn't fail, but I can't load the kernel after booting into GRUB. Seems like doing it twice works just fine, as I still boot into GRUB with a different more clearer error now.

best not to argue with retards
people spewing that kind of nonsense are incapable of certain basic modes of understanding and cannot be reasoned with
give up man
these peoples' fear of lisp keeps our little world nice and beautiful

>Is it the GNU system, paired with a different kernel?
GNU/$program, for example GNU/Linux, GNU/kFreeBSD, etc (note the slash)
>Is a program part of the GNU system?
GNU $program, for example GNU Linux-libre, GNU wget, etc (not the missing slash)

>the recommended way to install nix

Attached: 1556556259199.png (720x891, 84K)

Guix is a package manager.

I honestly believe all this FUD over the Lisps has been fueled by AT&T and Bell Labs to steer people towards Unix and C, and conveniently sweeo under the rug superior technology that came before that.

That's wrong.

Meant for

Why does it require root? I wanted to use Nix to install user packages but its root only. Baffling.

Attached: 1556813105028.png (2245x1587, 531K)

But user, that's a good thing.

Attached: 1520547451792.png (500x537, 42K)

>As far as I can tell, Guix is just a wrapper for Nix
Guix is another implementation of Nix concepts, not a wrapper.

Guix has much more simplified CLI (though Nix is working on this problem), and making package derivatives is as easy as making a new package, just add `inherit'
(define-public my-package
(package (inherit other-package)
;; package definition here
...))


>key-value
The problem with key-value configuration is that it's awkward at best for defining more complex package definitions, impossible to sanely do at worst. Nix approaches this problem by using their own little DSL, however Guix tries to go one step further and uses an E-DSL so that they'll never have problems with expressability, because they could just extend the language.

It's to create the nix store and building packages.

dammit OP. I've been using gentoo for 2 years and I wasn't planning on hopping agian but this is just too much to pass on

the new meme can be
>install guixsd

Attached: rms1339615412795.jpg (645x430, 58K)

Attached: installguixsd1524415298200.jpg (2160x2160, 3.25M)

>And what exactly is stopping you from becoming familiar with Scheme?
The same as it stopping me from learning any other ancient meme language that never got adopted much: They're useless except for less than a handful of things.

> You can't write your entire package manager in YAML
Exactly. What's useful is having an useful package manager, not getting to write it in code (never mind in a dialect of a meme language like Lisp).

> Nice display of your ignorance about what Lisp or Scheme even are.
No, I know. There are lots of claims how Lisp/Scheme/Guile are multiparadigm things that change the world. They're next to completely useless at just about anything other than FP though, and third rate at FP.

> How is Scheme "esoteric"?
Same way as just any LISP. Verbose syntax, crappy standard lib, weak compiler and tooling, and so on,

> Any retard could start writing programs in it after a really short time of learning.
Again, you could waste your time on any language, many are easy to learn. But Scheme is >40 years old, Lisp >60 years, and virtually nothing good has come from it - it's nearly exhaustive proof just how useless it is. Inb4 emacs.

if you respond to it you lose

hurd was kind of a failure, read about it

it wasnt a TRUE microkernell

And before any of you make fools of yourselves, it's pronounced like the English word `Geeks'.

what's the guisd waifu?
what anime girl comes in the wallpaper?

Attached: 1554530776099.jpg (800x1200, 105K)

>Same way as just any LISP. Verbose syntax, crappy standard lib, weak compiler and tooling, and so on,
have you ever looked at GNU Guile?

Lisp/Scheme are entirely old shitlangs

Attached: shit2.jpg (848x1200, 444K)

He's a black ``person''. Abstract thought or actually looking into things is too much for him.

whats the language in which guix is compiled?


i mean, like, it was written in c/c++/rust/...?

Attached: pepeo.png (800x769, 126K)

You have to switch from the default Linux-Libre kernel that comes with it to the full Linux kernel.

I'm really hoping someone will put it upon themselves to maintain a public repository for stuff like this, but here is my copy of it (this was posted by a guix dev a while back and all I've done is update the download links with the latest versions and hashes of the Linux kernel and firmware)
As of the time of this post this will get you the most up to date versions.
pastebin.com/TRD6s7pg

To use it all you have to do is add
(add-to-load-path "/path/to/my/shit")
(use-modules gnu packages linux-nonfree)

(operating system
...
(kernel linux-nonfree)
...)
into your guix system config file
then create the directories:
/path/to/my/shit/gnu/packages
and just copy and paste everything in that pastebin to a file called
/path/to/my/shit/gnu/packages/linux-nonfree.scm

Attached: 1530550864244.png (814x576, 257K)

Guile Scheme. Which is itself written in C.

shit, forgot to also include the firmware in the system config

So here's what you should really add to your guix system config:
(add-to-load-path "/path/to/my/shit")
(use-modules gnu packages linux-nonfree)

(operating system
...
(kernel linux-nonfree)
(firmware (append (list linux-firmware-non-free)
%base-firmware))
...)