IRC channel logs

2024-09-18.log

back to list of logs

<poddo3>so, is it the same version of the packages that my system is using?
<ieure>It's Complicated
<ieure>Not necessarily.
<poddo3>haha
<ieure>poddo3, `guix install' adds packages to some profile; `guix system reconfigure' can install packages on the system (which user profiles can inherit), it also does many other things, like configure services etc.
<ieure>The store is global on the system. A particular profile/manifest/whatever contains pointers into the store, not separate copies.
<poddo3>got it
<poddo3>is guix shell --container using the same profile as my user?
<ieure>If you invoke it like that, I believe it should.
<poddo3>I guess that would explain why it grabbed stuff that I had on my system, if so
<poddo3>cool!
<ieure>I'm not 100% sure and someone might say so. :)
<ieure>Using a container may change how it works, I'm not sure.
<poddo3>thanks for the info!
<ieure>`guix shell blah' -> same packages as the current profile _and_ package `blah'; `guix shell blah --pure' -> _only_ package `blah'.
<ieure>I think this should work the same for --container, but I could be wrong.
<poddo3>ah yes, this is working well
<poddo3>anyone know offhand if all the libqt5 libraries are available
<ieure>poddo3, I'd think so? KDE is packaged.
<poddo3>ah silly me its qtbase@5
<amano>Why are search paths preferred to symlinks to dependencies?
<amano>Symlinks to dependencies are easier and more efficient.
<aswjrisp>Rutherther: Thanks for sharing that code snippet. I searched the guix manual for "leaf service" but did not get any results. What is a leaf service?
<aswjrisp>I am reading the opreating-system Reference section of the manual. Many things have defaults listed. For example for firmware it says the default is %base-firmware. Is not putting anything for firmware in a config is the same as putting (firmware %base-firmware)?
<fireking04>Hi everyone, I'm trying to use pipewire with libvirt/qemu/kvm but pipewire rejects the pipewire socket (even when using the pulse socket). I figured that I need to launch qemu as my user in =/etc/libvirt/qemu.conf=. Is there a correct way to modify =(libvirt-configuration)= to set this in the config file? I noticed that this file doesn't exist by default.
<apteryx>our unlocking mechanism is still a bit shy of systemd's crypttab features: https://www.man7.org/linux/man-pages/man5/crypttab.5.html
<sneek>Welcome back apteryx, you have 1 message!
<sneek>apteryx, civodul says: i fixed two test failures; ‘tests/crate.scm’ remains, but requires a bit more expertise; any idea?
<apteryx>sneek: later tell civodul I tried making sense of the tests/crate.scm problem, but got stuck too
<sneek>Got it.
<apteryx>sneek: later tell civodul my hunch is that it relates to b8af6694b9bbea96e8b0d1c9aea64b7f8e690812
<sneek>Will do.
<peanuts>"guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/?id=b8af6694b9bbea96e8b0d1c9aea64b7f8e690812
<apteryx>which was applied to core-updates and thus merged recently
<amano>When writing a build system, should it create symlinks to transitive dependencies or create a list of search paths?
<amano>Symlinks are more efficient but require more disk space.
<amano>Search paths are inefficient but save disk space.
<Rutherther>aswjrisp by leaf service I meant a system service that is a leaf in the extension-graph - so a service that is not extended at all. If it was extended, it would be more complicated, but still could be doable. See graph generated from guix system extension-graph
<ext0l>o/ got a new laptop recently, decided to try guix on it because i've been enjoying nixos but wanted to try something with a nicer extension language
<bitspook>Welcome ext0l Have fun!
<futurile>morning all - happy Wednesday
<Kolev>Guix on Fedora?
<Lumie>Fedora on Guix
<Kolev>I'm wanting a Guix System container to run on Fedora.
<Kolev>And several other folks do too.
<Lumie>🤔
<Kolev>My hardware can't run Guix System.
<cbaines>given Guix is such a flexible software deployment tool, wanting a Guix System container is a bit of an odd concept
<decfed>I run guix on top of Fedora silverblue. Bit of a hassle to install, as silverblue assumes FHS compliance. And you need to set selinux to permissive. Still has been working great for me
<Kolev>> I run guix on top of Fedora silverblue. Bit of a hassle to install, as silverblue assumes FHS compliance. And you need to set selinux to permissive. Still has been working great for me
<Kolev>Could you write a guide for that?
<decfed>yes, it is in my queue of blog posts to publish soon(tm). Will mention it in this channel when it is online
<Kolev>decfed: mention me when you do
<decfed>I like that it also gives the ability to rollback. And in a way it is declarative as a specific ostree commit specifies a complete systen (modulo user config)
<decfed>my end goal would be to create a custom ostree image that already has guix included but I hit speedbumps trying to do that
<galois`>I get an error in monogame because I don't have the Arial font installed. I can obviously use a different one, but why does guix not have a package for it?
<mrvdb->hi guix, I'm getting an error when running guix package --manifest=... See: https://dpaste.org/jW7fh I'm not sure how to interpret it. What package that depends on lib2geom is actually failing there? (i want to change its input to a variant lib2geom-notests)
<nckx>sneek: later tell galois Guix doesn't package proprietary software. Fonts are no exception to that. If monogame(?) were in Guix we'd patch it to use a free alternative like Liberation Sans.
<sneek>Will do.
<nckx>mrvdb-: Inkscape.
<mrvdb->nckx thanks, but i already changed inkscapes input or so I thought, could the hidden inkscape/stable package have an effect here?
<nckx>Well, it's inherited by 'inkscape' and is also named "inkscape", so there's no way for me to tell, but you could test it for yourself witt guix build -e '(@ (gnu packages inkscape) inkscape/stable)'
<nckx>Or add --derivation to quickly compare both inkscape & inkscape/stable hashes with the one in your error message.
<nckx>I hope I'm not missing your point.
<mrvdb->will try the suggestions thanks. it is perhaps easier to just create a patch for the lib2geom package, it's already skipping the test for aarch64 as well
<nckx>Just note that it will take a while to reach master even when it's accepted.
<nckx>Unless it's only a skip on one architecture.
<nckx>I.e. doesn't change the hash on the others.
<dariqq>is the crate importer not working anymore?
<dariqq>I seem to have the same issue as in #72939
<peanuts>"guix import crate produce broken package definition" https://issues.guix.gnu.org/72939
<attila_lendvai>is anyone using emacs+tramp with dropbear as the server? is it working? i switched from openssh, and emacs now just hourglasses forever for me.
<civodul>dariqq: yes, i think it broke as a result of b8af6694b9bbea96e8b0d1c9aea64b7f8e690812 or af85c38b017be3d932d4665acd9ff4b5c56a9790
<sneek>civodul, you have 2 messages!
<sneek>civodul, apteryx says: I tried making sense of the tests/crate.scm problem, but got stuck too
<sneek>civodul, apteryx says: my hunch is that it relates to b8af6694b9bbea96e8b0d1c9aea64b7f8e690812
<peanuts>"guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/?id=b8af6694b9bbea96e8b0d1c9aea64b7f8e690812
<peanuts>"guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/?id=af85c38b017be3d932d4665acd9ff4b5c56a9790
<peanuts>"guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/?id=b8af6694b9bbea96e8b0d1c9aea64b7f8e690812
<civodul>its test is failing
<civodul>i guess we need to revert or adjust that commit
<civodul>(and we need CI too, so that this doesn’t happen in the first place!)
<apteryx>I find it odd myself that I forgot to run the test upon applying that patch... oops.
<apteryx>it'd be cool to have a check script that goes like: OK this aread changed -> covered by this test, runs its
<apteryx>this area*
<civodul>the importer tests have fairly descriptive names
<civodul>for other things, the most “interesting” issues is when something seemingly unrelated to a change breaks
<civodul>and it’s by definition hard to determine statically
<apteryx>OK
<apteryx>isn't just the test that needs adjustment? from what I recally it dropped the use of labels for the cargo inputs which are provided as arguments
<dariqq>apteryx: Currently the generated cargo-inputs still seem to have labels (which is the problem i think)
<PotentialUser-39>Hello. Is anyone working on https://issues.guix.gnu.org/65982 and has a solution or workaround? I want to demonstrate next week on a small conference reproducible environments with guix on x86, rpi4, m1 and pinebookpro rk3399. But the newest PBP images all fail to boot. I can build an image from commit=d6a53849935f8584e1df57faa79c18c23fbb2aa1 but
<PotentialUser-39>the next time I reconfigure the system it gives me a blank screen. There might be an issue with uboot
<PotentialUser-39>Or is there an option to not update uboot when reconfiguring?
<ieure>PotentialUser-39, Just based on activity in the issue, I don't think anybody is working on that.
<dariqq>apteryx,civodul: I now also think b8af6694b9bbea96e8b0d1c9aea64b7f8e690812 is bad. It assumes that 'package-names->package-inputs' returns no labels but af85c38b017be3d932d4665acd9ff4b5c56a9790 explicitly gave the crate-importert the old version still supporting labels. Not sure if cargo-build-system supports unlabeled cargo-inputs currently
<peanuts>"guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/?id=b8af6694b9bbea96e8b0d1c9aea64b7f8e690812
<peanuts>"guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/?id=af85c38b017be3d932d4665acd9ff4b5c56a9790
<civodul>apteryx: labels cannot be dropped for cargo inputs, AFAIK
<PotentialUser-39>ieure> I know that some people here use the PBP esp. Efraim Flashner has a very nice config. Maybe someone steps in.
<civodul>dariqq: yeah, maybe b8af669 just needs to be reverted?
<dariqq>civodul: i tried that locally: generated expression looks better (though has labels) and seems to work again. Also test pass again.
<civodul>dariqq: great, thanks for checking
<civodul>ah, apteryx is gone
<civodul>i guess i’ll just revert at worst-case we’ll introduced a reworked variant of the patch eventually
<dariqq>after downloading approxiamtely the entirety of crates-io the package i wanted to import earlier works with b8af669 reverted
<civodul>heh, that’s a good test :-)
<dariqq>civodul: In the original issue #49531 there was a patch to sanitize labels for cargo-inputs. Not sure where it went
<peanuts>"[PATCH core-updates 0/4] import: {utils, go, crate}: Emit new-style package inputs." https://issues.guix.gnu.org/49531
<efraim>ieure: I flashed my pinebookpro with tow-boot and use grub-efi. My config is here: https://git.sr.ht/~efraim/guix-config/tree/master/item/pinebookpro.scm
<efraim>ACTION goes back afk
<PotentialUser-39>efraim: Great. Thank you
<civodul>dariqq: yes, it’s a bit of a can of worms
<aswjrisp>The package tor-client gives a warning when tor is started manually. It says "Configuration file /gnu/store/hash-tor-client-0.4.8.12/etc/tor/torrc not present, using reasonable defaults".
<aswjrisp>tor starts but it's config file is missing. I think the package could be improved if it included a default config file. The default torrc also has helpful comments.
<aswjrisp>Just wanted to share my findings as I think they could help to improve those two packages.
<aswjrisp>The other day I learned thanks to nckx that guix services do not have an option to be disabled by defualt. So I put together scipts to start and stop networking daemons. I continued thinking about services disabled by default.
<elpogo>I just setup tor-client yesterday aswjrisp . Turns out each option in the configuration file can also be passed via the command line. eg: "--SOCKSPort 0.0.0.0:9050" , so a torrc is not strictly necessary
<aswjrisp>elpogo: Yes I can start it without the config, but I think the config is a nice piece of documentation that would be nice to have included with the package.
<aswjrisp>elpogo: thanks for the tip.
<nckx>ACTION agrees. Nobody ever looks in /doc, but still.
<aswjrisp>Can I make a simple service that runs my shell scripts?
<aswjrisp>I was thinking that I would make the stop script run as start and the start script run as stop.
<Rutherther>aswjrisp yes of course you can. Why do you want to swap start and stop though?
<aswjrisp>This way I think I could get my desired behavior. As when the system starts I think it runs the start. In this case a series of pkills to commands programs that are not running. Effectively a no-opretion. Which would result in my desired behavior of off by default. Then I could run the herd stop to run my start script when I want to start the daemons.
<aswjrisp>Restart would be brocken and it would look to be broken to others but I would understand how to use it.
<Rutherther>Why dont you just make it not autostart?
<aswjrisp>Rutherther: like the script you shared or is there a settings toggle to make a service not autostart?
<Rutherther>It is just that most services don't expose that option in their configuration. shepherd-service has auto-start? field. The file I shared yesterday overrides exactly that, internally even in services that don't expose this option.
<Rutherther>In your own service you control you just set it to false and it will not autostart
<aswjrisp>Rutherther: thanks for pointing that out. I will look into making a simple service with using a start and stop script and with auto-start set to false.
<aswjrisp>Is there a simple example of a service I could look at that has just a start and stop script that it runs?
<nckx>Oh yeah, <...that guix services do not have an option...> was to be taken extremely literally. 'Guix services' != 'Shepherd services', confusingly, although of course many Guix services create a Shepherd service as part of their operation.
<Rutherther>nckx what do you think about this workadound? (probably will work just for leaf services as is) https://paste.debian.net/1329650/
<aswjrisp>nckx: I use man and info, am I missisg out by not looking in /doc?
<aswjrisp>also config files that come with packages.
<nckx>aswjrisp: There's the occasional package that has the world's best HTML manual hidden away in there, but no, in general that is so rare and unreliable that I don't expect anyone to expect it.
<nckx>Still, including the default _configs in ssh's /etc directory (I changed my mind) is a good idea even if they are never actually used.
<aswjrisp>nckx: Good to know I will look in there in the future.
<nckx>By the way, I don't know your mailing list name or how experienced you are, but installing those example files would be a good easy patch. Hint. Hint hint.
<aswjrisp>Rutherther: Thanks, I am going to read the manual about services and try to make a simple one.
<aswjrisp>nckx: I did not realize that guix services and shepherd services were different.
<nckx>The nomenclature is confusing.
<aswjrisp>nckx: Thanks for that invitation to contribute and the encouragement to take on an easy patch. I am not experienced with submitting patch for guix. I am not yet on the dev mailing list.
<h4>How to `chdir` and `sudo` into `--container`?
<h4>And how to `--containter` as root?
<ieure>h4, What are you trying to do? You can't chdir into a container, it's not a directory.
<h4>ieure: I need root rights into a `--container`
<ieure>To do what?
<h4>ieure: Manipulate low level drivers
<ieure>Why are you doing that in a container? Seems a strange choice.
<h4>Execute a binary
<futurile>I don't think you can do that, it's a linux namespace not a real
<futurile>uh .. not a real vm is what I was going to say
<h4>So how to execute a binary outside --container?
<futurile>is it a binary you've compiled yourself in Guix, or are you trying to use something precompiled.
<h4>Precompiled, but it's meant to work in my case
<Rutherther>so is the reason of the container just to provide the dependencies for it or something else?
<futurile>build a VM and put it in that. I doubt it will work because Guix works completely unlike a normal linux distribution
<futurile>but luckily if it doesn't you can just load the vm with a small distro - as Rutherther says - that's the key question
<h97>I don't know if my account has been hijacked or what but can't connect to h4
<h97>Anyway I lost it at 03:32
<h97>If I can get a retransmission
<h97>256 seconds before disconnecting, heh
<Rutherther> https://logs.guix.gnu.org/guix/2024-09-18.log#190332
<h97>It logs that fast?
<Rutherther>yeah, it's almost instant
<h97>Used to get hours of latency on there
<h4>Container only to execute binary
<h4>futurile: I need to manipulate actual system, not a VM
<Rutherther>then either package it, using something like patchelf if cannot be compiled, or provide the libraries in a profile put to LD_LIBRARY_PATH
<h4>I'm no Guix expert, you mean something like doing `LD_LIBRARY_PATH=pathToAllSoFilesNeeded theBinary`?
<Rutherther>sure, can be one way
<ieure>h4, Guix is heavily oriented around running programs it has built from source, and poorly suited to running random binaries. You'll probably have better luck with another distro if you need to run things not built from source by Guix.
<h4>Because I didn't understood the profile part and don't know how to define a patchelf package
<ieure>Guix as a package manager on a foreign distro may also be a good option for you.
<h4>ieure: It's really rare and most of the time it's fine, but not that case
<h4>What a dumb I do, I locked myself out of shell by manipulating rights of /dev and now I can't open a shell
<Rutherther>h4: you define patchelf package as any other, just put the patchelf to the builder it executes. Or you could use a tool that already provides it and I am not sure if I can mention it here. As for profile, I just meant to merge the packages with a profile, ie. get into a shell with the libraries, and just do "LD_LIBRARY_PATH=$GUIX_ENVIRONMENT/lib"
<Rutherther>h4: probably a reboot
<h40>So `LD_LIBRARY_PATH=$GUIX_ENVIRONMENT/lib theBinary` should do without even changing or defining GUIX_ENVIRONMENT or lib?
<Rutherther>GUIX_ENVIRONMENT is automatically set in a shell
<Rutherther>it points to the profile of the shell that is built based on the packages you put inside ofit
<h40>I've had a session opened in TTY, could rewrite /dev rights. There should be a default program installed in all distributions that at start systematically open a TTY session and a SSH server rightly configured. So if Linux stall or something, we could remedy without reboot
<h40>Without even talking about having right libraries for the binary, how to execute it without FHS in the first place? Because no such file or directory
<Rutherther>no such file or directory on what exactly? send the whole error please
<h40>bash: /home/$USER/theBinary: No such file or directory
<Rutherther>Ah. the dynamic linker is wrong. Either patchelf it or execute as "linker /path/to/binary", where the linker is "lib/ld-linux-x86-64.so.2" under gcc-toolchain out output
<h40>cat $GUIX_ENVIRONMENT/lib/ld-linux-x86-64.so.2
<h40>cat: /lib/ld-linux-x86-64.so.2: No such file or directory
<h40>\/lib is empty
<h40>echo $GUIX_ENVIRONMENT gives nothing
<h40>I have $GUILE_LOAD_COMPILED_PATH  $GUIX_GTK3_PATH            $GUIX_TEXMF
<h40>$GUILE_LOAD_PATH           $GUIX_GTK4_PATH
<Rutherther>you are not in a shell with gcc-toolchain then
<h40>Wasn't it out output variant?
<Rutherther>what do you mean? so you are in "guix shell gcc-toolchain"?
<podiki>there is also an FHS environment by using guix shell -CF (though as a container means more work to expose things needed often), see https://guix.gnu.org/en/blog/2023/the-filesystem-hierarchy-standard-comes-to-guix-containers/
<h40>guix shell gcc-toolchain -- sudo $GUIX_ENVIRONMENT/lib/ld-linux-x86-64.so.2 /home/$USER/theBinary` works right without any more libraries
<h40>podiki: I come from a container in that problem, look up there
<h40>(with FHS)
<Rutherther>h40: I am surprised like that it would work since the GUIX_ENVIRONMENT would be substituted right away without a shell environment
<Rutherther>but that is the gist of it, yeah
<Rutherther>if it works already then it means there are no .so dependencies
<h40>I did a simplification. For real I entered the environment, and into it performed said command
<h40>Thank you y'all
<h40>All my gratitude
<aswjrisp>For the simple service I want to make to run a start and stop shell script I have been reading the manual. In the Defining Services section I found the Shepherd Services section most relevant and also looked at the Shepherd manual it linked to. Looking at the operating-system Reference section of the manual there is services, is that where a shepherd service would go or does it go into a seperate shepherd
<aswjrisp>configuration?
<Rutherther>aswjrisp: to make a shepherd service, you make a system service that will extend shepherd-root-service-type, so yes, it goes into your "operation-system" record "services"
<aswjrisp>Would having the shepherd service in services of the config handle getting the shepherd service into the shepherd service registry or is that configured in a seperate shepherd configuration?
<aswjrisp>s/config/guix config/
<mirai>aswjrisp: there's a simple-shepherd-service (or something similarly named) procedure
<mirai>that you can use to quickly write a shepherd service on the spot
<aswjrisp>mirai: thanks
<Rutherther>aswjrisp: it's done by extending the shepherd-root-service-type. That one holds the list of services. By extending it you add services to the list. The procedure mirai meant is called "shepherd-service-type", and it does just that, extend the shepherd-root-service-type with service you give it
<mirai>aswjrisp: dug out a snippet from my config <https://paste.debian.net/1329755/>
<aswjrisp>Rutherther: mirai: thanks
<meaty>If you have two channels that specify the same package, is there a way to ask for a certain channel's version?
<pranav>meaty: Yes. You can import the package from the said channel's module as a guile object (variable name for the package).
<meaty>pranav: but no way to do that from `guix package -i` right?
<pranav>You mean the command line? You can use the -e flag to install the package from a guile expression on the command line too.
<meaty>aha, thanks!
<pranav>cool