IRC channel logs


back to list of logs

<phant0mas>good morning guix
<civodul>Hello Guix!
<sneek>Welcome back civodul, you have 1 message.
<sneek>civodul, nkar says: you mean "guile -L /run/current-system/profile/share/guile/site/2.0 -C /run/current-system/profile/share/guile/site/2.0/gnu/build/file-systems.scm"? (pk (find-partition-by-label "rootfs")) returns #f.
<civodul>nkar: did you have a chance to look at (gnu build file-systems)?
<nkar>no, what do I need to look for?
<civodul>could you try (disk-partitions) for instance, to make sure it sees all the partitions?
<Kehlyos>How is guix any different from nixos and nix ?
<nkar>civodul: ("sda1", "sda2", "sda3", "sda4", "sda5")
<nkar>Kehlyos: guix doesn't ship nonfree software
<nkar>have you tried searching the web? that's a popular question, really
<davexunit>Kehlyos: the most noticable difference is the choice of implementation language
<davexunit>scheme vs the nix language
<nkar>scheme vs the nix language (+ bash)
<Kehlyos>What could be the advantages of scheme over nix except the speed ?
<nkar>some say it's more readable. also, it's not a dsl but a general purpose language, so it has more libs
<nkar>nix is lazy
<Kehlyos>So basically, for the time beeing, it has no fundamental advantages for a classic desktop utilisation ?
<nkar>what does it mean here?
<nkar>guix or scheme, or what?
<Kehlyos>i am talking about nix vs guix
<civodul>Kehlyos: the main advantages of this design choice is that it's more hackable, at all levels
<civodul>and allows more applications to be written easily
<civodul>like guix-web, or the Emacs user interface
<civodul>nkar: so is your root partition listed here?
<nkar>yes, it's sda3
<civodul>nkar: can you try, as root: (define sb (read-ext2-superblock "/dev/sda3")) ?
<nkar>Kehlyos: the major advantage for me is guix's commitment to free software
<nkar>since you mentioned desktops, note that we don't have anything like gnome packaged yet. but there's ratpoison, if you can live with it.
<civodul>and even a few other window managers
<civodul>there's quite some distance between GNOME and ratpoison ;-)
<nkar>civodul: it's ext3. should I try the above command anyway?
<Kehlyos>nkar, My desktop use is kind of minimal, but not to the point of ratpoison :), i use bspwm and bar
<civodul>we don't have those
<civodul>Kehlyos: there's a list of available packages at
<alezost>Kehlyos: you may contribute by making a guix package for bspwm
<davexunit>that would be cool :)
<nkar>civodul: read-ext2-superblock is unbound. grep doesn't find it either
<civodul>nkar: ,use(gnu build file-systems)
<nkar>already imported
<civodul>nkar: ,m(gnu build file-systems)
<nkar>got a vector back
<civodul>and then: (ext2-superblock-volume-name sb)
<Kehlyos>While sometimes, i don't really like nix's syntax, if there is no major advantages over nixos, i am not really ready to switch to guix (FSF and philosophy is not really major for me, i am the kind of linux user that does not mind using systemd, and loves nvidia's propriatary bullshit, because i get more performance out of it)
<nkar>civodul: #f
<civodul>nkar: and the command "sudo e2label /dev/sda3"?
<Kehlyos>Is there a
<civodul>no, there isn't
<davexunit>can't win 'em all.
<nkar>civodul: empty string
<civodul>nkar: conclusion: your root partition doesn't have a label
<civodul>IOW, PEBKAC :-)
<civodul>"problem exists between keyboard and chair"
<civodul>heh, sorry, i'm being unpleasant ;-)
<nkar>I thought the name field in parted corresponds to the label. sorry for wasting your time.
<civodul>np, that's a tricky area
<civodul>so "sudo e2label /dev/sda3 rootfs" would set 'rootfs' as the label of that partition
<civodul>and then you should be able to use it in the 'file-system' declaration
<nkar>okay, I'll try that later. (I need to replace the motherboard.)
<civodul>we have stripped-down kmod and blkid functionality in Scheme, isn't that cool?
*civodul tries self-congratulation after Kehlyos' comments
<davexunit>it *is* cool
<darlinger>howdy all :)
<jxself>Ahoy there.
<darlinger>just checking out guix. thought i'd drop by the community
<davexunit>welcome darlinger
<jmd>Are we a commune ?
<jxself>Sure why not?
<jxself>With hooded robes too?
<davexunit>darlinger: how'd you learn about guix? I'm curious what piques people's interest.
<jmd>Well there's a church of emacs, so why not indeed.
<darlinger>davexunit: i just popped over to the nixos channel to ask them about using openrc instead of systemd and someone suggested that i check out guux
<jmd>we use a thing called dmd
<darlinger>jmd: there's also saint ignucio
<darlinger>jmd: yeah i'm looking at it... how hard is it to pick up?
<jmd>Actually I don't know. I've never looked at it in detail.
<darlinger>jmd: lol isn't it the init you're using?
<davexunit>darlinger: it's easy enough to use the CLI for it to start/stop/etc daemons
<jmd>My contribution so far has been limited to packaging and porting to new architectures.
<davexunit>writing service definitions for guix requires learning a bit more about how guix works.
<davexunit>since you use the store monad and 'g-expressions'
<darlinger>how different has the guix package manager become from the parts of Nix that it's implemented?
<darlinger>i heard there was some divergence on guix' part
<davexunit>darlinger: we use the nix-daemon and replace everything else
<darlinger>davexunit: so there still is things like multi-user mode and such?
<davexunit>what is multi-user mode?
<davexunit>like more than one user talking to the daemon?
<alezost>darlinger: if you mean that each user can install packages in their own profiles than yes there are such things
<davexunit>that too
<darlinger>davexunit: basically. you should check out the nixos docs.
<darlinger>alezost: ohhh okay :) that was my question
<davexunit>I've read parts of their docs when implementing various things, but I'm not familiar with 100% of their terminology
<davexunit>we call that 'per-user profiles'
<darlinger>davexunit: i'll just have to dive into the guix docs. is it easy to write custom builds?
<davexunit>we try to make things as hackable as possible.
<darlinger>davexunit: awesome! and there are already repos? is it all gpl-ed software?
<davexunit>the repo comes with guix. it's all free software.
<davexunit>gpl'd software is but a subset of the set of free software :)
<darlinger>davexunit: sweet... is guile/scheme hard to pick up?
<davexunit>darlinger: have you worked with any lisps before?
<davexunit>I picked up guile a couple of years ago
<davexunit>coming from having next to no experience with lisp
<davexunit>and found it pretty easy to learn.
<davexunit>a goal of guix is to make it easy for non-scheme experts to do useful things.
<darlinger>davexunit: i'm done most of my stuff with procedural languages (python, ruby, bash, some C)
<davexunit>you'll find the most in common with ruby.
<darlinger>davexunit: is it closer to perl than ruby?
<davexunit>if you've used methods like
<darlinger>hmmm okay. how does guile play out into the scheme of things?
<davexunit>ruby has a bit of a functional style to it, that is what you'll find in common with scheme.
<darlinger>(i made a pun) but seriously
<davexunit>guile is the scheme implementation used.
<darlinger>davexunit: oh, i never got into functional ruby. but from the sounds of it, it should be pretty easy
<darlinger>davexunit: oh that makes sense. so scheme is sort of like markdown in which there are a lot of different implementations/
<davexunit>ruby: [1,2,3].map({ |x| x * x })
<davexunit>scheme: (map (lambda (x) (* x x)) '(1 2 3))
<darlinger>davexunit: oh that's a littel python-esque too with the map function
<davexunit>darlinger: yes, scheme is a standardized language, but there are many implementations that each add their own non-standard things.
<darlinger>davexunit: do you use linux or linux-libre kernel?
<davexunit>so you'll find that each scheme has their own unique features and limitations.
<davexunit>darlinger: linux-libre
<darlinger>davexunit: sort of scares me to be honest. i know binary blobs and proprietary stuff has been stripped out, but any major projects that i should know about that have been excluded/stripped out?
<davexunit>just proprietary stuff.
<darlinger>davexunit: does linux-libre use the linux project as upstream?
<davexunit>it's a deblobbed linux.
<davexunit>if your computer doesn't require nonfree drivers and firmware, you won't notice a difference.
<darlinger>davexunit: gotcha. so i can basically just throw proprietary nvidia out the window at that point?
<darlinger>davexunit: would it be incredibly hard to patch it in?
<davexunit>I don't know, actually.
<darlinger>also, i'm coming from gentoo/funtoo. would it be hard to rework a .config or do i have to start configuring from scratch?
<davexunit>there are examples in the manual
<davexunit>you can also just try out the guix package manager on gentoo and not have to install the full system.
<davexunit>or create a vm
<davexunit>here's my desktop config:
<davexunit>I have only just started to use the standalone system on real hardware.
<davexunit>I still mostly work on guix on a debian machine
<darlinger>davexunit: ohhhh
<darlinger>i'm thinking of putting it on hardware... would that be ill-advised?
<davexunit>if you have a computer to spare, it would be great if you tried to install and see how it goes.
<davexunit>just be warned: this is alpha software.
<darlinger>and i would use it on gentoo but i'm sort of behind on emerges and i want to jump ship
<darlinger>davexunit: hmmmph wait is guix a source based distro or can we do binaries?
<davexunit>it's source based, but you can fetch binaries from a build farm.
<davexunit>it's a transparent system. if the package is available on an authorized remote machine, guix will fetch that. otherwise, it builds locally.
<darlinger>davexunit: does the project have authorized remote machines handy?
<darlinger>davexunit: excellent
<darlinger>davexunit: oh guix has it's own hydra system too?
<davexunit>it's a bit overloaded, though. we need donations of resources. :)
<darlinger>davexunit: monetary or in the form of servers?
<davexunit>more machines to offload builds onto.
<darlinger>davexunit: what sort of specs are you looking for? i may or may not be able to donate some vps'
<davexunit>I'm not sure, actually. our maintainer, civodul, would know better. if you are interested in helping out with this, I would say send an email to about it.
<darlinger>davexunit: let me try it out first. i'm a little shy about using it on hardware though.
<davexunit>if you have a spare computer, running the full system is fun. :)
<davexunit>otherwise, just mess around with VMs and such using your host OS.
<darlinger>davexunit: lol i DO have a spare computer :)
<darlinger>davexunit: i'm pretty well versed in kvm too... so i can do that as well
<davexunit>cool. :)
<darlinger>davexunit: wait does libre-linux have kvm?
<davexunit>have fun.
<darlinger>davexunit: thanks for the qna! it was very helpful
<davexunit>you're welcome.
<davexunit>do report back the good and bad things.
<darlinger>oh i will! :) i love free software and i think this is the first project that i'd be seriously interested in contributing to.
<davexunit>glad to hear it :)
<davexunit>if you have scheme specific questions, #guile is another good channel to hang out on.
<darlinger>davexunit: good to keep in mind :) thanks
<darlinger>also, how familiar are you with gentoo/funtoo?
<davexunit>not very. I've never installed it.
<davexunit>I chose arch instead for awhile.
<davexunit>then back to debian.
<darlinger>davexunit: you familiar with the premise of use flags and profiles?
<davexunit>sort of.
<davexunit>use flags allow you to basically tell gentoo with configure switches to turn on/off when building?
<darlinger>davexunit: pretty much. it allows you to say what features you'd like to explicitely include or exclude in your packages, globally
<darlinger>like if you don't want kde in anything you can put that in your /etc/portage/make.conf
<darlinger>a simple -kde
<darlinger>davexunit: you can do that with A LOT of different flags
<davexunit>we don't have such a system in guix, but it could be done.
<darlinger>portage is a genious package manager
<darlinger>davexunit: i was thinking about that
<darlinger>the main issue i have with portage is that i frequently get caught in dependency hell
<davexunit>I typically want the fully featured package.
<davexunit>guix certainly gets one out of that hell.
<darlinger>davexunit: and that's your choice, but some people, like me, like to keep things as trim as i can
<darlinger>davexunit: lol well yeah. so does Nix.
<davexunit>yes, I understand. I think your use-case is important, too.
<jmd>I thought the whole point of a functional package manager is that it replaces "dependency hell" with "rebuild hell".
<darlinger>davexunit: exactly.
<darlinger>jmd: o_o
<davexunit>jmd: not from a user's perspective.
<darlinger>my idea was, why not combine the strengths of a functional package manager with the configurability of portage
<davexunit>I don't think it would be too hard to write a proof of concept use flags implementation with guix.
<darlinger>there are also some examples of another great source-based package manager, i.e. sorcery. but i don't think any active projects are using it anymore
<darlinger>davexunit: you don't think?
<davexunit>you'd have a base package with everything turned on. then you'd call a function that takes a package and a set of use flags and returns a new packages with proper tweaks made.
*phant0mas thinking it's time to try guix alone on bare metal
<davexunit>the hard, tedious work would be backporting use flags to existing packages.
<davexunit>but it's most certainly possible.
<darlinger>davexunit: why can't we just borrow from portage? i believe it's open source.
<davexunit>guix packages are fundamentally different
<darlinger>davexunit: source is source
<davexunit>we'd borrow their ideas, not their source, most likely.
<darlinger>davexunit: while the package manager and how it handles it are different, we're still building our stuff with gcc
<davexunit>but the way in which we describe packages and run builds are different.
<davexunit>so the portage source would give us a reference implementation, and then we'd write a guile/guix version.
<darlinger>davexunit: how so? i haven't read the docs on guix quite yet. i was hoping it would be similar to Nix, which i just read the docs to... and they basically use their own DSL with some shell script here and there
<darlinger>davexunit: hmmmm exactly
<davexunit>we don't use shell scripts. :)
<darlinger>davexunit: o.o
<davexunit>our build scripts are written in scheme.
<darlinger>davexunit: wh...why not?
<darlinger>davexunit: ohh lol
<davexunit>because guile has POSIX functions :)
<darlinger>davexunit: ohhhh hahaha makes sense
<darlinger>davexunit: sort of. i'm still wrapping my mind around what posix is
<davexunit>basically, we can make system calls.
<darlinger>i've tried writing some scripts that take posix-style arguments
<davexunit>and we can invoke other programs.
<darlinger>but that's about it
<davexunit>so instead of writing bash scripts, we write guile scripts.
<darlinger>wait, so could we easily use guix with other unix-based systems such as *BSD?
<darlinger>davexunit: that makes sense
<darlinger>davexunit: wait are there ANY bash scripts used in guix?
<davexunit>a few
<davexunit>but they are for other things
<davexunit>like a helper script for using guix from a git repo without installing
<darlinger>davexunit: oh that sort of thing... i've become a little attached to bash/zsh scripting for devops sort of stuff
<davexunit>I've been slowly working on 'devops' tools for guix
<davexunit>so far there's 'guix evironment', which can do what nix-shell does.
<davexunit>'guix system' is the real 'devops' tool, though.
<darlinger>davexunit: what do you mean nix-shell?
<davexunit>that creates disk images, vms, etc. from OS configs
<darlinger>davexunit: ohh gotcha. i knew that nix has nixops
<davexunit>darlinger: it's a utility that comes with nix. it spawns a shell that has all the dependencies for a given package.
<darlinger>so why was there a fork in the first place? just for Free Software purposes?
<davexunit>technical reasons, too.
<jmd>I don't think it was a "fork" as such.
<davexunit>using a general purpose programming language instead of a custom one
<davexunit>yeah, it's not really a fork.
<davexunit>we're based on Nix, but we didn't fork the project.
<jmd>guix is a different animal, which builds upon the work done by nix.
<darlinger>this functional package manager stuff really is a new thing, isn't it. it's nice to actually be ahead of the curve for once
<davexunit>yeah, it's still pretty new, but nix has been around for almost a decade.
<davexunit>took a long time for anyone to start catching on.
<darlinger>wait seriously?
<darlinger>i'm seeing a trend in functional programming stuff recently, are other people getting interested or is it just my interest giving me a bias?
<davexunit>I'm not sure, because I have the same bias.
<davexunit>it does seem to be picking up steam.
<darlinger>is it a good thing? i want it to have more attention, but i also like being in a bit of obscurity
<davexunit>I think it's mostly good.
<davexunit>gotta go for a bit.
<davexunit>see ya!
*davexunit goes afk
<_`_>why? More attention to a particular paradigm helps everyone.
<_`_>Even Peyton agrees.
<darlinger>_`_: oh hey :) didn't know you were here too
<darlinger>davexunit: see ya!
<darlinger>is it possible to just install guix into something like, say, slackware for the time being instead of going for a full install on straight hardware?
<civodul>darlinger: yes, sure
<civodul> explains how to install the package manager atop a running system
<civodul>that's a relatively simple and non-intrusive way to test it
<darlinger>civodul: would it be able to update itself?
<civodul>using the "guix pull" command
<darlinger>civodul: okay :) i think i can go from there
<darlinger>civodul: i'd have to change my path too, i'm guessing?
<civodul>yes, right
<civodul>when installing packages with 'guix package', the command will tell you what environment variables need to be defined/adjusted
<civodul>like $CPATH, $LIBRARY_PATH, etc.
<darlinger>oh okay :) that seems easy enough. thankyou!
<darlinger>wait is multi-user stuff going to be available as well?
<civodul>"multi-user" in the sense that each user has their own profile, yes
<civodul>profile = set of installed packages
<civodul>is that what you meant?
<darlinger>civodul: yes. i just forgot the words :p okay thanks! i'll just read the documentation from now on
<civodul>the Emacspeak announcement is wonderful: :-
<davexunit>civodul: that was hilarious
<kmicu>davexunit: did you check NixOps or do you start from scratch?
<davexunit>kmicu: I've looked a bit at what nixops can do for ideas of what to port to guix