IRC channel logs

2024-05-30.log

back to list of logs

<lispmacs[work]>on a guix system, what sets /etc/machine.id? shepherd?
<mirai>iirc it's generated at install time
<anthk_>uhm, does timidity have a service setup?
<anthk_>it should have it, among setting up the sound font
<gnucode>freakingpenguin: that is probably one of the coolest irc nicks I've seen in a while!
<freakingpenguin>gnucode: Found it on yahoo answers years ago ;)
<gnucode>:)
<apteryx>ieure: hi! I'm on the fence about whether we want to generate the librewolf tarball by ourselves or leave it to the project. in the past, it's been argued for linux-libre that this was best left to the project (not replicated in guix, potentially exposing users to non-free sources in the process)
<apteryx>it's also been a very expensive process for us to reproduce (the scripts consumes a lot of memory and takes multiple hours/days on slower hardware!) in the case of linux-libre
<freakingpenguin>apteryx: I know you didn't ask me, but I had some headaches generating those linux libre tarballs when making images for SBCs. IMO avoiding tarball generation is best.
<freakingpenguin>obviously not my decision to make though :)
<brendn>Can any of the home services be used for directories instead of files?
<brendn>For linking dotfiles
<brendn>nvm
<hapster>hi guix o/
<efraim>o/
<hapster>I have a package patch that's currently in status unknown, and since it is my first patch, I'd like to involve the mentors team in reviewing it. However, I failed to include them while sending the patch in. Is there a way to include them "after the fact"?
<efraim>I would just send it again to the same bug number and add the CC for the mentors and add a note that you meant to add them the first time
<hapster>efraim: Thats a good idea, thanks!
<efraim>gccgo@12 and gccgo@13.2 FTBFS on i586-gnu but gccgo@11 builds fine
<nutcase>Hi, is it just me having "updating substitutes from 'https://substitutes.nonguix.org'." being veeery slow?
<peanuts>"Official substitution server for nonguix" https://substitutes.nonguix.org
<nutcase>oh, sorry, wrong chat
<futurile>morning all
<efraim>o/
<adanska>futurile: good morning!
<PierreChTux>Hi there.
<PierreChTux>I'll try resuming my quest for an operating Guix OS.
<PierreChTux>Since yesterday's error seems to be memory-related (OOM kill), I'll try to add the swap to the system.
<futurile>PierreChTux: cool that you're progress
<PierreChTux>futurile thanks for encouragement!
<PierreChTux>I wouldn't dare to call this "progress", especially when I look at /etc/fstab :
<PierreChTux>root@hprose ~# cat /etc/fstab
<PierreChTux># This file was generated from your Guix configuration.  Any changes
<PierreChTux># will be lost upon reboot or reconfiguration.
<PierreChTux>UUID=ffa4ad5c-25c4-4bc7-b800-b26771a7a012       /       ext4    defaults
<PierreChTux>root@hprose ~#
<PierreChTux>I'm sure that I had setup the swap partition when I installed Guix (no double boot, just two partitions, / and /swap), here's the fdisk:
<PierreChTux>root@hprose /# export LANG=C
<PierreChTux>root@hprose /# fdisk -l /dev/sda
<PierreChTux>Disk /dev/sda: 232.89 GiB, 250059350016 bytes, 488397168 sectors
<PierreChTux>Disk model: PNY 250GB SATA S
<PierreChTux>Units: sectors of 1 * 512 = 512 bytes
<PierreChTux>Sector size (logical/physical): 512 bytes / 512 bytes
<efraim>if you want to post more than a few lines you'll need to use a paste service like paste.debian.net
<PierreChTux>efraim sorry about that, I thought that something like 10 lines were acceptable.  My bad.
<efraim>I don't remember how many it is that the bot will cut someone off but it seems to be less than 10
<PierreChTux>Ah, that's probably why I've been disconnected yesterday night.
<dariqq>PierreChTux: do you have an entry for swap-devices in your config.scm?
<PierreChTux>dariqq no, and that's strange, because I'm sure that I implemented it when I installed the system.
<PierreChTux>It's strange: the swap partition could not be activated by swapon; I battled a bit, and I had to reformat it (mkswap /dev/sda2 ) before I could sucessfully use it.
<PierreChTux>I just launched yet another guix pull as root, wait and see (and hope)...
<Argyro>Hi, did something change about the oci-container-configuration? I am getting `Wrong type argument in position 1 (expecting struct): "<URL of image>"` with a string for the image. Config for that worked perfectly fine up until recently.
<taeaad>After running "guix import pypi <x>", where should I run the Lisp code that gets returned?
<taeaad>I suppose guix import pypi <x> -r > test.scm
<taeaad> Hi, does anyone perhaps have a sample manifest file for a Guix setup in Python that includes the usual suspects (numpy, pandas, etc.).
<taeaad>Hmm, maybe this https://gitlab.inria.fr/guix-hpc/guix-hpc/-/raw/master/airbus/gcvb.scm
<taeaad>I get an error though,
<taeaad>ice-9/boot-9.scm:1685:16: In procedure raise-exception:
<taeaad>In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): #<unspecified>
<taeaad>When doing "guix package -m gcvb.scm".
<snape>Hi, please how can I fix "guix git: error: unknown introductory commit and signer" if I want to push something?
<indigo-oce>Hello! I'm trying to run a binary that seems to have hardcoded the /lib64/ld-linux-x86-64.so.2 file in the binary... at least the raw string appears early into the bytecode...
<indigo-oce>When running the file with exec it says 'file or directory not found'
<indigo-oce>The binary in question is adb from android platform tools... needed to flash an android device with calyxos.
<indigo-oce>(the hardcoded file may not actually be the issue... I'm trying to figure out the issue... the only error so far is 'no such file or directory'
<indigo-oce>)
<indigo-oce>A similar issue was found when running on nix https://gitlab.com/CalyxOS/calyxos/-/issues/948
<indigo-oce>The user mentions Nix having workarounds... I'd assume Guix does too...
<peanuts>"Device flasher: Installation fails on NixOS and Guix (#948) ? Issues ? CalyxOS / calyxos ? GitLab" https://gitlab.com/CalyxOS/calyxos/-/issues/948
<bjc> indigo-oce: “no such file or directory” has a lot of potential causes. can you run ‘ldd device-flasher.linux’ or whatever command it is that causes the error?
<bjc>that'll show you if it can't locate a particular shared lib
<bjc>you can work around individual issues by manipulating the LD_LIBRARY_PATH env variable, but if this is actually being packaged instead of it being a one-off, you should patch the source so you don't need hacks
<taeaad>OK looks like I have something that is working, finally. Jeez, and I thought I were a power user.
<taeaad>It would be worth it to have a series of tutorials for Python. What I could find was not terribly useful, maybe because of my own stupidity.
<apteryx>are there still GNU FSDG issues with stock Firefox?
<apteryx>I guess one is that it steers users toward possibly non-free add-ons
<apteryx>the historical one was a trademark issue, which may have been resolved since? (debian resumed shipping 'firefox' some years back)
<indigo-oce>bjc: I'm back... thanks for responding... here's the output of `ldd platform-tools/abd` https://paste.debian.net/1318572/
<peanuts>"debian Pastezone" https://paste.debian.net/1318572
<indigo-oce>It seems to find the linked files... I thought that might be the issue from looking at another attempt at debugging the file not found issue...
<singpolyma>apteryx: the trademark issue was always mythological, but yes the add on search function is an FSDG issue
<taeaad>Suppose I want to do, guix import pypi <x>@<v>, but I don't know which v is compatable with my current installation of guix. Can I do a compatibility search?
<jakef>taeaad: omit the v unless you have a reason to go for an older version
<bjc>indigo-oce: looks like libgcc isn't being found. i can't remember if gcc has a ‘lib’ output or not, and can't get to my guix machine to check rn, but that's the problem
<taeaad>jakef: The resultant v that I get from omission is not compatable.
<jakef>taeaad: not compatible in what sense?
<bjc>indigo-oce: you /may/ be able to work around some of these issues with a --enable-fhs flag on ‘guix container’
<taeaad>So, for example, guix import pypi lightgbm gives me 4.3.0. If I try to install this via a package definition, it doesn't work.
<bjc>(though that won't do you much good in a normal shell, of course)
<jakef>that's probably a problem with your pacakge definition
<taeaad>I know that 3.3.2 used to work with my (separate) Pip setup, but now I try 3.3.2 instead and it also doesn't work.
<jakef>the pypi importer does a lot of the work for you, but it can miss some things needed in the package definition. this won't likely be resolved by going back to an earlier version
<taeaad>jakef: So probably I need to add more packages that it missed?
<jakef>possibly. hopefully its as simple as that
<jakef>maybe its running tests but you don't have pytest as a native input
<jakef>just one example
<indigo-oce>bjc thanks! I'll look into it.
<indigo-oce>idk how I missed the not found library...
<apteryx>singpolyma: I see
<taeaad>In https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/machine-learning.scm#n2224, it says in comments "Needs python-lightgbm", would that be a custom package, i.e. one not accessible via "guix install python-lightgbm"?
<peanuts>"machine-learning.scm\packages\gnu - guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/machine-learning.scm#n2224
<apteryx>taeaad: I guess it means it hasn't been packaged yet, but should be
<ieure>taeaad, What line is that comment on? It's not anywhere in the package you linked. Only mention of python-lightgbm is in the python-hyperopt package.
<ieure>The comment on the python-hyperopt package is about the test, which depend on python-lightgbm; and I agree with apteryx, it looks like that's not packaged, so the tests which need it are disabled.
<apteryx>how is gnulib-tool supposed to be used with the shebangs not patched?
<apteryx>e.g., adding it as a native-inputs to 'patch', I see: ./bootstrap: /gnu/store/kr879icrnfj2idb51h3fsr175q9gw2ra-gnulib-2022-12-31-1.875461f/src/gnulib/gnulib-tool: /usr/bin/sh: bad interpreter: No such file or directory
<apteryx>yet this 'preserve original shebang' thing seems intended, looking at gnulib
<apteryx>I guess instead of being used as a native input I should copy that in a phase
<apteryx>before the automatic patching happens
<civodul>apteryx: gnulib is not supposed to be packaged, so prolly this is some sort of a compromise
<apteryx>I was surprised that patch's build system could apparently pick up the gnulib-tool sources from elsewhere without me specifying it
<apteryx>I'm now copying it in and patching it myself
<apteryx>ACTION works fixing old #47144
<peanuts>"security patching of 'patch' package" https://issues.guix.gnu.org/47144
<civodul>woow
<apteryx>ah! it has a search path!
<apteryx>GNULIB_SRCDIR
<apteryx>that's how it could find it
<apteryx>but being unpatched it's kind of useless
<apteryx>not sure if this was intended, I guess not.
<apteryx>(search path on gnulib package)
<taeaad>ieure: Line 2330 and line 2332 of machine-learning.scm.
<taeaad>Does it mean that the author tried to package python-lightgbm and couldn't, or just that they would want to package it at some point?
<ieure>taeaad, It just looks to me that the thing they wanted had tests that depended on another package which wasn't in Guix, and they disabled those tests. It's unknowable whether they tried or not.
<taeaad>Alright.
<ieure>But to answer your question, there's not really such a thing as "a custom package." It's just some software that isn't packaged yet.
<apteryx>taeaad: you could find by Change-Id if it has one on our tracker to see if there was any review/discussion
<taeaad>By custom I mean that it's not available via "guix install <custom>"
<ieure>taeaad, I believe the term for that is a hidden package -- those are ones which are needed for some other package's build process, but not useful outside that. And the answer is still no, if that was the case, there'd be a package which was in the inputs of whatever needed it.
<ieure>There's a 'hidden property you can set on packages to control user visibility.
<picnoir>Hey guix! Is there a trick to run a shepherd service in its own cgroup?
<ngz>Hello Guix!
<jam`>picnoir: like least-authority-wrapper or fork+exec-command/container ?
<freakingpenguin>How do I go about writing a system test for a service that uses mcron? Ideally I want the mcron job to be configured to start, say, 30 seconds after system bootup, not 1AM.
<picnoir>jam`: hmm, it seems like run-container is expecting at least some sort of fs and pid namespaces. I'm really interested just in the cgroup bit. I could probably extract the cgroup bit from run-container though, it's probably a good starting point :)
<picnoir>My bad, if I set namespaces to 'cgroup only, it do what I trying to do. Thanks jam`!
<picnoir>*what I was
<jam`>o7
<freakingpenguin>If I could figure out how to manually trigger an mcron job that would be a solution, but I don't know if that's possible
<jam`>freakingpenguin: what does %test-mcron not do?
<cow_2001>i'm getting "error: home-page: unbound variable" when trying to build a package definition, the home-page field is right there under (package (home-page "blah://blah.blah"))
<cow_2001>what is going on?
<polyedre>Could you send a more comprehensive example of code? With pastebin for instance?
<jam`>cow_2001: are you importing the (guix packages) module?
<cow_2001>it's in /kakafarm/packages/guile-xyz.scm http://0x0.st/XNwH.scm and i run `guix build -L . guile-websocket-next`
<cow_2001>jam` did
<cow_2001>./kakafarm/... that is
<cow_2001>not under the root directory, just relative to the root of the git repository worktree
<cow_2001>the complete error message is: http://0x0.st/XNwK.PBLis4eq
<cow_2001>i am trying to write a package definition for the latest commit of the guile-websocket library
<cow_2001>called it guile-websocket-next like you do with guile-next
<apteryx>ACTION read https://issues.guix.gnu.org/62181, not sure I understand the rational for removing references to the tools
<cow_2001>i have to go now. if you know what's causing this perplexing message, please tell me. i swear it worked last time
<peanuts>"Gnulib package keeps references to clisp, Python, Perl, and Bash" https://issues.guix.gnu.org/62181
<apteryx>while it's source form, these are scripts used at build time during the bootstrap phase, so any users now have to manually patch these scripts before use... which seems like a step back.
<mirai>freakingpenguin: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/linux.scm#n260
<peanuts>"linux.scm\services\gnu - guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/linux.scm#n260
<mirai>regarding mcron job
<polyedre>cow_2001: I think the error is on line 57, not in the guile-websocket-next package definition
<mirai>a tiny note: the quote/unquote for schedule in that snippet is wrong but I haven't sent a patch to fix that yet
<apteryx>mirai: oooh! greetings. welcome back :-)
<mirai>also hi guix o/
<mirai>:)
<polyedre>Hi!
<freakingpenguin>jam`: mirai: Thanks! It's a bit of an annoying situation because the guix service creates the mcron job behind the scenes, and if I want to test the service I can't make my own job.
<freakingpenguin>For now I think I'll just have it run every ~30 seconds or so and hardcode a 60s sleep.
<futurile>Q: how do I set an environment variable for the user, that is not a file directory? So I just want SOMETHING="blah", and search-path-specification is for a list of directories right
<mirai>you can use aa 'simple service extension'
<futurile>should have said 'in a package definition'
<mirai>I think the manual has an example
<mirai>futurile: wrap-program?
<freakingpenguin>mirai: Yep, I know I can extend mcron for my own configuration :). Just was wondering if there was a convention to handle it with a Guix service test in gnu/tests
<freakingpenguin>Seems like "run X seconds and hardcode a delay long enough to guarantee it runs at least once" is the best you can do.
<futurile>mirai: yeah, I thought about that - that will prevent my user from changing that variable themselves I think - I'll play with that and see if it works
<freakingpenguin>Oh derp I misunderstood who you were talking to oops
<mirai>freakingpenguin: in theory you could pass a 'small scheme expression' in the schedule
<mirai>that can do arbitrarily complex scheduling
<mirai>futurile: there's a parameter that can control the behavior: prefix, = and suffix
<mirai>e.g. with prefix the wrap-program gives you THEVAR=$THEVAR:…
<futurile>mirai: OK - cool - I'll check it out
<brendn>What would be the best way to launch emacsclient after emacs server? I have a shepherd service that runs emacs daemon and I made another shepherd service to launch emacsclient which requires the daemon service but it doesn't work. I was just using a shepherd service so I could require the emacs daemon service but is there a better alternative?
<polyedre>I do not know if it makes sense to start emacsclient as a service, because you probably want the service to run in the foreground. I use my windows manager to start it with a keyboard shortcut
<polyedre>But you may have some luck with "one-shot?" and "requirements" to depends on the server daemon: https://guix.gnu.org/manual/en/html_node/Shepherd-Services.html
<peanuts>"Shepherd Services (GNU Guix Reference Manual)" https://guix.gnu.org/manual/en/html_node/Shepherd-Services.html
<brendn>polyedre: Yeah I'm currently using my wm to launch emacsclient -c -a "" when it starts but I was wondering if there was a method to depend directly on the shepherd service for launching emacs --fg-daemon instead of relying on -a "" as a fallback. I wrote a simple shepherd service for emacsclient which depended on the emacs daemon service but ran into issues. I think it is being launched too soon after emacs daemon which hasn't set up
<brendn>the socket yet and so fails trying to find server socket. And as you mentioned there would need to be some way to run it in the foreground so I'm wondering if there is another way to launch and application that depends on a service
<jam`>cow_2001: change home-page to the string url for your git-reference. home-page is a record field not a var
<cow_2001>jam`: polyedre: i can swear i've seen it being used like that somewhere :< oh well
<bigbookofbug>how would one pass a function to the OS during the boot process? im on a btrfs partition and would like to delete the contents of one of my subvolumes on each boot
<popebob>couple of newb questions; what is '/gnu/store' referred to as, internally, and can it be variable-ized? i would love to run guix as a non-root user to supplement a non-guix distribution.
<ieure>bigbookofbug, Why not mount a tmpfs instead?
<bigbookofbug>guix wasnt a fan of tmpfs roots last i tried
<ieure>bigbookofbug, I don't understand what you mean by "tmpfs roots," but maybe I don't understand your usecase. My assumption is that you have a btrfs volume mounted on "/random/junk" where stuff goes, and you want to delete all its contents on boot. And my suggestion is to mount a tmpfs on /random/junk instead, then you don't have to care about deleting things when you boot.
<bigbookofbug>i'm trying to delete the contents of "/". i have seperate subvols for my home and the store that get mounted onto the root subvolume, and would like to restore the root subvolume to a blank snapshot on boot
<ieure>I see.
<ieure>I'm not sure how to do that; probably you need a system service which runs immediately after filesystems are mounted.
<bigbookofbug>i was thinking either that or the guile repl that starts on boot, but i'm struggling to figure out if there's a means of having the repl evaluate an expression and then continue with the default boot process
<freakingpenguin>bigbookofbug: I think boot-system in (gnu build linux-boot) is the relevant function here (runs in initrd and mounts rootfs). However I don't see an escape hatch for inserting your own code.
<bigbookofbug>ty ! i'll dig into the code some :)
<gnucode>hey guix, it looks like there will be a live coding for the Hurd on Saturday June 1st. The main developer will be posting some glibc patches to make the Hurd run on AArch64. It is scheduled tentatively for 2pm UTC. I'll post the jitsi link on #hurd @ 2pm UTC the day of. Ya'll are welcome to join in!
<aarcov>Does anyone know how to get the package version from a guix package to use in another package? aka, something to replace `(setenv "LIBPCAP_VER" "1.10.1")` with something like `(setenv "LIBPCAP_VER" libpcap.version)`?
<janneke>gnucode: (y)
<ngz>aarcov: (package-version libpcap) ?
<gnucode>janneke: I literally just went to an online scheme repl to type in "(y)" ...I thought that was a scheme function with which I was unfamiliar...
<aarcov>ngz: using that gives me this error: `unbound-variable #f "Unbound variable: ~S" (package-version) #f`
<aarcov>do I need to load some other gnu module to access the function?
<janneke>gnucode: it's a thumbs-up
<gnucode>janneke: gotcha. :) 👍
<ngz>aarcov: I don't think so. I may need more context.
<aarcov>ngz: This is what I currently have added to gnu/packages/crates-io.scm: https://paste.debian.net/1318634
<peanuts>"debian Pastezone" https://paste.debian.net/1318634
<ngz>aarcov: You are trying to ungexp outside a G-expression.
<ngz>aarcov: nm it's commented. I think (setenv "LIBPCAP_VER ,(package-version libpcap)) should work. But it's not optimal.
<aarcov>ngz: that missing comma solved it, thank you
<aarcov>ya, I'm currently going through a hackish method of trying to set an environment variable to enable building rust-pcap which expects to find libpcap.so; however, the correct symlink is likely libpcap.so.1 now; manually setting the environment variable defining the version removes the need to check
<aarcov>a better solution would probably be to add another symlink somehow
<ngz>I was talking about referring to libpcap directly in your phase. It would be better to use G-exps and #$(package-version (this-package-input "libpcap")) instead.
<aarcov>especially, since I'm now having issues with packages that depend on rust-pcap@0.9 not working unless I also add the modified phase to define the environment variable to them as well... but this is progress
<aarcov>I don't know much on G-exps ect., what makes #$(package-version (this-package-input "libpcap")) better?
<ngz>libpcap refers to the "global" libpcap package, defined in the repository. It's a constant, in a way. (this-package-input "libpcap") refers to the package the user chose to define as the libpcap input, with a package transformation. It could be, for example, libpcap-dev with a higher version.
<aarcov>ah, gotchya, so it more or less changes the scope to only the inputs of the package being built?
<ngz>Well, basically, referring directly to libpcap variable prevents any package transformation.
<ngz>(involving libpcap of course)
<ngz>aarcov: to answer your question, yes, (package-version libpcap) ignores the inputs of the package. You could use it even without (inputs (list libpcap))
<theotherone>Hello, I am trying to update waybar, so I cloned the repo and changed the version + hash. It seems to build fine and now I would like to try if it works. How can I install the package on my system? Thanks for any help :)
<ngz>theotherone: You could use a custom channel
<ngz>Or more simply (IMO), you could make the obsolete GUIX_PACKAGE_PATH environment variable point to a directory containing your modified waybar.
<theotherone>I solved it by using 'guix package -i /gnu/store/<...>'. Thanks, ngz
<rekado>I'd like to push a commit but now I get "guix git: error: wrong number of arguments; expected COMMIT and SIGNER"
<rekado>do I need to update my git hook somehow?