IRC channel logs

2024-04-13.log

back to list of logs

<mccd>is it safe to delete it?
<x4d6165>is emacs-guix unmaintained? if so I'd be interested in helping to revive it (bug fixes and maybe some org integration?)
<zamfofex>Silly thought: I decided about a week ago that I want to use Nuklear for a project for mine, and I decided to start just today, and I noticed there is a package for it in Guix. Turns out the packages was added literally just yesterday. What a coincidence!
<mccd>Hey, how do I install gsettings?
<mccd>glib should contain it but it doesn't seem to provide it
<mccd>seems I need to do glib:bin, which works with guix install glib:bin, but curious how to add it to my home conf
<daviid>mccd: not a guix user, but you need gio - https://docs.gtk.org/gio/class.Settings.html
<daviid>nvm, i see gio is part of the glib pkg on guix as well ... better let thos who guix help you ...
<decfed>is there a guix package that contains the guix logo?
<futurile>Morning all
<futurile>decfed: maybe the artwork repo has what you want: https://git.savannah.gnu.org/cgit/guix/guix-artwork.git/tree/
<peanuts>"guix/guix-artwork.git - Artwork and web site of Guix" https://git.savannah.gnu.org/cgit/guix/guix-artwork.git/tree
<NowAUser-76>I just noticed that I need sbt, but that doesn't seem to be packaged. What is the quickest way to get access to it? I just want to compile 2 projects to check whether something works.
<pmk>Hi guix. I am trying to install guix on a VM (for now) using LVM on top of a LUKS partition. It almost works modulo two issues: 1. grub cannot initially use LVM and I need to manually enter "insmod lvm" from the grub menu 2. it asks for the passphrase twice. From a brief search I found other people having the similar issues in the past but I have not seen reliable solutions. Any guidance would be greatly appreciated.
<janneke>ACTION rebases and resets wip-tarball once more for a final testing
<mfg>has someone an idea on how i could detect which llvm version a vendor fork is based on? That way i could inherit from the correct llvm package (i believe)
<mfg>nvm i found it :)
<janneke>ACTION posted a question about the silly make override warnings
<janneke>Makefile:7376: warning: overriding recipe for target 'doc/stamp-vti'
<janneke>on #autotools, let's see
<jakef>do we have a way to refer to a propagated input of a package input?
<jakef>i.e. you have (input (list x)), and x has a propagated input y.
<janneke>jakef: you mean like: (package-propagated-inputs x)?
<jakef>possibly. is there a bit more for specifying y?
<jakef>you need to say which of your inputs you're referring to (x) and which of x's propagated inputs you're referring to (y)
<jakef>i know of #$(this-package-input "x"), but not the other part
<janneke>jakef: something like (lookup-package-propagated-input x "name-of-y")?
<fnat>I have been cargo-culting '(append '(glibc grub nss-certs) %base-packages)' as part of my system definition but are those packages strictly necessary?
<janneke>fnat: depends on what you want...
<janneke>of those, i'm only using nss-certs
<janneke>but then you'll miss out on info pages for grub and glibc in the default environment
<janneke>fnat: see also https://lists.gnu.org/archive/html/guix-devel/2024-04/msg00020.html
<peanuts>"Should we include nss-certs out of the box?" https://lists.gnu.org/archive/html/guix-devel/2024-04/msg00020.html
<fnat>janneke: Thanks! I'll have a look at the thread, it seems spot-on.
<janneke>fnat: so management summary, prolly you won't need any of them "some time soon"
<mfg>how does guix handle different source folders for cmake? the project looks like dir1/src/CMakeLists.txt so how do i actually get cmake to use the CMakelists.txt from source? (dir1 has none, so the build fails obv)
<fnat>Brilliant, very helpful, thanks janneke. I'll make sure I keep an eye on the thread for further developments.
<janneke>(y)
<janneke>mfg: maybe have a look at python-pyspoa, eg
<janneke>something like
<janneke>(with-directory-excursion "src/build"
<janneke> (invoke "cmake"
<mfg>i'll have a look at it, thanks :)
<janneke>i'd say upstream is broken if you can't run [c]make from toplevel, but who am i?
<mfg>in this case this is the llvm code base
<mfg>i might also need to read the llvm module closer
<jakef>janneke: yes this looks promising! thanks
<janneke>yay, yw!
<td123>since guix is a "gnu os" does that mean that it uses the hurd kernel?
<td123>(I'm new to the project and learning about how it works)
<janneke>td123: no, the hurd is not ready for production just yet
<td123>ah ok, so then it uses linux, my next question is what does it do with the binary blobs, but I think the answer is it doesn't use linux, but rather a fork called linux-libre
<janneke>that's right
<janneke>support for the hurd is under development
<janneke>you can download a VM that runs the hurd, and there's also a hurd-vm service
<td123>I'm installing it in a virtual machine right now :)
<td123>one problem I see installing on my current hardware is I have a lot of modern hardware that would require proprietary drivers (nvidia being one but many more also). I'm guessing this would be a less than optimal experience. What's the best hardware fully supported by guix?
<td123>I'm not opposed to buying a new computer for guix, I just couldn't find what to buy
<td123>got guix installed on my virtual machine first try flawlessly
<janneke>nice
<janneke>ACTION just buys thinkpads or dells and replaces the wifi card, and stays far away from evil companies like nvidia
<mfg>td123: also if you don't have a choice (or just want to run vanilla linux) this is totally possible.
<mfg>janneke: i'm surprised that intels software is as open as it is, if i get it to work that would be really nice. To me it seems that would enable using Intel discrete GPUs with guix.
<mfg>Tho i haven't been able to test if it also works when i run linux-libre
<janneke>something like purism looks nice, but the secure boot needs manual fixups every time you do a system reconfigure, afaik
<mfg>oof
<janneke>i'm sure someone must have a script for that but haven't seen it yet
<td123>oh, that reminds me I have an old dell xps 13 developer edition (came preinstalled with linux when I bought it). I wonder if that would be a good machine to try out and install guix on
<janneke>ACTION has been using a xps-13 (9350) for years with only a $50 wifi-card replacement
<janneke>using an x270 right now, again, with atheros wifi-card
<janneke>yeah, intel ME... :-(
<dcunit3d>i'm trying to build a package for a command that should sometimes have bash/zsh completion and also sometimes not (like when it's running on a server). what's the best way to do this?
<janneke>ACTION can maybe somehow imagine using a video card with proprietary firmware -- but a wifi card? hell no!
<dcunit3d>i would use package outputs, i think, except the command itself is used for generating the completion
<dcunit3d>so it needs to be unpropagated input, i think
<td123>janneke, TIL about purism, is that something worth buying if I wanted to run guix? It sounds like that secure boot would be a problem.
<janneke>td123: afaik it runs guix beautifully (as expected, because focus on freedom) but i've got no idea how big the secure boot problem is, i believe that regtur would know
<oriansj>depends on your attack model honestly; UEFI is big and has a great many places to hide backdoors. There are also vanilla bugs which can be exploited to bypass secure boot in UEFI.
<oriansj>assuming that you mean actual secure boot and not the microsoft locked trap.
<dcunit3d>yeh, but AFAIK code that runs in UEFI (or at least manipulates it) would usually need to inject code for later boot stages. the code that runs in each stage needs to "know about" code in other stages ... otherwise it fails (or at least needs to safely fail).
<mfg>what precisely is the difference between LD_LIBRARY_PATH and LIBRARY_PATH? I only ever see LIBRARY_PATH used in my profiles, but the programs i'm trying to package only work if LD_LIBRARY_PATH is set - am I missing something?
<dcunit3d>code like that doesn't survive updates very well
<dcunit3d>mfg the LD variable is used at runtime for dynamic linking https://www.baeldung.com/linux/library_path-vs-ld_library_path
<mfg>dcunit3d: i see, but since i necer see this variable being set, how exactly are libraries found on guix? is there some cache of known pahts?
<jonsger>ACTION install Guix System on a Thinkpad X270 yesterday and today (took two days)...
<dcunit3d>do you mean at runtime or buildtime? for runtime, the path variables are set in the ./etc/profile inside a guix profile
<dcunit3d>however, there are other places you can configure this, like RUNPATH or RPATH
<dcunit3d>when building packages, guix will also perform tasks like patching binaries and script shebangs
<mfg>i mean at runtime; when would i want to use which approach (settings LD_LIBRARY_PATH vs RPATH vs RUNPATH)?
<dcunit3d>if possible you want to avoid using any of those, IMO, unless you are intentionally trying to alter a program's behavior
<mfg>i see, but without setting LD_LIBRARY_PATH a library that clearly is inside that profile does not get found. I thought this would work and don't know why it doesn't
<dcunit3d>you might change the rpath in the ELF file using patchelf if you want to point to a debuggable *.so file (this is similar to the "LD_PRELOAD" trick AFAIK) https://www.baeldung.com/linux/ld_preload-trick-what-is
<dcunit3d>are you trying to run a package that you built?
<mfg>yes
<dcunit3d>ldd `which mybinfile` # try running that
<dcunit3d>but you may need to ask about some things in the #nonguix channel
<mfg>so ldd does not show any unresolved libs, so i guess it is some dlopen thing
<dcunit3d>`strace -e all -o /tmp/mybin.strace mybin` # you can also try using strace
<td123>janneke, thanks for your help, I learned a lot and now have a better understanding of guix + gnu compatible hardware
<mfg>ah yeah, so it is searching only in the glibc, gcc, and gmmlib store paths which is obviously wrong since it's not part of either of those packages. I find it kind of strange having to patchelf a program that is actually free and has been built from source :D
<dcunit3d>mfg: is the dependency in the `propagated-inputs` section?
<mfg>no, it actually isn't. I'll try that out
<dcunit3d>check out the "guix cookbook" when you get a chance. also `guix edit $package_name` will open your $EDITOR at the package source. there is also `guix system edit` for services.
<dcunit3d>it's very easy to get to the package sources
<mfg>yeah, i'm trying to build the intel compute stack / level zero / opencl and related things, i've already spent like two weekends on it :D
<dcunit3d>ah i see
<dcunit3d>yeh i think Guix and Nix would be a good fit for projects that involve customized builds for low-level hardware. there is also yocto, but i don't know much about it.
<dcunit3d>guix package transformations allow you to alter the dependency graph for top-level references (though you also need to traverse the graph to ensure consistency in many cases)
<dcunit3d>also, pretty much everything is a derivation, so items in the store have a common structure https://guix.gnu.org/en/blog/2023/dissecting-guix-part-1-derivations/
<mfg>dcunit3d: thanks for the input, i'm going to do something else; i have been looking to much at it for today
<dcunit3d>since system images are also derivations, this means that you can customize builds for hardware targets and then add logic on top of them. if you run a guix channel where the backend's storage is persisted, then you can retain history of the build images -- though I'm far outside my personal experience with this stuff. i haven't used cuirass or even properly started a channel. i would be afraid to break the channel.
<dcunit3d>mfg: well the level zero stuff sounds cool
<chsasank>this seems like a common error, but I am having hard time finding libstdc++.so.6
<chsasank>error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
<chsasank> https://issues.guix.gnu.org/issue/63393
<peanuts>"[PATCH 0/2] Fix libstdc++.so and gcc-toolchain" https://issues.guix.gnu.org/issue/63393
<futurile>chsasank: take it you're using a 'guix shell' for some binary that you got from outside guix
<wakyct>good morning guix, I'm trying to build a package with another input I've built. First I tried building by calling with-git-url for each package, but that just built the first package in the command with its normal inputs. Next I've tried building the input first, which works, but then building using --with-input said it couldn't find the input I
<wakyct>built (using --with-input=<package>=<package>@<version>. Then I tried installing the input I built which seems work, but listing the installed packages in the shell doesn't show it. What's the correct way to build an updated package with an updated input in a shell?
<moesasji>wakyct it might be worth looking at the changing package input example here: https://www.futurile.net/2023/12/05/guix-package-transformations/
<wakyct>thanks moesasji, I've been studying that, but I don't see where it builds with two updated packages so far
<moesasji>For situations like this I would use channel, although there might be better ways
<wakyct>part of the problem seems to be that when I try to install the updated input, it says it will be installed, but then there's no typical output after that, and listing installed packages or using guix locate doesn't find the updated input
<wakyct>for example https://paste.sr.ht/~wakyct/0cbdef08131231e11ebf69abb53f93779f3d5095
<peanuts>"0cbdef0 ? paste.sr.ht" https://paste.sr.ht/~wakyct/0cbdef08131231e11ebf69abb53f93779f3d5095
<wakyct>oh I see, using the wrong profile there
<wakyct>I'm guessing I'm not understanding profiles in the context of shells and what's available
<cancername>Hello! I'd like to install guix with my "/gnu/" symlinked to a directory on another file system, but when I try to do that after running the guix installer, it's a read-only mount of my root partition for some reason. What's the recommended way to achieve this?
<cancername>(the guix package manager, not the guix system)
<podiki>on foreign distro?
<podiki>roughly you'll need to stop the guix service and mounts, and create a bindmount
<cancername>yes, podiki
<podiki>so that basic procedure should work, just need to remember I think there is a service which handles the mounting of /gnu/store so you need to stop that
<cancername>yes, I stopped guix-daemon
<podiki>i think there is something else but i don't have that computer in front of me
<cancername>I removed the original mount at /gnu/store but now the guix command isn't in my PATH anymore
<cancername>(as in, I umounted it)
<podiki>right, so now you need to bind mount, e.g. sudo mount --bind /path/to/where/you/moved/gnu /gnu
<cancername>uuuh
<cancername>hold on let me read up on how bind mounts works
<podiki>so that /gnu just goes to /some/where/else but it just looks like /gnu still
<podiki>then add to fstab to have it after reboots: /path/to/gnu /gnu none defaults,bind 0 0
<podiki>you need /gnu to not exist in order to run the bind mount command I gave
<podiki>that should be it really
<cancername>I had to recreate /gnu for mount to work
<podiki>oh right sorry, i didn't read my own notes correctly :)
<podiki>but yeah, that should be it, assuming you had moved everything from /gnu/store. and kept owners/permissions/times
<cancername>thanks!
<podiki>it was also how i learned about bind mounts, handy tool
<cancername>I did not keep times, apparently, and guix is choking with errors such as "no such language scheme"
<cancername>time to delete everything and re-run the installer? and can I make it use my bound /gnu somehow?
<podiki>yeah you can re do the installer after removing guix (there should be instructions in the manual, or maybe there is an uninstall option that got added recently?)
<podiki>you may need to modify the install script to not complain that /gnu is created already
<podiki>from my notes: modify guix install to not check for /gnu existing, and to move files from store directly (e.g. something like mv /tmpdir/gnu/store /gnu)
<podiki>indeed, there is now uninstall option: ./guix-install.sh --uninstall
<cancername>well, that just yeeted /gnu
<cancername>ah well
<cancername>can just redownload :/
<cancername>there goes a gig of mobile data
<podiki>yeah, it will delete /gnu
<podiki>but since it seems you had some issue in moving it, probably had to redownload, sorry
<podiki>so, create the bindmount first, check the install script if it has an error about /gnu existing to remove that and replace with something that just moves the files
<cancername>>inb4 guix-install.sh is generated by m4sh
<cancername>what do you mean by "moves the files"=
<cancername>?
<podiki>actually you can just set GUIX_ALLOW_OVERWRITE
<cancername>oh, awesome!
<cancername>thanks
<podiki>i see that in the script where it checks for /gnu, setting that variable (i guess to 1) shoudl do it
<podiki>i believe that is newer than when i last did it some years ago, handy
<cancername>quick question
<cancername>I can generate a guix system from my foreign distor, right
<graywolf>The example for guix-home uses just packages variables, so my local config based on that does the same. But I was thinking, is there a reason not to prefer using the specifications->packages instead as is recommended for manifest?
<cancername>distro*
<podiki>cancername: if you mean make a bootable disk image or a system that can be written on a drive to make it a guix system, yes
<cancername>great
<podiki>you can do everything on a foreign distro but "guix system reconfigure" (which updates a guix system configuration) or system services (since you can't run shepherd, the guix service manager, as PID 1)
<podiki>e.g. you could do "guix system init" on another disk and then boot from that or put it in another computer to boot into guix system
<blum>Hey guys. my computer is useable now, i just run a script to connect my trackpad over bluetooth and underclock the cpu, whenever i start the machine... it's a hack but good enough for now :p.
<blum>anyways, i want to ask if you guys have any tricks up your sleeves for running foreign binaries. sometimes i get ubuntu binaries that i would like to run, without starting an ubuntu docker container.
<podiki>blum: perhaps https://guix.gnu.org/en/blog/2023/the-filesystem-hierarchy-standard-comes-to-guix-containers/
<podiki>or else flatpak if it is packaged for flatpak
<blum>when i run them i get "no such file or directory" error and when i strace i sett that it errors on an execve call.
<blum>podiki: thx i'll take a look
<blum>i'm rly only looking for a quick and dirty way of doing this
<podiki>no such file or directory is because the ld-loader doesn't know where things are in guix
<podiki>it does require some work to know what goes in the container and what to share/expose from host
<podiki>note that gcc:lib isn't public. i have a patch to push (today finally!) so just using gcc-toolchain will work
<podiki>(for some libraries you will want)
<blum>podiki: so if i install gcc:lib with your patch included ubuntu binaries should find glibc, correct?
<podiki>it is not glibc, it is things like libstdc++
<podiki>anyway, use -e '(list (@@ (gnu packages commencement) gcc) "lib")' for now
<podiki>(that says to use the non-public package gcc:lib)
<podiki>and not install, but in using guix shell
<blum>Okay, I will try after pull and -u :^)
<Deltafire>iran has launched some drones & missiles
<Deltafire>oops, ignore that - wrong channel