<butterypancake>so I just did a guix system reconfigure (which never doesn't cause me grief) and now my screen resolution is aweful, I can only use 1 monitor, and xrandr just tells me about "screen 0" instead of an actual screen (like DVI-1 or something). Did someone change xorg or something recently?
<butterypancake>leoprikler: I think I lost the first commit though. I was on generation 1, then I reconfigured thrice. Then I went back to 1, then I reconfigured again. I'm not sure how to figure out what commit generation 1 is
<leoprikler>If you're checking against the installation disk, then xorg-server certainly changed ;)
<butterypancake>no, 1 is still the original. But the first generation for some reason doesn't have channels? Looking at guix system list-generations I can see commits for every generation except the first
<butterypancake>this is a pretty recent install disk. I generated it like 3 days ago from source
<nckx>I thought this system was installed from a custom-built image, not 1.1, but indeed I didn't follow closely.
<leoprikler>either way, generation 1 should have provenance, should it not?
<nckx>At least I can't think of a reason not to, assuming the initing Guix had it.
<nckx>butterypancake: Does ‘the first generation for some reason doesn't have channels’ refer to <system>/channels.scm or something else?
<vivasvat>is there a reason signal messenger hasn't been packaged? I haven't found anything online...
<sneek>Welcome back vivasvat, you have 2 messages!
<sneek>vivasvat, nckx says: All I know is that https://ci.guix.gnu.org/nar/lzip/kiawv51z8dd41mq3sxva8sqkma5ysgc7-icedove-68.11.0 returns 404 while /gnu/store/kiawv51z8dd41mq3sxva8sqkma5ysgc7-icedove-68.11.0 *exists* on the server. It has nothing to do with you (nor can you do anything to fix it). Trying to get any sensible answers out of ‘guix gc’ takes ages so I gave up. My current bet is negative caching; we'll now if that's true in 1h.
<sneek>vivasvat, nckx says: That would explain the inconsistent error you got: Guix will only try to download a substitute after asking the server whether one exists. The server must have said yes. And then it gives you a 404 anyway. Must be cached.
<nckx>☝ that, compounded by the fact that npm takes a micropackage/-dependency approach and comes from a culture of bundling random different versions of the same package many times in one dependency graph...
<nckx>It does not synergise well with how Nix/Guix view software, at all.
<nckx>(And so Nix cheats and we don't, and so Nix has npm and we don't.)
<brendyyn>I was getting started writing a npm importer the other day
<brendyyn>I wanted to package MathJax from source but when it required a lot of node- packages some of which i couldnt get to work and required so many i needed an importer, so i just packaged the built version
<Formbi>maybe it would be feasible to make collections of packages?
<Formbi>that would cut the huge number of them a bit
<Formbi>AFAIK people make packages out of single procedures
<Formbi>per-developer packages could be a nice solution
<brendyyn>i think it needs to be mostly automatically generated. most packages built fine with node-build-system,
<nckx>I wonder if it's feasible to drop our pretention to hand-crafted packages for the NPM module. Just ship a big list of names, versions/commits, and hashes, that are updated programatically every so often. Then have procedures to turn the raw data into package objects.
<brendyyn>the importer i think needs to download the repo and import package.json
<brendyyn>the entire npm database can be downloaded at 100MiB or so
<nckx>With some luck the vast majority will just work since JS is relatively isolated from the underlying OS/file system (?), but we'll still run into edge cases we need to customise. Not sure how to handle those.
<brendyyn>then we want some code to scan for minified js, unbundle modules
<nckx>I don't JS, I don't Node, I like traditional notions of packaging; I can't be of much help.
<Formbi>I mean running something over the list of names
<brendyyn>neither. my dream is to create a jitsi-meet service so guix users can launch up their own server
<lle-bout>hello there! --with-source on guix pack with custom manifest doesnt seem to work, should it?
<nckx>brendyyn: Yes, a lot of these complex ‘don't even try to build our supposedly free software; just download our opaque container’ server applications would benefit from something like Guix, and yet are currently impossible to package because of things like NPM. Shame.
<brendyyn>well ok lets just have some positivity. im sure we can do it. its only hard work
<nckx>It's absolutely possible, and we all own machines designed to do hard repetitive work for us. 🙂
<lle-bout>also, I got a package source in a private repo that requires authentication, how could GNU Guix handle that? I've been using --with-source to supply a local clone instead but it doesnt seem to work with guix pack and manifests
<brendyyn>im just wondering if anyone else made any progress with this and what the correct method is
<lle-bout>it works with guix build but not guix pack
<lle-bout>brendyyn: I am not sure what differs between NPM and Go/Rust/Python - these eco systems also have lots of transitive dependencies
<brendyyn>you think there will be dependency loops and thus a bootstrap problem?
<lle-bout>I think it would just be a matter of actually doing it, writing a reliable importer and going on from there
<lle-bout>The number of dependencies may be higher but is it an issue for GNU Guix? It supports any arbitrary number of packages
<brendyyn>for mathjax. the npm repository points to a git repo containing the built version. the actual source is in a completely different repo :/
<brendyyn>I actually wonder about that. When guix has 100k packages, will the overhead for guile become an issue?
<lle-bout>by that time GNU Guile will get more performance improvements too
<lle-bout>I don't think the total number of packages has an influence if you don't use them
<brendyyn>thanks to andy and all other contributers \o/
<brendyyn>for guix pull it does since the definitions all need to be compiled
<Formbi>maybe there could be a separate channel for the ecmascript shit
<Formbi>so people who don't use it wouldn't get the performance issues
<brendyyn>anyone running doom emacs? i get this error running geiser-run or when opening a scheme file and i cant open a repl File mode specification error: (error Loading file /home/b/.emacs.d/bin/doom failed to provide feature ‘geiser-guile’)
<efraim>raghavgururajan: I just saw all the commits that landed in master. Wow! Congrats!
<ngz>Hello. I cannot use make, ./configure or ./bootstrap from Guix HEAD. For example, using ./boostrap, I get "error: possibly undefined macro: AM_INIT_AUTOMAKE". I'm using "guix environment guix". Does that ring a bell?
<rekado>this sounds like you don’t have automake in your environment. Check your environment variables. Are you setting any weird ones manually?
<ngz>I don't think I set fancy environment variables. I also tried with `guix environment --pure guix`. Speaking of which, shouldn't that bring in automake and friends?
<sneek>Welcome back peanutbutterandc, you have 1 message!
<sneek>peanutbutterandc, daviid says: yes, you need 2.0 or 2.2, and yes, you need to install the Gtk typelib, on debian, it would be the gir1.2-gtk-3.0:amd64 (or what ever postfix for your acrch of course) ...
<peanutbutterandc>sneek, later ask daviid Is work ongoing to make g-golf compatible with 3.x series, too?
<peanutbutterandc>I was trying to `./configure` guix and I get configure: error: found development files for Guile 3.0, but /gnu/store/4wm4dg8prid141d9xiqirfvlqbmbikgb-profile/bin/guile has effective version 2.2
<raghavgururajan>[06:57:08 AM] Danny: My provider is famous for not blocking anything, on principle
<raghavgururajan>[06:57:23 AM] Danny: I could run my own mail server, and do run my own web servers
<raghavgururajan>[06:58:30 AM] Danny: Guix connects to the redhat ftp server just fine, and I also tried to use ncftp to get the file from ftp://sourceware.org/pub/lvm2/LVM2.2.03.10.tgz <ftp://sourceware.org/pub/lvm2/LVM2.2.03.10.tgz...> , which worked just fine
<raghavgururajan>[06:59:06 AM] Danny: Retrieving the same URL by guix/ftp-client fails
<raghavgururajan>[06:59:25 AM] Danny: On the other hand, ftp://sources.redhat.com/pub/lvm2/releases/LVM2.2.03.10.tgz <ftp://sources.redhat.com/pub/lvm2/releases/LVM2.2.03.10.tgz...> does not exist--so that's clear why that doesn't work
<raghavgururajan>Anyway, `guix download ftp://sourceware.org/pub/lvm2/LVM2.2.03.10.tgz` works for me too.
<peanutbutterandc>Umm... how does one use guix lint? I have got a few things that I just `guix import gem --recursive stuff` >> definition.scm and I want to guix lint definition.scm
<peanutbutterandc>Also, I suppose these definitions will just have to be `cat definition.scm >> ruby.scm` in the git repo, right? o.O
<peanutbutterandc>ah... guix lint is supposed to be called on package and not on files!? So, concatenate first. On it!
<nckx>raghavgururajan: I was already merging sysprofs before you committed a third one (now that's prompt service)! Your sysprof package is almost identical to mine, apart from the propagation of glib and gtk+. Do you remember why you propagate them?
<peanutbutterandc>I have just made a bit of changes in my local guix checkout, and... I realized that ./pre-inst-env complains about not finding the guix-daemon socket because of the default prefix /usr/local
<nckx>raghavgururajan: Rust 1.39 is downloading. What else were you missing?
<raghavgururajan>KimaprOnPhone: Regarging your doubt in how grub boots: In a nut-shell, GRUB boots in two stages. In stage 1, the grub loads its own files (binaries, drivers and modules). In stage 2, it loads grub.cfg which then as info to load ramdisk/kernel. In BIOS+MBR setup, the stage 1 files are stored in MBR-Gap and stage 2 files are stored in /boot directory. In BIOS+GPT setup, the stage 1 files are stored in
<raghavgururajan>BIOS Boot Partition (separate parition from root partition) and stage 2 files are stored in /boot directory. In both setups, the /boot directory can either be in root partition or in separate boot partition (but has to be mounted under root "/".
<rekado>peanutbutterandc: have you added ruby-simplecov?
<raghavgururajan>In a nut-shell, GRUB boots in two stages. In stage 1, the grub loads its own files (binaries, drivers and modules). In stage 2, it loads grub.cfg which then as info to load ramdisk/kernel. In BIOS+MBR setup, the stage 1 files are stored in MBR-Gap and stage 2 files are stored in /boot directory. In BIOS+GPT setup, the stage 1 files are stored in BIOS Boot Partition (separate parition from root partit
<peanutbutterandc>rekado, silly me. I thought `guix import` took care of everything there was to take care of. I will add that to native-inputs right away then
<raghavgururajan>In a nut-shell, GRUB boots in two stages. In stage 1, the grub loads its own files (binaries, drivers and modules). In stage 2, it loads grub.cfg which then as info to load ramdisk/kernel.
<raghavgururajan>In BIOS+MBR setup, the stage 1 files are stored in MBR-Gap and stage 2 files are stored in /boot directory.
<raghavgururajan>In BIOS+GPT setup, the stage 1 files are stored in BIOS Boot Partition (separate parition from root partition) and stage 2 files are stored in /boot directory.
<raghavgururajan>In both setups, the /boot directory can either be in root partition or in separate boot partition (but has to be mounted under root "/".
<rekado>ngz: I can’t reproduce your problem. I ran “guix pull” before-hand. ./bootstrap and ./configure both work fine.
<raghavgururajan>In guix, for stage 2 files, only grub.cfg is created under /boot dir. It has info to load ramdisk/kernel from /gnu/store, based on your system generation.
<raghavgururajan>For both BIOS+MBR and BIOS+GPT setups, you will use (bootloader grub-bootloader). For the former, you use /dev/sdX (device) and for the latter you use /dev/sdXY (BIOS Boot parition).
<rndd>hi everyone! i tried to run simple gui app in docker: "docker run --rm -ti --net=host -e DISPLAY=:0 fr3nd/xeyes" but got these errors "No protocol specified; Error: Can't open display: :0". does anybody had same issue?
<nckx>Our GRUB should refuse to install if you're using BIOS+GPT without a BIOS Boot partition (the classic ‘blocklists are spooky!’ error).
<raghavgururajan>For UEFI+GPT setup, the stage 1 files are stored in UEFI Boot Partition (separate parition from root partition) and stage 2 files are stored under /boot dir (which again can either be in root parition or different parition+mounted under root "/".
<raghavgururajan>For UEFI+GPT setup, you will use (bootloader grub-uefi-bootloader) and /dev/sdXY (UEFI Boot Partition).
<nckx>raghavgururajan: So I am in /home/raghavgururajan/guix/wip-desktop. When I run ‘guix environment guix -- ./pre-inst-env guix build firstname.lastname@example.org’, it tries to graft .38, but it doesn't try to build it.
<nckx>Grafting is a relatively fast if I/O-bound process.
<raghavgururajan>Could you please do `./pre-inst-env guix build email@example.com --root=$HOME/.config/guix/gcroots/rust-1.38` and `./pre-inst-env guix build firstname.lastname@example.org --root=$HOME/.config/guix/gcroots/rust-1.39, by being at /home/raghavgururajan/guix/wip-desktop ?
<nckx>The latter should work if you're at the package level (which is the only place package-level reasoning makes sense anyway). *Inside* of wrap-program? That I don't understand. Are you writing your own?
<anadon>I'm not sure the specific verbage I'm looking for. I want to be able to include a <my package>.scm in my project repo and be able to build and reference the project that the package file is in without having the package file count itself in the checksum.
<raghavgururajan>efraim: Could you please merge my libcloudproviders definition with the old one?
<butterypancake>I don't think my cards got initilized so the screen resolution was locked to a really low resolution and instead of xrandr spitting out actuall monitor devices like DVI-1 all I got was screen-0
<butterypancake>I was really hoping someone just didn't update a package... nouveau is up to date, mesa is pretty out of date
<ngz>OK. I created a new clone of the repository, and can boostrap, configure, and make again. But now, I get ice-9/eval.scm:293:34: no code for module (json) whenever I try to push something.
<peanutbutterandc>inputs was unbound.... %build-inputs has bash and everything... not exactly what I am looking for....
<cbaines>peanutbutterandc, so if you don't want bash, what are you looking for?
<peanutbutterandc>cbaines, If you `guix import gem --recursive ronn` you will see 2 package definitions, among which I am trying to, hopefully, add to guix distribution... the second of these: ruby-ronn-ng has a few `propagated inputs` that I want to make just normal inputs. For which I want to wrap the program
<butterypancake>quick question: how do I tell if something is already packaged. I'd like to update mesa and libdrm but they might go into the core-updates or staged-updates branch. Is there an easy way to check the versions in all the branches?
<butterypancake>when packaging something, should you stick to actual releases or are release candidates fine? But I think mesa is pretty important so maybe even if release candidates are fine, maybe I shouldn't for mesa?
<peanutbutterandc>wait what!? I just did guix refresh ruby-kramdown and it just upgraded it for me.... and I was not in ./pre-inst-env... didn't know refresh actually updated packages like that. neat (and strange)
<peanutbutterandc>ngz, Hmm... I see. I will poke around then. I will still try to see if I can get rid of the propagated inputs. Just so. Because I have basically wasted quite a lot of time already. :D
<apteryx>peanutbutterandc: no it just spits the updated package definition to stdout
<apteryx>you must use ./pre-inst-env with -u to actually have it written to disk
<peanutbutterandc>I wonder if there is some sort of a way to debug guix cooking up a package. gdb-like thingy for guix
<nckx>peanutbutterandc: It looks like your source unpacks into 3 more tarballs. You'll need to unpack those yourself (add-before 'unpack 'unpack-harder (lambda _ (invoke "tar" "xvf" (find-files ...)))), something like that.
<peanutbutterandc>I was hoping the other day if I could define a phony store and have selected build take place there (from the repl), that way I could trace everything that was going on
*raghavgururajan is finishing Outreachy Internship as of today. Feels grateful for this opportunity.
<ngz>peanutbutterandc: I just pushed ruby-mustache, finally (yay!)
<nckx>butterypancake: Documented in ‘(guix)Service Reference, Scheme Variable: etc-service-type’.
<ngz>raghavgururajan: I saw that branch. That's a lot of work.
<peanutbutterandc>ngz, Oh wow, you've got write access to the repo. I didn't know I was talking to an expert. LOL. I'm the n00best and the loudest one here. :D
<butterypancake>nckx: That's perfect! Thanks! Since it's a service, it'll run everytime I start up my machine right? (never bothered to figure out what services are) this means I won't be able to edit it once it's in place? (That's fine, just curious)
<nckx>butterypancake: Yes and yes, it will be a symlink into the immutable store. The Guixy way to edit it is to edit your system configuration & then run ‘guix system reconfigure’. That will immediately apply the changes, no need for a reboot.
<ngz>peanutbutterandc: I'm not an expert :) It took me hours to figure out how to get write access back.
<butterypancake>nckx: I think that's pretty cool. easy way to put my /etc configs in my dotfiles for version control.
<raghavgururajan>ngz: :-) I still same some tidy-up things to do. There are some quite nasty run-time errors.
<nckx>butterypancake: You're onto something. Most newcomers think service == daemon, but ‘system services’ in Guix can be any snippet of code that runs before system activation. Not all system services are shepherd services.
<butterypancake>nckx: I was thinking something like a systemd 1 shot service. Can you put services on timers? like a weekly certbot renewal?
<butterypancake>nckx: nice! never bothered to learn cron. systemd timers use odd syntax, but mcron will let me use guile! I think. Right?
<nckx>Not because running a separate cron daemon is objectively better than having your service manager handle it (like systemd), but it's just the way things are for now. mcron's main problem is that it's underdocumented.
<nckx>Oh, right. And that's an up-pointing finger.
<peanutbutterandc>nckx, Hmmm.... '(invoke "cat" ".wrappedthing-real")'.... that... I haven't seen any guix procedures like that yet.... If you can tell me a bit more about it, perhaps I can test and add that info to the report? o.O
<nckx>alextee[m]: Does what gromacs does with googletest describe what you want to do?
<butterypancake>how do I add a font to my xorg-configuration? it says it wants a font path but I want to give it a font package :/
<nckx>butterypancake: It probably is too big, but it is a *very* complete font that aims to provide *every* glyph. That said, sure, it's probably bloated af, it's from Googs.
<butterypancake>I'm still struggling to figure out how to add fonts. I think I need to do something like (file-append font-package "some/random/path/X11") but the fonts I want to use don't have an X11 folder. Is that a problem?
<peanutbutterandc>nckx, Thank you for the tip. Sadly I couldn't run it... syntax errors still... and I don't yet have a feel for parens.... and my battery is almost dying (powercut here).... I think I'll have to go for now. But I will report the bug tomorrow....
<nckx>sneek: Later tell peanutbutterandc: Look at the ‘'("FOO" ":" = ("BAR")))#t)))’ line. This returns #t and ends the procedure. Then, under that, you try to return #t again outside of the procedure body. It's basically gibberish at that point. If you fix that up it should run fine. Good luck!
<bluekeys>Does anybody here use guix workflow? I'm following the guide on guixwl.org but can't get much past guix install gwl. After that completes successfully, running guix workflow gives guix: workflow: command not found. Reading further into the page there is a mention that the Guile module (guix scripts workflow) must be found in a directory on the GUILE_LOAD_PATH. How do I do that?
<bluekeys>Looking at the content of $GUILE_LOAD_PATH, why doesn't the installer script just add a link to the store?
<leoprikler>bluekeys: you should add guile to your profile/environment, then everything works out
<nckx>I think I've managed to kill the -j32 stuff without touching Cuirass stuff.
<raghavgururajan>nckx: You don't have to update gnome stuff on master. I have already updated on wip-desktop and soon will be added to master
<nckx>raghavgururajan: Go ahead and restart your build, but remember that this is a shared machine (running scheduled Cuirass builds too). Don't start 128 C++ compilers please. It has ‘only’ 64 GiB of RAM.
<nckx>raghavgururajan: No harm done. I know how unpleasant it is, but please ping someone here *as soon* as you say ‘oh fuck’. Don't wait too see if it fixes itself. If Jakub hadn't caught this immediately, SSH might've seized up completely. Who knows how long the machine would've been unresponsive.
<nckx>raghavgururajan: I killed 2-3 ‘make -j32’ trees, they must've been yours.
<raghavgururajan>nckx: It took me 10min to actually realize it froze. It assumed it was waiting on build lock or something. Then when I pressed enter, i realized shits not right.
<NieDzejkob>GNUtoo: I think you might want to set the version of your package with git-version. That way, the filename of the store item will change together with the commit hash, which will also trigger a re-download
<nckx>alextee[m]: It's not ci.guix.gnu.org but it can be used as --substitute-urls.
<alextee[m]>is there a way i can add it to the list of substitute candidates through a config file?
<kmicu>Google sucks granetd but Noto is not bloated it anyway. World has many scripts and it’s a basic need to have multiple styles for each. If there’s an issue then only with Guix packaging which lacks seperate downloads as provided by upstream.
<butterypancake>jsoo: I'm attempting to use startx as you do, but looking through your dotfiles, I cannot for the life of me figure out how X is loading your window manager. I've copied over a good bit of your config into my config and have successfully launched X. But it's not running my xinitrc or xsession file. How do you do it?
<butterypancake>another question, how did you access non-exported variables like xorg-configuration->file? I ended up ripping them out of their modules using @@, but you seem to just access them without issue
<nojr>is there/will there be a blog post on how to set up Guix in DigitalOcean droplet ??
<nckx>bluekeys: So the segv happens in mu_stream_seek (gdb --args movemail -vv ...; then ‘run’; then ‘backtrace’) but that's probably all we can say without debug symbols. Or staring at that function's source & spotting an obvious booboo.
<bluekeys>How to add debug symbols? Copy package definition to my own channel and recompile with debug symbols?
<nckx>Something like that (I've never actually done this). And set #:strip-binaries? #f at least.
<bluekeys>OK. That'll take more time than I've got right now... I'll update here when I've got a channel set up
<NieDzejkob>alternatively, add a "debug" output to have the gnu-build-system split the debuginfo into a separate output