IRC channel logs


back to list of logs

<codemac>hi! does anyone here run guix as more of a "minion" package management interface for their local user, while the distro they use is something different (arch / debian / etc)?
<codemac>Getting the "right" distro set uup on many of my machines is lots of work, and I've been thinking that I can have guix on all these machines, and use it to manage the packages I want to install as a *user*, and top level services managed by the main distro (think ssh to the box, a starting shell, and the kernel by debian, everything else user guix)
<anthk_>upgrading guix to get linux-libre 4.1, nice :D
<anthk_>one day I'll try to write something for TADS3
<remi`bd>codemac: yes
<remi`bd>I use arch for my system’s base packages, and guix for others
<codemac>remi`bd: are there any lessons learned I should know about?
<remi`bd>not for me, sorry :{
<civodul>Hello Guix!
<crocket>How does guix take care of installing .desktop files and making them available to desktop environments?
<sneek>crocket, you have 2 messages.
<sneek>crocket, rekado says: I very much recommend reading the Guix documentation. It is quite clear on what Guix is used for and how it works.
<sneek>crocket, zacts says: his/her gist on the systemd service for guix is gone, and zacts forgot to save the config
<crocket>zacts, is my /etc/systemd/system/guix-daemon.service
<crocket>Refer to it in a week.
<crocket>In a week, it expires.
<jackdaniel>sneek: commands
<jackdaniel>sneek: help
<crocket>I read "GNU Guix is a functional package management tool for the GNU system." on
<crocket>What is the GNU system?
<crocket>GuixSD and other GNU distros?
<crocket>GuixSD and hurd.
<jackdaniel>gnu system is any system with gnu userspace, so also other distributions, not only guixsd
<crocket>What is gnu userspace? Does it include ubuntu and archlinux?
<jackdaniel>tough i foresee some distributions future - evolution from GNU/Linux to SystemD/Linux
<jackdaniel>crocket: yes, it does include
<jackdaniel>systemd didn't eat all of it yet ^_^
<crocket>It seems GuixSD uses roco? instead of systemd.
<jackdaniel>dmd I think, but I'm not using GuixSD regularily
<jackdaniel>deco is cli frontend I think
<jackdaniel>but what I say might be wrong, I'm just newb here :p
<crocket>NixOps and SaltSatck provide configuration management
<crocket>Does Guix provide configuration management as well?
<crocket>I am interested in Guix configuration management because it lets me use a proper functional programming language called guile.
<crocket>The usage of python in SaltStack is toxic.
<jackdaniel>no idea
<crocket>Guix provides NixOps-style configuration management.
<crocket>Is GuixSD ok to use?
<crocket>jackdaniel, ^^
<rekado_>crocket: I'm using GuixSD on two machines: my primary laptop and one dedicated to audio work.
<rekado_>(recording, live music, etc)
<rekado_>it is very much usable.
<crocket>rekado_, Do you use configuration management as well?
<jackdaniel>crocket: as I said, I'm not regular user. I think it is, tough if you have wifi card with blob driver, then it won't work with libre-linux kernel
<rekado_>each of these machines has its own configuration file, specifying what disks to mount, what user accounts to create, what packages to install system-wide.
<rekado_>so yes, you could say I'm using configuration management.
<crocket>in guile?
<rekado_>but that's a very vague term, so I don't know what you mean by it.
<crocket>I meant system configuration management as done by SaltStack and NixOps.
<rekado_>I haven't used those.
<crocket>With SaltStack, you can specify the contents of some system files and the list of installed packages.
<crocket>With SaltStack, you can also enable and start system services.
<crocket>rekado_, SaltStack does similar things to Guix system configuration manager.
<crocket>The problem of SaltStack is everything is in YAML and python.
<crocket>It is not easy to write YAML.
<D1ver>hello :) i just installed guixsd on my laptop. the installation completed successfully but my system doesnt boot. the last boot message i can see is "switched to clocksource tsc"
<crocket>rekado_, What is the best desktop environment on GuixSD?
<rekado_>I use Xfce.
<D1ver>any ideas? :s Its an intel integrated graphics laptop.. i tried "nomodeset"
<civodul>crocket: does work correctly? it would probably make sense to ship it
<civodul>D1ver: then it just hangs?
<rekado_>I just noticed that R no longer builds. That's probably because GCC 4.9 is the default now (?) but R has gfortran 4.8 as an input. Adding gfortran 4.9 and updating the R package now.
<D1ver>civodul: yes it just stops
<D1ver>civodul: no panic or anything.. cant get to other terminals with ctrl-alt-f2 or anything
<D1ver>googling seems to suggest its hanging on the loading whatevers after 'switching to clocksource tsc" but i dont know what that is lol
<civodul>rekado_: yes, that's probably the problem
<civodul>D1ver: i've never seen that, sounds like a kernel issue, but i have no idea :-/
<civodul>the installation image did boot though, right?
<civodul>and it's supposed to be the same kernel
<D1ver>yea it booted from the usb stick with no problems
<civodul>in GRUB, can you try pressing 'e' on the menu entry, and then adding '--repl' to the command line, and finally booting with C-x?
<D1ver>woah ok i am in a scheme prompt
<D1ver>i don't even know what just happened
<D1ver>i tried ,bt for a backtrace. it spat out some hex number. I tried ,q to continue, the boot process did some more stuff. I got prompted to enter some keystrokes to increase entropy or something
<D1ver>and now i'm in x11 and it seems to be working..
<alezost>D1ver: those keystrokes were for ssh-daemon (it happens only for the first time it is started)
<D1ver>alezost: cool. It seems to be working.
<D1ver>stupid question #2, i followed the installation instructions and filled in my name as a user in /etc/config.scm... what is the password for that account? I can only log in as root with no password
<alezost>civodul: I think that systemd service should work. At least a slightly different version from <> used to work for me. Here it is: <>
<alezost>D1ver: I think you need to set the password for your user (and for root of course)
<civodul>thanks alezost
<D1ver>alezost: I can update roots password with passwd, but what about the user one? (sorry i'm used to adding users with 'adduser' / 'useradd'
<alezost>D1ver: "passwd <user>" maybe
<crocket>civodul, It works on ubuntu.
<crocket>I think it should work on any system that runs systemd.
<D1ver>alezost: thanks! working
<crocket>In actual package, "--build-users-group=guix-builder" has to be parameterized.
<crocket>Other than that, it's ok.
<crocket>How does guix install .desktop files and make them available to desktop environments?
<civodul>crocket: currently it doesn't
<crocket>How does GuixSD handle it?
<civodul>iyzsong: your thoughts on .desktop files? ↑
<crocket>Does GuixSD not install .desktop files in /usr/share/applications ?
<civodul>there's no /usr on GuixSD :-)
<crocket>Or ~/.local/share/applications?
<civodul>so the goal is to honor them, but that is not implemented yet
<crocket>Does it mean people live without .desktop files on GuixSD?
<civodul>i certainly live without them because i don't use the "desktop environment" ;-)
<civodul>for Xfce, i don't know exactly what happens
<civodul>i guess you get icons for the default apps, but not for them installed afterwards?
<civodul>but that's really something that needs to be addressed
<iyzsong>I think if the package ship .desktop files and XDG_DATA_DIRS contains the right value, it should just work fine
<civodul>ah ok
<civodul>work as in "the icon shows up"?
<iyzsong>Yes, I think so, but we don't update mime database with desktop files now, so the 'default-application' will not work rightly.
<iyzsong>crocket: what functions do you expect from desktop files? :-)
<crocket>I want .desktop files to show up in gnome shell.
<iyzsong>crocket: I think put "$HOME/.guix-profile/share" in gnome-shell's XDG_DATA_DIRS should work.
<crocket>iyzsong, How is it going to work automatically?
<crocket>How does 'man' work?
<crocket>Anyway, it sounds fascinating to isolate each user profile.
<iyzsong>As long as the applications (gnome-shell does) implement the XDG standard, which requires it to respect XDG_DATA_DIRS..
<crocket>How is GuixSD going to add ~/.guix-profile/share to XDG_DATA_DIRS automatically?
<crocket>How is Guix going to do so on other distros?
<crocket>What about the conflict between systemd and dmd?
<iyzsong>there has a ~/.guix-profile/etc/profile, on GuixSD, it was source by bash (/etc/profile). I think you may want to do the same on your distro.
<crocket>I thought /etc/profile was supposed to be a system profile.
<rekado_>patches for gfortran-4.9 and R have been sent to the mailing list. They are very small and I'd like to push them very soon.
<crocket>So, it's all manual on other distros.
<crocket>I think it should be done automatically on GuixSD.
<crocket>Otherwise, beginners will be repelled.
<iyzsong>yes, on GuixSD, we basically source "$HOME/.guix-profile/etc/profile" 'automatically'. And on other distro, you could do this manually.
<rekado_>crocket: "conflict between systemd and dmd" --> Guix as a package manager does not use dmd. It's only the Guix System Distribution that does.
<rekado_>so there is no conflict.
<crocket>iyzsong, What about ~/.guix-profile/share/applications?
<crocket>Is it added to XDG_DATA_DIRS automatically on GuixSD?
<iyzsong>crocket: Yes, the correct value is '~/.guix-profile/share' though.
<crocket>Then, gnome shell would have no problem with .desktop files
<crocket>iyzsong, Is it ok to use Guix system configuration management capacity on ubuntu?
<crocket>Guix feels foreign on ubuntu...
<iyzsong>What to manage? I think you won't want to run 'guix system ..', that would override ubuntu's files.
<crocket>So, guix is designed to work with GuixSD.
<crocket>Guix is nice for trying guile emacs on ubuntu.
<crocket>Does GuixSD keep only the latest version of packages as archlinux does?
<civodul>actually you could try 'guix system vm', even if you're on another distro
<civodul>that always works
<crocket>Does GuixSD have releases?
<crocket>like ubuntu?
<crocket>ubuntu 15.04, 14.04, ...
<crocket>How does a GuixSD release work with Guix?
<crocket>Guix seems to contain only the latest versions of packages.
<iyzsong>crocket: We does have packages with different versions in the guix git repository, and one advantage with Guix is you can install different version of the same package.
<crocket>iyzsong, Does it mean each GuixSD release refer to only one version of every package?
<iyzsong>crocket: No, for examples we have gcc-4.8, gcc-4.9, gcc-5.1, etc (different version). And emacs, emacs-no-x (different variant)
<crocket>Does GuixSD 1.0 refer to gcc-4.8 and GuixSD 1.5 to gcc-5.1?
<iyzsong>the 'release' is just a snapshot (tag, mainly for the Guix package manager I think) of the git repository. I won't think GuixSD have releases.
<crocket>The git repository of guix?
<iyzsong>you can (and should) update as fast as you can :-)
<crocket>I think it is the same rolling release model of archlinux.
<rekado_>"So, guix is designed to work with GuixSD." --- Guix is a package manager. I use it on Ubuntu, CentOS and Fedora.
<crocket>Guix cannot be allowed to break GuixSD, and most Guix users will be on GuixSD.
<rekado_>As in Guix the whole graph of depencies is closed over for each package it is only consequential to extend it to a whole system.
<rekado_>"most Guix users will be on GuixSD" <--- I don't think that's true.
<rekado_>on our clusters we have lots of users of Guix, and only one of them is a user of GuixSD (me).
<rekado_>a cluster is a set of high-performance machines that can be used to compute "jobs" for many users with high compute demands.
<crocket>So, a cluster of servers
<rekado_>I wrote about using Guix in an HPC environment here:
<crocket>GuixSD looks like a better alternative to Archlinux now...
<rekado_>Well, I don't call them "servers" because they don't serve anything in the traditional sense. They are called "nodes".
<crocket>But, gnome shell blocks access to Win+L after hours.
<rekado_>Gnome shell hasn't been packaged for Guix yet.
<crocket>What desktop environments do I have on GuixSD?
<rekado_>we have bits and pieces of Gnome, but I think the only complete modern(ish) desktop environment on GuixSD is Xfce.
<rekado_>of course you can also use a custom environment with a window manager of your choice.
<rekado_>we have ratpoison, and possibly more.
<crocket>I can use gnome shell, unity, and KDE.
<crocket>XFCE is fine, too
<rekado_>my "desktop environment" is actually Emacs. I primarily use Xfce to load Emacs.
<crocket>rekado_, Do you know a faster way of executing 'guix pull'?
<iyzsong>I just 'git clone` the repo to ~/.config/guix/latest, and never run 'guix pull' anymore (don't know what will happend if I run)
<crocket>iyzsong, Why?
<iyzsong>crocket: I'm happy with run git commands mannually. the 'guix pull' download the git repository as a tarball, much slower than 'git pull'.
<crocket>It seems guix pull needs optimization
<rekado_>crocket: as a developer I mostly use git. Only on the audio laptop I use "guix pull" (and yes, it is slow).
<rekado_>with a git checkout you only need to compile files that have changed. With "guix pull" everything is compiled and that takes time.
<crocket>rekado_, What if you use substitutes?
<crocket>'guix pull' uses substitutes
<rekado_>I don't know what you mean.
<crocket>If you enable substitutes from hydra, 'guix pull' pulls built binaries.
<rekado_>afaik the .scm files (e.g. of all the package modules) are compiled to .go.
<crocket>Since coreutils couldn't be built during 'guix pull', I had to enable hydra.
<iyzsong>the 'pull' is to download/compile/deploy the distro (git repo), no packages (except guile) will be substituted.
<crocket>Somehow, 'guix pull' downloaded coreutils substitute
<crocket>gcc, coreutils, ...
<iyzsong>Yes, guile depends on it. You can try with '--bootstrap' to use the bootstrap Guile instead, see the Manual for more infomation :-)
<crocket>guix commands start with 'warning: failed to install locale: Invalid argument'
<iyzsong>crocket: hm, it's a known issue, See for solution.
<crocket>iyzsong, Is there an alternative to autofs on GuixSD?
<crocket>It doesn't have autofs
<crocket>Does the warning occur on foreign distros only?
<crocket>Even with LOCPATH=/usr/share/locale, I still see "warning: failed to install locale: Invalid argument"
<rekado_>crocket: I don't see this on GuixSD.
<crocket>rekado_, Do you have autofs on GuixSD?
<iyzsong>crocket: that may reported by 'guix-daemon', did you run the 'guix-daemon' with LOCPATH?
<iyzsong>crocket: There is no 'autofs' package in Guix yet, I think you'd like to package it :-)
<crocket>I ran guix-daemon with LOCPATH, but it doesn't remove the warning.
<crocket>My locale is en_US.UTF-8
<iyzsong>crocket: so, it have to use the locale installed by Guix? I don't know the detail.
<iyzsong>according to
<crocket>Is it possible to make 'guix pull' run quick?
<efraim>crocket: how long does it take on your system? mine is about an hour, so I run it before I go to bed
<crocket>I don't know exactly.
<crocket>But, it took a while.
<crocket>On ubuntu, 'sudo apt-get update' takes 2-3 minutes.
<crocket>'guix pull' takes longer.
<civodul>crocket: yeah, it takes too long (~15 mn on my quad-core laptop)
<civodul>hopefully we'll address it soon
<rekado_>davexunit: I read about PAM. It's useful only to authenticate users (e.g. by asking it whether a provided password and username are valid). We cannot use it to spawn a new process as another user.
<rekado_>Instead we'd have to run guix-web as root and then use Guile features to become a different user.
<davexunit>rekado_: sure.
<rekado_>dependent on the result of asking the PAM oracle.
<davexunit>yeah, that's what I had in mind.
<davexunit>and perhaps 'guix web' could still be run as an unprivileged user, with the limitation that the only acceptable user authentication is for the user that ran it.
<davexunit>and the root 'guix web' can have the super setuid powers
<rekado_>(I'm disappointed to see that it's still impossible for a process on Linux to gain permissions at runtime after talking to an auth server. )
*rekado_ wants the Hurd.
<davexunit>guixsd aaaalmost boots in a container
<davexunit>with a user namespace
<davexunit>but chown("/var/guix/profiles/per-user/alice", 1000, 998) returns EINVAL
<davexunit>I wonder why. the man page for chown(2) doesn't specify what causes this return code.
<davexunit>perhaps uid 1000 and gid 998 need mappings into the parent user namespace?
<efraim>EINVAL = error invalid?
<davexunit>yeah, invalid argument.
<amz3>that is cool
<remi`bd>davexunit: might be raised by the filesystem drivers
<davexunit>I think I need to expand the range of uid/gip mapping
<davexunit>right now I only map a single user, the one that booted the container
<davexunit>because specifying a uid/gid range greater than 1 failed :(
<civodul>davexunit: chown(2) here says: EINVAL Invalid flag specified in flags.
<civodul>oh but this is for fchownat i guess
<civodul>hey remi`bd
<civodul>remi`bd: i looked at what you pushed and it looks pretty nice!
<remi`bd>well, I’m happy to have finally been able to move forward on these bindings
<remi`bd>I’ll send a report on the lists later this afternoon
<civodul>in your message could you say a word on how to test it?
<civodul>BTW, i saw there are unit tests, this is perfect
*civodul is toying with a cpio writer in Scheme, for the initrd
<remi`bd>you mean how to get a simple GnuNet peer running? or more detailed explanations about the bindings themselves?
<civodul>yeah how to get GNUnet running so that one can try out the bindings
<civodul>i guess it's a matter of starting gnunet-arm essentially?
<remi`bd>yes, and writing a small .conf
<remi`bd>it’ll be in the report!
<remi`bd>do you want to generate the initrd directly in scheme?
<davexunit>civodul: awesome!
<civodul>remi`bd: yes, though we still need gzip
<civodul>not that it was particularly an urgent thing to do, but you know...
<davexunit>scratch that itch ;)
<civodul>exactly :-)
<amz3>nice guile-gnunet is coming
<anthk_>good afternoon to everyone
<mark_weaver>civodul: fwiw, I wrote a tar reader in pure guile not too long ago, for Mike's 100-guile-programs tutorial initiative thingy (I forget what it was called)
<mark_weaver>anyway, gotta run for now... going to the FSF to help with the mailing...
<davexunit>mark_weaver: I'll be over after work tonight. not sure if you'll still be there.
<mark_weaver>davexunit: cool! yes, I plan to stay late, assuming we don't finish unexpectedly early :)
<davexunit>awesome. see ya then, probably.
<mark_weaver>civodul: oh right, you need cpio because that's the initrd format or something :)
<paron_remote>hello, *
<mark_weaver>hi paron_remote! (and bye also, as I'm heading out very soon :)
<davexunit>hey paron_remote
<davexunit>I hope we get all this ruby stuff sorted out soon... growing tired.
<efraim>finally got around to setting up my git clone correctly and now waiting for make to finish
<efraim>should've timed it to compare it to guix pull
<amz3>efraim: what does it mean "compare it to guix pull" ?
<efraim>compare the time
<amz3>ok the difference of time between git pull && make and guix pull
<amz3>you use guixsd?
<efraim>also some people point .config/guix/latest to git
<efraim>i'm on debian
<amz3>hmm good idea
<amz3>ah ok
<amz3>it doesn't work to set GUIX_PACKAGE_PATH
<amz3>I stopped using debian, broke it twice last year (I coulnd not fix without a fresh install). I think I am a good tester of guix robustness ;)
<davexunit>I do the symlink thing
<davexunit>works well
<davexunit>until I do lots of development and fuck something up ;)
<davexunit>then I temporarily remove the symlink
<efraim>only recent problems I had with debian was when I upgraded my raspbian to wheezy and systemd and that failed hard
<alezost>[18:31]<amz3> it doesn't work to set GUIX_PACKAGE_PATH ← What do you mean?
<efraim>otherwise running sid has worked well for me for years
<civodul>mark_weaver: yes, i remember your tar reader, and i think we should use it eventually!
<efraim>except for the freezes
<civodul>mark_weaver: that would notably simplify bootstrapping
<amz3>you set GUIX_PACKAGE_PATH to git repository
<alezost>oh, that; I've never tried setting it the git repo
<efraim>davexunit: `git pull && make`, does it run over all the files or only the changed ones?
<davexunit>efraim: only the changed files.
<davexunit>this is the nature of make.
<efraim>compiling guix/import/json.scm failed for me
<efraim>sorry, kid didn't want to go to sleep, had to put him down in the stroller
<efraim>not exactly sure what the error is,
<civodul>efraim: you're missing guile-json, see
<efraim>civodul: thanks, i figured it could be something like that
<civodul>normally that module is compiled only if guile-json was detected at configure time
<civodul>so maybe it was first detected, then it was removed, and then boom
<efraim>i reinstalled them, reconfigured, and now make-ing again
<efraim>doh, still getting the error
<efraim>i'll have to look at it tomorrow, getting late here
<civodul>rekado_: could you review and possibly commit the latest Rythmbox patch?
<civodul>(since you started the review)
<civodul>efraim: ok!
<davexunit>damn it. can't go to the FSF because I forgot that I have a kid to watch tonight.
<absorto>hello! so I booted the usb image, but I cannot connect to the network. ifconfig -a reports my NIC as enp8s0, but it doesn't say UP or RUNNING, even after I ifconfig enp8s0 netmask up. Help!
<bavier`>absorto: do you have a dhcp server on you network?
<absorto>bavier`: I do. I also tried dhclient enp8s0, no luck.
<civodul>absorto: you have to set it up manually first: ifconfig enp8s0 up
<davexunit>absorto: ifconfig enp8s0 up && dhclient enp8s0
<absorto>civodul: right! that worked
<absorto>so... how come it didn't come up if I gave the address and mask?
<remi`bd>absorto: you’re not using a static ip, that’s why
<remi`bd>your ip address and network mask are given to you by another computer, a DHCP server; when you call `dhclient`, you ask this server for an ip address
<remi`bd>that’s why your ip address is said to be dynamically allocated, or simply dynamic
<absorto>remi`bd: I understand that. However if I choose to ignore the DHCP server and grab any IP I want I should at least be able to ping myself, right?
<remi`bd>well, not through enp8s0
<absorto>oh! why not?
<remi`bd>because the DHCP server is responsible for the mapping “computer ↔ ip address” in its network
<absorto>okay but.. I mean in other machines I can just choose whatever Ip address. I might not get to the internet or even other network devices, but at least I can ping the address I chose!
<absorto>anyway, I'm online and going on with the installation
<remi`bd>in this case, I apologize
<absorto>which brings me to another question: the manual doesn't say anything about choosing a password for the user I configured. Will I be asked later or what?
<absorto>no need for apologies remi`bd :-) I'm just confused that a command like ifconfig enp8s0 up wouldn't bring up the interface.
<remi`bd>absorto: you’re supposed to specify your users initial password as root
<absorto>oh! so: passwd --root /mnt absorto?
<civodul>absorto: the first time you log in, you can only log in as root; from there, you have to run 'passwd absorto' or similar