<rekado_>I’m ready to merge core-updates now. <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>rekado_: thank you for all your work on the haskell stuff :) <civodul>i just pushed a few commits, you might have to merge again :-) <rekado_>I’m happy that so many volunteered near the end to push it into shape <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>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? <efraim>i looked at the one in mescc-tools and I didn't want to recreate it :) <rekado_>it defines one extra package in addition to the package for the project itself. <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 <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 <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 <ng0>why? for \\\\$ it works <rekado_>[ and $ have meaning in the match string <rekado_>they need to be escaped, so that they are not considered to be regex syntax <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_>why would escaping be needed in the replacement? <ng0>I haven't looked at the substitute* code in a while. I jus tassumed. <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. <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? <pkill9>actually basically the same as your question davidl lol <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. <rekado_>I’m not getting Qt substitutes for x86_64. <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 <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 <mange>Hey, does anyone know the magic incantation to get <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>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'? <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>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 <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>typically ASPELL_DICT_DIR=/home/ludo/.guix-profile/lib/aspell <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 <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 <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 <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>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. <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? <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? <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>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? <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>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. <taylan>but those don't rename an individual identifier... it seems #:select does that after all. <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 <lfam>glibc 2.26 removed from its default configuration the feature that did this before <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 <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? <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) <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? <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 <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>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>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>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 ***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>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" :( <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>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>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>Progress! "cannot pivot old root directory" <marusich>I wonder what ADMIN capability this one requires. <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. <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.