IRC channel logs

2024-04-07.log

back to list of logs

<gnucode>janneke: that's a seems like a pretty cool problem that you are trying to solve. If I get this right, in light of the recent xz issues, you want people to build guix from source to feel that they have done so reproducibly ?
<ieure>Does anyone have an example of programmatically adding an entry to guix-configuration's build-machines field?
<ieure>I can add the builder's archive key with (modify-services %base-services (guix-service-type config => (guix-configuration (inherit config) (authorized-keys (cons* key (guix-configuration-authorized-keys confid))))))
<gnucode>to build guix* -> who build guix
<ieure>But there's no public accessor for build-machines. Maybe I need to use a service extension?
<ieure>Seems like service-extension extends the service-type, rather than modifying an instance of a service-type.
<ieure>But I don't really know, and the docs are unclear and have no examples of what I want to do.
<ieure>Hmm, yeah, this works: (service-extension guix-service-type (guix-extension (substitute-urls '("https://example.com/subs"))))
<ieure>But isn't what I need, since this is already defined in %base-services (I think) and I need to modify its configuration.
<ieure>Okay I think I have how it works figured out, but now I understand *why* it works even less.
<ieure>Yeah wow this stinks.
<ieure>What on Earth, offload requires the *public* SSH key of the build user?
<ieure>I do (build-machine ... (private-key "/gnu/store/whatever-build-key")) and `guix offload test' fails with: Throw to key `guile-ssh-error' with args `("public-key-from-file" "The file does not exist or permission denied" "/gnu/store/whatever-build-key.pub" #f)'.
<ieure>SSH doesn't require the public key to auth... why does this? wack
<ieure>I guess I will just... not set this up then
<ieure>And report a bug
<RavenJoad>My nix-daemon does not start automatically. I have to herd restart nix-daemon every time I boot. I recall seeing something about this a while back, but has this issue been fixed recently (past 6-8ish months)?
<ieure>I patched it instead: https://issues.guix.gnu.org/70249
<peanuts>"[PATCH] gnu: open-ssh-session: Don t require public key." https://issues.guix.gnu.org/70249
<ulfvonbelow>localhost vmunix: [ 52.513298] udevd[318]: failed to execute '/usr/bin/systemd-run' '/usr/bin/systemd-run --no-block --property DefaultDependencies=no --unit lvm-activate-raidcryptrootvg /gnu/store/apczd1a6c7z6zsva0wsx3wjpf5fsdzfr-lvm2-2.03.22/sbin/lvm vgchange -aay --autoactivation event raidcryptrootvg': No such file or directory
<ulfvonbelow>should I be worried?
<jakef>say i have a package that specifies native-inputs like this:
<jakef>(define my-pkg ...
<jakef> (native-inputs `(("another-pkg" ,another-pkg-4.7)))
<jakef>can a new package that inherits this package modify the native-inputs like this:
<jakef>(native-inputs (modify-inputs (package-native-inputs my-pkg)
<jakef> (replace "another-pkg" ,another-pkg-4.8)))
<jakef>whoops, that last line should be: (replace "another-pkg" another-pkg-4.8)))
<ieure>jakef, Not sure, try it in the REPL?
<jakef>it seems to build fine, but I'm getting a problem at runtime. hoping this is causing it
<tarix29>Does anyone have any experience with rustup on guix system? My current approach is to build it in a container and write some scripts to call the binaries from outside the container. Is there a more convenient approach?
<lilyp>not really; with the state of rust software development, you ought to use containers so as to not have it clutter everything everywhere anyway
<tarix29>Fair enough, I might end up trying to hack rustic-mode on emacs to use the container's clippy
<janneke>rekado: ah, the regexp in r-mmuphin is helpful; I missed the closing brace being part of the date: /CreationDate (D:20240407083740+02'00)
<janneke>that addresses my concern of substituting too much or too little esp when the input would slightly change
<kreved>jakef: pretty sure this should work
<mfg>does someone know how to replace a package that is downloaded with FetchContent at compile time with the equivalent guix package? Is there some FetchContent related magic or do i need to patch that?
<janneke>mfg: what is FetchContent? guix builds are done in containers that have no network access
<mfg>it's a cmake feature :D
<darosior>Hey there. I'm looking at the origin reference for packages (https://guix.gnu.org/manual/devel/en/html_node/origin-Reference.html).
<darosior>Can we set an origin to point to a local tar.gz archive?
<mfg>and it tries to download the depoendencies over the network, i did not find a way to tell it to just look on the host first
<mfg>(downloading obviously does not work)
<peanuts>"origin Reference (GNU Guix Reference Manual)" https://guix.gnu.org/manual/devel/en/html_node/origin-Reference.html
<janneke>mfg: sounds like someone needs to send a bug report to cmake ;)
<janneke>sneek: later tell gnucode: thanks, well as a bootstrapper for me it all starts with the source. if we cannot even reproduce the source tarball, then we're lost?
<sneek>Okay.
<janneke>sneek: botsnack
<sneek>:)
<mfg>janneke: as always reading the documentation more carefully and not just skipping through everything helps... for this exact puprose there is FETCHCONTENT_TRY_FIND_PACKAGE_MODE which can be set to ALWAYS
<mfg>but interesting how i did not find that via google
<jlicht>might be interesting to add this to the cmake-build-system, I see some places where we patch out FetchContent already
<janneke>mfg: good to know that cmake has free documentation nowadays
<mfg>wait, there was a time when there was no free documentation?
<mfg>(for cmake)
<janneke>that was the business model, and that's why many of us won't go near it
<janneke>(besides the fact that designing your own petty languages is a rather big no-no)
<jpoiret>oof, is savannah having issues?
<jpoiret>remote: fatal: Out of memory, malloc failed (tried to allocate 3310012 bytes)
<mfg>janneke: makes sense. I don't like using cmake but it's everywhere so i have no choice.
<mfg>jpoiret: interesting. guix always hangs for me when trying to query the substitute servers; maybe it's related.
<jpoiret>mfg: savannah is not hosted on the same servers, so probably not
<mfg>i see
<mfg>i'm currently doing --no-substitutes takes more time initially but after that it should be less annoying :D
<jlicht>mfg: I believe one of the substitute servers is overloaded
<Guest17>hi I'm trying to write a package definition that changes the default guile-cv package to use guile-3.0.9 so far I wrote this but since I set the origin to use git there is no ./conifgure script which build phase should I modify so that guix runs autoreconf this is my package definition and the error https://paste.debian.net/1313374/
<peanuts>"debian Pastezone" https://paste.debian.net/1313374
<mfg>what am i missing if `ldconfig -v -N` does not list all libraries that actually are inside the profile? do i need to modify additional environment variables in one mof the package definitions?
<mfg>one build fails because ld can't find a library that i can find manually in the profile
<lilyp>efraim: Huge thanks for starting the certifi thing
<efraim>cbaines and I heard about it in November at the packaging conference and just looked at each other in horror
<efraim>we should probably check if other languages do the same thing
<janneke>wow, sometimes it looks like everyone has gone mad
<jlicht>again, or still?
<janneke>well, bundling system libraries (patched or unpatched) is crazy, but certificates?
<janneke>and yesterday i discovered that there is actually a specification in the pdf standard for changing the creation date that's crazy, and crazier still is that tool authors just go on and implement that
<janneke>changing metadata such as creation date is mandated to be append-only
<lilyp>efraim we actually had a thread about it some while ago – maybe i can go and find it
<lilyp> https://issues.guix.gnu.org/55043
<peanuts>"Some packages depend on nss-certs, some bundle it." https://issues.guix.gnu.org/55043
<yelninei>hi, i am getting an error in tests/nar.scm: (unbound-variable #f "Unbound variable: ~S" (path-id) #f) on current HEAD. Is this just me?
<mccd>I'm noticing some tests should are failing when I run make check on my guix build that is just master without changes
<mccd>should I just ignore them and continue developing?
<yelninei>bisected the tests/nar.scm test fai to c6cc9aeb87014cfb8f1eabb525e28ac633bf7af4 being the first bad commit
<peanuts>"guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/?id=c6cc9aeb87014cfb8f1eabb525e28ac633bf7af4
<janneke>yelninei: have you pinged cbaines?
<yelninei>cbaines: tests/nar.scm seems to fail after c6cc9aeb87014cfb8f1eabb525e28ac633bf7af4.
<peanuts>"guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/?id=c6cc9aeb87014cfb8f1eabb525e28ac633bf7af4
<yelninei>janneke: done now though it feels a bit weird to ping 'random' people
<janneke>yelninei: well, you found it's his commit that probably broke things?
<mccd>A few other tests failed: guix-describe, guix-download, guix-git-authenticate
<mccd>and graph
<mccd>is there any way to set socket path? ./pre-inst-env guix build is failing because it can't find /usr/local/var/guix/daemon-socket/socket, but I'm using nixos so I imagine I need to point it in a different direction.
<janneke>mccd: the guix deamon socket is specified as <localstatedir>/guix/daemon-socket/socket
<jpoiret>mccd: ie you forgot to specify the proper --localstatedir=/var --sysconfdir=/etc during configure probably
<mccd>ah
<mccd>Will test with that
<mccd>there we go
<mfg>how can i manipulate the runpath of a binary before installing?
<wakyct>hi, I'm wondering what are people using for file sharing between devices? Used to use kdeconnect on KDE Plasma but now on xfce. I see kdeconnect and gsconnect in the guix channel, maybe some simpler options are out there?
<wakyct>this would be between guix and android in my case
<pranavats>wakyct: kdeconnect-cli works fine without KDE Plasma.
<pranavats>wakyct one simple (in principle) option is to just use an http server :P. Just execute `python3 -m http.server` and browse it from any web browser on the network.
<wakyct>thanks pranavats, I'm not against having all the dependencies but trying to minimize them if possible
<mfg>syncthing is also an alternative
<wakyct>and yeah that's not a bad idea I think, that or webdav etc.?
<mfg>just be careful with filenames, Android does not allow colons for example
<wakyct>another idea maybe to use gsconnect but delete the nautilus input if that's possible
<ryan77627>Hey weird question. Is there any way for `guix home` to place a file in a certain folder in `~/.config`... BUT, have it be writable, so stored outside the store somehow. I know this is a bit odd, but ideally it would stay in my git repo that has all my configs and get rewritten on each `reconfigure`. There may be a better way to do this, tbh. I need my `fish_variables` file to get deployed on my
<ryan77627>system but stay writable, otherwise fish complains...
<mfg>custom service that just creates a symlink?
<ryan77627>mfg: Possibly? Any materials I could possibly reference on how to do this? Specifically the symlinking part, I've "made" some services before so I can probably figure that out
<mfg>guile has a symlink function in its file-system module
<mfg> https://www.gnu.org/software/guile/manual/html_node/File-System.html has all the available functions
<peanuts>"File System (Guile Reference Manual)" https://www.gnu.org/software/guile/manual/html_node/File-System.html
<rekado>substitute connections to ci.guix.gnu.org are awfully slow
<rekado>I wonder if that's due to firewall changes (yet again)
<mfg>since yesterday for me
<rekado>there have been firewall changes, but they *should* have only affected the private VLAN
<rekado>ACTION restarted guix-publish on ci.guix.gnu.org, just in case
<futurile>Q: I'm having problems with a package. Is there a particular way to write to the build log? Any guix support functions for that?
<futurile>Q: I think at this point I need to instrument my code, as something is happening that's not working - and as it's doing things like 'this-package' I need to write out to a log