IRC channel logs

2022-08-28.log

back to list of logs

<AlbertoBalsalm>So is there no way to install full guix system on unsupported hardware?
<rekado_>by using “guix shell --pure” or “--container” you can eliminate most or all effects of the host operating system on the environment
<leet97701>Yes - ah, You're Ricardo! I was going to reply that your example worked, but came up with a bunch of errors also for GLib, and when I quit the window, guile segfaults.
<rekado_>AlbertoBalsalm: if you have a different network interface (a pluggable one) you could install with that first and then move on to tweak the kernel.
<leet97701>And I needed to add a prefix for gi to the use-modules.
<AlbertoBalsalm>rekado_ Yes that sounds like a good suggestion
<rekado_>leet97701: I saw the segfault on exit too.
<rekado_>no idea what that’s about
<rekado_>I don’t think it’s anything to do with your system; I also see a bunch of warnings, and I don’t know if that’s expected.
<rekado_>(I’m using Guix System.)
<KE0VVT>Anyone using rde?
<KE0VVT>They might provide some sort of shim.
<KE0VVT>I'm gettin accustomed to Flatpak. Making a free Flatpak repo would be great.
<KE0VVT>Oh no, wrong channel.
<leet97701>For your example, Ricardo, I get this (but near the end you can see that the button worked):
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:43.269: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:43.269: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:43.269: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:43.269: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:43.269: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<leet97701>Gdk-Message: 15:08:43.270: Failed to get file transfer portal: Failed to execute child process ?dbus-launch? (No such file or directory)
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:43.273: g_dbus_connection_register_object: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:43.273: g_dbus_connection_register_object: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:43.274: g_dbus_connection_register_object: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:43.274: g_dbus_connection_register_object: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:43.274: g_dbus_connection_register_object: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:43.274: g_dbus_connection_register_object: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:43.288: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:43.288: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:43.294: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:43.294: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<leet97701>Hello World
<leet97701>(guile:560902): GLib-GIO-CRITICAL **: 15:08:53.449: g_dbus_connection_emit_signal: assertion 'object_path != NULL && g_variant_is_object_path (object_path)' failed
<KE0VVT>HELP!
<unmatched-paren>leet97701: please please please use paste.debian.net :/
<leet97701>and that is with --pure .
<KE0VVT>What unmatched-paren said.
<leet97701>OH - SORRY!! I'm an irc n00b! My profound apologies!
<unmatched-paren>it's okay :)
<oriansj>leet97701: we all fail until we know better and now you do
<rekado_>leet97701: it’s a pity that there isn’t any mapping from glib messages to objects in the guile program.
<rekado_>I see pretty much the same, and while they seem alarming (“CRITICAL”!) they don’t seem to cause any problems.
<rekado_>the segfault at the very end appears to be related to clean up only, because it happens after the window has been closed.
<leet97701>Ok. Without the #:prefix gi: I got messages including one that said gi had overridden quit.
<rekado_>there is a way to get more detailed logs from dbus, but I think it would be worth asking spk121 (author of guile-gi) on #guile or through an issue on the Github repo.
<leet97701>I'm just asking here to see if I can be sure I didn't mess up guix. I'll be in touch with spk121 somehow. I've been a software tester for longer than people here have been alive, so I don't want to submit bug reports that are due to my install/configure mistakes.
<rekado_>as far as I can tell we both have the same experience here, across distros.
<rekado_>there are just two things that I could imagine being Guix-specific: something relating to how dbus is run and environment variables.
<leet97701>OK, thanks yet again! I'm going to proceed with prototyping the GUI for my app (a Guile replacement for gscan2pdf).
<rekado_>cool!
<rekado_>if you run into more problems feel free to ask on #guile
<leet97701>will do!
<rekado_>leet97701: I think I got it: add “dbus” to the “guix shell” command and then do “dbus-launch guile gi-test.scm”
<rekado_>with that I had no warnings or criticals; and no segfault either.
<leet97701>Hey, that works!!
<AlbertoBalsalm>I know it might be blasphemy, but is there a guix iso that comes with plain linux kernel instead of linux-libre?
<unmatched-paren>AlbertoBalsalm: it exists, but we aren't allowed to talk about it here
<unmatched-paren>it's not official
<unmatched-paren>search for systemcrafters
<AlbertoBalsalm>I see, thanks for the pointers
<AlbertoBalsalm>I'm going libre on my new hardware but with the laptop I have right now that's not an option
<KarlJoad>Because the store is world-readable, how bad of an idea is it to put a pass-encrypted password into the store?
<oriansj>KarlJoad: depends on who is in the world set able to read that file and how secure the crypto on that file is
<oriansj>on an offline computer which only you have access to, it is just fine but on a system with a few hundred users it is probably a very bad idea
<oriansj>and there isn't really any good reasons to include credentials nor keys in a build
<oriansj>(^keys^private keys^ [public keys are just fine])
<KarlJoad>These are passwords, so keys is valid here. It would be my personal CI server, so only me as a user. I may just manually create a directory in /var for cuirass instead.
<oriansj>KarlJoad: so you are setting up accounts on the CI server? That wouldn't need the passwords included but just the hash of the passwords
<oriansj>unless your CI server needs to automatically login into another system.
<KarlJoad>It does not need to log into another local system. Just the hash of my password to log into my email provider's SMTP server to send build notifications.
<oriansj>KarlJoad: that would be the login credentials for your SMTP provider's server. Which I guess would be there if your provider is unwilling to do a smart relay for your server
<oriansj>you also could just setup exim4 on your CI server and send from CI@$IP and it will still get relayed to you
<oriansj>(with $IP just being the IP address of your server [you also could use the domain name of the server if you have control over that])
<KarlJoad>My provider is Google. Right now I am logging in as my user on the Gmail SMTP server, then using a different from address. A smart relay may be better, but I need to get emails flowing first.
<oriansj>oh, then smart relay is never going to be an option
<oriansj>I suggest creating a separate account for the CI service and make sure the credentials are unique to that service and it has no other access
<oriansj>(Use pwgen to create the password)
<KarlJoad>I'm a bit limited on that front, unfortunately, now that Google is charging for new users on a domain we own under the plan we pay for. I'll just have to reuse my account. CI server won't be exposed to the Internet anyways.
<oriansj>KarlJoad: then skip Google entirely for the email and use the URL of the CI server
<KarlJoad>If I skip Gmail, then how does the email get sent?
<oriansj>KarlJoad: the same way all emails get sent; standard network protocols
<KarlJoad>What I meant was I need an SMTP server to shove the message off to, don't I?
<oriansj>KarlJoad: exim4 and postfix are SMTP server software programs that can directly send/recieve
<oriansj>all you need is a SPF record for your server so that recipients don't autoflag it as spam
<oriansj>DKIM and DMARC if you wanted to go the full route
<KarlJoad>Ahhh... Ok. I missed the step where I set up my own SMTP server. Then I would host them either on my CI server or another and point the CI notifications to the postfix server for sending.
<KarlJoad>That is probably the better long-term option, but I'm focusing on getting emails sending first.
<oriansj>oh then just use msmtp and do a post install creation of the credential file
<Luk6655>I can't seem to find how to run guix package to list all packages in a specific channel. Does anyone know the right syntax?
<oriansj>or have the credential file created by guix-home
<oriansj>KarlJoad: you'll find this handy: https://wiki.archlinux.org/title/Msmtp#OAuth2_Setup
<KarlJoad>oriansj: Ok. Seems like a manual installation of the hashed password in /var makes the most sense for cuirass then.
<oriansj>KarlJoad: well an OAuth token would be much safer as I am guessing you have an administrative account with Google
<oriansj>and you don't want the person who compromises your server to have the credentials needed to seriously damage everything you have in google too
<KarlJoad>Agreed. An OAuth token would be better, but I do not have an administrative account. Just a user one.
<oriansj>KarlJoad: so you are a developer tasked by management to setup a server. Sounds very justified stating you need a service account for the CI server to protect the company.
<KarlJoad>Not really. This is my personal server for building my personal packages and systems on my personal hardware.
<oriansj>KarlJoad: oh and I was mistaken about Google and smarthost support: https://wiki.archlinux.org/title/Dma#Send_mails_through_Google's_SMTP_servers
<oriansj>just need to setup an App password
<KarlJoad>I have that. I am just deciding how to best point the msmtp configuration file to my password to sign into the SMTP server.
<robin>i was surprised that texdoc is broken under both the monolithic and modular packages
<robin>i got texdoc (now written in lua) running under ~/texmf, which reports that "You don't appear to have any local documentation installed.", so i don't think that's a high-priority thing to fix,
<robin>but in all cases so far it's simply redirected me to https://texdoc.org/serve/$PACKAGE/0 , in case that's useful to anyone else
<Luk6655>Is there some way to find out what guix reconfigure is actually doing? As in what package versions it is downloading and why? Like a log file basically?
<Luk6655>I had an error in my config(missing package), I run guix hash, and I rerun reconfigure to see if the error is still there, but now guix see to be redownload ing every single package in the system. Why? I have no idea. The config didn't change!
<Luk6655>I might have deleted the current generation, that's probably why...
<Luk6655>Guix describe shows generation 3, while guix system list-generations shows 1,4 and 5. (i deleted 2 and 3 as I thought they are broken)
<Luk6655>However, this is really confusing, because now I see the guix system list-generations output has word current next to number 5,so why guix describe says generation 3 is current?
<Luk6655>This is as root
<robin>Luk6655, root has its own guix profile (at least sometimes), so you want to use "guix system" for system-level queries (guix describe will describe *root's* profile)
<Luk6655>I noticed I'm not getting $GUIX_PROFILE at all when running sudo bash, just trying to figure out why it only gets set on console
<Luk6655>When I login as root from the start rather than via sudo
<robin>Luk6655, as for differences, you can run something like: diff -u <(guix package -p /var/guix/profiles/system-61-link/profile -I) <(guix package -p /var/guix/profiles/system-62-link/profile -I)
<robin>(with appropriate profile numbers for your system, of course)
<Luk6655>Thanks I saved it for later
<Luk6655>Also e very time I run guix system reconfigure in the end I get an error that service term-console can't start. Is this some known bug?
<KarlJoad>Luk6655: As far as I know, the reason they cannot start is because they are already started. To Shepherd, the TTYs are term-consoles, and can only be started once.
<robin>also Luk6655, is $GUIX_PROFILE under sudo not your own profile? i thought guix used the "sudo -E" behavior, i.e. preserve calling user's environment
<robin>(that can be a tricky thing to get right under some circumstances, e.g. nonstandard shells, but i don't really remember the details re: required environment variables)
<demitasse[m]>sorry for the noob question, but how do I get ssh working on guix?
<oriansj>demitasse[m]: you install openssh
<demitasse[m]>thanks
<oriansj>unless you really mean to ask about setting up an sshd service to login to the guix system via ssh
<oriansj>in which case you would need to include the service and configure a few things
<demitasse[m]>No, I just didn't realize there was no ssh package installed. I was trying to start the ssh service with herd and it was not working
<demitasse[m]>I just installed openssh and was able to ssh into my vps. thanks for your help
<oriansj>yeah ssh and sshd are two very different things one is for connecting to other computers and the other is for allowing other computers to connecting to yours
<demitasse[m]>yeah, ok, when i did the install with the installer I chose not to allow any ssh into my guix machine, but I have a vps where I selfhost some stuff that I needed to access, so I needed ssh not sshd
<oriansj>demitasse[m]: ssh and sshd are both installed in the openssh package
<oriansj>as guix doesn't break them into separate packages
<KarlJoad>Is there something special I have to do to use gnupg to generate keys on Guix?
<the_tubular>Will the Debian move push people towards more "freedom friendly" distro ?
<KarlJoad>Ok. I managed to figure out the problem. pinentry must be installed for it to be found. You cannot use pinentry & GPG in a guix-shell. GPG looks to find pinentry in ~/.guix-profile/bin, which is not there. Is that something that should be fixed?
<drakonis>the_tubular: what?
<Cairn>KarlJoad: Definitely sounds like unintended behavior. Maybe a bug report?
<Cairn>drakonis: Here's context: https://www.debian.org/vote/2022/vote_003
<drakonis>i'm not sure how that would change anything
<Cairn>the_tubular: I don't think it will have much effect besides a more positive user experience for people already looking to use Debian.
<the_tubular>Ohh, I though some people could move towards more "freedom friendly" distro
<drakonis>highly unlikely that it would ever steer anyone into other distros
<Cairn>the_tubular: Debian's already not on the list of FSF-recommended distros. But I don't think this move is making Debian any less of a free-software-promoting environment than it already is.
<the_tubular>Thanks for the context drakonis, I was looking for it
<the_tubular>How so Cairn ?
<Cairn>Well, I kinda think of free software a luxury for people with stable software, haha.
<Cairn>Your first thought when Debian won't work with your wifi card isn't "I should get a libre-supported wifi card" but rather "ugh, debian"
<Cairn>Kinda just joking, but Debian's done a whole lot for the community, and even if the system takes advantage of proprietary software in some ways, it's overall a great platform for giving people access to a huge amount of free software.
<Cairn>So I think this move is a totally fine one.
<the_tubular>Umm, Personnaly if I wanted stuff to "just works" debian wouldn't be my first choice.
<the_tubular>Specially on a laptop
<drakonis>why?
<the_tubular>I'm think they are doing this move because I'm feeling like Ubuntu is loosing it's toucn.
<drakonis>are they really?
<the_tubular>I don't have numbers, but I've seen growing number of feeling disappointed or even leaving Ubuntu.
<the_tubular>There was the oom killer stuff not so long ago, snaps, the ads, etc etc
<Cairn>My gut feeling is that Debian doesn't do much as a reaction to Ubuntu.
<Cairn>I'm too new to know anyone in the project though.
<drakonis>i think it is all too selfish to think this is anything beyond simply improving the experience
<Cairn>When I first picked up Debian some years ago, I ran into the same issue that they'd be working to fix. I didn't realize I needed a different ISO to get my display driver supported on the machine I was using.
<drakonis>in most cases, the "freedom friendly" distros are stripped down versions of other distros
<drakonis>except guix
<Cairn>Guix is pretty cool
<drakonis>aye
<drakonis>and it is sufficiently distinct from nixos
<Cairn>Yeah, Nix and Guix feel like siblings rather than parent and child
<the_tubular>Yeah, agree with this, guix is in a very good position.
<the_tubular>It just needs to be more known
<KarlJoad>Cairn: Ok. I may submit a report.
<Luk6655>KarlJoad: robin: thanks, that explains why it couldn't "start" and maybe some other issues I had. If there was another guix profile I haven't considered.
<Luk6655>Does anyone have any idea why the screen in xorg is completely red? (nVidia hw - brand new install). Screen saver appears fine, but everything else has a red/pink/washed out hue
<unmatched-paren>nvidia hardware is probably going to cause issues with guix
<unmatched-paren>although nouveau exists, it's nowhere near perfect
<Luk6655>I did remove monitors color profile
<unmatched-paren>and probably does break on some machines
<unmatched-paren>oh
<Luk6655>I heard it worked sometime in the past?
<unmatched-paren>sure, with nouveau
<Luk6655>That is what inhave
<unmatched-paren>but there probably are machines where it breaks
<unmatched-paren>anyway, it sounds like the issue is that you removed your machine's colour profile?
<Luk6655>No, the issue is not that I removed color profile
<unmatched-paren>oh, okay
<Luk6655>I removed the color profile because I was hoping to fix the issue this way
<unmatched-paren>sorry, can't help you here
<Luk6655>Ok
<Luk6655>I did use nouveau long time ago with no real issues other than performance
<Luk6655>This however is 100% unusable
<Luk6655>The alternative is broken too btw
<Luk6655>So perhaps I should ask how do I download a package from a channel, modify it locally and deploy my modified version? Is this something people do on guix?
<unmatched-paren>i guess you could clone the channel and add it to channels.scm, replacing https://... with file://...
<unmatched-paren>and then modify it and pull
<Luk6655>Thanks, yes I'm doing that now
<Luk6655>Let's say there is a package that has this variable in its scm file: (version some-defined-version) is there a way I can override this variable from my system config level?
<Luk6655>Or do I need to modify the package scm file?
<unmatched-paren>Luk6655: You can do
<unmatched-paren>((options->transformation '((with-commit . "v3.2.1"))) pkg)
<unmatched-paren>options->transformation is from (guix transformations)
<unmatched-paren>transformations can be found on line 794 of guix/transformations.scm
<Luk6655>That could be very useful. But I don't really get your example. Let's say there is local variable called vara in the package scm. Could you show an example syntax let's say i add a module like this (use-modules (mystuff package somepack)) how do I change this variable's value?
<Luk6655>that bit "with commit" , this just switches to a particular commit that has to exist, it doesn't change a local variable, or is it showing how to change variable named pkg?
<roptat>hi guix!
<unmatched-paren>Luk6655: That will return version v3.2.1 of the package assigned to variable pkg
<unmatched-paren>you could maybe do (define pkg/latest ((options->transformation '((with-commit . "v3.2.1"))) pkg))
<unmatched-paren>roptat: hello.
<Luk6655>Ok, I see, that's not really what I think I need, I was hoping not to change package version, but override a local variable define within a package's scm file.
<Luk6655>(remove "not" from the above)
<Luk6655>Let me ask something else, is there a way to speed up guix reconfigure by telling it to use multiple threads etc?
<Luk6655>Like with make - j16 for example
<unmatched-paren>-C and -M
<unmatched-paren>the first tries to tell build systems to run in parallel (passing -j to make, for example)
<unmatched-paren>the second tells it to run multiple operations at once
<unmatched-paren>-C $(nproc) -M 4, for example
<Luk6655>Thanks
<unmatched-paren>Luk6655: Hmm, you want to actually mutate the package variable?
<Luk6655>Does position of those parameters matter? (do they go right after guix, system, reconfigure?)
<unmatched-paren>Or apply arbitrary modifications?
<Luk6655>It sounds good, but I'm not sure what it means :-)
<unmatched-paren>Luk6655: i think they can go anywhere after system, but i'm not certain
<unmatched-paren>for the latter, you can use something like
<unmatched-paren>(define my-pkg (package (inherit pkg) ...))
<Luk6655>Ok I think I get it, with inheritance I can override that variable
<Luk6655>So far I'm just testing by modifying it locally, it I'd a long shot anyway
<Luk6655>-C comes up as unrecognised option after system and after reconfigure. I dried -C 16
<Luk6655>Even right after guix...
<unmatched-paren>that's odd, because it's listed in guix system --help
<unmatched-paren>Ohh
<unmatched-paren>it's -c, not -C
<unmatched-paren>sorry :)
<Luk6655>No worries, I figured out - -cores=
<roptat>packages will use all your cores by default, --cores will override the default
<Luk6655>I see
<Luk6655>Hmm, it doesn't seem to want to use my local version
<roptat>I haven't followed, how do you define that local version?
<Luk6655>I run guix pull, it did update, but on running reconfigure it used the same package as before(maybe cached?)
<pkill9>is there an elegant way of getting package name and version from store path?
<pkill9>or do you have to just use regex?
<Luk6655>I git cloned the channel, I then modified the channels.scm to have file:///home/luk/dev/mychannel
<roptat>no cache, except if no rebuild is needed
<Luk6655>Then I run guix pu
<Luk6655>pull
<roptat>I see, it should rebuild
<unmatched-paren>pkill9: (store-path-package-name PATH)
<roptat>although, depending on what you use to reconfigure, you might be using a different guix than your user's
<pkill9>ooo nice
<roptat>what command do you use to reconfigure?
<unmatched-paren>I don't think there's an equivalent for versions though
<unmatched-paren>it's from (guix store)
***Dynom_ is now known as Guest902
<Luk6655>When I run guix pull with my local copied channel I get this: warning: pulled channel 'mychannel' from a mirror of http://mychannelurl, which may be stale
<roptat>yeah, should be fine
<Luk6655>Perhaps I should run hash guix?
<roptat>you could try, I don't think it'll change anything
<roptat>how do you reconfigure?
<pkill9>it looks like it just cuts off first x number of characters
<pkill9>ah well
<Luk6655>I run guix system reconfigure /etc/config.scm
<roptat>as root?
<Luk6655>Yes
<roptat>and did you pull as root?
<Luk6655>Yes
<unmatched-paren>You shouldn't pull as root
<unmatched-paren>nor run `package` as root
<unmatched-paren>or any command other than `guix system` as root, really
<roptat>why not? I do that all the time :)
<Luk6655>This is supposed to be a system package
<unmatched-paren>roptat: `pull` as root?
<roptat>yeah, I pull as root and as user
<unmatched-paren>It's not wrong, of course, but what's the point of doing it
<unmatched-paren>?
<roptat>sudo is confusing :p
<Luk6655>The point is to keep one's system config completely separate from users config
<Luk6655>Also, Every time I run hash guix it seems to want to download loads of stuff on next pull.
<Luk6655>I don't understand why it is doing that
<unmatched-paren>Luk6655: Yes, but `sudo guix system reconfigure` will use your user's guix.
<unmatched-paren>Not the system guix.
<Luk6655>Exactly, that's why I don't use sudo
<unmatched-paren>Oh.
<Luk6655>I login as root
<unmatched-paren>Okay then, carry on.
<unmatched-paren>Uhh. Okay.
<Luk6655>:-)
<unmatched-paren>Carry... on...
<unmatched-paren>:)
<roptat>what does "type guix" tell you?
<Luk6655>I'm not sure it is "supposed" to work like that
<Luk6655>Points to /root/.config/current/bin/guix
<roptat>looks good
<Luk6655>Also I added 4 lines that source both profile paths to bashrc
<Luk6655>(roots bashrc)
<roptat>that you shouldn't do, it breaks guix shell
<roptat>you should source in .profile or .bash_profile
<Luk6655>Ok, I'll switch later
<roptat>it's normal for guix pull to download stuff if anything has changed or you ran guix gc
<roptat>but if you pinned all your channels, and don't run gc, it shouldn't
<Luk6655>So after I did hash guix (mind on an install few hours old) and it downloaded things like guix-packages
<Luk6655>Is this normal?
<roptat>did you replace the official channel (guix) or another channel with your own?
<roptat>guix-packages is part of the official guix channel, if you replaced guix, it shouldn't download it, otherwise sounds fine
<Luk6655>I read in the manual, placing channels in channels.scm doesnt replace guix main channel, but adds. Is that right?
<roptat>yes
<roptat>you could replace guix in your channels.scm though
<Luk6655>No i havent
<roptat>(it's defined inside %default-channels)
<Luk6655>Just a sec, I have to go away for few min
<roptat>ok, so downloading guix-packages is fine
<unmatched-paren>Luk6655: (channel (inherit %default-guix-channel) ...)
<unmatched-paren>will wok
<unmatched-paren>work
<Luk6655>I don't think I have that in my config
<Luk6655>I simply have (mychannel package mypackage) in use-modules section
<Luk6655>Is this why it doesn't seem to update with my local changes?
<unmatched-paren>Luk6655: No, in channels.scm
<unmatched-paren>(list #| any other channels you might have |# (channel (inherit %default-guix-channel) ...))
<unmatched-paren>instead of (cons* ... %default-channels)
<Luk6655>Ah, no i don't have %default-guix-channel at all there, do I need it?
<Luk6655>I thought everything in channels.scm is in addition
<Luk6655>However both mychannel and guix appear to work
<unmatched-paren>No, channels.scm is an override
<Luk6655>The issue being mychannel pulls from github instead of from locally changedversion
<unmatched-paren>This is how you replace the Guix channel
<unmatched-paren>which upon rereading I realize is not what you want to do /o\
<Luk6655>No definitely not, but are you sure? This seems to say otherwise :https://guix.gnu.org/manual/en/html_node/Channels.html#Channels
<Luk6655>Also I am getting packages from both channels
<unmatched-paren>it says to use (cons* ... %default-channels) in there
<Luk6655>Indeed, I didn't notice
<Luk6655>Ok, I'll see if it fixes my problem
<unmatched-paren>But maybe it does work without that
<Luk6655>Ahhh, I actually do have it in there... Sorry
<unmatched-paren>Right.
<unmatched-paren>but %default-channels is defined as (list %default-guix-channel), so you can use %default-guix-channel to override 'guix
<Luk6655>When I run reconfigure it goes to build /gnu/store/longpathmypackage-oldveesion
<Luk6655>Is there another place where it gets package versions from other than version variable within the package?
<unmatched-paren>yes,
<unmatched-paren>you'll need to override the source, too
<unmatched-paren>well, yes and no
<unmatched-paren>because by the time you inherit, the source will have been evaluated
<unmatched-paren>and it refers to the old version
<unmatched-paren>so you need to (source (origin ...)) again
<Luk6655>I'm not using the inherit at the moment
<Luk6655>I simply modified the source
<unmatched-paren>hmm
<Luk6655>But it uses the old version
<Luk6655>When I open the file in /gnu/store it mentions the file says it was derived from another /gnu/store/somepath_oldversion
<efraim>rekado: r-iranges source is missing, but upstream it seems to be bumped from 2.30.0 to 2.30.1 https://bioconductor.org/packages/release/bioc/html/IRanges.html safe to update it?
<Luk6655>Maybe I need to clear the previous "derive"?
<Luk6655>It did fail mid way
<unmatched-paren>that's a derivation you're looking at
<unmatched-paren>i don't think looking at it will help
<Luk6655>Do I need to revert from a failed reconfigure?
<unmatched-paren>no
<unmatched-paren>unless it happened to fail in the middle of installing grub
<unmatched-paren>every potentially dangerous operation is atomic
<unmatched-paren>so changes aren't committed until everything is in place
<Luk6655>This is not dangerous, but it seems to be carrying on from where it failed previously rather than start from the beginning. I suspect this has something to do with it using the previously downloaded version of the package, not my locally modified version
<unmatched-paren>yes
<unmatched-paren>well, it'll have downloaded it already
<unmatched-paren>so it doesn't need to download it again
<Luk6655>And when I list-generations it has mychannel repository url pointing to github not my local location
<unmatched-paren>and things already built can be safely reused
<unmatched-paren>hmm
<Luk6655>So how do I tell it it should check for a new version in my local folder
<Luk6655>?
<roptat>ah, did you commit your local changes?
<unmatched-paren>Ah, yeah
<Luk6655>No, do I need to?
<unmatched-paren>yes
<roptat>yes, guix pull does a git pull/git clone
<Luk6655>Well, that's the problem then..
<unmatched-paren>It's probably way easier to use inherit in config.scm, though
<Luk6655>I did realise it uses git to check for changes
<Luk6655>This is already done, I agree inherit is better, but at this stage I spent 24h just drying to get it to work
<Luk6655>So whatever is quicker gets used
<Luk6655>Should it mention anything about there being new stuff in a channel when doing guix pull?
<unmatched-paren>yes, the news summary
<unmatched-paren>wait, no
<unmatched-paren>sorry, it doesn't display that anymore with pull
<unmatched-paren>i think it used to though
<unmatched-paren>you can use $ guix pull --news --details
<unmatched-paren>to display the latest news
<Luk6655>Oh, my it is downloading guix-system and lots of other packages again. Sure they couldn't have been updated in last hour, could they?
<Luk6655>Well, not that many, maybe 8
<unmatched-paren>there has been one commit https://git.savannah.gnu.org/cgit/guix.git/commit/?id=84d191ea30eb7d97ee3f4d62f39c811ba77bb187
<Luk6655>Good it is using my new package now :-)
<unmatched-paren>but that looks like a package that'd be required by a few other common packages
<Luk6655>I wonder, what would be a good way to tell it to just freeze all guix system packages until I unfreeze them?
<unmatched-paren>Oh, wow, it's required by all ECL packages, a few raku packages, some emacs packages, and libgc
<unmatched-paren>the last one is required by guile
<Luk6655>When I work on my own package trying to run reconfigured repeatedly the last thing I want is it updating vim in the middle for example.
<unmatched-paren>Luk6655: Probably an inferior.
<unmatched-paren> https://guix.gnu.org/manual/devel/en/html_node/Inferiors.html
<Luk6655>Thanks,
<Luk6655>Also, if my build fails again, it would be good to be able to run just the build (preferably in some verbose mode). Is there a way to do it?
<unmatched-paren>Luk6655: Or... you could make your own packages use the inferior ;)
<unmatched-paren>use the default channel in channels.scm, then create an inferior that uses the local channel
<unmatched-paren>s/default/online/
<Luk6655>Oh my, now it complains of hash mismatch, I thought I removed the hash from channels.scm
<unmatched-paren>Luk6655: `guix build package`?
<unmatched-paren>You need to disable authentication when you pull it
<unmatched-paren>i don't think you need to authenticate inferiors, though
<unmatched-paren>guix pull --disable-authentication
<unmatched-paren>iirc
<Luk6655>Ok, thanks
<Luk6655>Is it possible to pull just one channel, and not the others?
<unmatched-paren>no
<Luk6655>Well, that would solve the problem of unwanted updates in a middle of other work. Inferior seems to create a completely separate version of guix(no idea what they mean by version, a profile perhaps?) I imagine it is like a venv for guix
<unmatched-paren>No, it's not really like a venv
<unmatched-paren>`guix shell` is like a venv
<unmatched-paren>inferiors allow you to use versions of Guix other than the one you have pulled
<Luk6655>I see
<unmatched-paren>basically, you can retrieve the old version's package objects, which allows it to be used to pin things
<Luk6655>How about achieving the same by making a local clone of the guix channel and just pulling it when needed?
<Luk6655>As in git clone, and overriding gux channel to look at local version via file:///
<Luk6655>Any reason why this is a bad idea?
<unmatched-paren>I don't see how that would work
<Luk6655>Same as mychannel
<unmatched-paren>Oh, that would work too.
<Luk6655>Ok, I might do that if I do get it working and keep the system as my main.
<unmatched-paren>But it'd be a pain to `git pull` every time you want to pull the channel.
<unmatched-paren>An inferior is a *much* better option.
<unmatched-paren>Also, you can use arbitrary channels in an inferior, it doesn't only allow you to use a different Guix
<unmatched-paren>so you could actually use it for your mychannel thing
<Luk6655>I will have to read about properly it first, BTW, how out of date the reference manual is?
<Luk6655>Or is it pretty current?
<unmatched-paren>The devel manual is for the latest commit
<unmatched-paren>avoid the release manual at all costs
<Luk6655>Do you mean to avoid the reference manual?
<unmatched-paren>it is an abomination and should be coated in petrol and set alight
<unmatched-paren>Luk6655: The 1.3.0 version of such.
<unmatched-paren> https://guix.gnu.org/manual/en/ <- this one
<unmatched-paren> https://guix.gnu.org/manual/devel/en/ <- good
<unmatched-paren>"1.3.0 — 14 June 2021
<unmatched-paren>it's more than a year old
<unmatched-paren>using it is like using the installer image forever and never pulling
<Luk6655>OK, this was my main source of info, no surprise I'm having problems :-)
<unmatched-paren>s/installer image/version installed by the installer image/
<Luk6655>Really? I did use the installer image too, what is the alternative to install on bare metal?
<unmatched-paren>No, I mean it's like installing and then never pulling
<unmatched-paren>you'd be using the commit tagged 1.3.0
<unmatched-paren>forever
<unmatched-paren>which would be Very Bad :)
<Luk6655>I see
<Luk6655>What kind of hash sha256 in guile computes?
<Luk6655>One produced with command line sha256 sum seems much longer
<pkill9>is there a reliable way of testing if a given file is a guile script?
<pkill9>or a type of guile thing
<pkill9>idk
<pkill9>i basically want to make a script that calls other bineries, but I want to make that script also be able to be a wrapper around given binaries
<pkill9>and to detect if you are trying to call the a wrapper using the script
<pkill9>I guess a simple grep would be enough
<Luk6655>Nevermind, guix hash file can compute the same
<Luk6655>Do I always need to run hash guix after guix pull?
<unmatched-paren>pkill9: You could probably check for #!/usr/bin/env guile, use-modules, or define-module
***adam` is now known as amccart
<amccart>NickServ
<Luk6655>Now guix is broken again, even with all my changes reverted. Guix pull errors out
<roptat>Luk6655, no, as long as your $PATH is correct, you only need it once
<roptat>what's the error?
<Luk6655>1 dependency failed to build
<Luk6655>I'm checking which one
<roptat>you should have a log file
<antipode>There are a few "build failures" on ci.guix.gnu.org due to lack of space, e.g. https://ci.guix.gnu.org/build/1196794/details
<Luk6655>Python-pytest-datadir
<antipode>and https://ci.guix.gnu.org/build/1196817/log/raw
<Luk6655>It worked an hour ago
<Luk6655>Now after a pull it isn't, the worst is that I don't know is this my system messed up? Or is it an update?
<antipode>(for: master)
<Luk6655>antipode: sorry, I'm not sure what it means for my guix pull? If a build fails there, does this issue cause guix pull to fail?
<antipode>I wasn't responding to you.
<Luk6655>Ok
<Luk6655>Is guix pull from the main repo working for others now?
<roptat>trying now, but it should work
*unmatched-paren trying too
<unmatched-paren>it works for me
<Luk6655>Ok, thanks for testing
<roptat>Luk6655, can you share the content of the log file?
<roptat>you should have got a substitute, too
<Luk6655>I have removed my local channel (pointing it to github) and it did pull successfully
<Luk6655>I'm cloning it again, I'll redo my change and if it fails again I'll have the log
<AlbertoBalsalm>Hi I've just installed guix coming from Arch, so far I love it. I have a couple of questions. I'm installing some software through the guix package manager and I see i'ts building them from source, does guix install always build from source? Because it takes a while to install some simple software. Also does anyone know if there's a channel for
<AlbertoBalsalm>this desktop manager? https://regolith-desktop.com/
<Luk6655>Perhaps someone knows how to disable gnome screen lock on switching to text console and back? I already changed the GUI config, but it is still locking.
<unmatched-paren>AlbertoBalsalm: Yes, it builds things from source, but if you have substitutes enabled (which you should have by default) then it'll grab pre-built versions from the CI
<AlbertoBalsalm>unmatched-paren  do have substitutes enabled
<unmatched-paren>I don't think there's a channel for that desktop yet, but it looks like most of the components have already been packaged
<unmatched-paren>so it probably shouldn't be too hard to make a regolith-service-type
<unmatched-paren>it's likely that the desktop itself is just a large pile of configuration files
<AlbertoBalsalm>Would someone be interested in helping me port regolith to a guix channel? That would be a nice learnign experience for me as well.
<unmatched-paren>sure :)
<unmatched-paren>You'll have to learn services though, most likely.
<AlbertoBalsalm>I'll read the reference
<unmatched-paren>it's best to read the source to learn service
<unmatched-paren>services
<unmatched-paren>the manual will teach you how to use services, but probably not much on how to write them
<Luk6655>BTW, nVidia has open sourced one of their drivers under gpl2, is there some philosophical problem integrating it with guix(like it is not gpl3)? If someone wanted to do it, could it end up in guix channel?
<unmatched-paren>Luk6655: There's no problem with gpl2
<unmatched-paren>if there was, we wouldn't have Linux :P
<AlbertoBalsalm>I see, If you ever have the time, I would greatly appreciate  if we pair up unmatched-paren
<Luk6655>Ok
<unmatched-paren>But the driver is for a very specific, very new brand of graphics card iirc
<roptat>Luk6655, the only limitation would be if it requires a non-free firmware, in addition to the free driver
<unmatched-paren>Hmm, yes, it probably has blobs in it, knowing nvidia.
<unmatched-paren>roptat: The driver is still nonfree
<drakonis>still requires their proprietary userspace
<unmatched-paren>It's the firmware that's free
<roptat>oh
<unmatched-paren>the kernel modules for a very specific class of high-end nvidia card have been freed
<Luk6655>I might need to investigate it in more depth
<Luk6655>unmatched-paren: which one?
<unmatched-paren>but the userspace drivers for opengl, etc haven't
<unmatched-paren>Luk6655: not sure
<Luk6655>That's something
<unmatched-paren>Clearly, that publicity stunt has been somewhat effective :P
<Luk6655>One can hope, riggt
<unmatched-paren>When it comes to multinational corporations, you can never be too cynical.
<lilyp>"freed" as in AMD-like freed?
<unmatched-paren>lilyp: I'm not sure.
<unmatched-paren>Oh, you mean like "all the stuff was moved into the firmware on the GPU"?
<unmatched-paren>Yes.
<unmatched-paren>That's also the reason it'll never work on older cards, because the firmware is apparently stored on this component that only exists on newer cards.
<Luk6655>Could someone let me know what does this mean, please? (file-name (git-file-name name version))
<Luk6655>What is the file its going to refer to?
<unmatched-paren>it turns /gnu/store/(hash)-git-checkout into /gnu/store/(hash)-name-version-checkout iirc
<Luk6655>name refers to folder name, version is a numeric version
<unmatched-paren>so, it controls the name of the directory the source is checked out into
<Luk6655>I'm trying to update hashes in a package, where they refer to a particular file that's simple enough, but this part seems to clone a git repo, checkout version, and then hash what? The whole folder?
<Luk6655>I'm a bit lost what to hash
<unmatched-paren>`guix hash -rx .` is what you want
<Luk6655>Does this do a folder recursively?
<unmatched-paren>-r = recursive, -x = ignore VCS directories like .git
<Luk6655>Yes, this matches the current hash, thanks
<unmatched-paren>because git-fetch deletes the .git directory due to reproducibility issues with git's bundles iirc
<unmatched-paren>Luk6655: You can use inherit with origins too
<unmatched-paren>(origin (inherit (package-source pkg)) ...)
<Luk6655>It seems to construct all those origins based on version, but then hashes have to match too. So I probably would have to override all origins as you say if I did the inherit way.
<Luk6655>For now I'm expecting it all to break anyway so this is just an exploration
<antipode>I've sent a fix for the "libgit2 1.4.3 directory owner validation breaks Guix": https://issues.guix.gnu.org/55399#12 and https://issues.guix.gnu.org/55399#11
<Luk6655>How guix packages define dependencies? Let's say there is a library needed for building some package. How would it be defined in package.scm?
<antipode>Luk6655: have a look at 'inputs', 'native-inputs' and 'propagated-inputs', which are documented in the manual.
<Luk6655>Is this what the #:use-module () is for?
<antipode>And cookbook.
<unmatched-paren>Luk6655: use-module is a guile thing
<unmatched-paren>not guix
<antipode>#:use-module is for importing modules, packages != Guile modules
<unmatched-paren>it's basically `import` or `use`
<Luk6655>Let's say my package doesn't build because libxpm is missing
<unmatched-paren>import (gnu packages xorg) if you don't already have it imported
<unmatched-paren>then add `libxpm` to the (inputs (list ...))
<Luk6655>Libxpm is in a package so I'm guessing this would be incorrect #:use-module (gnu packages libxpm)
<unmatched-paren>you can look at the location field of `guix show` to see which module it'd be in
<unmatched-paren>it says gnu/packages/xorg.scm
<unmatched-paren>so it's (gnu packages xorg)
<Luk6655>Libxpm is just an example, xorg has it, but if I wanted to specify just libxpm without xorg would use-module be appropriate for a package?
<unmatched-paren>huh?
<unmatched-paren>(gnu packages xorg) is just a module
<unmatched-paren>containing xorg-related packages
<Luk6655>The idea is not to install unnecessary stuff
<antipode>The only things that will be installed is the stuff added to inputs etc.
<antipode>Unused imports won't be installed, because unused.
<Luk6655>Ok
<Luk6655>So just to clarify, I add the module, this allows me to use the lib in inputs
<unmatched-paren>yes, it brings the variables containing packages related to xorg into scope
<unmatched-paren>it's a bit like, say, `from gnu.packages.xorg import *` in python
<robin>there are workarounds for renaming variables, etc., but you don't need them in this case (i imagine guix avoids name conflicts in (gnu packages *)
<Luk6655>Is there some way to find out if any package provides libgbm.so.1 for example?
<unmatched-paren>Luk6655: i believe that's part of the mesa project
<unmatched-paren>so it'd be in the mesa package, i think
*unmatched-paren cehcks
<unmatched-paren>yeah, it is
<unmatched-paren>guix groups packages roughly into projectn
<Luk6655>Or differently, is it possible to list all files on a package? (mesa in this case)
<robin>in the general case, though, i don't think there is such a tool ("apt-cache for guix")
<Luk6655>Perhaps there is a way to list files for installed packages?
<unmatched-paren>Luk6655: `ls -R $(guix build mesa)`
<robin>yes, just look in its store directory ("guix build foo" prints it without rebuilding if installed and up-to-date, or look for matching directories in /gnu/store)
<robin>or that :)
<Luk6655>Hmm, yes libgbm is there so I'm not sure why my build fails complaining of its not being there, maybe it needs to be added to inputs too?
<unmatched-paren>it should be in inputs, yes
<unmatched-paren>anything that's in inputs becomes a dependency compiled for the target
<unmatched-paren>anything in native-inputs becomes a dependency compiled for the host
<unmatched-paren>and anything in propagated-inputs becomes a dependency compiled for the host that's propagated into the dependencies of any package or profile that depends on its dependent
<unmatched-paren>s/host/target/
<Luk6655>So I have added libdrm to my inputs and it complains about unbound variable, while for example libx11 is added in the same way and it works
<Luk6655>Disregard this, my use-module didn't save
<htgoebel>Hello guix!
<htgoebel>In an importer I'm raising a „formatted-message“ exception.
<htgoebel>How do I catch it to actually print the formattes message?
<Kolev>Anyone use rde?
<phodina[m]>Hi there!
<phodina[m]>does anybody know how to rewrite the following code (pastebin diff) for `install-plan` in arguments using the new syntax? It depends on the target so the match statement must return list. Unfortunately I haven't figured out how to change it.
<phodina[m]> https://paste.debian.net/1251911/
<unmatched-paren>phodina[m]: Won't the old version of that break when the target isn't i686 or x86-64?
<roptat>phodina[m], #:install-plan (match (%current-system) ("x86_64-linux" `(("." "lib" #:include-regexp ("^./[^/]+\\.so")))) ...)
<unmatched-paren>Because it'd just be (arguments (list #:install-plan)).
<unmatched-paren>You probably don't actually need to splice anything.
<roptat>indeed
<oriansj>Kolev: did you mean https://guix.gnu.org/en/packages/rdesktop-1.9.0/ ?
<roptat>rde is a channel, I think it used to have guix home, but it's merged into guix proper now, isn't it?
<unmatched-paren>roptat: yeah
<unmatched-paren>but it still has lots of home services that guix doesn't have yet
<roptat>I see
<unmatched-paren>and system services, too
<phodina[m]>unmatched-paren: It will break, but this is more for learning Gexps in Guile as how to rewrite it. I agree that there are multiple targets and for other it will not work since it's just x86 assembly. So there's no point, I also list the package in the `supported-systems`
<unmatched-paren>Okee, makes sense :)
<Kolev>unmatched-paren: rde uses btrfs but the Guix installer uses ext4.
<phodina[m]>unmatched-paren: Okay, seems you are right. Removing splice causes this error message
<phodina[m]>```Wrong type to apply: (("." "lib" #:include-regexp ("^./[^/]+\\.so")))``
<phodina[m]>s/^.//^./\/, s/^//^/\/, s/``/```/
<unmatched-paren>phodina[m]: That matrix edit shows up as a very complex sed on irc
<unmatched-paren> https://logs.guix.gnu.org/guix/2022-08-28.log#142930
<phodina[m]>unmatched-paren: Thanks for the idea about unnecessary splice as the working code now looks like this https://paste.debian.net/1251931/. And sorry about messing up the IRC log!
<unmatched-paren>Nah, there's no problem with the log
<unmatched-paren>it's just difficult to understand
<unmatched-paren>best to manually write seds :)
<unmatched-paren>I think some Matrix clients "apply" those seds automatically
<unmatched-paren>It used to be worse; the bridge used to just resend the message :P
<unmatched-paren>So when people edited the message they'd just sent, we'd get a couple of similar messages.
<KE0VVT>phodina[m]: I get s/^.//^./\/, s/^//^/\/, s/``/```/ here.
<Luk6655>BTW, my issue with everything being red is a gnome issue (has nothing to do with nVidia and nouveau)
<unmatched-paren>Luk6655: Ah, nice to see you figured it out :)
<Luk6655>Thanks
<Luk6655>Well, it's not resolved yet, but at least I have a general idea how to do it
<oriansj>Luk6655: when I hear everything is red, all I can think of is a redshift service gone wrong
<Luk6655>Seems it is a known gnome issue, the title is erroneous this happens with nuvoueou as well as with other graphics cards https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4071
<Luk6655>There was a workaround posted there with an xrandr command that fixes it
<Luk6655>In general I'll be getting rid or downgrading gnome, because I'm having other issues with it, background not updating for example etc (this doesn't happen in gdm)
<Luk6655>I thought there was gnome 42 while on guix we have 40.4. Maybe there is some way to upgrade.
<Luk6655>I was hoping it would be the latest to be honest..
<Luk6655>Did anyone manage to get gnome 42 working on guix?
<phodina[m]>Is there a way how to select the toolchain for the packge in the `#:phases`? I'd like to build package which is for x86_64 but has some libs that are 32bits and these libs end up in the package output together with 64bit libs.
<phodina[m]>The target are open source engines like re3 and opengothic.
<phodina[m]>I know there is the `--target=<TARGET>` option when building the package, but that's from outside. Is there possibility to do it also from inside the package?
<Luk6655>What is the usual way of finding which (if any) package provides something? Specifically I'm looking for readelf and it seems it is not in elfutils
<lilyp>Luk6655: it's a mix, some programs are already on 42, others are missing dependencies that go to core-updates
<Luk6655>What is 42? Guix version?
<phodina[m]>Luk6655: Probably Gnome version 42
<Luk6655>Readelf is command line tool going back a very long time
<Luk6655>I was talking about gnome before
<Luk6655>But this is different
<mroh>Luk6655: readelf is in the gcc-toolchain.
<Luk6655>Ah, good, so for future, what would be the best way to find such things without IRC? Grep the guix repo?
<lilyp>there sadly is no such tool
<lilyp>if by chance the program is in your path you can ls -l $(which command)
<Luk6655>That's fine, I'm asking for best way to do it (even without a tool) :-)
<Luk6655>I suppose greping locally cloned guix channel repo will do for me
<lilyp>that will point to the store directory – sometimes you have to follow a few symlinks
<Luk6655>Also, please remind me where should GUIX_PROFILE= go?
<Luk6655>I was told previously. bashrc is not the right place
<lilyp>greping the local guix repo won't show you any binaries
<lilyp>do you run Guix System? If so, nowhere
<Luk6655>Yes, I have installed it and am setting it up
<Luk6655>Sorry, there in no "can't do it" in computing in my mind... Perhaps we don't know how yet.
<lilyp>What are you replying to with this line?
<oriansj>Luk6655: there are many things you can't do in computing. example divide by zero
<Luk6655>This is my reply to inability to search what package provides some functionality I need (not nessasarily a binary)
<lilyp>you can divide by zero, it will raise an arithmetic error
<Luk6655>oriansj: I disagree, you can, you will get an error, but you can
<lilyp>You'd have to index all the packages, which is not currently done
<oriansj>lilyp: then do the fixup needed to produce a useful result.
<lilyp>That said, if you dive into the mailing lists, you will find proposals.
<Luk6655>Regarding that GUIX_PROFILE, I'm being shown a hint "consider setting the necessary env. vars"
<Luk6655>This is why I'm asking where to set it
<lilyp>oriansj: actually, there are instances where 0/0 = 0 makes perfect sense (as does 0/0 = 1)
<oriansj>also you run into the problem of minds. Aka there is no way for us to know what you would use to search for the thing you want to find.
<Luk6655>It was mentioned before that if this is set in bashrc it will break guix shell
<lilyp>You don't need to set it.
<Luk6655>oriansj: OK, perhaps it is a problem more difficult than someone with little knowledge of guix can appreciate
<lilyp>Since you're on Guix System, that is already done for you.
<Luk6655>lilyp: I'm getting this hint every time I run guix install
<lilyp>The only thing you maybe need is to run those two lines in your current shell if you don't wish to log out and back in again.
<lilyp>No, you don't.
<Luk6655>Ok
<oriansj>we can create tags for programs and put them in a database but there is no way for us to encode all possible tags which would be needed to ensure people could always find what they are looking for
<lilyp>You probably got it twice, once for `guix pull' and once for `guix install', though you'll also get it if programs add new search paths.
<Luk6655>lilyp: no, echo $GUIX_PROFILE shows empty once i remove it from bashrc(that I added it there myself)
*phodina[m] uploaded an image: (69KiB) < https://libera.ems.host/_matrix/media/r0/download/matrix.org/YJLhwslxTvyhTpMqdNQIscWm/kde-guix-bare.png >
<phodina[m]>Does somebody use KDE Plasma on their laptops? I've been porting packages to Guix and managed to get kwin running. It just misses a lot of the plasma widgets ✌️
<lilyp>oriansj: a disarchive like debian's would probably suffice
<lilyp>Luk6655: $GUIX_PROFILE is a metasyntactic variable, it has no meaning after the source line
<lilyp>you shouldn't leak $GUIX_PROFILE further
<oriansj>lilyp: apt-cache search disarchive => no results
<phodina[m]>There is thread https://issues.guix.gnu.org/50862 and the latest packages are under https://github.com/phodina/guix/tree/patch/upstream-kde
<lilyp>oriansj: I mean that debian has a list of files per package
<Luk6655>lilyp: so let me clarify, I don't need it defined in my shell to be able to use guix install, etc?
<phodina[m]>I'm able to login in using SDDM to KDE Plasma and start some programs like Alacritty, Konsole, Dolphin. But I can't get working the plasma widgets like those on the panels
<oriansj>lilyp: yep dpkg -S dpkg but that wouldn't quite make sense in guix
<lilyp>but it *could* make sense :)
<lilyp>not quite with -S, but you get the idea
<oriansj>oh I certainly do: https://paste.debian.net/1251947/ https://paste.debian.net/1251946/
<oriansj>I have them for a few package managers: https://paste.debian.net/1251949/
<oriansj>and some have things others lack: https://paste.debian.net/1251950/ but generally these are the commonly requested bits of functionaltiy people want in their package manager.
<mroh>see https://issues.guix.gnu.org/42291 for the "guix filesearch" request/wish.
<KE0VVT>Should I use latest or standard ISO?
<Cairn>Hey unmatched-paren, I'm looking through your comments on the Hydroxide patches right now. Is adding a newline after the "description" keyword a newer thing? A ton of Guix's package definitions don't use that.
<Luk6655>Is there some documentation how to use elf binaries (let's say compiled on Ubuntu) under guix? How to avoid missing library paths, the executable wanting a linker in /lib64 etc?
<Luk6655>There is patchelf that seems to relate to this, but I don't know how exactly
<phodina[m]><Luk6655> "There is patchelf that seems..." <- README is your friend. Also consider using the `ldd` from `glibc` to list the shared object you'll need.
<phodina[m]> https://github.com/NixOS/patchelf/blob/master/README.md
<phodina[m]> https://paste.debian.net/1251954/
<phodina[m]>And `readelf` from `binutils` to analyze ELF files
<phodina[m]>However, it's a mess. Better to build from source :-)
<antipode>Luks6655: One method is to take the source code of the binary and recompile it for Guix.
<Luk6655>Sometimes reboot an even bigger mess... Currently I just seem to be having a problem with some library locations. I have shared libs in some /gnu/store locations, but the executable only looks in the usual /lib folders even when I set LD_LIBRARY_PATH
<Luk6655>Recompile, not reboot
<Luk6655>I hate autocorrect, but can't type fast without a t
<antipode>I have sent a patch series sending all but one of the issues identified by "guix lint --checkers=tests-true": #57462
<Cairn>unmatched-paren: Actually, I'm not that curious about most of the suggestions; I'll gladly accept them. I just have two main questions:
<Cairn>Why did you switch the inputs list of go-bcrypt to propagated?
<Cairn>What about the go-vcard description sounds odd to you? I'm using the phrasing from the github repo itself, but I personally think it sounds alright.
<Luk6655>I have added mypackage that patches an elf executable. This actually works when I run it like this /gnu/store/verylongpath-profile/bin/mytool I've added it as a system package because it talks to my kernel module. What would be a correct way to add it to a user's PATH? (at least for root)
<jpoiret>Luk6655: installing it would achieve that
<jpoiret>You can use -f for most guix package operations
<Luk6655>jpoiret: but the package contains the kernel module, is it not going to clash when I install it as a user?
<jpoiret>If it's not just a one-off thing you could consider creating a local channel
<Luk6655>I have
<jpoiret>Okay
<jpoiret>Well, wdym by kernel module ?
<Luk6655>I added the channel to channels.scm and I added it to system wide config.scm
<jpoiret>Does it contain one kernel module or all of the kernel?
<Luk6655>3 kernel modules and one elf executavle
<Luk6655>Executable
<Luk6655>Those kernel modules get compiled duringvinstall
<Luk6655>But the elf executable is patched.
<Luk6655>I suppose I could split it off, but that would be extra work
<jpoiret>What do you plan to do with the kernel modules?
<Luk6655>They are loaded in the system config
<jpoiret>If you want them available to the kernel on boot you'll have to add them to the system config
<Luk6655>Yes, all the kernel stuff works fine
<jpoiret>Oh, okay
<Luk6655>The only problem is the executable is not on the PATH
<jpoiret>Yeah, as long as the package is not added to a profile you won't have access to the binary
<Luk6655>So I'm not sue if there is some special guix way to manage PATH rather than just adding the profile filesystem path to it
<jpoiret>You should add the package to the system packages in the system config
<jpoiret>That way it'll be present in everyone's path
<jpoiret>The system profile is what ends up at /run/current-system/profile/, which should already be in your PATH
<jpoiret>If your binary needs to be setuid though, you'll need the more specialized setuid-programs field of your operating-system configuration
<Luk6655>By "system packages" do you mean the "packages" section adding to %base-packages in system config?
<Luk6655>No, no need for setuid
<jpoiret>Yes, that
<jpoiret>This denotes which packages you want in your system profile
<Luk6655>Ok, I get it now, thanks
<jpoiret>And the bin subdirectory should be added to path automatically
***f1reflyylmao is now known as f1refly
***darosior7 is now known as darosior
***sneek_ is now known as sneek
<f1refly>hello, I installed icedove and I'm trying to connect a caldav calendar + address book, but it tells me "could not find calendars at this location", does icedove support caldav or has support stripped out from the thunderbird base?
<Luk6655>jpoiret: unfortunately it fails saying mypackage: unbound variable, did you forget a 'use-modules' form
<Luk6655>But I do have it in use modules as (mychannel packages mypackage)
<jpoiret>Can you paste both files, redacted how you see fit, to paste.debian.net?
<jpoiret>That'll be easier
<Luk6655>I have an idea what might be happening, mypackage has multiple define-public mypackage-part sections, perhaps I need to use one(or more) of those names instead of package name in system services. Does this sound right?
<jpoiret>Yes
<jpoiret>You need to use the scheme variable, not the contents of the (name "whatever") field
<Luk6655>Scheme variable?
***jesopo is now known as jess
<jpoiret>That's the name of the lisp dialect guile is based on
<jpoiret>Scheme
<roptat>in (define foo (package (name "bar") ...)), foo is the scheme variable name, bar is the package name
<Luk6655>Here's the redacted system config paste.debian.net/1251958
<Luk6655>Package in a sec
<roptat>you use foo for scheme code (such as system config) and bar on the CLI
<roptat>it's usually the same
<Luk6655>I'm not sure what scheme is?
<Luk6655>There is no variable of this name.
<Luk6655>No section etc.
<roptat>scheme is the programming language that guile implements
<roptat>"that thing with parenthesis"
<singpolyma>s/the/a
<roptat>right
<Luk6655>Ok, still, I'm not sure what name to use in system services, this is the skeleton how the package is defined paste.debian.net/1251959
<Luk6655>Parentheses will not match due to reactions
<roptat>when you use mypackage in your system config, do you mean a single package?
<Kolev>Can I have the system run a Podman container automatically?
<Luk6655>Yes, but it installs 3 components
<Kolev>Jellyfin
<Kolev>The 1.3.0 installer aborts
<roptat>mypackage-part1, mypackage-libs and mypackage-module are three separate packages for Guix
<roptat>Guix has no way to know what you mean by mypackage, because you didn't define something with that exact name
<Luk6655>Ok, so I should use those names in system services if one of them contains an executable i need on a system path, is that right?
<roptat>right
<Kolev>Should i use latest ISO
<roptat>Kolev, probably. If it also crashes, please send a bug report :)
<Luk6655>Ok, I thought the file itself was named mypackage.scm,then the first line...
<Luk6655>But that's fine
<Luk6655>I'll try it
<roptat>Luk6655, mypackage.scm is a scheme module (hence the scm extension ;)), you can't refer to it that way. I think there's an elaborate way to list the contents of a module, but I don't have an example right now
<Luk6655>Ok
<Kolev>Installing Guix on a spare disk to see if I can replicate my setup. https://bluehome.net/csh/computing
<Luk6655>There is one more thing I initially intended to use kernel-module-loader-service-type, but it comes as an unbound variable for some reason
<roptat>you need to import the module that defines it
<Luk6655>kernel-loadable-modules works however
<roptat>that would be (gnu services linux)
<Luk6655>Great, tganks
<roptat>kernel-loadable-modules is just the name of a field
<Luk6655>Ok
<Luk6655>It seemed to be doing reconfigure so at least the syntax of the config file is ok
<Luk6655>Seems
***Noisytoot_ is now known as Noisytoot
<Luk6655>Can anyone recommend a lightweight GUI text editor in lieu of gedit? (Im using xfce instead of my usual gnome now)
<Kolev>error in finalization thread: success xD
<morganw>Luk6655: mousepad is the xfce equivalent
<Luk6655>Thanks
<roptat>Kolev, yeah that one is silly, but harmless :)
<Luk6655>I'm not sure why after I added mypackage to system services reconfigure now downloads hundreds of megs of python packages, texlive, webkit? and other seemingly unrelated stuff... Perhaps (gnu services Linux) has something to do with it?
<roptat>maybe because it needs to update unrelated stuff after your guix pull?
<Luk6655>I didnt run guix pull
<jpoiret>Kolev: the 1
<jpoiret>Oops
<jpoiret>Kolev: the 1.3 installer is way outdated, you should use the latest one
<Kolev>It always goes back to Locale language, the installer. Dhdjdjdjff
<Luk6655>I did pull couple hours ago
<Kolev>I'm using latest
<Luk6655>It should be recent enough hopefully...
<jpoiret>This seems like the elusive libparted segfault
<roptat>Luk6655, that one
<roptat>"guix pull" is similar to "apt update", as in it only updates the list of available packages, it doesn't update your installed packages/system
<jpoiret>We haven't been able to track this one since we don't have enough info to reproduce it
<roptat>that's why to update your system you need to do guix pull followed by guix reconfigure
<jpoiret>Kolev: does it fail at the partitioning step?
<Kolev>Did jp go offline
<Kolev>Yes it fails at partitionimg fjdjdjdjdjdjdhd
<jpoiret>No, i should always be around, i have an irc bouncer
<jpoiret>Right, that seems to be the same issue as some have had before
<jpoiret>Do you have some experience with gdb?
<Kolev>NO
<jpoiret>Damn
<Luk6655>roptat: yes, but do you need to run it every single time you reconfigure? I thought no if only maybe 30min passed since last.
<jpoiret>I can't juste ask you to send a core dump as it will contain passwords
<jpoiret>Just *
<roptat>Luk6655, ah no you don't have to run guix pull, I was just saying that maybe it needs to update other stuff *because* you ran guix pull
<Kolev>I can send one with fake passwords
<Kolev>How do i do it
<jpoiret>That would help!
<jpoiret>Let me see
<jpoiret>I'm on my phone right now so might be slow
<Luk6655>roptat: OK, I understand
<Kolev>Im on phone too because ... Installer
<jpoiret>You'll need to open a shell (ctrl+alt+f3, login as root with no password), then type 'ulimit -S -c unlimited' and 'echo "core" > /proc/sys/kernel/core_pattern"'
<Luk6655>What would be the correct syntax to change this to two files? (install-file "filename" bindir)
***Noisytoot is now known as [
<Kolev>Done
<jpoiret>Then, in that same shell, you'd type `$(guix build -e "((@ (gnu installer) installer-program))")` if my memory servese right
<jpoiret>That should start the installer program
<jpoiret>Once you reproduce, it should crash back to the shell
<jpoiret>The shell will be in a broken state, so juste blindly type "reset" and it should sort itself out
<jpoiret>If everything worked, there should be a file named "core" in the current working directory
<Kolev>Any programs on fdroid to upload images ?
<jpoiret>I think a browser should be enough
<jpoiret>The core file will be a binary file that we'll directly need though
<jpoiret>It's the state of the program at the moment it crashed
<Kolev>I cant upload images. I get a > when i type the lisp stuff
<jpoiret>Ah, there should be a mismatched opening quote
<roptat>Kolev, you must have mistyped it, bash is listening for the rest of the command
<jpoiret>Or parenthesis
<Kolev>Dhdhdhdhdjd
<jpoiret>I'll get around to implementing a core dump analysis tool in the installer when i have some time
<Kolev>Typinf lisp from phone is hell
<jpoiret>To supplement our dump system (which no one seems to have ever used)
<Kolev>Now laundry is done
<KE0VVT>jpoiret: On here from live system. -Kolev
<KE0VVT>In tmux.
<Luk6655>Is there a way to list installed packages in guix (both at system level and user profile)?
<jpoiret>you can only list packages per-profile
<KE0VVT>jpoiret: Can you repost that long, crazy command?
<jpoiret>but as long as you know which profiles you're using, you'll get all of it
<jpoiret>`guix package -p /path/to/profile -I`
<jpoiret>your user profile is at `~/.guix-profile` while the system one is at `/run/current-system/profile`
<jpoiret>KE0VVT: $(guix build -e "((@ (gnu installer) installer-program))")
<Luk6655>Thanks, that is what I'm looking for.
<KE0VVT>jpoiret: Is it going to mess up if I run it in tmux?
<jpoiret>maybe, i'm not sure
<jpoiret>we use a pretty ancient TUI library that might not account for tmux
<KE0VVT>jpoiret: I can't trust myself to type it manually. It's too... wow.
<Luk6655>Does guix have any dependency database, or is it all interpreted on the fly from scm files?
<KE0VVT>Runnin the command.
<KE0VVT>Also, my G key is faulty.
<jpoiret>Luk6655: everything is in the .scm files
<Luk6655>I would love some way to discover why did it install a certain package (what requested it)
<jpoiret>if a package is "installed" to a profile, that's because it was explicitely installed (let's put aside some technicalities)
<KE0VVT>jpoiret: It's downloadin a lot of stuff. What is it doin?
<jpoiret>it's building the installer
<jpoiret>hopefully it shouldn't be too long
<KE0VVT>jpoiret: OK. I'm on a ThinkPad X200, BTW.
<jpoiret>it's either that or you can find the installer script directly inside the /gnu/store/ directory
<Luk6655>jpoiret: just to give a concrete example. Now I see it is downloading python-matplotlib it would be interesting to find out is it because some part of xfce depends on it, or something else etc.
<jpoiret>I use that command above to develop the installer incrementally, so i'm more used to it
***[ is now known as Noisytoot
<jpoiret>Luk6655: unfortunately we don't have that at the profile level
<jpoiret>you can do `guix graph --path package dep` to find out the path from a package to a dependency
<Luk6655>jpoiret: that is good enough
<KE0VVT>jpoiret: OK, got Segmentation fault. What now?
<jpoiret>type "reset"
<lechner>Hi, do Guix profiles work with networked home directories?
<jpoiret>then, you should have a file called "core" where you are
<jpoiret>lechner: they will work on only one machine
<jpoiret>they use symbolic links to profile generations
<lechner>jpoiret: thanks!
<jpoiret>KE0VVT: we'll need that core file
<Luk6655>I wish there were man pages for all the guix commands... I much prefer man page format to info.
<jpoiret>I'm wondering how/where you could upload that though, since the MLs don't support that
<KE0VVT> Segmentation fault
<KE0VVT>root@gnu ~# reset
<KE0VVT>-bash: reset: command not found
<KE0VVT>root@gnu ~#
<jpoiret>Luk6655: i was the same until I really started to get into info
<KE0VVT>jpoiret: OK, how do I upload core file?
<jpoiret>KE0VVT: oh, my bad, just ignore the reset part then
<jpoiret>how big is it?
<KE0VVT>jpoiret: Where is it?
<jpoiret>in your current working directory
<KE0VVT>Not there.
<jpoiret>damn
<jpoiret>did you type "ulimit -S -c unlimited" in that shell?
<jpoiret>and does "cat /proc/sys/kernel/core_pattern" give you "core"?
<KE0VVT>jpoiret: core
<KE0VVT>jpoiret: OK, core is in .
<jpoiret>great!
<jpoiret>how big is it
<KE0VVT>jpoiret: root@gnu ~# du -hs core
<KE0VVT>110M core
<jpoiret>damn that's pretty big
<jpoiret>mail is not an option for this one
<KE0VVT>jpoiret: Could I use OnionShare from my live system to send it to you?
<Luk6655>I heard one of biggest guix "selling points" are multiple profiles with one user. Are things like ssh key folders managed on a per profile basis, or are they separate? I'm not sure where to put my keys on guix.
<pkill9>was there a suggestion somewhere of a way of trasnparently creating wrappers for packages?
<jpoiret>Luk6655: profiles are only where packages are installed
<jpoiret>you should manage your ssh keys yourself
<Luk6655>Ok
<jpoiret>a profile is a Guix abstraction for "collection of things that I want installed side-by-side"
<jpoiret>if you want guix to manage your whole home directory, you should look into Guix Home. Disclaimer: experimental software
<lilyp>Disclaimer: Using guix to manage cryptographic secrets is discouraged
<singpolyma>Any secrets, really
<KE0VVT>singpolyma: How do I format a flash drive from the command line? I need to upload a file for jpoiret.
<singpolyma>KE0VVT: uh. fdisk and/or parted
<KE0VVT>singpolyma: Those programs are hard to use. :-(
<efraim>you can use scp, just run 'guix environment --ad-hoc openssh' and it'll be available
<singpolyma>Heh, parted is the glossy version. But yeah, Thurs a reason I use gparted instead when I have X
<efraim>singpolyma: can I interest you in my untested Guix GParted image? https://git.sr.ht/~efraim/guix-config/tree/master/item/gparted.scm
<KE0VVT>By the way, OnionShare's package is dysfunctional.
<KE0VVT>I wish I could just `reformat vfat /dev/sdd`.
<Kolev>Booting back into Fedora. Going to give jpoiret the files.
***caleb_ is now known as KE0VVT
<KE0VVT>jpoiret: https://bluehome.net/csh/tmp/dump.zip
<jpoiret>thank you!
<singpolyma>KE0VVT: if there's only one partition you could use the mkvfat command manually. I don't know exactly the command but there is one of course
<KE0VVT>singpolyma: No, I had to delete all the partitions and add a single partition.
<KE0VVT>singpolyma: Are you still usin Guix on Debian?
<singpolyma>KE0VVT: yes
<the_tubular>Could someone help me "schematize" this bash snippet?
<the_tubular> https://stackoverflow.com/questions/59897459/bash-function-to-alias-python-command-with-ipython-when-no-arguments-are-used
***examors_ is now known as examors
<roptat>the_tubular, something like (match (command-line) ((command) (invoke ipython)) ((command args ...) (apply invoke python args))) maybe?
<the_tubular>Gonna give it a try
<KE0VVT>Noisytoot: The installer does not work today.
***aeka` is now known as aeka
<Noisytoot>KE0VVT: What do you mean and why are you telling me specifically?
<KE0VVT>Noisytoot: Because you run Guix all the time.
<KE0VVT>IDK.
<podiki[m]>any go packagers here? when build says no go files found...? (i tried adjusting import-path)
<Noisytoot>KE0VVT: So do many other people in this channel, but nobody can help you if you don't describe how exactly it does not work.
<KE0VVT>Noisytoot: https://bluehome.net/csh/tmp/dump.zip - Outputs. When I tell the installer to use all disk space and install onto my disk, it instantly loops back to the first prompt of the installer. It just keeps oing in a loop.
<depthstrider>Can Zig (or Clang, for that matter) be used to replace GCC via cc-for-target, or is there another way to specify a specific CC/C++ executable?
<lilyp>cc-for-target is currently limited to GCC
<depthstrider>So when specifying a build system, is there no way of not using GCC?
<mbakke>depthstrider: there is no build system specific key for specifying compiler, usually the package just picks up whatever is in PATH
<mbakke>so in some cases simply providing a different compiler as input will do the job (unless the package tests for GCC first, of course)
<mbakke>in other cases you may have to set CC=clang or similar
<mbakke>depthstrider: there is also the 'package-with-c-toolchain' procedure
<depthstrider>The project in question uses Meson, so I'm not sure if that complicates things by having to specify a compiler in an .ini
<KE0VVT>OK, let's try this again.
<mbakke>depthstrider: package-with-c-toolchain should work for meson-build-system ... as well as setting the CC variable
<depthstrider>mbakke: Oh, right. Sorry for the blanking out.
<jpoiret>could a committer have a look at https://issues.guix.gnu.org/57307 ?
<jpoiret>i believe the patch is pretty straightforward
<mbakke>jpoiret: it LGTM, although I think you should also add your copyright
<mbakke>I can do that on your behalf and push
<Kolev>Cannot configure network.
<Kolev>WLAN soft blocked
<Kolev>Sisjdjdhdhdhdhddh
<Cairn>Are you installing, Kolev?
<oriansj>probably did ls | grep foo in nushell and realized they wasted time installing that garbage
<oriansj>either that or they don't know how to do sudo rfkill unblock wifi
<KE0VVT>I don't know how to use cryptsetup and all that.
<KE0VVT>oriansj: Is Wi-Fi blocked by default?
<oriansj>KE0VVT: why would it be?
<KE0VVT>oriansj: It seemed to be.
<oriansj>and here are some notes about cryptsetup you might find useful: https://paste.debian.net/1251994/
<oriansj>KE0VVT: well it only sets things up the way you tell it to
<KE0VVT>I should just read the docs and script this. Manually typing commands is blech.
<oriansj>are you trying to setup a system with a luks volume and need help?
<KE0VVT>oriansj: I always chose LUKS encryption with the installer, yes.
<oriansj>oh, I am the type who just goes to the shell and follows a written procedure
<jpoiret>mbakke: I always forget, my bad. If the offer still stands, i would appreciate it if you added it and pushed, no need to bump the thread just a new patchset
<dthompson>anyone else find this behavior weird in guix shell? 'guix shell' with no args means implicitly means '--development --file=guix.scm' when a guix.scm file is present, however something like 'guix shell -- make' does not preserve the same behavior.
<dthompson>I was trying to use M-x compile in emacs to run 'guix shell -- make' but found that I have to do the much more verbose 'guix shell --development --file=guix.scm -- make' instead.
<dthompson>to me its bad UX and something I could fix if the current maintainers agreed
<mbakke>jpoiret: OK. Would it make sense to squash the commits?
<mbakke>dthompson: 'guix shell' and 'guix shell -- foo' behaving differently sounds like a bug to me
<dthompson>mbakke: that's my take on it, too. I'll file a bug.
<KE0VVT>How is this for an install script? https://bpa.st/UERQ
<KE0VVT>Goin to run it. O_O
<KE0VVT>Hm. What label do I use for btrfs?