IRC channel logs

2020-01-14.log

back to list of logs

<kirisime>Do patches applied to package source need to apply perfectly? gnome-desktop-thumbnail-script.c is some three lines off around the point where I'd hope to change bwrap's arguments and I'm wondering if I could reuse the patch I have for nautilus.
<nckx>kirisime: No. What you're referring to is called ‘fuzz’ and it's allowed. As long as ‘patch -Np1 -i …’ accepts it, Guix should.
<nckx>3 lines changed is a bit much though, try it & see.
*nckx should've added --dry-run to that ‘patch’ example.
<mjw>mbakke, Thanks for the reply. But we are slightly out of phase. I'll need some sleep first. So will reply and update patch tomorrow.
<mjw>The patches are also here btw: https://code.wildebeest.org/git/user/mjw/guix/ In case the not applying comes from my mailer mangling them.
<mbakke>mjw no worries, I'm signing off shortly too :-)
<mjw>But I will rebase and reword them tomorrow anyway.
<mbakke>thanks!
<mjw>mbakke, quick question.
<kirisime`>So if three lines is too far off I'll fabricate the line numbers in the patch so it's close enough for both.
<mjw>mbakke, So guix refresh -l elfutils is impressive
<mjw>Building the following 979 packages would ensure 1735 dependent packages are rebuilt
<mjw>cute
<mbakke>mjw: most of it comes from 'mesa'.
<mjw>but why?
<mbakke>mesa is a popular package :-)
<mbakke>almost all graphical programs depend on it
<mjw>I mean, we (with my upstream hat on) always make sure we maintain API and ABI.
<nckx>kirisime`: Oh, you mean the context lines are identical but only the numbers (offset) are slightly off? That's fine! I thought you meant that 3 context lines had actually changed.
<mjw>So so name stays the same, all symbols are versioned.
<mbakke>mjw: guix does not care about ABIs, even a adding a #t to the build procedure would require a rebuild of all dependent packages.
<mjw>mbakke, also can you see what it would look for a subpackage?
<mjw>mbakke, ewww. And we work so hard to make sure that isn't necessary. o well
<kirisime`>nckx: Right. Next is to figure out how to pass the user's search paths to the bwrap call in these files, otherwise thumbnailers installed only in the user's profile won't work.
<mbakke>mjw: ABI stability allows us to "graft" important changes without requiring a rebuild, but that comes with its own drawbacks
***kirisime` is now known as kirisime
<mjw>mbakke, I mean, if we move some stuff into e.g. elfutils:libelf for example (and all dependencies were updated..) how would I see the refresh stats?
<mjw>mbakke, OK, I'll study "gafts" then :)
<mbakke>mjw: hmm, good question, does not look like guix refresh supports outputs currently
<mjw>mbakke, also is there a magic (guile I assume) incantation to find all packages that have libelf as input?
<nckx>We tend to use grafts sparingy, mainly for security updates and other ‘very important fixes’.
<mbakke>mjw: unfortunately you would have to traverse the package graph yourself with 'fold-packages' :/
<mjw>mbakke, to answer your other question, I think guix should do what every other distro does. libelf is dead upstream for some years. Just use elfutils:libelf. They are API compatible (but not ABI).
<mjw>(of course I am slightly biased as upstream elfutils maintainer)
<mbakke>mjw: :-)
<mjw>But it would be an interesting experiment to have a whole distro to simply "refresh" with our libelf.
<nckx>mjw: Biased or not, I didn't know that at all 🙂 So thanks.
<nckx>Guix allows you to do just that.
<mjw>OK. Now I really need some sleep. Thanks all. I'll have some homework to do and some guile folding to learn :)
<mbakke>mjw: good night! :)
<NieDzejkob>I'm looking at fixing #38884 and some other issues around guix system switch-generation (and roll-back), and I think I need to have the operating-system object. Does configuration.scm in, say, /var/guix/profiles/system-42-link/ always exist, and is there a reason not to evaluate it during switch-generation?
<nckx>NieDzejkob: What's configuration.scm here?
<NieDzejkob>copy of the file passed to init or reconfigure
<NieDzejkob>when that specific generation was created
<NieDzejkob>like, I think provenance can be disabled, for example
<bavier>oh, new qtwebengine package :)
*bavier has mixed feelings about yet another giant web-browser package to build...
*nckx makes note to blacklist it on their farm.
<nckx>qtwebkit is tedious enough thx.
<bavier>:)
<mbakke>at least this one can be built in parallel...
<mbakke>i hope to get rid of qtwebkit soon
*mbakke signs off for today
<NieDzejkob>any package can be built in parallel with other packages, though, so it doesn't matter that much for a build farm
<nckx>Not if it's a bottleneck.
<bavier>I suppose now I can update "my" qutebrowser and ghostwriter packages to use webengine now
<nckx>I often have idle cores.
<mbakke>NieDzejkob: 'guix offload' has a notion of "slots", so it's silly if it takes up a 64-core machine with its single-core build
<nckx>Well, more often than I'd like anyway.
<nckx>NieDzejkob: You can't assume that /etc/system.scm (or whatever) is a single file. That's only true for the most basic (dare I say ‘beginner’?) systems. It can depend on custom modules and files that aren't trivial to ‘enclose’ safely.
<nckx>Or that it even makes sense to evaluate it at a later date.
<kirisime>I now have a patched gnome-desktop package and would like to use it for all the packages that depend on gnome-desktop. Does guix have such a mechanism yet?
<nckx>kirisime: Yet? The current mechanism is input rewriting (in the manual), but it's been around for ages. If you mean something else: no. Not built-in.
<nckx>I guess it's somewhat similar to pkgOverrides in Nix, if that even still exists.
<nckx>NieDzejkob: Which information is currently missing to do what you'd like to do? And (if I read you correctly) why would you prefer to disable or avoid provenance tracking?
<NieDzejkob>no, by provenance tracking I mean that I wouldn't want my code to break when someone disables provenance tracking
<NieDzejkob>the information missing is the bootloader configuration, for one, see guix/scripts/system.scm:383
<roptat>hopefully, I just fixed the mysql service
<nckx>NieDzejkob: Right.
<NieDzejkob>I also need the activation script, and I was kinda eyeing operating-system-activation-script for that
<roptat>sneek, later tell potential-alex I think I solved the mysql issue, can you run guix pull and check whether it's solved for you? Thanks :)
<sneek>Okay.
<raghav-gururajan>civodul Sure! I am on it.
<roptat>now on to changing that default icecat configuration
<nckx>My view is that /etc/whatever.scm should only run once. Anything else is both too complex and too brittle. If the problem is that some of its output is thrown away when it later turns out to be needed (bootloader is a great example), that's what should be fixed. Serialise that somewhere.
<NieDzejkob>OK, I'll do that then
<nckx>We need to capture the output, not the code's closure.
<nckx>Does that make sense?
<nckx>NieDzejkob: Not planning a last minute addition to the FOSDEM Guix Days guest list by any chance?
<NieDzejkob>sadly, no, I don't really have the means to go to a conference. Why are you asking?
<raghav-gururajan>Folks! How to put more than one license in the package definition?
<NieDzejkob>I think the license field can be a list
<raghav-gururajan>That would be nice.
<NieDzejkob>grep for '(license (list' for examples
<leoprikler>That is nice.
<raghav-gururajan>Cool! Thanks NieDzejkob
<nckx>NieDzejkob: Oh, I would have said ‘Let's get a Fix Rollback Working Group going at FOSDEM 😉 Good night!’ instead of just ‘Good night’. That's all.
<nckx>raghav-gururajan: Please try to add comments saying which files/directories are covered by which licence, or in which circumstances which licence applies, or… However, try to keep them short. Plenty of examples in ‘grep -A5 '(license' gnu/packages/*scm’ I'm sure.
<nckx>Good night!
<leoprikler>In which way is Rollback broken?
<raghav-gururajan>nckx Sure! thanks for the tip. Good Night!
<NieDzejkob>leoprikler: doesn't run activation scripts, see #38884
<NieDzejkob>I might send a patch for that tomorrow
<leoprikler>oh, nice
<leoprikler>I think I might have encountered something similar with /etc/static
<PotentialUser-52>hi Guix! does anyone know why this config wouldn't create a /var/log/Xorg.0.log? http://ix.io/27lu
<PotentialUser-52>I was having gfx issues... but reinstalled and pulled this config.. and it's not even trying to start X now :/
<vertigo_38>PotentialUser-52: i found mine in '~/.local/share/xorg/Xorg.N.log', my system does not have a /var/log/Xorg.N.log either ...
<PotentialUser-52>vertigo_38: hmm... are you running it w/o root? I don't have a /root/.local/ directory
<vertigo_38>I'm reconfiguring with 'sudo -i', but from my user account. The file in my home directory was the only xorg-log file, that I found. But I don't know where it ends up as root :(
<PotentialUser-52>ahh.. I'm reconfiguring as root (eventually I want to have a very small list of packages as root and everything else as the user)
<PotentialUser-52>ideally no packages as root
<NieDzejkob>how you reconfigure shouldn't matter here
<PotentialUser-52>is gdm-service-type + %base-services all I need to get gdm started?
<alextee[m]>My guix died :/
<alextee[m]>It crashed in the middle of my work and I can't boot now
<alextee[m]>I think its the 2nd time this happened, im in grub rescue
<alextee[m]>Any way to meaningfully report this?
<alextee[m]>Like a log somewhere of what went wrong?
<alextee[m]>(Also any way to fix it? :P)
<alextee[m]>Well, reinstalling guix, thankfully i saved my profile package list and system configuration
<roptat>did your disk crash or something?
<roptat>what did you try to do, and how did it crash?
<roptat>was it in the middle of a system reconfigure maybe? (that's the only way I can see grub's config being broken...)
<roptat>alextee[m], ^
<alextee[m]>I was just typing stuff in librewriter
<alextee[m]>Ah i do have a system upgrade to run every day at that time though
<roptat>what do you mean?
<alextee[m]>I set a herd cronjob or something to run upgrade every day at 0:05
<alextee[m]>Guix upgrade i think
<roptat>mh... that shouldn't play with grub
<alextee[m]>It was about the time the crash happened
<roptat>is the grub menu completely broken, or have you entered the guix system in an emergency guile shell?
<alextee[m]>Im reinstalling now
<roptat>oh
<roptat>also, was your filesystem still there?
<alextee[m]>Last time it happened something changed my grub config from uefi to the other thing roptat
<alextee[m]>I didnt check, no patience lol. Just reinstalling now
<roptat>well, next time it happens, be more patient, now I don't think we can find the reason ^^'
<alextee[m]>Noted lol
<nckx>alextee[m]: What did GRUB print before the rescue prompt?
*nckx can't sleep.
<alextee[m]>nckx: er, something about a partition
<nckx>OK, maybe next time… 😛
<alextee[m]>Yeah..
<nckx>This does not sound like Guix was involved.
<madage>is there a reason why carl9170.fw isn't packaged to guix?
<madage>besides the usual, no one cared enough..
<nckx>madage: No, because no one had the hardware.
<madage>so I'm the unlucky one
<madage>nckx: I think the first question I should be asking is: is there a way to grab its source on linux-firmware.git withou having to download the entire repo?
<nckx>In procedure load-linux-module/fd: No such file or directory.
<nckx>More great error reporting in the Guix tradition. Thanks!
<madage>sorry, I did not understand your answer
<nckx>madage: It was not an answer.
<madage>oh ok
<nckx>I am trying to reboot a server and Guix wouldn't be Guix if it didn't turn even that into a fun game of mystery and intrigue.
<terpri>madage, not that i know of. easiest to package all the firmware together if you need any of it
<nckx>madage: As to your question: looks simple enough, just download https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/carl9170-1.fw?h=20191215 (where the last number is a tagged release, and can serve as your VERSION).
<madage>nckx: but isn't this the already compiled version?
<madage>I was thinking I had to grab the dir carl9170 and compile from there
<madage>ops.. carl9170fw
<nckx>Oh, you want to contribute it to Guix? Tanks!
*nckx looking.
<madage>nckx: it's currently above my knowledge, but I think with enough beating I might get somewhere
<madage>I know how I could just grab the binary file and put into my store
<nckx>Yeah, sorry for assuming that you weren't a masochist 😉
<madage>hahaha
<madage>I'm not going to start the pain sessions right away, so, if you need to sleep, go for it
***apteryx_ is now known as apteryx
<nckx>madage: I need to but I can't, and I'm to angry at the Guix initrd to rest now.
<madage>and thank you terpri
<nckx>madage: I must admit the carl build system is actually not that bad (\o/) but packaging this from source will still require packaging a SuperH toolchain first, like the htc firmware required an Extensa toolchain. Doable, just be aware that you'll be writing more than one package for this silly firmware file.
<roptat>if that firmware is free software, it should be in linux-libre, no?
<roptat>oh, linux-firmware is not the kernel
<nckx>roptat: Not really.
<nckx>Yeah.
<madage>nckx: ok, noted
<nckx>roptat: Plus, building it from source would be so much cooler anyway 😉
<roptat>of course :)
<madage>I was hoping the definition on ath9k you give me a head start, but apparantly it didn't
<nckx>Everything it needs is in Guix (no GCC 2.x dependency here), ‘just’ needs sh-elf cross target support. Good upstream.
<madage>*apparently
<alextee[m]>Is there a way to install guix offline?
<nckx>madage: You mean ath9k-htc-firmware? That is actually a good example: the meat is in creating the toolchain packages you see passed as native inputs (extensa for ath9k-htc-firmware, superh for carl).
<alextee[m]>Oh no, i just reinstalled guix and it still goes to grub rescue!
<nckx>alextee[m]: No.
<alextee[m]>nckx: it says no such partition
<nckx>alextee[m]: Yes, because this was never a Guix failure…
<nckx>I'm afraid my GRUB's a little rusty, I no longer know exactly what to type at the rescue prompt I'm afraid.
<madage>yep ath9k-htc-firmware..and now I see what you are talking about, it's on native inputs with a cross-gcc
*alextee[m] searches the internets
<madage>but why does it need a cross-gcc?
<nckx>alextee[m]: The game you are playing, if you choose to accept it, is setting $prefix to a value that makes ‘insmod normal’ start a fully-functional GRUB. If you choose not to play, I guess you can fiddle with your EFI set-up or reinstall GRUB or something.
<nckx>madage: Because the firmware does not run on your CPU.
<madage>so you are telling me that there is a cpu on the dongle?
<nckx>That's why building a little firmware file is such a huge undertaking, why the README says this will take a while (and 1.2 GiB of disc space), and why I first assumed you just wanted the binary blob for home use 😉
<nckx>madage: Well, yeah.
<alextee[m]>nckx: hmm i see thanks
<nckx>madage: https://en.wikipedia.org/wiki/SuperH
<madage>I'm flabbergasted
<madage>but starting to get the picture
<madage>oh it's the Sega CPU, living and learning, thanks nckx
<nckx>Cars & Segas & Wi-Fi dongles 🙂
<nckx>Our world is nuts, isn't it?
<madage>very much indeed
<alextee[m]>Im not seeing my partition in grub hmm
<madage>ah I've found the github repo of Christian Lamparter, so my first question is solved... no need to download the whole of linux-firmware
<drakonis>right-o
***sneek_ is now known as sneek
***ng0_ is now known as ng0
<civodul>hey there!
<janneke>hi civodul!
<potential-alex>roptat: Thanks for checking out the issue. I'm testing now. Will let you know if it's working for me!
<sneek>Welcome back potential-alex, you have 1 message.
<sneek>potential-alex, roptat says: I think I solved the mysql issue, can you run guix pull and check whether it's solved for you? Thanks :)
<civodul> https://fosdem.org/2020/interviews/ludovic-courtes/
<kmicu>The backlog was long but it had funny bits like NieDzejkob’s ‘everything on guix is built from source, tracing back to a few megabytes of root binaries’. 👍
<kmicu>‘Interview with Ludovic Courtès Guix: Unifying provisioning, deployment, and package management in the age of buckets’
<kmicu>‘I work on GNU Guix, which I co-maintain together with a group of great people.’ Barely starting and already good vibes.
*kmicu xD at reference to Rich’s Simple made Easy talk
<civodul>:-)
<NieDzejkob>sneek: later tell PotentialUser-52: you need elogind too
<sneek>Will do.
<NieDzejkob>[11:39] <000000NieDzejkob> sneek: later tell PotentialUser-52: though keep in mind that reconfiguring that adds or removes elogind will break sudo and login until reboot making rebooting a challenge. Keep a root shell open or remember how to use sysrq+reisub
<NieDzejkob>ahh, fuck, and I just wanted to save some typing
<NieDzejkob>sneek: later tell PotentialUser-52: though keep in mind that reconfiguring that adds or removes elogind will break sudo and login until reboot making rebooting a challenge. Keep a root shell open or remember how to use sysrq+reisub
<sneek>Got it.
<NieDzejkob>kmicu: how's that funny? is it untrue?
<potential-alex>roptat: OK, I can confirm this fixed the issue. Very interesting to know you can reference specific outputs using gexps. cool!
<erikg>what's the difference between en_US.utf8 and en_US.UTF-8, and why are they alternatively used in guix's packages
<erikg>i'm trying to debug issues like `substitute: /gnu/store/q19l04vd2za80mk1845pz7r8cz29qk43-bash-minimal-4.4.23/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.utf8)`
<erikg>en_US.utf8 doesn't seem to exist, so it's not surprising that setlocale won't switch to it
<PotentialUser-39>a eeror in website
<sneek>Welcome back PotentialUser-39, you have 2 messages.
<sneek>PotentialUser-39, NieDzejkob says: you need elogind too
<sneek>PotentialUser-39, NieDzejkob says: though keep in mind that reconfiguring that adds or removes elogind will break sudo and login until reboot making rebooting a challenge. Keep a root shell open or remember how to use sysrq+reisub
<PotentialUser-39>Blog — Programming inferfaces
<PotentialUser-39>i think someone replace the T by a F
<PotentialUser-39> https://guix.gnu.org/blog/ in the right panel
<PotentialUser-39>aste
<NieDzejkob>ah, I just realized that PotentialUser-* is what the webchat default nickname is
<PotentialUser-39>yep is it
<PotentialUser-39>it is
***PotentialUser-39 is now known as lapin
***lapin is now known as Lapintiti
<Lapintiti>! rename !
<Lapintiti>did you notice the mistake ?
<efraim>hello!
<sneek>Welcome back efraim, you have 2 messages.
<sneek>efraim, mehlon says: hey I heard you were working on updating the gnunet package?
<sneek>efraim, mehlon says: if not, I can contribute a patch to update it to 0.12.2
<efraim>sneek: later tell mehlon: I don't mind if you work on the gnunet package. As long as the tests pass. We don't have a service for it yet.
<sneek>Will do.
<efraim>sneek: botsnack
<sneek>:)
<mroh>first guix pull, installed on gentoo from the nix-guix overlay. something seems wrong with my progressbar: http://dpaste.com/28B71J7
<leoprikler>mroh: which guile are you using?
<zimoun>civodul: nice interview! and good teaser... :-)
<zig>here is the link if you are too lazy to backlog: https://fosdem.org/2020/interviews/ludovic-courtes/
<pimi>hello all, anybody with some experience related to hpcguix-web interface?? (https://github.com/UMCUGenetics/hpcguix-web)
<pimi>I am interested to refresh the list of the packages on it
***sturm_ is now known as sturm
***sturm is now known as Guest90913
<civodul>pimi: hpcguix-web is what's running at https://hpc.guix.info/browse
***Guest90913 is now known as sturm1
<NieDzejkob>what's the difference between search-paths and native-search-paths?
<leoprikler>Probably the way they interact with inputs vs. native-inputs inside build environments.
<NieDzejkob>oh, that would make sense. search-paths need some more documentation...
<leoprikler>Agreed.
<zimoun>Naive question: I have a file containing an old R version (say 3.4.3 coming from say `git show cbe1314a7e:gnu/packages/statistics.scm > /tmp/stuff/old-stats.scm` + module tweaks), then `guix build -L /tmp/stuff r-minimal@3.4.3 works. However, I would like to build the package r-rcpp@1.0.3 with r-minimal@3.4.3 and `guix build -L . --with-input=r-minimal=r-minimal@3.4.3 r-rcpp` does not work as expected because r-minimal@3.6.2 is fetched
<zimoun>and not re-written. What do I miss?
<roptat>I think with-input doesn't work with implicit inputs
<civodul>yup
<zimoun>roptat, civodul: zut! I thought all the DAG could be re-written.
<zimoun>an idea to achieve?
<leoprikler>you could define your own package inside a package file/manifest, which explicitly references r-minimal
<zimoun>leoprikler: yes it is what I am doing for this one, but it is not convienent at all. I cannot re-write all the R packages by hand just to recompile them with another R version.
<NieDzejkob>maybe you could use an inferior?
<NieDzejkob>(as in, the guix feature, not "offload to an intern")
<leoprikler>you could very likely use FP patterns such as map to achieve this
<zimoun>NieDzejkob: I am not sure to see how an inferior could help...
<leoprikler>look e.g. at package-with-python2
<zimoun>leoprikler: yes, I can write code that write code. But it seems better to be able to re-write any (implicit) inputs. For example, if I want to compile a R package with a specific R version compiled with a specific GCC verision.
<zimoun>Maybe it is related to "parametrized package" that Pierre is talking about. :-)
<leoprikler>no one is stopping you from adding explicit-gcc, explicit-clang, explicit-make, etc.
<zimoun>leoprikler: adding where?
<pimi>civodul: exact
<pimi>civodul: exactly**
<leoprikler>you could add it in your own files, but you could also contribute it
<leoprikler>the thing about implicit inputs is, that they're implicit, as the name implies
<leoprikler>hence you don't know at the transformation level whether a given package actually needs that input or not
<leoprikler>consider e.g. you're building two packages, one with python and one with r
<leoprikler>you want to overwrite both the python and r version used respectively, but neither program should have the dependencies of the other as input
<leoprikler>with explicit inputs, you can do that, with implicit ones you can't
<zimoun>leoprikler: maybe I miss something... For example, "guix graph" shows all the inputs so the information is there. And do you mean with your example: build all python packages with gcc@7 and all R ones with gcc@8? And some packages depend on gcc so which version chooses? Do I understand you correctly?
<civodul>zimoun: you can try "guix graph -t bag" to view more details
<leoprikler>well yours would truly be impossible, even if you changed the order of operations
<zimoun>civodul: do you mean it is huge? :-)
<NieDzejkob>zimoun: well, an inferior will build all packages with your old R, AFAIU
<civodul>zimoun: i told you, more details! :-)
<zimoun>civodul: come on, details are lacking. ;-) Na! still building the graph... dot is busy :-)
<civodul>try xdot (not any faster, but more convenient)
<civodul>but yeah, it's not practical for packages "high" in the graph
<zimoun>thank you, I did not xdot.
<zimoun>I understand it is consuming but I am not (yet?) convinced that it is not practical. I need to fail by myself. ;-)
<zimoun>NieDzejkob: it is a bit more complicated. Because the commit containing the R version 3.4.3 is older than the introduction of inferior, so "guix time-machine" cannot work. And even it would work, the r-rcpp version that I want is introduced to a new commit. Well, the inferior cannot help here, IMHO. And the solution is what leoprikler explained: re-write by hand by exposing the implict inputs that I want to re-write.
<leoprikler>rather than "re-write by hand" I'd suggest to say "re-write by scheme", as adding some input to a bunch of packages can still be automated to a certain extent
<zimoun>leoprikler: yes! sorry, that what I would mean. :-)
<jonsger>civodul: so guix is not yet ready to be built and used with Guile 3.0?
<zimoun>leoprikler, civodul: if parameters of the "build-system" is exposed, then does it help? For example, changing the version of the "compiler".
<leoprikler>After having seen the hell that is Gentoo, I'm certainly not a big supporter of parameters.
<roptat>zimoun: if you look at the python build system, it exposes #:python, which allows package-with-python2
<roptat>like leoprikler suggested :)
<leoprikler>IIRC other build systems only introduce implicit inputs if they aren't given explicitly already
<zimoun>roptat: yes, I was looking at the python build system, as leoprikler suggested. :-) Somehow, is it a good idea to have something general for all the build systems?
<roptat>We could make package-with-explicit-pytgon more general
<leoprikler>ahh, you meant those kinds of "parameters"
<zimoun>roptat: for example, if I want to recompile all the OCaml packages using a different version of the default OCaml compiler is not easy.
<roptat>At some point we had a package-with-explicit-ocaml though
<zimoun>roptat: :-)
<roptat>When we cried to get rid of ocaml 4.02
<roptat>tried*
<leoprikler>gnu-build-system has package-with-explicit-inputs already
<roptat>But it's specialized for the gnu build system
<leoprikler>Fair enough.
<zimoun>and if I want to rebuild say the package ocmal-cudf with another compiler version, I need to write my own package using inherit and package-with-explicit-ocaml, right? And if it is a python package, it is package-with-explicit-python. But could we imagine something built-in and working for any build systems?
<leoprikler>looking at package-with-explicit-inputs vs. explicit-python, the difference appears to be in how they are introduced
<leoprikler>explicit-python, explicit-ocaml, explicit-r, etc. all would have to add keyword arguments on the fly.
<leoprikler>in order to deal with their respective build systems
<civodul>new post! https://guix.gnu.org/blog/2020/reproducible-computations-with-guix/
<leoprikler>tbh. it would be preferrable, if all build systems respected #:implicit-inputs? #f
<zimoun>civodul, roptat, leoprikler: thank you the discussion. You helped me to clarify my mind. :-)
***ng0_ is now known as ng0
<nckx>There is no difference: en_US.utf8 and en_US.UTF-8 refer to the exact same codeset, but ‘utf8’ is the normalised one. Because codeset names aren't standardised and everybody uses slightly different ways to write the same thing (‘utf-8’, ‘UTF-8’, ‘UTF8’, …) and expect that to somehow work, glibc internally uses the lowercase alphanum-only version (‘.utf8’) which is always unambiguous. In Guix we tend to prefer the normalised .utf8 form but othe
<nckx>rs should work too.
<nckx>erikg: <en_US.utf8 doesn't seem to exist, so it's not surprising that setlocale won't switch to it> So now you know it is.
<nckx>erikg: The previous message was also meant for you.
<kirisime`>When I launch evince from the shell or by clicking a file in nautilus, some icons are missing. When I launch it from the application menu, all icons are present.
<lxsameer>hey folks, what's the easiest way to install a package from e schm file and debug the issues i might have ?
<kirisime`>lxsameer: guix install and guix build take the -f option for evaluating a file and operating on the package it returns, and other tools take the -e option for evaluating expressions where you can give a '(load "file.scm")' for the same effect.
<lxsameer>kirisime`: cool thanks
<bricewge>Hello Guix!
<nckx>o/
<bricewge>Looks like I had a filesystem corruption and my store is in a kinda bad state with a lot of "error parsing derivation".
<kirisime`>lxsameer: Now you can do `guix build -Kf file.scm' to build the file and preserve the build directory in case it fails, and `guix environment --ad-hoc -e '(load "file.scm")'' to quickly place the resulting package in an environment to test it in.
<lxsameer>kirisime`: ok, i'm still a bit confused around some of the concepts
<lxsameer>but I'll give it a shoit
<lxsameer>*shot
<lxsameer>thanks
<bricewge>I tried "guix gc --verify=repair,contents" but it keep failing with "cannot repair path". Any ideas on how to go back to a sane store?
<nckx>bricewge: Do you have substitutes enabled? The ‘repair’ part is really limited to ‘re-download that substitute if it exists’, I'm afraid. If it doesn't you're out of luck.
<bricewge>Indeed I have.
<bricewge>Out of luck? Like completely reinstalling Guix?
<nckx>bricewge: I don't know. I've kept backups of my entire store after my first brush with corruption like that (empty .drv files, I'm guessing?), now I treat it as valuable data, not something that can be easily regenerated.
<jonsger>substitute: updating substitutes from 'https://ci.guix.gnu.org'... 201.8% :P
<nckx>Maybe you can ‘guix pull [--commit?]’ you're way out of this, and just gc the corrupted files.
<nckx>jonsger: 😃
<nckx>*your… (FFS‽)
<jonsger>guix system: error: got unexpected path `/gnu/store/k1wqlr2ylfcxhp3hrxbwydvmxvb4rqdb-perl-test-without-module-0.20' from substituter
<jonsger>^ what does this error message mean?
<nckx>jonsger: I don't think we know yet. It's the new error message of the week! g_bor[m] was investigating.
<jonsger>the good thing: rerunning the command resolves it :P
<nckx>Yep. The error itself is also obviously bogus.
<nckx>¯\_(ツ)_/¯
<dongcarl>GUIX TIME-MACHINE
<dongcarl>Looking forward to meeting y'all soon too, but just wanna say that guix time-machine really solves a LOT of problems for me, and I'm glad someone implemented it
<dftxbs3e>nckx, hey! did POWER9 and you get to know each other yet? :D
<nckx>dftxbs3e: We have been on a handful of dates this week.
<nckx>I am learning 🙂
<jonsger>nckx: you have a POWER9 machine?
<nckx>jonsger: I wish. I have access to one, courtesy of the OSUOSL.
<jonsger>nckx: I have one. I can give an user. The machine itself and the bmc can be accessed via SSH from the net. I only need to figure out, how to get DynDNS properly working
<dftxbs3e>nckx, nice! any question so far? I'm here, and I'm sure jonsger also is, to answer!
<nckx>dftxbs3e: I'm not stuck yet, just moving slowly due to little and (mainly) highly fragmented time.
<nckx>Thank you though.
<nckx>dftxbs3e, jonsger
<nckx>*: Which OS do you use?
<nckx>I meant distro.
<dftxbs3e>I use Fedora, jonsger is on OpenSUSE Tumbleweed AFAIK.
<jonsger>that is correct
<dftxbs3e>Ubuntu Eoan could be a good choice too
<nckx>I'm currently on Debian 10.1, I should probably redeploy openSUSE since they seem to ‘support’ Guix better.
<dftxbs3e>Debian works great too
<dftxbs3e>from buster and beyond
<dftxbs3e>stretch didnt work great
<civodul>hey dongcarl! :-)
*nckx looks up buster→number, really not a Debian person.
<civodul>dongcarl: we'll meet at FOSDEM/Guix Days, right?
<dftxbs3e>Buster is 10
<nckx>Oh, OK, this is Buster.
<nckx>Yes.
<civodul>jonsger: looks like you hit a but that g_bor[m] has been chasing for a few days
<jonsger>nckx: I'm working hard that Guix/Guile works on openSUSE :P
<dftxbs3e>OpenSUSE Tumbleweed has GNU Guix's deps packaged by default apparently
<nckx>Right, good to hear, that's why I'm considering switching. I had to build guile-gnutls from source.
<nckx>Not the funnest fun imaginable.
<jonsger>dftxbs3e: yes it has
<jonsger>only guile-json3 is missing, because guix 1.0.1 doesn't support it
<dftxbs3e>nckx, I made build scripts for all the deps btw
<dftxbs3e>nckx, https://gitlab.com/lle-bout/guix/blob/core-updates/Dockerfile
<civodul>nckx: alternately you could try using Guix ;-)
<g_bor[m]>hello guix!
<nckx>civodul: You jokey man.
<nckx>dftxbs3e: Thanks! I've never used Docker…
<g_bor[m]>jonsger: does it work if you try it again?
<nckx>g_bor[m]: Hi!
<nckx>It did.
<civodul>jonsger: also, do you have a way to reproduce the bug?
<str1ngs>sneek: later tell peanutbutterandc . as far as I can see tuxguitar is missing some plugins. probably minimum tuxguitar-alsa. these need to be added to the build. will try to figure out more when I have time.
<sneek>Okay.
<jonsger>g_bor[m]: yes rerunning does "fix" it
<dftxbs3e>nckx, well you can use the shell commands independently
<jonsger>civodul: no idea how to reproduce. It just happens from time to time
<nckx>str1ngs: peanutbutterandc reported that too.
<str1ngs>nckx: thanks, was it a bug report do you know?
<nckx>str1ngs: Not that I know of, it was just here.
<nckx><peanutbutterandc> nckx, ... and it lacks a few plugins installed by default, too. Thank you for the confirmation.
<civodul>g_bor[m]: oh, just saw that you found the culprit! https://issues.guix.gnu.org/issue/39090
<civodul>awesome, lemme see
<str1ngs>nckx: okay thanks, I think that qutebrowser bug is finally resolved now
<str1ngs>well bug report*
<nckx>str1ngs: Congrats 😉
<g_bor[m]>civodul: I would not say so.
<str1ngs>nckx: though it could use some users. I don't really use qutebrowser myself
*nckx decides to deploy Fedora and follow dftxbs3e's steps instead of continuing with their own Frankendeb.
<g_bor[m]>I found a method to find out what the problem might be, and an unstatisfactory workaround.
<dongcarl>civodul: Yes! We will :-)
<civodul>woohoo!
<dftxbs3e>nckx, okay! I'm rebasing my fork on latest core-updates
<civodul>g_bor[m]: it would help greatly if we could reproduce it in a "normal" environment
<civodul>but so far i've failed to reproduce it
<nckx>Bah, OSUOSL's OpenStack doesn't allow ed25519 pubkeys…
<gnutec>Just see that Guix HPC show some thing about develop in Guix System. https://hpc.guix.info/blog/2020/01/reproducible-computations-with-guix/
<g_bor[m]>civodul: it would be really gerat.
<g_bor[m]>great.
<g_bor[m]>my actual problem is that I could not even trigger it ever in a nomral environment.
<g_bor[m]>there is one thing I could not try yet, I could try to do the rm substitutes trick on one my machines, and see if I can trigger it there.
<alextee[m]>Whats GHC?
<dftxbs3e>alextee[m], Haskell compiler
<drakonis1>its the glasgow haskell compiler
<alextee[m]>ah okay thanks
<alextee[m]>btw i fixed my issue
<alextee[m]>apparently my pc was trying to boot from my external drive instead of my main hard drive
<alextee[m]>so it was booting into grub rescue
<alextee[m]>but it's very weird that this happened so randomly
*jonsger wonders why one have to create the root directory for nginx by hand
<NieDzejkob>so upower is stopping immediately after I start it, where do I find the logs to troubleshoot this?
<NieDzejkob>checked dmesg and /var/log/messages...
<NieDzejkob>where does stdout/stderr of a service started by shepherd go?
<roptat>NieDzejkob: /dev/null by default I'm afraid
<NieDzejkob>okay, how do I change that default
<jonsger>guix doesn't have any firewall service or so?
<NieDzejkob>jonsger: there's iptables-service-type
<NieDzejkob>and nftables-service-type, take your pick
<jonsger>ah, I'm just to stupid to search. thanks NieDzejkob
<NieDzejkob>don't worry, the first thing I searched for was 'firewall', and there's nothing relevant for that search term
<NieDzejkob>re: /dev/null. I never thought I'd say that, but right now, I miss systemd.
<roptat>I agree it's terrible, but I don't know how to change that
<roptat>I think you could add a wrapper to the start script that capture stdout and stderr and put them somewhere, but that's not very clean
<drakonis1>alter shepherd to allow logging services
<drakonis1>rather than wrapping services
<roptat>Probably, this is something the shepherd could do, but I don't know how people would react to sueh a change
<NieDzejkob>they would fscking celebrate
<drakonis1>that would make it better for system admin tasks
<roptat>NieDzejkob: when I said /dev/null I meant it's ignored
<roptat>Maybe you coud report a bug for tgat? Or add to an existing one if you can find one
<roptat>There's 30939 if you want to read
<sameerynho>hey folks, I have this scheme file http://dpaste.com/2GHRAS4 and i'm trying to install `graalvm-mx` tool like this `guix build graalvm-mx -Kf gnu/packages/graalvm.scm` but I get this error with no traceback
<sameerynho>guix build: error: invalid field specifier
<sameerynho>how can i debug this
<zig>s/gi-version/git-version/
<zig>it is a typo.
<zig>sameerynho: ^
<sameerynho>zig: thanks but in general how can i see the traceback ?
<sameerynho>fixed it and still the same error
<zig>paste the whole error in dpaste.com please
<sameerynho>it's literally "guix build: error: invalid field specifier" nothing more
<zig>oh ok
<zig>what happens if you just call: guile gnu/packages/graalvm.scm?
<zig>sameerynho: usually there is a traceback. I am not familiar with the error you have.
<sameerynho>no i'm getting a traceback
<sameerynho>*now
<sameerynho> http://dpaste.com/34H88E9
<zig>that was expected :)
<sameerynho>^^ traceback. It's hard to read guile's tracebacks, or i'm not used to it
<zig>that one says that guile can not find the file associated with the module (guix licenses)
<zig>that is you could fix that error, using ./pre-inst-env guile gnu/packages/...
<zig>or use GUILE_LOAD_PATH or something like: guile -L $(pwd) gnu/packages/...
<zig>the thing is that I am not sure where we are going with that.
<sameerynho>zig: i see, thanks
<zig>I never saw that error before.
<zig>It might help if I install guix (on my new box).
<zig>grep'ing the error message in guix-git will help.
<sameerynho>now guile compiles the code but when i use guix build it but i get an error saying unknown package
<zig>what is the exact message? greping does not help?
<sameerynho>zig: "guix build: error: graalvm-mx: unknown package"
<NieDzejkob>I think you need to add your file to gnu/local.mk
<NieDzejkob>and possibly reconfigure
<zimoun>leoprikler, roptat, civodul: to add concreteness about the discussion of --with-input with R packages, please see https://lists.gnu.org/archive/html/help-guix/2020-01/msg00079.html and my try after the discussion https://lists.gnu.org/archive/html/help-guix/2020-01/msg00087.html Your inputs are welcome. :-)
<zig>sameerynho: strange, anyway, guix build -Kf will need the module to be formatted differently, you might make it work by adding graalvm-mx at the very end of the file, like in the documentation : http://guix.gnu.org/manual/en/html_node/Additional-Build-Options.html#Additional-Build-Options
<sameerynho>zig: yeah did that too
<zig>the alternative, is to do something like ./pre-inst-env guix build -K -e (@ (gnu packages guile) guile-1.8)
<zig>with proper double quotes
<zig>around the scheme expression.
<sameerynho>zig: ok let me try thanks
<sameerynho>zig: it returns the traceback now which is good for me
<sameerynho>zig:thanks for the help
<zig>yw
<mjw>wow. https://guix.gnu.org/blog/2020/reproducible-computations-with-guix/ so nice. Precisely the guile I was struggling with. awesome!
<mjw>also whaaa. guix time-machine... man.
<mjw>congrats people, this is all so cool.
<nixo>Hi! What does #$@ means in service definitions?
<KE0VVT>mjw: Guix time machine?
<nckx>nixo: Ungexp-splice. It's Scheme's ,@ for gexps.
<nixo>nckx: thanks! Ok thanks to your hint I found this page https://guix.gnu.org/manual/en/html_node/G_002dExpressions.html for details :)
<nixo>I'm writing my first service definition (for endlessh) and I was getting confused by all those chars :D
<mjw>KE0VVT https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-time_002dmachine.html but really read that blog post. It is awesome.
<zig>nixo: I might be incorrect, but gexps are executed by the build daemon, hence to retrieve the lexical scope of where the definition was done you need a special thing.
<zig>the ungexp-fu thing
<nixo>zig: thanks
<nixo>Is it fine to throw when constructing the service conf (if params supplied are invalid?)
***sturm1 is now known as sturm
<leoprikler>nixo: depends on how invalid they are
<leoprikler>if you're asking for a boolean and someone supplies a string, it might be a good idea
<nixo>leoprikler: endlessh can listen on ipv4, ipv6 or both. I'm using 2 bools, but if both are false the service shouln't even start
<leoprikler>use a list of symbols instead
<leoprikler>'(ipv4 ipv6) for both and any one for single
<leoprikler>that's friendlier
<nixo>ok! but the problem remanins with an empty list
<leoprikler>yeah, sure, you can throw if someone supplies an empty list
<nixo>leoprikler: Ok thanks!
<kmicu>NieDzejkob: it’s humorous cuz first premise states that everything is x and second one states that not everything is x. I’m a formal logic folk so feel free to ignore me 😺
<nckx>#NotAllBinaries
<sameerynho>hey folks, what is the function to install a package via guile repl
<zig>sameerynho: follow the code guix package -i in guix-git https://savannah.gnu.org/git/?group=guix
<jonsger>guix system: error: service 'dockerd' requires 'elogind', which is not provided by any service
<jonsger>^ is this a know bug? Do I need to manually add the elogind service?
<nckx>sameerynho: (system "guix install foo") 😉 I'm not joking. You could build your own transaction as done in guix/scripts/package.scm but that sounds excruciating in a live REPL context.
<nckx>There is no ‘function’ to do this.
<sameerynho>nckx: whaaaaat
<nckx>jonsger: You do. I don't see a bug.
<jonsger>nckx: but other services add their "dependencies" automatically
<nckx>sameerynho: That's the point of the UI; to I with the U.
<nckx>jonsger: Orly? Then how can you customise the dependencies?
<sameerynho>nckx: ok I have to read the code then
*kmicu generally finds binary statements moved into fuzzy logic funny e.g. ‘Hi hon, I’m totally not pregnant tho I’m barely in the first week of my pregnancy’ or ‘our phone is fully open hardware, only n components require blobs’ 🤷
<nckx>jonsger: I mean, how would you run a non-default logind if dockerd silently pulls it in?
<jonsger>ah, got it. The other service dependencies are part of %base-services or so
<zig>re open hardware, is there anyone working with risc-v?
*kmicu raises hand.
<jonsger>zig: maybe dongcarl
<kmicu>I do not plan to put Guix on My RISC-V with 128KB Flash, 32KB SRAM
<nckx>sammich: I'm not saying the Scheme interface is needlessly baroque (although I don't know either way), just that's it's not designed with interactive command-line/REPL one-liners mind & the command-line UI obviously is.
<nckx>kmicu: Oh come on, just one pull.
<nckx>Ah fuck. s/sammich/sameerynho/ who's left.
<kmicu>I could try to put Mes' binary seed on it.
<kmicu>Then read it word by word on 0.96inch 160x80 IPS RGB LCD.
<nckx>‘But does it run GNOME’
<jonsger>kmicu: which board is it
<kmicu>Longan Nano for my Gnuk fun.
***drakonis1 is now known as drakonis
<nckx>kmicu: I ♥ how you still made a point of pride to add ‘RGB’ to the end of that.
<nckx>‘…I'm not an animal.’
<kmicu>👈👈😉
<nixo>leoprikler: I sent a first draft of the service on the list, thanks again
<kmicu>Laugh as much as you choose at my RISCV computa; it has a proper screen; I can watch FOSDEM videos on it https://www.invidio.us/watch?v=Nt0aZ_ZTmXg 😺
<kmicu>BTW could you limit your git commit messages to 10‑char‑long lines? Asking for a friend.
<dongcarl>I have a SiFive Unleashed, haven't set it up yet tho
<dongcarl>I'm guessing it's possible to get Guix running on it? Haven't tried bootstrapping to other archs yet
<sameerynho>hey folks, i'm trying to debug my package definition to why it doesn't work and to be honest i'm just looking for a traceback, how can i run the guix package command and ask for traceback on failures ?
<nixo>sameerynho: when you run guix build you see the build log. At the end of the build, it shows the path of the log file
<nixo>Also, if you want to inspect the state of the build folder, you can pass to guix build the "-K" flag (for keep). In the last lines you'll see something like: "note: keeping build directory /tmp/..."
<nixo>if you go there there's a file you can source to have the build environment variables
<sameerynho>nixo: ok that's the problem my build log is just a one liner
<nixo>that's strange. Is it a bz2 file, right?
<sameerynho>nixo: here is the error "guix build: error: graalvm-mx: unknown package"
<sameerynho>nixo: no it's a file i'm writting
<nixo>ok so it's not even trying to build it. Are you writing the package definition in the guix repository or in a separate file?
<sameerynho>nixo: in the guix repo
<sameerynho>under gnu/packages/
<nixo>are you using ./pre-inst-env
<nixo>?
<sameerynho>nixo: yes
<nixo>Then maybe there's a syntax error in the package definition
<nixo>Can you try running the required code in a guile repl?
<sameerynho>nixo: it returns a traceback going back to guix/download.scm
<sameerynho>nixo: the only thing i get related to my package when i'm running it with guile is this ";;; Unbound variable: <derivation>"
<nixo>yeah that's the error
<nixo>can you share your package definition somewhere?
<sameerynho>nixo: sure
<sameerynho>nixo: http://dpaste.com/1AEXP51
<sameerynho>nixo: i get the same error even if i remove the define-public
<nixo>in the lines
<nixo>uri and commit
<str1ngs>sameerynho: try with guile -c '(load "./guix.scm")' replace guix.scm with the file name
<sameerynho>str1ngs: ok
<nixo>you are missing the (). It should be (git-reference (url "https://github.com/graalvm/mx.git") (commit "283cf43"))
<sameerynho>nixo: ah let me try it
<str1ngs>yes that should produce a url is not bound error
<sameerynho>well that didn't fix the problem
<sameerynho>str1ngs: it did it and still same problem
<str1ngs>see what nix mentios about about url
<str1ngs>url should look something like this. (url "https://git.savannah.gnu.org/git/g-golf.git")
<sameerynho>str1ngs: did that too
<nixo>When I try, the problem is about the commit. If you use the full one (283cf430b834ea24a8f8da00568ce10f870797ad) there's an error on the sha (0jgkhw7l84cdm7fi9vpq02lfdzxxns5602v5gakx8vx9ca2s3yxw)
<nixo>then, copy-file-recursively does not exists anywhere
<str1ngs>nixo: also commit should be (commit commit)
<sameerynho>nixo: ok let me fix them
<nixo>if you replace also copy-file-recusively with copy-file, it works and produces this output: /gnu/store/magjm04xsc0b08vbbc01l37dz60gh9r3-graalvm-mx-0.1.0-1.283cf43
<valignatev>Hey guix, is this ok that all files have mtime of 1970 after unpacking during the build?
<valignatev>Because of that gzip throws a warning end exits with a status 2 and guix build doesn't like that
<valignatev>In the build log I have "phase `set-SOURCE-DATE-EPOCH' succeeded after 0.0 seconds
<valignatev>"
<sameerynho>nixo: ok thakns
<nixo>sameeryhno: well, the output is empty
<nixo>but it builds :D
<sameerynho>nixo: nice let me try it
<lispmacs[work]>I just took a look at the bootstrap binaries
<lispmacs[work]>emacs is not included ...?
<str1ngs>sameerynho: add (guix build utils) to modules
<nixo>sameeryhno: also, looking at the repo, it's written in python, so maybe you should take a look at other python packages
<str1ngs>does the python package use python setuptools?
<sameerynho>nixo: thanks but its not a usual python package
<nixo>sameeryhno: yes, but, for example, probably you should add python in the inputs
<sameerynho>nixo: what did you meant by a problem with the sha1 ?
<sameerynho>nixo: yeah , i have to do it, I'll do it later i'm trying to create the smallest thing i can make and build from there
<nixo>sameeryhno: when using the commit 283cf430b834ea24a8f8da00568ce10f870797ad, it complained that the sha of the source was different than the one you used.
<digash`>anybody else has issues updating because new mercurial-5.2 build fails?
<nixo>how did you get the 1wg069... thing?
<sameerynho>nixo: ah, i cloned the repo and ran "guix hash -rx" against it
<nixo>maybe you were on a different checkout
<sameerynho>nixo: i just did it again
<nixo>however, when you try to build it will tell you the right one
<sameerynho>nixo: still the same problem.
<sameerynho>nixo: http://dpaste.com/20GQ3T8
<sameerynho>sorry for the trouble
<nixo>what do you mean with "the same problem"? wget http://dpaste.com/20GQ3T8.txt -q -O mx.scm; guix build -f mx.scm > /gnu/store/5ip9195s5rvac1h99wmyrc103wdjh4c7-graalvm-mx-0.1.0-1.283cf43
<nixo>the package is working. Before trying adding it to the guix repo, try getting it to work as above
<sameerynho>nixo: I'm still getting the same error
<nixo>wget http://dpaste.com/20GQ3T8.txt -q -O mx.scm; guix build -f mx.scm
<sameerynho>nixo: damn, it worked