IRC channel logs

2022-08-30.log

back to list of logs

<caleb_>OK, how's this? https://bluehome.net/csh/tmp/install.zip
<caleb_>scared to do this again
***daviid` is now known as daviid
<KE0VVT>I cannot pvcreate in live system
<KE0VVT>Why
<KE0VVT>Djdudududhdhd
<wdkrnls>Dear Guix, I'm trying to package a python library. It's complaining that it can't find a file: FileNotFoundError: [Errno 2] No such file or directory: 'requirements/requirements.txt'
<wdkrnls>That file is there in the git repository.
<wdkrnls>I guess guix goes and deletes it so that setup.py fails?
<daviid>rekado_: I am very pleased you found the source of the problem, thanks!
<daviid>rekado_: please make sure you write about this, 'somwe where', so other guix contributors won't need to pull their hair about this in the future ... [and to answer tour firt quiz, I just had no clue, and still have no clue about why ... I don't use guix, and have very very little knowledge about its design ...]
<KE0VVT>Does anybody else realize that you need to rfkill unblock all on an x200 or no wifi?
<KE0VVT>And why cant I pvcreate?
<KE0VVT>rfkill unblock all was NOT in the manual
<wdkrnls>Alternatively, is this a difference of opinion somehow about what the current directory is?
<KE0VVT>Agh!
<KE0VVT>pvcreate: command not found
<KE0VVT>Noisytoot: Why can't i create an lvm volume in the live system?
<luis-felipe>mbakke: Hi, thanks a lot for applying my patch (https://issues.guix.gnu.org/56542) :)
<KE0VVT>This is giving me a headache.
<Noisytoot>KE0VVT: Please don't ping random users (and, if that's the error, probably because lvm2 is not installed)
<KE0VVT>lvm2 was installed. That's why 😭
<mroh>are staging (and c-u) ci builds also posted to the comp.gnu.guix.ci mailinglist/group?
<yewscion>Hello all, I'm getting a Wrong Type to Apply error on my guix home reconfigure call all of a sudden: https://paste.debian.net/1252096/.
***caleb_ is now known as Kolev
<yewscion>I don't think I've changed any of the syntax in my home configuration, so I'm wondering if I missed a recent change somewhere.
<yewscion>guix pull works fine, but it seems to be erroring when loading my channels.scm, so that's here if it might provide a clue: https://paste.debian.net/1252097/
<Kolev>a
<isf>whats the difference between guix pull and guix install?
<Luk6655>There is elogind service in guix system that has a feature to run scripts to initialise hw that requires it on suspend/resume. This is normally done by putting them in /etc/elogind however on guix that folder is in /gnu/store and read only. How can I have elogind test my scripts without having to rewrite its package definition?
<yewscion>isf: guix pull updates package definitions from the channels, and guix install adds packages to a profile.
<Luk6655>Is there some way to make /gnu/store/subfolder/etc writable for testing?
<yewscion>Luk6655: You could add those scripts to Your system definition using a local-file or plain-file definition, if they are unlikely to change frequently.
<Luk6655>yewscion: i Just need to test if they work at all, running whole reconfigure for this initial development seems a massive overkill
<Luk6655>I'll need to change them 20times before I arrive at working version
<Luk6655>Likely
<Kolev>I wish I had a web browser on the live system.
<Luk6655>But if it is the only way, is there an example config snippet somewhere perhaps?
<wdkrnls>Luk6655: there is a way to mount /gnu/store as writeable. nkcd showed me how to do it to fix some drive corruption issues I was having.
<wdkrnls>I think it was: ~mount -o remount,rw /gnu/store~
<wdkrnls>but maybe not... I also see: ~mount -o bind,rw /gnu/store /mnt/store~ in my history.
<wdkrnls>"nckx", not "nkcd" :/
<Luk6655>wdkrnls: cool, thanks, I'll try it :-) however for when those scripts do work, does anyone have an example config snippet that writes a short file to a package folder? I don't think there is one like that in the manual anywhere.
<Kolev>I did the following commands to install Guix, but I failed at the commented lines. https://bluehome.net/csh/tmp/install/install.sh
<yewscion>Luk6655: https://guix.gnu.org/manual/en/html_node/G_002dExpressions.html#index-local_002dfile would be a canonical way. It adds the file to the store, and then grafts it to the system profile on reconfigure.
<yewscion>I use a this process in my home configuration extensively, to manage my dotfiles. https://git.sr.ht/~yewscion/guix-home/tree/trunk/item/home-configuration.scm#L347
<Luk6655>yewscion: thanks, but how would I refer to the file location that should point to elogind etc folder?
<Luk6655>The folder itself would be ellogind:sysconf
<Luk6655>I don't know guile well enough to come up with the syntax, I was planning to just get this system working to learn guile, but it seems I need to know it already to get it working ;-) chicken and egg situation
<Luk6655>I'm 99% there however
<Kolev>help. https://bluehome.net/csh/tmp/install/
<yewscion>Something like (extra-special-file "/etc/elogind/foo" (local-file "bar.config")) should work fine, I think. I will confirm after I reconfigure with a dummy file here, if You'd like.
<Luk6655>yewscion: I'm afraid it will not work if the file is just placed in /etc/elogind. The elogind package is configured to only look at etc in its output folder. Therefore I was hoping to import it like '(elogind "out") and add etc to it, then put the file there.
<Luk6655>However if I get it working by putting the file there manually that's good enough for a week or so hopefully until I figure out the rest hopefully.
<yewscion>Luk6655: Ah, I see. I don't use much extra configuration on my elogind; maybe someone else has a working solution for that. Otherwise, inherit and modify is likely the way to go.
<Kolev>Guess I'm staying on Fedora. Good night. :(
<yewscion>Kolev: People are not always watching this channel, give it some time and You will get a response. I don't use LVM, but someone here surely does.
<Luk6655>Kolev: I will need lvm working too, but no sooner than tomorrow as its 2am here.
<isf>whats mean guix?
<oriansj>could someone more familiar with shepherd sanity this check this idea: there is a file in the initramfs (luks.key) and the binaries for cryptsetup; Shepard runs cryptsetup open /dev/sda cryptroot --key-file luks.key then mounts /dev/mapper/cryptroot to /
<oriansj>then the rest of the init occurs
<oriansj>without modification
<polyex>any preference openntpd or chrony for time?
<polyex>ntpd sucks, config is too complex, need something new
<apteryx>oriansj: that seems like it'd need to be taken care of by the init script, not Shepherd
<oriansj>apteryx: and what would be executing the init script?
<apteryx>the bootloader, GRUB
<apteryx>but I may be fuzzy on things, it's been a while I digested such information :-)
<oriansj>apteryx: grub stops running the clock-cycle it passes initramfs to the kernel
<oriansj>the kernel then using the intramfs as its root filessytem starts /sbin/init (Shepherd in Guix's case) which then runs init.scm
<yewscion>A change made in b084398 is preventing both my system and home configurations from building with a Wrong Type to Apply error. Did the channel spec format change with the changes in that commit?
<oriansj>it is then the task of the init to mount filesystems (use luks keyfiles to unlock luks volumes), start a boatload of services, etc
<apteryx>oriansj: ah yes, so it's the minimal kernel binary that initially runs the initramfs, and then calls pivot on the root file system.
<apteryx>thanks for refreshing me!
<oriansj>so the question is how to hook shepard to execute the cryptsetup command to unlock the /dev/sda volume as cryptroot so that the normal /etc/fstab mounting can continue without issue.
<apteryx>polyex: config? there's just a few fields exposed to our ntpd configuration.
<apteryx>most people don't configure it at all, I'd reckon.
<polyex>no on other platforms so i wanna change it everywhere but i want to go with something ppl like on guix
<polyex>because if it's on guix it's on my other platforms for sure
<polyex>and guix comes first =)
***Pramof[m] is now known as Promod[m]
***janneke_ is now known as janneke
<jtmoulia[m]>rekado_: just wanted to thank you for updating the mu package -- I started trying to figure it out but was getting stuck (guix noob). That was my blocker to switching to guix emacs, and mu/mu4e is now working great with my config
<polyex>anyone NOT run a time server on a vm server? i heard it's not good to run time server on vm servers (like at vultr) because the hypervisor does the time
<podiki[m]> https://issues.guix.gnu.org/57480 is urgent (can confirm same problem here)
<TopExpert>can we get to the bottom of how to develop guix (package) more efficiently?
<TopExpert>so I'm creating a custom Rust definition, and adding a phase (add-after 'install 'wrap-clippy ...
<TopExpert>it fails on the last phase of a very large build that takes upward of an hour to reach that install phase
<TopExpert>how do you go about testing phases, or idk the workflow, what are you supposed to do?
<polyex>i wanna know too
<mange>If you run the build with --keep-failed then I think you can re-enter something approximating the build environment (using guix shell -D and/or the environment file that gets written). That can allow you to experiment without having to start the build from scratch every time.
<TopExpert>mange: ok, is there a way to run the lase phase again on the guix shell -D?
<TopExpert>I mean if the code in (package) definition is wrong, it doesn't help much that you have the source
<TopExpert>I guess not
<muradm>hello guix
<TopExpert>suggestion: guix shell -D package --phase install:my-custom-phase # starts a shell and prepares the source up to that point
<polyex>nice
<iyzsong>podiki[m]: thanks for the report, i revert the said commit, now it seems working.
<mange>TopExpert: No, there's no way to set up for a particular phase, but the kept directory will be in the state that it was when the build failed. From there you can experiment with what you need to do to have it continue.
<polyex>does chrony run on guix?
<polyex>yes!
<TopExpert>mange: that basically means it's impossible to integrate very large projects, even if you have the source, you still need to run the entire build again to test your change, which is likely wrong a few times during development
<polyex>ya that's a rough spot
<polyex>what could fix it?
<mange>It's definitely tricky, but it can be done. The build for Chromium takes over four hours on Cuirass, but clearly someone managed to get that working.
<mange>I'm confident that any suggestions you have that could make it easier would be appreciated (patches, especially).
<TopExpert>if you have 64 very fast cores, sure, many people in the industry have that, I've booted up 32 cores in the cloud to offload this build during development and that takes maybe 20 mins
<TopExpert>but it costs so much that we need a solution that works for everybody, I doubt it's difficult to run the phases up to a point, or simply run one phase so one can test each and make btrfs snapshots
<polyex>ya we need a better solution
<polyex>i think the start is understanding what the problems can be with progressive builds
<polyex>then come up with a hopeful solution for each
<TopExpert>I guess timestamps get regenerated each time, but that shouldn't be problem with reproducible builds, I can't think of any hinder to progressive builds
<polyex>mange what do you foresee are potential roadblocks to progressive builds?
<civodul>Hello Guix!
<TopExpert>add to that, Guile is highly diagnostics-hostile, you get an error in the phase that basically says "something's wrong with this form and nobody knows what"
<TopExpert>so you have to make small changes in the phase during research that are unknown to work, you get messages that the error is unknown, and the build takes over an hour to reach that phase
<muradm>i find it meaningless to make reload action for any shepherd service in the context of guix. imagine "some-daemon -c /gnu/store/....some.conf" sending reload to it will have no effect, because first the location of config should change. then i find thinking on reload functionality meaningles, or do i miss some point?
<VesselWave>Hey everyone! Is there any way to get libzmq using Guix?
<VesselWave>Sorry, I found it. Package zeromq
<muradm>civodul: o/
<muradm>civodul: /o\ 56858? :D
<unwox>hi guix. does anyone know if it's possible to use vim-like keybindings in "info" utility?
<rekado>unwox: I don’t think so.
<rekado>but in Emacs you can rebind keys as you please.
<rekado>the info reader in Emacs is also much better than the standalone info reader.
<unwox>i do not use emacs unfortunately
<rekado>but you could use Emacs just for info.
<rekado>just needs a little alias to run Emacs and have it evaluate code to set vim-like keys and launch info.
<unwox>i'll try it thanks
<unwox>there is also this https://sillybytes.net/vinfo, hm
<rekado>the info reader in Emacs can display images and render fonts nicely; that’s why I prefer it over any other info reader.
<rekado>oh, I spoke too soon: ‘info --vi-keys’ exists
<unwox>yeah, but i'd like to stay inside terminal as much as i can
<rekado>(that option is not listed in the help output)
<unwox>yes that's why i missed it too
<unwox>thanks a lot for your help
<rekado>no problem!
<rekado>re terminal: Emacs users have a similar desire, except that they use 2-dimensional buffers for everything instead of a one-dimensional command line terminal. It’s just a small step from running everything in the terminal to running everything in Emacs :)
<unwox>cool. i hope i'll have time to take a closer look into emacs in a future
<unwox>but for now i've got enough on my plate figuring out scheme and guix :)
<rekado>feel free to ask for help here. This can all be a little confusing at first, because it’s ever so slightly unusual.
<rekado>I’ve got a Rust question again: my branch ‘rekados-rust-queue’ updates a few Rust packages and now rav1e fails to build.
<rekado>it says ‘failed to load source for dependency `aom-sys`’, but aom-sys is among the cargo inputs.
<polyex>ty for working on rust and guix i hope to use rust some day
<efraim>mbakke: ruby-2.7 and lower don't build with openssl@3, ruby@3.0.4 and ruby@3.1.1 do build with openssl@3
<vldn>is it possible to install guix on a remote host via guix copy?
<vldn>guix system
<vldn>like the guix-infect script
<lilyp>as far as I'm aware, guix copy assumes an already running guix
<vldn>getting a guix-daemon running is not so a big problem
<vldn>but how to init the system from remote
<vldn>like moving stuff from etc from the original system and stuff to takeover
<lilyp>Maybe that's a job for guix deploy? Otherwise try guix init over ssh.
<vldn>all my trys via mv /etc /old-etc && mkdir /etc && cp -r /old-etc/{passwd,group,shadow,gshadow,mtab,guix,resolv.conf,services} /etc/ failed
<vldn>the system doesn't boot and is not pingable after reboot
<vldn>maybe my config just sucks but everything seems to work
<vldn>maybe some kvm fun because of the vps
<vldn>wird reconfigure complains about /etc/ssl, thats why i move the etc stuff
<vldn>*first
<lilyp>maybe your hypervisor inserts stuff?
<vldn>don't think so
<vldn>had some problems with the partition naming on another vps before
<vldn>the debian client shows /dev/sda but internally it's /dev/vda and guix needs the other name..
***Dynom_ is now known as Guest2368
<muradm>vldn: "install guix on a remote host" what do you mean by that? if remote host, which os does it run to become remote? if some other linux, you may search for guides how to install/swap distro remotely guides. once as a fun exercise I could manage to do that, but it is not easy activity.
<muradm>vldn: in the end of the day, you will have to know the hardware it is running, bios/efi settings, and probably the capabilities of already running distro.
<Christoph[m]><muradm> "i find it meaningless to make..." <- Reload might be useful if the service crashes?
<Christoph[m]><polyex> "i think the start is understandi..." <- What does that mean, progressive build?
<muradm>Christoph[m]: that would be stop/start and/or default restart?
<polyex>Christoph[m] TopExpert was trying to port a big thing to guix and a build crash an hour in meant fixing something then trying again and waiting another hour. so he wanted progressive builds so upon crash he could try a fix then restart build from where it left off
<Christoph[m]><TopExpert> "but it costs so much that we..." <- Could one go through the build instructions.step by step in a REPL? Or use break points like in a debugger?
<muradm>vldn: for instance: https://wiki.archlinux.org/title/Install_Arch_Linux_from_existing_Linux
<muradm>vldn: if it is about installing guix to a cloud provider, there is an article on that too https://guix.gnu.org/cookbook/en/html_node/Running-Guix-on-a-Linode-Server.html
<polyex>not sure, he left. ill msg him
<polyex>ah he's offline dang
<Christoph[m]>polyex: Sorry, I'm not a native English speaker, and I know 'progressive' only from 'progressive democrats'. I'll look it up.
<polyex>that's just a propaganda tactic to associate themselves with "progress". that's a meaningless usage. what progressive meant here is the build infra was tolerant of build failures in a way that let you keep your progress. so you could fix something and try again without starting the build all the way over
<lilyp>We call that "keep-failing" over here :)
***wielaard is now known as mjw
<Guest9019>hi
<AwesomeAdam54321>hi
<matematik[m]>hi jentmens
<Guest903>I just installed guix, and upon doing my first "guix pull" i got the message hint: "After settung 'PATH', run 'hash guix' to make sure your shell refers to '/home/username/.config/guix/current/bin/guix' " Sorry for being a noob but how is any of this done?
<rekado>Guest903: set PATH by doing ‘export PATH=/home/username/.config/guix/current/bin:$PATH’ and then run ‘hash guix’.
<rekado>the goal here is to make your shell find /home/username/.config/guix/current/bin/guix first when looking for ‘guix’
<Guest903>Ah okay
<Guest903>So I do that and then just hash guix?
<rekado>aside from builtins, your shell will search for executables for every command you give it. It searches them in the directories listed on the PATH variable.
<rekado>correct
<Guest903>Thanks so much!
<Guest903>Doing it now
<Guest903>also anyone else having WiFi issues? I can scan for networks and find my network but Im having issues connecting to it
<Guest903>okay it works now
<zimoun>hi
<Christoph[m]>polyex: I see, that sounds very useful. But it also sounds very difficult. If the last command corrupted the state of the build, it's impossible to recover. One would need a backup, maybe with rsync, which can create hard links for the second backup. So backups either after each command, or after each phase, or at explicit break points?
<mbakke>efraim: thanks! ruby 3.0.2 failed with OpenSSL 3.0 on my end, good to know it works in 3.0.4 :) I have some patches lined up
<abrenon>hey guix
<drakonis>ahoy
<civodul>o/
<abrenon>how is the working directory chosen for phase install in the copy-build-system ?
<tricon>abrenon: pretty sure it generates a sequental name based on the package name under `/tmp'.
<abrenon>sequential ? generated ? but isn't it supposed to be an existing folder within what's just been extracted by the previous phases ?
<abrenon>I sneaked a call to `pwd` before install and it told me it was in the first (alphabetical) folder of the zip archive stated as origin
<abrenon>and I have no clue how to change this behaviour
<tricon>abrenon: yes, and it'll be nested in a folder at: `/tmp/guix-build-<package>-<version>.drv-<number'.
<tricon>abrenon: if you build with the `-K` flag, it'll keep this folder around.
<tricon>and tell you the root path.
<abrenon>that's what I did
<abrenon>and the problem is that pwd is one of the folders directly at the root of my zip source
<abrenon>they all get unpacked in the same folder as the guix-created file environment-variables
<tricon>ah! so you need to modify the `'unpack' phase, yeah, if you want to change that behavior.
<abrenon>problem is : I need to copy all of that, so, ideally my working dir would be tmp/guix-build-<package>-<version>.drv-<number directly
<abrenon>ohhh, in the unpack phase, thanks !
<tricon>abrenon: sure thing. i've been down this road myself. lmk if you need any tips.
<abrenon>l.178 `and=> (first-subdirectory ".") chdir)`
<abrenon>well that looks like my answer ^^
<nckx>If this is a tarbomb, use url-fetch/tarbomb (I'm pretty sure that's the name, or it's close).
<abrenon>that rings a bell
<patched[m]>How do you guys manage backups of user data?
<abrenon>what's a "tarbomb" exactly ?
<abrenon>nested tar archives ?
<patched[m]>Wondering if there is a "correct" way to do it in guix, e.g. with system services or something.
<abrenon>patched[m]: I don't know about the guys but personnally I have a very simple rsync script that I run when I insert the dedicated volume
<Guest1132>abrenon: an attack vector where a tiny archive can expand to TBs of data
<nckx>abrenon: A foo-0.3.tgz file that doesn't contain a politely-named foo-0.3/ top-level directory, but extracts multiple files/directories to the PWD. ‘Bomb’ because of the feeling you'd get after innocently extracting such a file to ~ :)
<abrenon>thanks both of you : )
<nckx>Guest1132: That would make some sense analogous to ‘fork bomb’/‘zip bomb’, but it's not how we use the term. I don't know if there are places that do.
<nckx> http://www.linfo.org/tarbomb.html
<abrenon>I think the context speaks for nckx' definition, except maybe if the url-fetch/tarbomb function has been devised as a protection against Guest1132 's kind of tarbombs
<Guest1132>nckx: whoopsie :)
<abrenon>: )
<nckx>Guest1132: No, it was a reasonable extrapolation.
<nckx>u-f/t doesn't protect you against anything but an overzealous chdir.
<nckx>(It would be a bit weird to have a ‘…/secure’ variant of a default ‘insecure’ procedure, anyway.)
<nckx>patched[m]: I run rsync from an mcron job, nothing fancy. I don't think there are any ready-made back-up system services in Guix (yet).
*nckx away.
<patched[m]>All right, I'll look at hacking together something using rsync directly then :)
<abrenon>ahhh, much better with url-fetch/zipbomb, now at least I don't need to put unzip in my native-depedencies
<abrenon>thanks again everyone !
<dthompson>civodul: I wish 'guix shell -- make' applied the implicit guix.scm file loading like plain 'guix shell' does, would be really handy for M-x compile, but from reading an old mailing list thread it seems that you and others think only interactive invocations should do that. I think it's a real usability issue. thoughts?
<dthompson>like I'm used to running 'guix shell', and when 'guix shell -- make' gave me an "empty profile" warning, I was confused. I had to go look up what flags are implied by 'guix shell' and then add them which made the resulting command really long. coming from tools like 'bundle exec' in ruby, it feels worse even though it ought to feel better.
<civodul>dthompson: i think there was some consensus that non-interactive invocations shouldn't read those files, as you write
<superkamiguru>So I have guix installed inside qemu, and am trying to mount a shared 9p filesystem. I found something similar before when I was looking into this where system/vm.scm is using 9p filesystems with a regular device declaration. Anyone here familiar with how I could replicate this in my config?
<civodul>that said, the empty profile warning is kinda confusing and useless, i agree
<civodul>it'd be best to at least suggest passing "-m manifest.scm" or something
<dthompson>civodul: I'm trying to figure out if there's some situation where people would find it acceptable
<dthompson>it should "just work" in my opinion
<civodul>i see
<civodul>the difficulty here lies in the decision-making process
<dthompson>like maybe there's a way to carve out an exception if 'guix shell' is given no other args than something to exec
<dthompson>non-interactive and no packages or payload file given? okay, go ahead and look for guixs.cm
<dthompson>or maybe the question should be: non-interactive and no other args at all?
<dthompson>right now I feel like the one person who will even look at my patches is hostile to them.
<dthompson>I'd like to have a productive discussion about it and see if we can't come away with something that satisfies everyone.
<tricon>dthompson: it's a tough call. i come from the Ruby world myself, and there is that tension between "just works" and "too much magic".
<tricon>to your point, it does seem inconsistent on the surface.
<dthompson>having some basic conventions is good for usability.
<dthompson>'guix shell -- make' is so much better than 'guix shell --development --file=guix.scm -- make'
<dthompson>well 'guix shell -D -f guix.scm -- make' for short, but still not very pleasant
<dthompson>I have a hard time overlooking these types of issues because I wrote 'guix environment' so I'm pretty invested
<dthompson>it's supposed to be a developer productivity tool, and now it feels closed off to improvements without significant resistance.
<dthompson>some ideas from other language communities are good, and ruby's convention over configuration philosophy is one of them.
<dthompson>like, I wanted 'guix environment' to default to using the packages themselves, not the dependencies of the packages. --ad-hoc was a compromise I made to get it in. then years pass and 'guix shell' is introduced to correct the mistake.
<Luk6655>Is there some good tutorial /online book for learning guile syntax? Starting with simple stuff how to run a program, how modules work, lists, builtin objects, defining objects, inheritance. Nice if it has some builtin lib functions/functionalities. Basically "learn guile quick if you know all the programming concepts, but no scheme syntax whatsoever).
<dthompson>Luk6655: this doesn't cover everything you listed, but it's a great intro to scheme for newcomers https://spritely.institute/static/papers/scheme-primer.html
<Luk6655> dthompson :thanks, I'll check it out. Of course I found "tutorial introduction to guile" which focuses on c-guile integration, and "Hacker's guile notebook" which shows you how to write tests harness for your hello world before it shows you how to run the hello world...
<Luk6655>So is one better starting with scheme?
<Luk6655>I know guile is a (subset/dialect of) scheme
<dthompson>Luk6655: there are a few guile specific things to learn, like module definition, but this primer will cover a ton of the basics that are common to all Scheme implementations
<dthompson>it will get you familiar with syntax and lists and function definition and function calls and etc. etc. etc.
*dthompson goes afk, will respond when I get back
<Luk6655>dthompson: cool, thanks
<Luk6655>Yes, this looks like what I was looking for :-)
<Guest9028>I tried installing the nix packagemanager to my guix distro, but when trying to " nix-env -iA  ."
<Guest9028>packages it wont work
<Guest9028>anyone using nix packagemanager in guix?
<silicius[m]>So happy my package, hydrus-network, finally got merged
<silicius[m]>the wait was so long, I'll be preparing a patch to bump the package two or three versions up
<Guest9028>im getting error "warning :the group 'nixbld' specified in 'build-user-group' does not exist error: attribute 'nixpkgs' in selection path 'nixpkgs.packagename' not found"
<civodul>silicius[m]: heh, well done, and sorry for the delay!
<civodul>don't hesitate to ping here, there's quite a few committers who can help
<abrenon>bye !
<podiki[m]>the link to the debbugs user guide is broken: https://guix.gnu.org/en/manual/devel/en/html_node/Debbugs-User-Interfaces.html (last line before footnotes)
<Guest9028>Do I need to edit any file in order to use nix package manager in guix?
<Luk6655>However, if anyone knows any other guile/scheme book please let me know. The book suggested by dthompson is definitely good, but it seems to pretty quickly start using syntax that is never properly explained (#:key - for example)
<nckx>It's explained as ‘optional and keyword arguments. Guile implements this abstraction as define*’ — terse, but ‘improper’? What would a proper explanation look like, without confusing beginners?
<Luk6655>Well, I'm not really a beginner in programming I've been doing it for decades (in many languages from asm /C to java/python), but I never had any encounters with lisp-like languages. I don't know, perhaps I just need a different resource.
*civodul ran out of battery and the laptop stopped without warning
<civodul>isn't elogind supposed to do something smarter?
<Luk6655>A table that has argument types in one column and syntax in the other that covers all options woukd do great to help for example.
<civodul>like suspend-to-RAM
<civodul>Luk6655: does the "crash course" work for you? https://guix.gnu.org/cookbook/en/html_node/A-Scheme-Crash-Course.html
<Luk6655>civodul: let me read it and come back
<nckx>civodul: It does that, after hibernating, through critical-power-action.
<Luk6655>Thanks
<nckx>Luk6655: I might be misjudging your level, and sorry if so, but you realise that ‘#:key’ is not ‘Scheme syntax’, right? It has no special meaning outside of define*. It could have been %blueberry or !zork.
<Guest9028>Do I need to edit any file in order to use nix package manager in guix?
<nckx>Luk6655: For how some Guile procedures use the #:keyword convention for great glory, see 6.6.7.2 Coding With Keywords.
<nckx>Guest9028: You need to at least add the nix-service-type to your system.scm and reconfigure. I don't know if Nix has some nix.conf or ACL list or something else you need to edit after that.
<civodul>nckx: oh i see, that's a upower thing; then it seems upower doesn't run that critical-power-action in my case, how could it be?
<nckx>Right, that's what I'm wondering too (and not seeing obvious oversights in the code so far…)
<Luk6655>nckx: OK, I didn't know. As mentioned I never touched lisp/scheme so I'm not sure where lisp/scheme ands and guile starts etc.
<Luk6655>Still I'm reading that link which seems to be good.
<civodul>neat
<civodul>nckx: /var/log/messages doesn't have messages from upower
<civodul>upowerd is indeed running when i boot
<civodul>oh but "upower -d" says: "critical-action: PowerOff"
<civodul>could it be that the config file is ignored?
<nckx>So I got sucked into my own hole: upower-daemon isn't actually running here, it fails 😃
<nckx>This is not relevant, nckx, ignore.
<civodul>uh, we'll discover interesting issues i'm sure :-)
<nckx>So meanwhile, back at ground level: https://paste.debian.net/plainh/7fc01ec0 (/gnu/store/*-UPower.conf)
<civodul>right, and we do set UPOWER_CONF_FILE_NAME
<nckx>So your .conf file is correct?
<civodul>yes
<nckx>It's somewhere at run-time?
<nckx>OK.
<civodul>and the code of upower does seem to honor UPOWER_CONF_FILE_NAME
<Guest9092>nckx: Im a guix noob so Im not sure about neither how to edit the file or the location of the file
<nckx>It's whatever you pass to ‘guix system reconfigure’, so /etc/system.scm by default I believe.
<nckx>Or no, /etc/guix/config.scm?
<nckx>/etc/config.scm
<nckx>☝ that's what the installer creates.
<nckx>(This is what makes upower die here without exit status 0: https://github.com/freedesktop/upower/blob/master/src/up-main.c#L100)
<nckx>s/without/with/
<Guest9092>aiit found the file
<Guest9092>thanks
<Guest9092>But what do I add to it in order to use nix package manager?
<nckx>Huzzah! Now add (service nix-service-type) to the (services …) field.
<nckx>But do be advised that I have no idea if it's well-maintained. It's likely to be anywhere from janky to broken without further manual intervention, because rounded-down nobody uses it.
<Guest9092>inside of the (append(list())) ?
<Guest9092>Hmm yeah I just want to install 2 packages that isnt in guix package manager
*civodul reported a bug regarding upower
<Andronikos>I need libsystemd to compile a package. How do I add it? I want to create a Guix package.
<nckx>civodul: Bit on the nose, but does plain hibernation actually work for you? I wonder if it falls back to poweroff rather than s2ram otherwise.
<nckx>And it ain't like I can test, grr.
<nckx>It would be a defensible choice if so, but it's more likely that it's just a stupid bug somewhere.
<Guest9092>What do I do after I added the new service to my config.scm?
<nckx>Andronikos: Almost all packages that ‘need’ systemd can be convinced not to with a configure or make flag. Otherwise, it's patching time, because I'm almost certain that there's no libsystemd in Guix.
<nckx>Guest9092: ‘sudo guix system reconfigure /etc/config.scm’ (https://guix.gnu.org/en/manual/devel/en/guix.html#Invoking-guix-system), but you should really read the manual to get more comfortable with basic system administration. You'll need it.
<nckx>This is how you'll effect all system-level Guix changes.
<Guest9092>Thanks! I will
<civodul>nckx: hibernation isn't implemented yet in Guix System, IIRC, though there's been a couple of attempts
<nckx>Say what
<civodul>but HybridSleep should try suspend-to-RAM, no?
<nckx>I don't know. It's a choice: suspend to RAM and risk unclean file systems when power runs out whilst suspended (not unlikely on many machines/commutes), or sacrifice data in RAM for a graceful shutdown.
<nckx>But no, hybrid-sleep itself does not automatically mean ‘try to hibernate, then sleep regardless’ AFAIK.
<Andronikos>nckx: How would I patch it? I don't understand how for example gnu/packages/mpd does it.
<civodul>nckx: AFAICS PowerOff isn't graceful at all; in my case it just turned off, as opposed to doing invoking "halt" or similar
<nckx>Oh.
<civodul>anything else would have been better :-)
<nckx>Do you have any idea why it didn't shut down properly?
<nckx>Missing D-Bus endpoint?
<nckx>Andronikos: mpd just runs the Guile equivalent of ‘sed -i s/libsystemd/libelogind/g’ on the Meson build script.
<nckx>(Plus some cleanup.)
<nckx>Discussing this hypothetically is inefficient. Please post the package in question.
<civodul>could be upowerd is not finding elogind or something
<nckx>civodul: By the way, what's still missing to hibernate your machine?
<Andronikos>nckx: I am talking about this package: https://github.com/Kistler-Group/sdbus-cpp since it is a dep for https://github.com/nullobsi/pass-secrets.
<nckx>The official alternative is to ‘turn BUILD_LIBSYSTEMD on for sdbus-c++ to download, build and incorporate libsystemd as embedded library within sdbus-c++’. So… that's not great either.
<nckx>You can try substituting the right files to link against libelogind rather than libsystemd and hope that they are sufficiently compatible (I don't know).
<Andronikos>Do I need to set elogind or libelogind as input if I do this approach?
<nckx>There is no libelogind package, so elogind.
<Andronikos>Okay. Thanks for helping out. I do now know what needs to be done.
<nckx>You're welcome. If you get stuck (this can get really ugly, it depends on how stubborn the build script is, for one), I might give it a go.
<dthompson>Luk6655: anything else confusing besides the introduction of #:keywords without explanation? I know the author and I'm sure they'd very much like to resolve what is preventing you from getting the most out of it.
<nckx>civodul: Is your system configuration public? I wonder if I'm missing an undeclared service (I have dbus- and login-, but not the entire %desktop clique).
<Luk6655>dthompson: I had to go away for a bit, I'll msg you if I find anything more
<apteryx>mbakke: hi! any estimate as to when staging could be merged into master?
*mbakke checks the weather
*mbakke intentionally introduced a merge conflict on 'master' in the hopes of reducing them down the line :P
<apteryx>hehe
<mbakke>apteryx: the x86_64 weather on 'staging' is great, at 92,3%
<mbakke>jury is still out for i686 and aarch64
<dthompson>Luk6655: okay np. whatever you feel like sharing :)
<mbakke>apteryx: aarch64 is only at 22,8%, dunno what's up with that ... i686 is looking ok at 80,4%, not sure what the baseline (master) is
<polyex>Christoph[m] well maybe after each successful phase of a build, there's some kind of checkpoint info written to a 'progress' file. then any time a build is started, the progress file is used to pick up where you left off?
<Andronikos>I need to add code in the file CMakeLists.txt. How do I accomplish that? I am talking about making a Guix package.
<Luk6655>dthompson: I'm sort of 40% through and I have to say "scheme primer" reads much better after first reading the "crash course".
<vivien>Andronikos, I would rename the CMakeLists.txt, create a new one with the new code and include the renamed file
<nckx>Synergy detected.
<nckx>Andronikos: Again, depends on what code, and where. You could use substitute* as a hacky (but common) way to insert code snippets in arbitrary places, or simply append to the file with open-file, or…
*nckx away.
<Andronikos>Basically this: https://github.com/elogind/elogind/issues/190#issuecomment-752414489
<Andronikos>So I would guess a new file is to much?
***mark__ is now known as mjw
<apteryx>80,4% for i686 is good
<apteryx>mbakke: I'm guessing a couple things need to be restarted for aarch64
<nckx>Hi antipode.
<antipode>Hi
<antipode>I've noticed a few build failures on master on ci.guix.gnu.org are because of network failures during downloading source code
<antipode>Some things that need to be restarted
<nckx>Andronikos: I suggest applying that as a patch, possibly editing it to apply to the latest version if it no longer does (didn't check). That's a lot more clear than messing with substitution or writing CMake from within Guile.
<antipode>I've noticed a few build failures on master on ci.guix.gnu.org (wxwidgets)
<nckx>antipode: Ugh. OK.
<nckx>(No, there is no way to query ‘builds that failed for reason X’.)
<antipode>I'm wondering if some of the build nodes don't have network access and if that was the problem.
<nckx>Andronikos: Concretely, you'd create a file with that diff in gnu/packages/patches/, and add it to (patches (search-patches "sdbus-c++-…patch")).
<nckx>If that works, also add it to dist_patch_DATA in gnu/local.mk.
<antipode> https://ci.guix.gnu.org/build/1203915/details (ruby-gem-hadar, stops ruby-asciidoctor from building, but it's a ENOSPC)
<antipode> https://ci.guix.gnu.org/build/1191184/details (fuse, ENOSPC, aarch64)
<antipode> https://ci.guix.gnu.org/build/1203987/details (python-requests-mock, ENOSPC)
<antipode>that's it for now.
<nckx>Build nodes should have Internet access, but that's never going to be reliable.
<nckx>Thanks.
<nckx>I guess this time-out needs to be bumped: https://ci.guix.gnu.org/build/1244003/details
<nckx>Does Cuirass still respect the timeout property?
<antipode>I've a few other ones, can I send the /restart link directly?
<nckx>(Note to self: yes, it should.)
<nckx>antipode: Sure.
<mbakke>are there only two active aarch64 builders now? https://ci.guix.gnu.org/workers
<nckx>Looks like it.
<nckx>When I left home there was an incredibly noisy Overdrive presumably building stuff, but that was months ago.
<antipode>6 lines incoming:
<antipode> https://ci.guix.gnu.org/admin/build/1288718/restart
<antipode> https://ci.guix.gnu.org/admin/build/1240917/restart
<antipode> https://ci.guix.gnu.org/admin/build/1241574/restart (maybe not a network error)
<antipode> https://ci.guix.gnu.org/admin/build/1241574/restart (maybe not a network error)
<antipode> https://ci.guix.gnu.org/admin/build/1241056/restart
<antipode> https://ci.guix.gnu.org/admin/build/1241254/restart
<antipode> https://ci.guix.gnu.org/admin/build/1241443/restart (maybe not a network error)
<nckx>Warning or not, this should probably be a paste.
<antipode>OK.
<nckx>Everything above has been restarted though.
<efraim>for aarch64 I restarted go@1.17 and cl-asdf, a prereq for sbcl
<klm>lilyp: Hi again, I'm stuck on solvespace. I can't package libdxfrw properly: it isn't a proper CMake project and this is taking too long (2 days now). I don't think the libdxfrw fork is worthy of a package declaration. Would it be ok if I ran `git submodule init` on just libdxfrw? I managed to extract mimalloc, at least.
<rekado>klm: could you show us the URL of that project?
<klm>rekado: solvespaces' dependencies are here: https://github.com/solvespace/solvespace/tree/master/extlib
<rekado>I’d say don’t bother with libdxfrw.
<klm>everything there is now a guix package except "libdxfrw @ 0b7b7b7" which I can't get to build and import properly (it doesn't do any install(...)) and I'm a cmake noob
<klm>rekado: ok, good to hear. now the next question: I don't want to run recursive #t because the other (unused) deps are pretty huge. How do I run `git submodule --init libdxfrw` instead?
<chino>hi, guix home is handling my services correctly but isn't installing the packages I specified, is there a way to figure why it's doing this?
<lilyp>klm: you can use the "unpack after unpack" pattern
<lilyp>that is, you declare the origin for libdxfrw as you'd do for a package, then you copy-recursively that into the right location
<klm>lilyp: as in (add-after 'unpack 'unpack-libdxfr ...)? If so, what do I put inside ...? I can't seem to find anything else that's doing this - a bit strange.
<lilyp>I think grepping for "add-after 'unpack 'unpack" should do it
<klm>lilyp: seems .git is gone after unpack, I'll have to continue this tomorrow. Thanks for your help this far!
<lilyp>you don't need .git tho
<klm>In order to run, "git submodule update --init extlib/libdxfrw", I do. I guess I could "cd extlib/libdxfrw ; git clone solvespace/libdxfrw@7070" instead, is that where you're going?
<lilyp>you don't need to run git at all
<lilyp>in fact, even if you had .git, you couldn't
<nckx>Which is to say, there is no network access in the build environment, and no downloading random naughty bits from the 'net. You'll have to turn libdxfrw into an origin, or better yet (if supported) a separately compiled dynamic library package.
<nckx>Re-read lilyp's ‘that is…’ message with that in mind and it'll probably click.
<jackhill>I haven't read the full backlog, but, based on rekado's "I’d say don't bother with libdxfrw", maybe you could look at the recursive option for git origins?
<Andronikos>nckx: It does now work with the patch. Thanks for the help out. Yes it would be smarter to fix it upstream but I just wanted it to work so I could use it.
<nckx>jackhill: I missed that message, thanks. So it's a single-use library or so?
<nckx>Andronikos: Sure, it is upstream's responsibility, but it's OK to carry patches in Guix as long as they have also been submitted upstream.
<nckx>Which reminds me: include a link to the upstream issue URL to keep track of that.
<nckx>(In the patch header.)
<jackhill>nckx: 🤷 I don't know, but wanted to make sure all the options had been considered.
<Andronikos>nckx: I am currently only using it for myself. I don't know if it is even eligible for Guix itself because of license. Since it has this: https://github.com/Kistler-Group/sdbus-cpp/blob/master/COPYING-LGPL-Exception
<nckx>I don't think that's problematic.
<nckx>No, I can't find issue with it.
<klm>sorry guys, I totally missed the "that is…" message. Trying with "copy-recursively".
<nckx>s/guys/friends and enemies/
<klm>jackhill: Thanks for the tip, and revursive #t would have been much easier. But it pulls down _all_ dependencies, which is a lot. That's why I'm going through this hurdle to just get this small libdxfrw thing into the build path.
<klm>but speaking of which, could perhaps #:recursive go from #f/#t to a list of strings? So you could specify which submodules to update.
<Andronikos>nckx: If that is the case I am going to submit it.
<nckx>Andronikos: Thank you! By the way, even if I'm mistaken (which obviously never happens ◍•ᴗ•◍), there's nothing wrong with submitting packages in good faith that later turn out to have freedom problems. That's what review is for.
<sneek>unmatched-paren: wb!!
<Andronikos>Isn't "libsecret-1.so.0: cannot open shared object file: No such file or directory" fixable with "guix install libsecret"? Since I still have the error. I am using GNU Guix Binary and the package is a binary as GNU Guix package.
<nckx>When does this happen? ‘guix install’ is not generally a fix for missing libraries, no.
<Andronikos>Why do so many clients connect at the same time. Really annoing in ERC.
<Andronikos>Oh I see. Since that is how I fixed it on the Gentoo System so I thought I can just adapt that. Well it is the Minecraft launcher and it requres it to store the Microsoft credentials.
<nckx>Andronikos: 30 Aug 21:54:08-tomaw/Wallops- I need to do a quick reroute. It'll be messy but should be quick
*nckx has to go o/
<yewscion>o/
<jas>hi. is there a package or system test suite for guix? i'm thinking something similar to Debian's debci/autopkgtest which is somewhat different from a 'make check' from upstream
<acrow>roptat: I think that
<acrow> https://issues.guix.gnu.org/32947#29 is ready to be committed. Would you mind taking a look at it? Others agree it works but agree that you are the best informed on java matters like this one. If you see additional issues please let me know what I can do to address them.
***caleb_ is now known as KE0VVT
<KE0VVT>Odd question: Can I use Ansible with Guix System?
<Noisytoot>Andronikos: Minecraft is proprietary. Play Minetest instead. It's free, packaged in Guix, and you don't need to log in to any centralized and proprietary service to use it.
<Andronikos>Noisytoot: I am aware of that, too. But I want to test out the new update as well as learn more about Guix.
<KE0VVT>Andronikos: While in theory Minecraft can run on Guix, this is not the place to discuss it. Official forums like this are for free software only.
<Andronikos>Understandable.
***devmsv_ is now known as devmsv
<apteryx>mbakke: I was asking because I wanted to try upgrading gnome-shell to latest, and it wanted a newer gjs, which wants a newer mozjs
<KE0VVT>Just to be clear: I cannot use Ansible with Guix, right?
<apteryx>it depends for what, but you won't be automating package installation with built-in modules, no
<apteryx>unless you author such a module adding support for Guix
<apteryx>which would be pointless because 'guix deploy' is a better tool for Guix System
<KE0VVT>apteryx: Basically, I want to learn Ansible, but I know its use on Guix System is limited at best.
<apteryx>you could create an ansible playbook to install guix on a foreign distribution, if you want to study how it works while providing something useful for Guix users ;-)
<KE0VVT>apteryx: Why not just run guix-install.sh?
<vagrantc>you mean, just download the script, just verify the signature, and just run it?
<kabouik>So I just received a new PC. My Guix system so far was a SBC (a powerful one but still a SBC). I was not done configuring it, but I'd rather transfer what I had to the new PC to continue my configuration. What would be the best way? I'm not comfortable yet with how to wrap up my current Guix state in the SBC and deploy it as a bootable img (if that even possible) on the new machine, but I was under the impression that's one of Guix' strong suits.
<acrow>A certificate on issues.guix.gnu.org has expired....
<KE0VVT>vagrantc: Although, on Fedora, guix-install.sh is not all that's needed.
<vagrantc>KE0VVT: and so then "just" do all the other things?
<KE0VVT>vagrantc: Ah, OK.
<KE0VVT>kabouik: What's wrong with just copying your config.scm over to the new machine and using it?
<KE0VVT>kabouik: Well, and changing your UUIDs to match the new machine.
<kabouik>Nothing wrong, I was just waiting for someone to tell me that this was the way to go. :>
<Andronikos>SBC stands for what?
<KE0VVT>vagrantc: So do you have a Guix-based Kodi box?
<kabouik>But wasn't there a way to use that right from the initial install from a bootable device? I remember I had to change some .scm files in the initial install (namely to use the Linux kernel), I'd be happy if I could skip that and just use the working configs I have on the SBC already (single board computer)
<rekado>acrow: thanks, fixed.
<rekado>weird that the auto-renewal task didn’t take care of it.
***aaa is now known as chino
<Andronikos>Is there some easy way to find out what package is missing? Like for example cmake doesn't find "LibLZMA". No clue what package it is.
<nckx>Oh god, not again: "executing SQLite query: database disk image is malformed" — this is disturbing, happening as it does across machines and file system types, but also confusing, because nobody else seems to report it.
<nckx>Andronikos: No. But liblzma is in xz.
<Andronikos>Woud have been to easy I guess. How do you know that?
<nckx>I just did.
<Andronikos>I mean how do you know that it is xz. Is it because after some time you just get used to it?
<nckx>Yep. I just know that.
<nckx>Before xz(-utils) became the standard, there was lzma(-utils), and xz still provides that library.
<nckx>Guess I'm dating myself by just remembering that :)
<vagrantc>Andronikos: you can also use find /gnu/store -iname lzma ... and if you're lucky, it's already in there somewhere
<chino>is there a way to get more info out of `guix pull`? it's failing to build derivative with this log: (exception unbound-variable (value #f) (value "Unbound variable: ~S") (value (channel)) (value #f))
<chino>a derivative of my custom channel*
<nckx>vagrantc trolling HDD owners again /j
<nckx>chino: Does it not print a log file name? I thought it did.
<vagrantc>nckx: heh
<chino>nckx it does, the log filename contains that
<chino>log file* sorry
<pkill9>nckx: I reported a problem with guix's sql database once, I don't think it was the same error message but maybe it's rooted in the same issue? I never solved it, just reinstalled guix
<nckx>My db.sqlite-wal is 7.7 GiB (the DB itself 1.2). That's probably not… good…
<nckx>pkill9: Yeah, from here it's *very* easy to end up in a situation where Guix ends up eating itself by deleting the entire store. I'm a bit nervous. This is a KVM-less remote machine…
<nckx>chino: Oh :-/
<nckx>chino: I guess you're using ‘channel’ somewhere you shouldn't? Valuable info, I know.
<Andronikos>nckx: I envy you knowledge.