IRC channel logs

2018-02-18.log

back to list of logs

<rekado_>so…
<rekado_>I’m ready to merge core-updates now.
<rekado_>the GHC problem is fixed AFAIU
<rekado_>and that’s the reason for a big number of packages that are failing compared to master.
<rekado_>we just didn’t start a new evaluation of core-updates.
<dustyweb>horray
<dustyweb>rekado_: thank you for all your work on the haskell stuff :)
<rekado_>:)
<rekado_>core-updates: merged.
<civodul>i just pushed a few commits, you might have to merge again :-)
<rekado_>done.
<civodul>woohoo!
<civodul>\\o/
<civodul>thanks rekado_!
<civodul>we made it :-)
<rekado_>finally
<rekado_>I’m happy that so many volunteered near the end to push it into shape
<rekado_>ACTION —> zzZZ
<ng0>cool :)
<ng0>great work all!
<ng0>I'm in the "automake version too old" trap again for this merge of my repo.. hapens so rarely that I never noted the solution.. any advice?
<ng0>ah yeah.. ./bootstrap
<marusich>I just discovered the "miscfiles" package. What a strange package.
<marusich>Apparently netsurf@3.7 uses it.
<marusich>Guess it uses its list of words for something
<marusich>Does anyone know of a way to tell Git to also stash timestamps when using "git stash"? I often run "git stash", then "git stash pop", and then "make", and then I cry because it starts to rebuild everything.
<marusich>I suppose instead of stashing things I should just create a temporary worktree elsewhere.
<efraim>I have a permanent worktree for core-updates and for staging
<efraim>does anyone have a simple guix.scm to insert in a project?
<rekado_>how simple?
<efraim>i looked at the one in mescc-tools and I didn't want to recreate it :)
<rekado_>here’s one: https://raw.githubusercontent.com/BIMSBbioinfo/pigx_bsseq/master/guix.scm
<rekado_>it defines one extra package in addition to the package for the project itself.
<efraim>looks good
<rekado_>it also does something fancy so that you can build a package from a release tarball, or build a docker image
<rekado_>on second thought, that’s not what I’d call simple :)
<efraim>wow! substitutes available for aarch64! I am in love
<rekado_>:)
<pkill9>if there's no queue at http://hydra.gnu.org/queue does that mean all the substitutes haae been built for the latest guix?
<pkill9>have*
<ng0>fyi, contrary to my last email about neomutt I'm annoyed enough by not being able to update it that I'm updating it now
<ng0>how do I escape: cc-with [list -includes stddef.h -cflags -I$prefix/include -libs
<ng0>all I've tried with \\\\ \\\\\\\\ etc didn't work
<ng0>I need to substitute this for something similar
<ng0>\\\\[ should work.. but it doesn't, a \\[ appears
<efraim>I figured it out with aria2 and that's what I normally look back to when I need to check
<rekado_>ng0: we need context.
<rekado_>escape where?
<rekado_>in the match or in the replacement?
<ng0>oh, yeah. so I need to _replace_ cc-with [list -includes stddef.h -cflags -I$prefix/include -libs with cc-with [list -includes stddef.h -cflags -I$prefix/include -libs
<ng0>and using \\\\[ produces \\[ in the replacement
<rekado_>obviously
<rekado_>[ has no meaning in the replacement
<ng0>why? for \\\\$ it works
<rekado_>so you don’t need to escape it.
<rekado_>[ and $ have meaning in the match string
<rekado_>they need to be escaped, so that they are not considered to be regex syntax
<rekado_>using a single
<rekado_>oops
<ng0>so in the replacement I don't have to excape?
<rekado_>using a single backslash would be fine, but since this is inside of a guile string you need to escape the backslash.
<rekado_>no
<rekado_>why would escaping be needed in the replacement?
<ng0>I haven't looked at the substitute* code in a while. I jus tassumed.
<ng0>ha :)
<ng0>thanks!
<rekado_>no need to look at the code
<rekado_>you just need to understand what it tries to achieve
<rekado_>it takes a match string, which is a regular expression; it then replaces the match with a string.
<rekado_>so the replacement does not require any escaping at all, because it has no “active syntax”.
<rekado_>the match string on the other hand is a regular expression, so it encodes a little matching programme.
<rekado_>I’m not a fan of regular expressions that are expressed as strings.
<rekado_>but that’s what it is.
<ng0>oh. okay
<ng0>makes sense now
<ng0>neomutt update sent, in case anyone wants to test it
<ng0>I think I already knew this.. it's just that I had very little sleep. I mean, thanks for the detailed explanation :)
<davidl>how can I invoke "guix system reconfigure" and not upgrade packages that need to be built from source?
<pkill9>how do i upgrade all installed packages except a particular one?
<davidl>pkill: yeah prety much
<pkill9>actually basically the same as your question davidl lol
<davidl>xD
<rekado_>“--do-not-upgrade”
<rekado_>takes a regexp
<pkill9>nice thanks, overlooked that flag in `guix package`
<pkill9>davidl: there's a couple flags that `guix package` takes, '--cores' and '--max-jobs', maybe if you set one or both of them to 0 guix will avoid building anythign from source, though I haven't tried it yet
<davidl>pkill9: tried with --max-jobs=0 which threw an error.
<civodul>hi!
<efraim>What kind of error?
<rekado_>I’m not getting Qt substitutes for x86_64.
<efraim>Same when I checked 5 hours ago
<civodul>there are substitutes from berlin for /gnu/store/cf9jagd5abi2wpsvd0bxa90i6d6npmba-qtbase-5.9.4 and /gnu/store/6r6hkq12x7ccxzl8kwsc9g4rawpcjs99-qt-5.9.4
<civodul>hydra has none of these apparently, weird
<rekado_>also none for webkitght
<rekado_>*webkitgtk
<civodul>hydra has qtbase now
<civodul>it's as if nobody tried to fetch it before
<civodul>/gnu/store/jsnv22q8hmfcwwjap6b70y40i2rcj1cw-webkitgtk-2.18.6.drv hasn't been built on either of those
<civodul>but they both have the .drv file, which means evaluation works as expected
<civodul>webkitgtk is being built on berlin but not on hydra
<efraim>interesting, I can ssh to my firefly jumping through my RPi but I can't ssh to it directly
<civodul>would be good to find out why we're missing substitutes in spite of all the precautions we took
<civodul>'guix weather' now reports 56% for berlin and 78% for hydra
<adfeno>ACTION notices that his copy of Emacs is being rebuilt during a Guix upgrade.
<adfeno>I hope this thing doesn't dump its core now.
<efraim>Hmm, we don't have an emacs-as-pid1 service
<adfeno>efraim: ?
<efraim> http://www.informatimago.com/linux/emacs-on-user-mode-linux.html?repost
<adfeno>efraim: Oh... ... ... Wow! ;)
<mange>Hey, does anyone know the magic incantation to get
<mange>Shepherd to build from git?
<mange>(Sorry for the two-part message. Apparently I hit enter too soon.)
<mange>I'm using an environment with `shepherd --ad-hoc autoconf automake gettext texinfo help2man`. Running `autoreconf -vfi` gives a few warnings (primarily: can't find m4/ and about AM_GNU_GETTEXT_VERSION not being used), but completes. `./configure` fails because it can't find po/Makefile.in.in. If I go back two commits I can build fine, so I think it's something about the recent i18n infrastructure stuff (hence the po
<mange>/Makefile.in.in), but I have no idea how to fix it.
<civodul>mange: i think you need to run 'gettextize' before autoreconf
<mange>Ah, excellent! Now autoreconf is giving me errors. "error `po/Makefile.in` is already registered with AC_CONFIG_FILES".
<civodul>hmm!
<civodul>did you change configure.ac?
<civodul>these are changes i made recently so i could have messed up, though
<mange>Apparently configure.ac had been modified, but I didn't go it. I'm cleaning out my worktree to start from scratch to see if that will work.
<mange>Does gettextize do more than I'd expect? It seems to have added to Makefile.am, configure.ac and Changelog, unexpectedly.
<mange>Now that I've run it again, I can see that it does say that it modified Makefile.am, configure.ac, and Changelog. I guess I should read the output when I run commands.
<mange>Apparently it added the po/Makefile.in entry to AC_CONFIG_FILES twice. Deleting the duplicate makes it work.
<pkill9>is guix hardcoded to look for the config in '~/.config/guix/latest'?
<mubarak>Hello Guix!
<pkill9>hi mubarak
<mubarak>hi pkill9, how are you today?
<pkill9>i'm alright
<mange>pkill9: I think it looks in $XDG_CONFIG_HOME/guix/latest, or if XDG_CONFIG_HOME isn't defined then it looks in $HOME/.config/guix/latest.
<mubarak>good :)
<mubarak>I finished installing GuixSD 0.14 amd64 now, config:desktop.scm, DE:xfce. And after rebooting GRUB come up and the system start recognizing the hardware like most GNU/Linux distros but xfce didn't start(I know it may need to be configured) and their this error "File system check on home failed; spawning Bourne-like REPL" and the lines after it are
<mubarak>information about GNU Guile(like "guile --version")
<mubarak>But the real problem for is what after that, the command interpeter look like this "bournish@(#{ g58}#)>". And when i type command like passwd, su, or whoami it say "In execvp of passwd: No such file or directory"
<mubarak>when I run pwd command, the output are ($5 = "/")
<civodul>mubarak: you should only need e2fsck at this point
<mubarak>to check for home partition?
<roptat>hi guix :)
<roptat>I'm trying to use a software that uses aspell, but it doesn't seem to find my dictionnary
<roptat>I remember there was an issue, is it still not solved?
<civodul>roptat: i think it is!
<civodul>you have to set ASPELL_something
<civodul>typically ASPELL_DICT_DIR=/home/ludo/.guix-profile/lib/aspell
<roptat>ho, that works \\o/
<pkill9>how do i register an existing build with the garbage collector roots?
<civodul>pkill9: "guix build -r my-root something", for instance
<pkill9>specifically i want to run `guix pull` and save the last guix config
<civodul>it's always registered as a gc root
<pkill9>oh yeah that makes sense
<pkill9>what about the one before it?
<pkill9>often i pull latest and the build server hasn't built substitutes
<civodul>the one before it is subject to garbage collection
<pkill9>so i run guix pull and continue using what i've used
<pkill9>then after a while change the symlink to the newr one
<civodul>i see, not very convenient :-/
<pkill9>how would i make that one before it not subject to garbage collection?
<civodul>you could add a symlink in /var/guix/gcroots/auto/
<pkill9>`guix pull` doesn't accept the --root flag
<civodul>but that's undocumented zone :-)
<pkill9>yeah
<mange>civodul: If I send a patch through for shepherd, should I also send one through after running gettextize? I have no idea what's going on with that, so I'm less confident that I will do it correctly.
<civodul>mange: re getexttize, i tried to follow the same approach as in Guix
<civodul>to have the same files under version control
<civodul>perhaps i missed something
<civodul>did you have problems when building Guix?
<mange>I had no problems with building guix. In fact, it was much easier because we also include the bootstrap dependencies in the guix package for guix.
<civodul>right
<taylan>I have a file-system with (device "/dev/mapper/home") and a mapped-device with (target "home"), yet I get the error: "file-system-/home requires mapped-device-home, which is not provided by any service" what might be the problem? https://i.imgur.com/B22hnAk.png
<mubarak>civodul: after reading the manual page for e2fsck, i run "e2fsck -p /dev/sda2" and the output was "$3 = 0" and nothing change. e2fsck manual say don't use it on a mounted partition, so I plug USB flash with GuixSD on it and run-ed the same command on sda1 and sda2. On sda1 it say "recovering journals" and "root: clean *numbers to blocks on sda1 //
<mubarak>I typed this because I don't remember the numbers of blocks that e2fsck print*. after rebooting it's the same thing most of the commands says"No such file or directory".
<mubarak>I noticed that ls command does not accept options(ls -la) while "e2fsck -p /dev/sda2") doesn't say No such file ....
<efraim>guix environment: error: build failed: the group 'guixbuild' specified in 'guix-users-group' does not exist
<efraim>Guix on Ubuntu, after updating root's and user's profile
<mubarak>civodul: could it be that I used partitions label in /etc/config.scm like (device "root") for " / " instead of /dev/sda1 ? and also "home" instead of sda2 ?
<civodul>taylan: what if you remove the 'dependencies' fields in your file systems?
<civodul>/dev/mapper is treated specially
<taylan>civodul: hmm, it accepts it when I make the dependencies field of the home file system an empty list
<taylan>will it work fine during boot that way though? I also tried to put the root file system into its dependencies (by let-binding it outside the cons* expression) since that seemed more logical, but then it said file-system-/ is not provided by any service.
<civodul>taylan: i think it'll work during boot
<civodul>however could you post the failing config to bug-guix@gnu.org?
<civodul>it looks like a bug
<taylan>civodul: will do, thanks for the help
<mubarak>i guess i should edit file-system (device "root") to /dev/sda2 and also for "home" label. i should use "guix reconfigure /mnt/etc/config.scm" instead of running "guix system init /mnt/etc/config.scm" right? does running "guix system init" going to extart gzip packages in /mnt/tmp/guix-inst again and make the file system messy?
<civodul>mubarak: the Bournish prompt that you got is because the file system needed an fsck
<mbakke>How can I hide a package from a module?
<mbakke>#:use-module ((gnu packages base) #:hide (which)) does not work.
<adfeno>mbakke: #:select
<adfeno>and put the exported things you want there
<mbakke>adfeno: Good idea, I'll try that.
<adfeno>for example, if (gnu package base) exports bash, and I only want that, I can do something similar to: #:select (bash)
<pkill9>what use-case is there for hiding a package froma module?
<pkill9>from a*
<mbakke>Actually, I don't think qt.scm requires (gnu packages base) at all, since it does not access the glibc variable directly. Will check that the build works without it.
<mbakke>pkill9: Currently, if you compile the master branch, there is a warning about a variable conflict.
<pkill9>i've been working on two wrapper for Guix-related actions: https://github.com/pkillnine/guix-multitool/tree/master
<pkill9>guix-module-creator takes commandline flags and generates a package description, and guix-config-update does a `guix pull` and adds some symlinks such that the guix repos that get compiled don't get garbage collected and are timestamped in ~/.config/guix
***emacsomancer_ is now known as emacsomancer
<taylan>mbakke: you can rename imports. I don't remember the syntax but you can e.g. rename only 'which' and leave the rest.
<marusich>See (guile) Using Guile Modules
<marusich>That feature is #:prefix or #:renamer
<taylan>but those don't rename an individual identifier... it seems #:select does that after all.
<marusich>oh, i see
<taylan>ACTION wrote too much rnrs scheme and not enough guile scheme :P
<lfam>efraim: You'll need to use nscd to help guix-daemon find the build users
<lfam>efraim: On Debian, `apt-get install nscd` did everything needed, installing and starting the service
<efraim>lfam: thanks, I'll try that
<lfam>glibc 2.26 removed from its default configuration the feature that did this before
<efraim>Yeah that made it work
<lfam>Check the package of libnsl for breadcrumbs / notes
<marusich>Does anyone here listen to audio files encoded with MP3 using Guix-installed software? What player do you use? The only one I know of that works for me is mplayer, which is fine, but I sure wish I had a nice graphical interface.
<lfam>I use MPD with a client (ncmpcpp)
<marusich>Do you run MPD on the same machine, or do you run it on some remote machine in your home?
<efraim>I normally just use mpv from tilda for music or movies
<lfam>marusich: I run it on my laptop for when I'm on the go, and I also run it on a home server and connect from my laptop
<rekado_>marusich: I use mpv
<lfam>People who like terminal stuff also like cmus
<rekado_>there’s also an emacs interface (EMMS)
<efraim>Sometimes when I'm in TTY-land I'll even play with mpv file -vo=caca
<marusich>Hmmm... mpv seems kidna like mplayer. I was hoping to get something like Rhythmbox, with an easy-to-use-casually GUI.
<marusich>Rhythmbox doesn't work with MP3 files, not sure why. I guess maybe it Guix doesn't built that support in or something.
<efraim>Do you have gstreamer plugins installed?
<marusich>Probably not. How does one do that?
<rekado_>you can get a simple GUI with “mpv --player-operation-mode=pseudo-gui”
<marusich>I just used the Rhythmbox that comes with the gnome desktop services.
<rekado_>(or by starting it from a .desktop file)
<marusich>Hah, cute.
<lfam>There is clementine, which I think is a graphical music player
<rekado_>marusich: the gstreamer plugin packages start with “gst-”
<marusich>I see. So these Guix packages are designed to require the user to install multiple packages into their profile, in order to work?
<marusich>I didn't ralize
<marusich>realize
<lfam>Most aren't :)
<marusich>That's why... :)
<rekado_>a lot of players (including browsers) use the gstreamer framework.
<lfam>I'd argue that if a music player doesn't play MP3s, it's a bug
<marusich>Let me try that.
<rekado_>for gstreamer the user (or distro maintainer) needs to decide what features to enable.
<rekado_>I suppose we could add some common plugins to the example desktop config.
<efraim>We should put together a couple of sample manifests
<efraim>Finally built back out to hello on my aarch64 build machine
<marusich>Let me try that.
<marusich>oops
<marusich>I should really start using manifests to control my profiles, instead of relying on the imperative commands like "guix pacakge -i"
<marusich>Does the "-u" option for "guix package" make sense if one is only declaring their profile in a manifest?
<marusich>I guess the answer is yes, since you can install a set of things using a manifest, and then choose to just update one later if you want.
<efraim>i start with a manifest and add a few things here and there while I decide if I really want them in my manifest
<efraim>and with '-u' you can also skip updating libreoffice
<marusich>I just did "guix package -i gst-libav" and now Rhythmbox is finding many, many more songs than before. I guess this was the issue.
<marusich>Wow, gst-libav is 656 MB.
<mbakke>ACTION picks up chromium work
<marusich>Hmmm.. I think we need to be explicit somehow about how plugins need to be handled for various apps. I think I know Guix pretty well, and it didn't even occur to me to install gst-libav until you mentioned it might be necessary.
<marusich>Maybe I should write a small section in the manual to discuss plugins.
<marusich>Seems like there are a lot of ways to deal with plugins - install them manually using the software (e.g., like you can with Icecat), require the user to install separate packages (like with rhythmbox and gst-*), or even provide a documented helper procedure that can produce custom package definitions with the necessary plugins, to make it easy for someone to define their own custom package (like make-linux-libre, but say for rhythmbox).
<marusich>I doubt there is any consistency between the methods right now, which is fine. But if I couldn't figure out why Rhythmbox was working on my own, I'm sure many others can't, also.
<marusich>It also took me a LOT more work than necessary to understand how to install Icecat plugins.
<marusich>It would have also been helpful if, upon installation of a package that can be "enhanced" with plugins like rhythmbox, I received some kind of a warning that said "hey! you might need to take more steps to get things working!" - sort of like how we warn people about search paths.
<marusich>efraim, thanks for the tip. I will try it out.
<mbakke>marusich: Being able to display profile notifications would be great.
<marusich>mbakke, maybe...I can also see it getting out of control and being spammy
<marusich>but yeah, there are certainly some cases where it seems helpful, like this. how else, except by asking others and looking at the manual, was I to know I needed to install more?
<marusich>Anyway, most importantly, thank you all for your audio suggestions. I'm happily listening to MP3s now, using Rhythmbox, which is great for lazy people like myself!
<marusich>My days of running commands like "for song in *; do mplayer $song; done" are over! :P
<efraim>lol
<efraim>well, now to see if I can unbreak clisp on aarch64 before the next release
<efraim>aarch64 goes from 7 test failures to 11 with the clisp beta
<efraim> https://bpaste.net/show/b2b8f78d43c8 if anyone wants to test it on x86_64
***danialbehzadi1 is now known as danialbehzadi
***danialbehzadi1 is now known as danialbehzadi
<marusich>It seems like everything useful that one wants to do on a computer these days requires CAP_SYS_ADMIN.
<marusich>One wonders what the point of adding capabilities to Linux was if you just need CAP_SYS_ADMIN to do what you need to do...sigh.
<marusich>It's nice to be able to control capabilities with fine grain, but it just feels silly when I always find myself needing CAP_SYS_ADMIN.
<civodul>Linux capabilities are not of much use...
<marusich>This is in regards to https://lists.gnu.org/archive/html/guix-devel/2017-11/msg00406.html
<marusich>guix-daemon requires the CAP_SYS_ADMIN to do its job
<marusich>all those flags in clone() and unshare()
<marusich>I am testing it out in a docker image to see if it's easy (hah!) to get a minimal set of capabilities I can just add to docker's --cap-add option.
<marusich>I guess it isn't enough; "cannot set loopback interface" :(
<marusich>I will keep poking at it.
<civodul>oh Docker doesn't use user namespaces?
<civodul>i would expect these clone calls to succeed there
<marusich>The docker daemon can use user namespaces
<marusich>I do not know if mine does.
<civodul>ok
<marusich>do you mean that, if the docker container was started in a user namespace, you would expect the clone calls within that container to succeed?
<marusich>I'm a little confused becuase the Docker documentation discussing "user namespaces" seems to really be talking about some kind of mechanism for mapping UIDs in the container to UIDs in the host, which I don't really care about doing: https://docs.docker.com/engine/security/userns-remap/#prerequisites
<marusich>In any case, I'm not sure this is expected to work out of the box on Docker.
<marusich>See the very last line on that page: "While the root user inside a user-namespaced container process has many of the expected privileges of the superuser within the container, the Linux kernel imposes restrictions based on internal knowledge that this is a user-namespaced process. One notable restriction is the inability to use the mknod command. Permission is denied for device creation within the container when run by the root user."
<marusich>Apparently setting up the loopback device also requires CAP_NET_ADMIN. Lovely.
<marusich>My lists of required capabilities is quickly approaching equivalence with --privileged=true :/
<marusich>If you're curious, it's because of the SIOCSIFFLAGS in build.cc.
<marusich>Which, apparently, requires CAP_NET_ADMIN: http://man7.org/linux/man-pages/man7/netdevice.7.html
<marusich>Progress! "cannot pivot old root directory"
<marusich>I wonder what ADMIN capability this one requires.
<civodul>uh
<civodul>marusich: user namespaces are about UID mapping
<marusich>I see. I didn't realize that the creation of a new "user namespace" would require that the new UIDs map to UIDs outside the namespace, but I suppose that's reasonable.
<marusich>Regardless, the Docker documentation states clearly that when user namespaces are enabled, root-in-the-container cannot do everything that one would normally expect.
<civodul>yeah, that's for sure
<marusich>So, even though I'm not sure if my docker daemon is using user namespaces, it seems like I'd have to explicitly add capabilities anyway.