IRC channel logs


back to list of logs

<gabber>ACTION was unable to find the fortune-mod discussion so they read the FSDG issues of SCUMMVM-based games thread
<futurile>Q: how do I know if something is a 'native-input or an 'input'?
<singpolyma>futurile: do you need it at build time or run time?
<futurile>singpolyma: build time
<futurile>OK, thanks - that helps
<nckhexen>futurile: The rule of thumb is: always assume you're cross compiling to a different architecture. Does the package need to run on the build host (=native-input) or on the eventual target host (=input)?
<nckhexen>That should also make it clear that native- vs. not isn't a ‘property’ of a package. It's perfectly possible and not unheard of to have (inputs (list foo bar)) (native-inputs (list baz bar)).
<nckhexen>The native bar & regular bar are both valid & coexist.
<futurile>ah ok - hmm I need to go read about it a bit more
<nckhexen>When you run ‘guix build --target=aarch64-linux-gnu hello’ on your x86_64 laptop, all native-inputs will be x86_64 (compiler, make, pkg-config, etc.) and all inputs will be aarch64 (uh, libhello, libpng to render the hello, I chose a bad example but you get the point).
<nckhexen>Of course the common case is to build x86_64 software on a x86_64 host, and there really is no difference between native-inputs and inputs. And this leads to a lot of confusion and sloppy code, to the point where many packages in Guix are in fact buggy and downright wrong.
<nckhexen>But there is always a clear right answer.
<apteryx>podiki: sounds good to me too (graphics-team)
<apteryx>although you may have to support gimp, haha
<podiki>do we currently describe teams scopes in words anywhere? I mean some are self explanatory, but might be nice to have a reference (in Contributing section?)
<podiki>or a doc string in teams.scm and manual can point people to see who's on a team and what they cover
<podiki>oh nevermind we do have that :) i'm out of date
<gnucode>question for the group...
<gnucode>some Hurd developers are considering rewriting Hurd's start up sequence. It is similar to a earler proposal called bootshell:
<gnucode>bootshell wanted to bring a simple scheme to the early boot. The Hurd developers that are considering doing this are not wild scheme fans.
<gnucode>Any suggestions for how I can convince them that they should use scheme in the early boot up phase?
<lechner>gnucode / easy to parse and super-powerful. the parser even fits into a boot sector. (will find in a minute)
<lechner>gnucode /
<Kolev>Recommended pastebin program?
<Kolev>gnucode, wgetpaste does not paste there.
<lechner>gnucode / sorry, here is v2
<gnucode>Kolev: ahh pastebin program...
<gnucode>if you ever find one, please share it with me!
<lechner>in Emacs, webpaste.el
<Kolev>lechner, thanks.
<gnucode>lechner: there response will be something like, the start-up shell should only be a simple shell.
<Kolev>I have in .bashrc but ~/.local/bin/ is still not in $PATH. How do I fix this?
<gnucode>lechner: I am currently writing up a RFC email that explains the proposal. Would you like me to email it to you?
<lechner>gnucode / sure!
<lechner>Kolev / there is also debpaste.el, but it has an annoying habit to paste what Perl calls "wide characters"
<Kolev>lechner, is `emacs-webpaste` your preferred?
<gnucode>sounds good. It may take me a day or two to finish it. Also thanks for the suggestion of sector lisp.
<lechner>Kolev / yes, but it's not perfect. you can choose from five or six pastebin. from what i recall, none decorate and only some provide line numbers
<lechner>some have really short retention times, like 24 hrs
<lechner>there is also pastery.el, which works great but you have to like red i think
<lechner>gnucode / what kind of shell do those folks have in mind?
<lechner>nvm, i am reading
<Kolev>Now: I have in .bashrc but ~/.local/bin/ is still not in $PATH. How do I fix this?
<gnucode>lechner: probably something really really simple? But I personally feel like scheme is really simple?
<lechner>Kolev / can you test for a particular executable instead?
<gnucode>It's solid_black proposal. but I guess that he is not a massive scheme user. So he doesn't see the benefit.
<Kolev>lechner, what do you mean?
<gnucode>I figured that since Guix wants to use the the Hurd, I should let you know about that the upcoming proposal.
<gnucode>let you all know*
<Kolev>My $PATH looks like /run/setuid-programs:/home/user/.guix-profile/bin:/run/current-system/profile/bin:/run/current-system/profile/sbin
<lechner>gnucode / i might look for a basic video that explains the power of the lambda calculus. i once watched this one but there are probably others
<lechner>Kolev / why not install your executables into the store and add them to your profile?
<gnucode>lechner: thanks. I will take a look
<gnucode>especially because I don't understand lambda calculus. :)
<lechner>gnucode / in that case, you may want to upgrade to the y combinator
<gnucode>sounds good. thanks for provinding me some late night entertainment
<lechner>Kolev / or use guix shell -f guix.scm whenever you need them
<ulfvonbe`>apparently 'su --preserve-environment' doesn't preserve PATH -_-
<wdkrnls>Hello Guix
<wdkrnls>I just upgraded and see Emacs 29.1 has been placed in the main branch.
<wdkrnls>Seems to have broken a few core things for me.
<wdkrnls>Including ERC.
<wdkrnls>But also Emacs ESS.
<wdkrnls>And Dired is busted too.
<wdkrnls`>Well, I guess ERC now works in a less convenient way.
<apteryx>sneek: later tell civodul neat little procedure in build-package-metadata.scm: package-variable-name it's clever!
<sneek>Will do.
<jackhill>hmmm, why might the patches fail to apply for the v2 was a fresh `git pull --rebase`
<voroskoi>how can I set +x permission for a guix home file installed by local-file?
<Kolev>lechner, IDK how to install shell scripts into the store.
<ulfvonbe`>voroskoi: use #:recursive? #t, even if it's not a directory
<ulfvonbe`>and make sure the local file in question has +x permission set
<ulfvonbe`>the 'recursive?' name is a bit misleading, it's actually 'not-a-plain-byte-sequence?', but I believe marketing shot that one down
<voroskoi>ulfvonbe`: oh, i just skipped that reading the docs, thanks
<Kolev>lechner, how do I use my personal shell scripts?
<NewGuixUser>Does anyone know how to fix this? "(exception unbound-variable (value #f) (value "Unbound variable: ~S") (value (nghttp2-1.41)) (value #f))" I get that error when trying to bootstrap commit 8944f1a4a4bfe65ad83d4926fbdbeb3e11ec7728
<NewGuixUser>Basically I need to get an environment with Python 3.8.5 and a few specific Python packages and that commit is where 3.8.5 was introduced in guix
<podiki>NewGuixUser: it means you are trying to use a variable nghttp2-1.41 that doesn't exist, must not be in that commit
<podiki>not sure what you mean by "bootstrap" that commit, but have you tried time-machine?
<NewGuixUser>podiki: I am using time-machine. By "bootstrap" I mean it's needing to do a full source build of everything since the binaries no longer exist on a substitute server
<podiki>are you using other channels or your own code? because something is referencing nghttp2-1.41
<podiki>this commit probably
<NewGuixUser>This is exactly what I'm running "guix time-machine --commit=8944f1a4a4bfe65ad83d4926fbdbeb3e11ec7728 -- environment -m manifest.scm -c 0" with this manifest
<podiki>can you paste the full log?
<podiki>and if you are using other channels, you need to specify a channels file with them at appropriate commits too (otherwise they are just at the latest)
<NewGuixUser>I'm only using the official guix channel
<NewGuixUser>And one second, I'll get the log
<NewGuixUser>podiki: Here's what I see on the command line and the contents of the build log
<podiki>ah, I think the issue is that there was a core-updates merge at some point (end of 2020? i forget) which may be confusing to look at the history?
<podiki>i would try a later commit
<podiki>the nghttp2-1.41 was a graft for security fixes, ungrafted (that variable removed) must have happened on the core-updates branch before being merged to master
<podiki>likewise the python update might have been (if default version was updated then)
<podiki>so how about a later commit, sometime before (or just before) python goes to a later version, if that's what you are caring about
<NewGuixUser>Yeah basically I just need Python at 3.8.5 and then the specific package transformations from that manifest I pasted
<podiki>otherwise maybe look at the guix-past channel
<NewGuixUser>so I'll try to find when python was next updated and use the commit right before that one
<podiki>you also are seeing an issue with not having pyproject-build-system, which was another big change at some point
<podiki>guix-past might be useful, e.g. they have python@3.8.5
<podiki>whoops, correct repo link is
<NewGuixUser>I couldn't figure out how to get python 3.8.5 from guix-past to install
<NewGuixUser>I don't have the logs at this point but could try again
<NewGuixUser>Ok it looks like f1eea19c9ae27e5d275b083bbf280e5b59e5e57a is the last commit with 3.8.5 in mainline guix
<NewGuixUser>I guess I'll try that one for now
<podiki>good luck!
<podiki>gotta run but others should be able to tackle this problem, guix is meant to be easy to time travel, just hit an unlucky spot maybe
<NewGuixUser>Thanks, yeah my problem is that this set of packages I need never existed all at the same time in guix and we didn't start this project in guix.
<NewGuixUser>This is pip biting us 3 or 4 years down the road
<rekado>NewGuixUser: I still recommend building this atop Guix 1.4.0
<rekado>you’ll get many more substitutes and for your subset of packages you can use a transformation to build them with a custom Python package
<NewGuixUser>rekado: I might try that
<NewGuixUser>I just got another (different) failure with that other commit I tried
<NewGuixUser>though when building on 1.4.0 I was getting a weird python-pytest-async build failure
<NewGuixUser>I don't have the log on hand
<NewGuixUser>Is there something wrong with this command? "guix time-machine --commit=v1.4.0 -- environment -m manifest.scm -c 0" I'm getting the following error "guix time-machine: error: Git error: unable to parse OID - contains invalid characters" but I know that tag exists
<civodul>Hello Guix!
<sneek>civodul, you have 1 message!
<sneek>civodul, apteryx says: neat little procedure in build-package-metadata.scm: package-variable-name it's clever!
<NewGuixUser>Oh I figured it out, for some reason my guix pull wasn't grabbing the most up-to-date code so I didn't have that tag. I just ran guix pull a couple times and it fixed itself.
<Altadil>Hi everyone, some time ago I sent some patches to the list, but, silly me, the issue I sent to is actually closed. I wonder what I should do : re-open the issue, or send the patches again to make a new issue ?
<mothacehe>Hello, what's the ticket number of the closed issue?
<mothacehe>Looks like the original 41293 was closed because the patch were pushed. So you can open a new one and re-send your new patches there :)
<Altadil>ok, thank you! :)
<PotentialUser-70>Hello, Im trying to set up a wireguard vpn connection but getting huge errors that just says that something inside operating system block is wrong, here is my config, have no ideas, please help.
<PotentialUser-70>and an error
<rekado>PotentialUser-70: the error says that your operating-system config is incomplete
<rekado>it’s missing two fields
<PotentialUser-70>But it was ok, I just added a wireguard lines
<rekado>Emacs tells me that your parentheses are not matched
<Altadil>I have a weird error when trying to use make in my guix checkout : it does not find guile development packages, but guile is working fine and… the problem does not happen from a new git checkout. Am I missing something ? Or should I rather start over from the new one ? :/
<gabber>maybe the fortune-mod removal discussion did not happen on a public mailing list? i don't need to know who said what but WRT the outcome i'd like to know the reasoning.
<gabber>i guess this was due to fortune-mod's offensive content?
<rekado>gabber: this one perhaps:
<rekado>Altadil: are you doing this inside “guix shell -D guix”?
<rekado>Altadil: whenever something weird like this happens on my machine I always suspect environment variables. It’s a good idea to check the output of “env” to see if anything obvious sticks out as wrong.
<Altadil>rekado: yes, to be precise guix shell -D guix help2man git strace (and I also tried adding guile explicitely). This is just after a guix pull.
<adanska>guys i think i killed my guix install with hibernate! i used `loginctl hibernate` a few days ago, before i added the `resume` kernel parameter in a system reconfig. i did the reconfig a few days later, and when i booted again it loaded up the hiberation file from all the way back then. i panicked and shut off my system, but it wouldnt fully shut down, so i forced it off. i think it borked my file system, cos when i booted back up it wasnt able to mount my f
<adanska>- fs properly
<Altadil>rekado: Ok, I’ll check that, thanks !
<adanska>it let me do an fsck, which did a lot of things, but now none of my kernel entries will boot into my fs
<PotentialUser-70>sorry, there was some simple errors, but now it says that wireguard service type is unbound variable
<adanska>i think when i shut down my system, since there was a conflict between the hibernated state and the state of my actual install, it overwrote some things or something and its corrupted files
<adanska>tonight im going to see if i can chroot into it from a usb and run something like `sudo guix gc --verify=repair` but i dont have high hopes
<adanska>i dont know the extent of the corruption really
<adanska>anyway. moral of the story is DONT `loginctl hibernate` if you dont have your kernel configured for it!!!!
<adanska>im so lucky that i paperkey'd my gpg key before this hahaha
<rekado>PotentialUser-70: better!
<rekado>PotentialUser-70: you need to add vpn to the use-service-modules clause
<rekado>it’s a service and defined in (gnu services vpn)
<nckhexen>adanska: That… sucks. Yes, any file system activity between hibernate and resume can be deadly, you might have read this warning before: <>. Sorry it happened to you. Glad you had (some) back-ups.
<adanska>unfortunately i didnt read that before ;;( i would have been a bit more careful. do you think i should just abandon attempts to rescue the system and start from scratch?
<adanska>thankfully i have my configs checked into vc, so it would just be a matter of time, really.
<nckhexen>Honestly… I think that might be a better use of your time. Your diagnosis is correct: the hirernated kernel basically time-travelled and doesn't (and design-wise can't) know that the file system layout basically changed under it. So it will write pending and new data to ‘random’ posititons on the disc, and completely trash metadata trees because they've moved around, etc. It's a very aggressive form of corruption compared to others.
<nckhexen>I wish loginctl would at least warn about this, I don't think we as distro are in a good position to fix this. We could try, but our attempts would be awkward & heavy-handed.
<adanska>perhaps the easiest thing would be to put a warning in the docs. i came across , but i cant find the entry in the manual online. it was pushed a while ago, so idk why it isnt there.
<adanska>ahh its in the devel one
<adanska>ACTION facepalms
<voroskoi>I try to package evdev-rs, the test try to use //dev/input/event0
<voroskoi>shall I create that somehow or should i disable the tests?
<nckhexen>*Can* you create it in the build container? (I've never tried.)
<nckhexen>If not, disable the tests that try to use it.
<nckhexen>In a perfect world the test suite would check and skip these tests, but it's understandable that they assume all Linux installations have evdev configured.
<voroskoi>nckhexen: the how would be my second question :-)
<voroskoi>i just disable it for now
<nckhexen>You'd manually invoke mknod, but it's almost certainly not possible due to missing privileges in the build container.
<nckhexen>Oct 27 12:21:43 localhost shepherd[1]: Maximum number of clients reached; rejecting connection from 287.384.990.-42:67612.
<nckhexen>I've been locked out of my headless server by what appear to be zombies :-/
<civodul>nckhexen: ouch
<civodul>could you grab details?
<civodul>zombies as in stale SSH connections, right?
<nckhexen>If you tell me how, gladly, but otherwise: I'm on phone and not able to do own research right now.
<nckhexen>Zombies as in 'Z' state sshds, but I think that's what you mean.
<nckhexen>This machine accepts cron back-up jobs that retry every 10 minutes on failure, so that's probably how they got created.
<nckhexen>ACTION away a bit, but let me know what to do and I'll do it, it's not urgent.
<zamfofex>Hello, Guix! I hope no‐one minds me asking, but it’s been a week since I opened <> so I was wondering if anyone would mind taking a look into it. I noticed I forgot to add myself to the copyright header, though.
<rekado>zamfofex: I’ll make a few changes and push it.
<rekado>you already have a line in the copyright header
<nckhexen>civodul: The system's older than I thought (27 Aug), so if it's OK with you'll I'll update & reboot it & see.
<attila_lendvai>am i supposed to add the fstrim-service-type myself? a quick grep'ping suggests that it's not included among the default services. if so, i've been unadvertently running without trim for years...
<nckhexen>If your file system doesn't auto-discard.
<nckhexen>And yes, you're expected to explicitly add it if you want to trim on a schedule.
<attila_lendvai>ACTION does further reading
<attila_lendvai>nckhexen, do you mean filesystem, or do you mean the 'discard' mount option that enables continuous trim (which is not recommended)?
<nckhexen>I don't understand the question.
<attila_lendvai>`discard` is not enabled on my guix system as a default
<nckhexen>Doesn't it depend on the file system?
<attila_lendvai>nckhexen, `discard` is a mount option (that the fs may or may not understand). i think it's disabled by default.
<nckhexen>I'm pretty sure Btrfs auto-discards on SSDs, for example.
<nckhexen>Yes, but file systems may discard even without the user explicitly adding that option.
<aldum>who recommends against discard?
<nckhexen>This does not imply a naive ‘continuous trim’.
<nckhexen>(Although some file systems might implement it naively, and some probably don't implement it at all.)
<attila_lendvai>aldum, against *continuous* discard
<nckhexen>aldum: Oversimplified: send-a-TRIM-command-every-time-you-delete-a-file.
<attila_lendvai>heh, after reading the guix manual, the source code, and then this discussion here... i'm now more confused whether i'm fine, or i should enable something on my guix system... :) (full disk encryption, ext4)
<aldum>I got the impression that you regard the discard mount option as the same
<aldum>of course, doing a TRIM every time would wear it quickly, but I don't think that's what happens when you enable that
<attila_lendvai>and while we are at it... using TRIM and encryption together probably has non-trivial implications.
<nckhexen>I say this too often, and I'm sorry, but I have a patch *somewhere* that allows setting LUKS options like discard, which I don't think is possible in upstream Guix yet…
<aldum>the filesystem has to go through the controller on the SSD, and modern ones don't have a problem optimizing this
<nckhexen>aldum: Plus file systems like btrfs already batch TRIMs, if only for performance reasons.
<nckhexen>So for literal definitions of ‘continuous’, it's not.
<nckhexen>If I sound like a btrfs fanboi, I'm not.
<aldum>ever since I lost a root partition to btrfs, I'm not trusting it
<zamfofex>rekado: Thank you! 🎉
<attila_lendvai>no one told me that btrfs will be this much more CPU hungry... i'll need to migrate away on an old x200 laptop.
<attila_lendvai>summary for trim on a full disk encrypted guix: luks2 headers can have flags, and allow-discard is one of the flags. grub didn't support luks2 for quite a while, the shipped grub maybe still doesn't? guix doesn't (?) provide a means in its config to enable discard for dm-crypt. corollary: you most probably don't have trim enabled.
<attila_lendvai>a nice reference for this topic:
<civodul>nckhexen: before rebooting it’d be great if you could gather useful debugging info, such as running sshd processes and children, output of ‘netstat -tupla’, /var/log/messages, things like that
<nckhexen>Even if this system is 2 months old? OK.
<attila_lendvai>nckhexen, i've just considered to look into adding support for discard in cryptsetup/luks on guix. i'd appreciate if you could take a quick look into those patches, to avoid duplicating our efforts.
<attila_lendvai>ACTION tries to find out if it's safe to convert back his luks1 header to luks2 on a recent guix
<attila_lendvai>well, this is not a path i want to walk down just yet... "Initial LUKS2 support was added to GRUB 2.06, but with several limitations that are only partially addressed in GRUB 2.12rc1." guix ships with grub 2.06
<nckhexen>Allegedly, there is some claimed narrow path you can walk to use Guix System with a specific LUKS2 configuration/subset, but I'm with you.
<attila_lendvai>yeah, it's possible, but not worth the trouble just yet. (the key benefits of luks2 are not supported yet) although, such a limited luks2 header could be used to enable discard support (i think)
<PotentialUser-70>Im still trying to set up wireguard and now it gives a rellaly strange error: guix system: error: service 'xorg-server' requires 'elogind', which is not provided by any service
<PotentialUser-70>Here is config
<gabber>PotentialUser-70: you'd usually want to append your services to %desktop-services (if you want a desktop setup)
<PotentialUser-70>How I can do this&
<rekado>(services (append (list my-service that-other-service) %desktop-services))
<rekado>or use (cons* this-one that-one %desktop-services)
<PotentialUser-70>I added this to the end and now it gives a huge scary error
<nckhexen>PotentialUser-70: Share your configuration.
<gabber>and fear not (: it can't hurt you (physically)
<nckhexen>The scariest errors mean ‘you misplaced a (’.
<gabber>does it work now? i can't see anything extremely suspicuous and i seem to be unable to access your error pase
<snape>Hi, does anyone know how to org-store-link a mail that comes from the debbugs interface (as opposed to gnus) ?
<snape>or, at least, how to go from a mail in the debbugs interface to the same mail in gnus
<gabber>PotentialUser-70: found it! one ) should be placed before %base-packages
<gabber>%base-packages is supposed to be the last argument of the (append) call
<snape>I get: "Couldn’t activate group nndoc+ephemeral:bug: No such file or buffer: nil"
<snape>because, well, it's ephemeral, ofc
<PotentialUser-70>Thank you so much, no errors anymore)
<snape>found it
<jackhill>lilyp: found a bug with the gnome-team updated epiphany: uploading files doesn't work. Sounds to me like a problem with the portal/sandboxing. Do you know if there are desktop portal incompatibilities between the master branch and gnome-team?
<jackhill>hmmm, why might the patches fail to apply for the v2 was a fresh `git pull --rebase`
<lilyp>jackhill: so far only webkitgtk/epiphany have been updated, I think the portal stuff hasn't
<jackhill>cbaines: 👆
<lilyp>so it might be a missing portal stuff, or it might be a bug in webkit
<cbaines>jackhill, for #66766, it looks like Patchwork doesn't understand what the latest series is
<jackhill>lilyp: ok, thanks
<cbaines>(since it thinks there's just one patch been sent and is probably expecting three)
<cbaines>jackhill, out of interest, how did you send the patches?
<jackhill>cbaines: ok, so maybe two problem, whatever was wrong with the first version and then this second version problems.
<jackhill>I sent them with `git send-email -v2 --suppress-cc=author HEAD^^^`
<jackhill>where that message-id was the email I sent to open the bug
<cbaines>that's probably what's confused patchwork, as it uses the Reply-to chaining that git send-email uses to group patches in to series
<cbaines>jackhill, can you try sending again, but just don't set --in-reply-to
<jackhill>so either I need to leave that out or use some combination of --thread and --chain-reply-to?
<jackhill>or, that, sure :)
<jackhill>and thanks, as always :)
<cbaines>jackhill, I know it's still showing an error, but now it looks good at least, all three commits are shown on the page
<phf>Hi! After executing `./pre-inst-env guix build --rounds=2 elixir-dialyxir', I received the following error: "output ‘/gnu/store/…-elixir-dialyxir-1.4.1’ of ‘/gnu/store/…-elixir-dialyxir-1.4.1.drv’ differs from the previous round." Apart from examining the source code for typical non-determinism issues, do you have any tips?
<PotentialUser-70>My config with wireguard gives me guix system: error: build of `/gnu/store/75gw9b8xrmja7m02jrkq73dsl99hd07x-wireguard-linux-compat-1.0.20201221.drv' failed
<PotentialUser-70>how can I fix this&
<nckhexen>phf: Start by using diffoscope to inspect both outputs. You'll still often have to perform leaps of pattern recognition (‘that looks like a timestamp’) but it's more productive than combing through the source code.
<nckhexen>PotentialUser-70: In general: give more information. In this case, Guix will have mentioned an error log. Decompress it if it's compressed and share it here.
<nckhexen>(Here being :)
<old>Hi, I would like to know if there is a way to get "ownership" of a module under gnu/packages
<old>I've contributed most of the software under gnu/packages/instrumentation.scm and would like to get a voice when thing get update there to avoid breaking packages
<nckhexen>There are teams, where you can volunteer to do more work, but ‘ownership’ sounds exclusionary or as if you'd have special privileges.
<old>that's why it is quoted, the term is probably not the best
<nckhexen>That sounds like a good fit for teams.
<old>So I could ask to make a "instrumentation team" ?
<old>that manage packages under instrumentation.scm
<old>okay nice
<nckhexen>Don't expect to get veto rights or anything negative like that.
<old>I don't?
<old>I just want to avoid breaking system packages if someone update a package too fast
<snape>old: all happens there:
<nckhexen>If there are known gotchas (packages that need to be updated together, in lock-step, etc.) make sure to document these in the code.
<old>snape: thanks
<jaeme>Why doesn't GuixSD use pipewire as its audio system in %desktop-services?
<jaeme>It still uses pulseaudio
<nckhexen>Or even ‘make sure that fooctl bar works even if the fooctl package works when updating this package’ comments are good and under-utilised.
<snape>old: you can send a patch that adds you and the instrumentation team to review
<nckhexen>jaeme: Did you submit a patch?
<nckhexen>(Serious question, that came out wrong.)
<jaeme>nckhexen: for pipewire, no.
<nckhexen>Although ‘why doesn't Guix do x?’ is often answerable with ‘the magical software gnomes haven't made it do so’ :o)
<nckhexen>jaeme: OK. Why shoulld Guix use Pipewire?
<old>snape: okay
<snape>sometimes the reason is different as in
<snape>- why doesn't guix package firefox
<snape>- why doesn't guix use systemd
<nckhexen>Good point.
<rekado>rare exceptions, I’d say
<rekado>I wouldn’t even know how to make Guix use Pipewire
<rekado>where to start?
<snape>my point is: the question is good.  The reply could be
<snape>- nobody wrote it yet
<rekado>the pulseaudio-service-type merely installs configuration files
<snape>but it could as well be
<snape>- there is this technical difficulty that makes it impossible to package
<rekado>my question is: what does it mean for a system to use Pipewire? Where does Guix decide one way or another?
<mothacehe> rekado: it boils down to start pipewire and wireplumber as a user
<nckhexen>snape: ‘Nobody wrote it yet’ is the standard answer.
<nckhexen>I'm kind of tired of giving it.
<mothacehe>i have home shepherd services for that
<mothacehe>that would need to go upstream
<rekado>can pipewire *only* be used with “guix home” then?
<rekado>what do other distros do to make it the default?
<mothacehe>that's a good question
<mirai>jackhill: --in-reply-to='<…>'
<mirai>the angle brackets are important
<nckhexen>jaeme: I urge you to start writing a patch, because as a Pipewire enthousiast™ you're most likely to know all about it. If you get stuck with the Guixy part, it's easier for us to help you with that.
<rekado>applications that are linked with pulseaudio would still only be able to speak to a pulseaudio-compatible daemon
<PotentialUser-70> here is the log
<nckhexen>Is there no ALSA compatibility?
<rekado>from what I understand Fedora offers a drop-in replacement for the pulseaudio daemon
<nckhexen>PotentialUser-70: Thanks.
<nckhexen>PotentialUser-70: Did you specify a custom (kernel …) package?
<rekado>we’d then replace any instance of pulseaudio with pipewire-pulseaudio
<nckhexen>PotentialUser-70: Or, alternatively: (why) are you using wireguard-linux-compat?
<rekado>I assume the same applies to ALSA; we’d need to change the alsa service to load the pipewire ctl and pcm plugins by default.
<nckhexen>Found your configuration. ‘(kernel-loadable-modules (list wireguard-linux-compat))’ → why did you add this?
<nckhexen>PotentialUser-70: ☝
<PotentialUser-70>Yes my wifi module is proprietary so I cant use librekernel
<rekado>this looks doable; pipewire provides these alsa plugins in $out/lib/alsa-lib/
<PotentialUser-70>This was in guix instruction about wireguard
<nckhexen>PotentialUser-70: Where?
<jaeme>nckhexen: Ill start doing some research on it, I just mentioned it because pipewire is getting a 1.0 release
<nckhexen>PotentialUser-70: ‘Here is a configuration example for Linux-Libre < 5.6, where the module is out of tree and need to be loaded manually—following revisions of the kernel have it built-in and so don’t need such configuration: ’
<nckhexen>Don't blindly copy & paste code snippets, it won't end well.
<nckhexen>PotentialUser-70: I think you can do without everything but the (packages …) part of that example.
<nckhexen>I'm not sure about the service…
<mirai>attila_lendvai: it's tricky to add fstrim-service to %base-services
<mirai>because I think it only works for Linux
<PotentialUser-70>thank u, it worked)
<mirai>I don't know how to make it work if Hurd is added into the discussion
<phf>nckhexen: Ok, thx!
<gx1>Trying to install guix this week on an x220 which was previously running slackware.  After successfully running the installer, on boot I just get a choice of drives and when I select one, it just flashes a cursor for a second and goes back to the 'select disk to boot from' screen (not an actual bootloader like grub). Tried legacy and efi settings
<gx1>in BIOS. Anyone else run into this?
<nckhexen>It's only worth trying the mode in which you installed Guix System. Which one was that?
<gx1>nckhexen the bios mode affects the way the installer runs? When I ran it, the bios mode was set to "Both (legacy first)"
<nckhexen>Yes, it does.
<nckhexen>It affects the way in which GRUB is installed.
<nckhexen>Since the installer can be booted both ways, let's trust that setting & assume it was non-UEFI mode.
<gx1>so I guess I should probably switch it over to UEFI and run the installer again then
<nckhexen>If you want to boot the final system in UEFI mode, then yes.
<gx1>doesn't matter to me as long as it boots :)
<nckhexen>Well, if you try again in UEFI mode and it doesn't, I'll certainly be surprised.
<nckhexen>I don't think the 220s differ significantly from the 230s, with which I've never had issues.
<NewGuixUser>rekado: I tried to build python 3.8.5 with a simple transformation to swap out the url like you had demonstrated for other python packages and get an error about missing zlib. When I look at previous commits where guix included 3.8.5 I don't see zlib specified as a dependency
<rekado>for 3.8.5 I’d actually use the known-good recipe from guix-past (maybe also disable tests to save time)
<rekado>and then use the transformation on your list of Python packages
<rekado>ACTION has to go offline
<jackhill>mirai: oooh, thanks!
<jackhill>nckhexen, rekado: we have the compat daemon (which is upstream's recommened way, not just some Fedora shim) as pipewire-pulse in the pipeware package. I tested starting by hand and it does indeed work.
<jackhill>(and means you can use qpwgraph for instance to do neat audio routing).
<nckhexen>‘starting by hand’ — could it be made to be autostarted by clients like I understand that PA is?
<jackhill>I don't know what it would take to make it the default. Currently we have pulseaudio configured to be started automatically the first time a client tries to connect, so pipewire would either need to do the same thing or already be available. Yes, probably but its the details I don't yet know that are important.
<jackhill>anywya, I'd be happy for jaeme to become the enthusiast, but I can test and cheer
<jackhill>ACTION needs to take the home services plunge someday
<nckhexen>I'll happily test it and review patches, but I'm not going to take it upon myself to learn myself yet another thing just now :)
<jackhill>haha, indeed
<snape>does it make sense to source pre-inst-env in .envrc ?
<NewGuixUser>Does anyone have an example of how to reference a package from guix past? I know I've included the channel properly since I see "Updating channel 'guix-past' from Git repository at ''...", I'm just not sure how to reference the path in my use-modules list.
<jackhill>oh, another reason to prefer pipewire as the sound server: finally pulse and jack clients can talk to the same server
<NewGuixUser>Never mind, I figured it out right after I asked
<nckhexen>jackhill: That is nice.
<snape>do you people use direnv, with pre-inst-env?
<santiagopim>Ouch! fixes regression on-first-login ... two days crazy XD
<santiagopim>Just building derivations. Hope it solves.
<snape>what does "two days crazy" mean?
<apteryx>rekado: re pipewire, they must have some xsession or equivalent script that runs those? also, systemd has user services that can run as users when they login
<apteryx>haven't checked though
<NewGuixUser>Is there a way with a package transformation to graft a package onto all other packages that require it? I am now building python 3.8.5 from guix-past but am getting test case failures on other python packages and I see in the logs they're building against 3.9.9. I suspect that may be part of the problem. I see that "guix build --with-graft" will
<NewGuixUser>allow me to graft a single package, but I'd really like to do it for all python packages.
<santiagopim>snape: when login in the system there was an error/warning about on-first-login that made me crazy :)
<snape>yeah me too ^^
<santiagopim>This regression could be the reason ... just pulling and building to check.
<snape>works for me
<phf_>nckhexen: interesting, this issue is almost a manual to learn how to use diffoscope and guix build --rounds=2 --keep-failed PACKAGE
<graywolf>Hi, is it expected that program-file fails to handle expression containing utf-8 character?
<sneek>graywolf, you have 2 messages!
<sneek>graywolf, apteryx says: 'command -v unknown' doesn't produce any output, so redirecting stdout to null seems unnecessary
<sneek>graywolf, apteryx says: ah, but the output is when the command exists, I see. I'll do the change.
<podiki>NewGuixUser: --with-graft rewrites to use the grafted replacement, where if you did --with-graft=python=python@3.8 (or something like that) everything that is built uses that graft
<podiki>so guix build --withgraft... <some packages> will get the graft throughout their dependency chain
<podiki>someone can probably give you some guix/shell-fu to build the entire python world, but everything needed through the packages listed should get the graft
<NewGuixUser>Ah ok good to know
<podiki>I assume you saw the manual page, but if not:
<podiki>you may want to also see input rewriting, if you really need to change the dependency tree (but will of course be slower than grafting)
<NewGuixUser>podiki: Yeah I've been looking at that manual page and it looks like I've been calling those functions properly in my manifest.
<NewGuixUser>And it just crashed on building python-pytest-asyncio. For some reason it looks like it's still using 3.9 instead of 3.8.5. Aside from that, it looks like maybe it's a pytest version incompatibility since it's complaining about a missing attribute.
<NewGuixUser>Ok so I think the issue is that pytest-asyncio has a hard requirement on a newer version of pytest than what I need. As far as I know I don't need pytest-asyncio for anything, the only reason it's being built is because I applied a transformation to python-pytest
<vivien>I tried to fix #66689 so that QA would start building it, but I think it’s worse now.
<lilyp>vivien: gnome-team has low priority and you're doing a world rebuild; chances are it's not been picked up with all that other CI load
<vivien>I had an error message when the build machines were overloaded
<vivien>And then it disappeared, but the build did not start anyway
<vivien>I’d like to try one more time, with author dates a minute apart.
<NewGuixUser>Does anyone have an example of applying a transformation but explicitly not building certain packages? I know something similar was done in guix hpc here but I'm having some difficulty wrapping my head around it
<vivien>Now the patches are in the correct order, but 6 of them are missing
<vivien>Oh the missing ones appeared!
<vivien>So QA or anything in between sorts patches by author date instead of patch subject
<vivien>At least I’m happy the patches are not sorted by the time my server transmitted them, because it is not very reliable with respect to the transmission order ^.^
<nutcase>I created shepherd service and use that to run pipewire as a user:
<nutcase>I don't know if anyone is interested in going that way
<gabber>nutcase: interesting! wouldn't you also want to start wireplumber and pipewire-pulse (at least that's what i have in my sway config file to be started manually on login)
<nutcase>gabber: indeed that would make sense. I had some issues with wireplumber: I have no audio (in web browser based conferencing like BBB) when I start wireplumber the same way. Without wireplumber I can't share screen or windows (only browser tabs). So when I have pulseaudio and pipewire running, I can start a web conference with audio. Then I can run wireplumber in a terminal and add screen sharing.
<nutcase>I know that this is far from good. Maybe I can learn from your configuration to make all that work nicely?
<nutcase>I'm on sway as well and I'd be fine to drop the shepherd user service.
<jpoiret>nutcase: i'd suggest running wireplumber with verbose output and seeing where it's not happy
<jpoiret>also, for wireplumber to work you might need the xdg-desktop-portal infrastructure working as well
<gabber>nutcase: bold of you to assume that i can do conference calls (or screen sharing) (:
<nutcase>jpoiret: xdg-desktop-portal(-wlr) are running
<gabber>my config is really just `exec --no-startup-id PROG &' for each of the programs
<nutcase>I even haven't understood, what I really need: May I uninstall pulseaudio in favor of pipewire(-pulse)?
<jpoiret>pipewire + pipewire-pulse completely replaces pulseaudio
<jpoiret>gabber: screen sharing i can get to work, sometimes
<jpoiret>you might need xdg-desktop-portal-gtk now even on sway
<jpoiret>just for the permission to share the screen
<nutcase>jpoiret: I am able to share my screen / desktop (in a quite stable way).
<nutcase>so at least I have one running configuration, although not started directly at login
<gabber>jpoiret: thanks! i was wondering a little bit and then thought that it may be better if i don't share my screen anyways
<jpoiret>nutcase: don't you need to explicitely add pipewire's libs to LD_LIBRARY_PATH for that?
<jpoiret>yeah, just tested, i need a little `LD_LIBRARY_PATH="$(guix build pipewire)/lib:$LD_LIBRARY_PATH" firefox` sauce for it to work
<jpoiret>i also do that with gpgme for thunderbird
<nutcase>jpoiret: I use chromium for that
<jpoiret>ah, right, it might have the proper dependencies ootb
<nutcase>for (that=sharing)
<jpoiret>we should really add pipewire to firefox's dependencies
<nutcase>now I have three shepherd user services in ¨/.config/shepherd/init.d/ and all three are started. After login, I can start chromium and share my screen in video conferencing.
<nutcase>one remaining issue: when I select a window to share, the whole screen is shared instead of the window. 'grim' is installed.
<radio>Hello, guys
<radio>I just pulled and reconfigured my home, and now telegram-desktop doesn't work
<radio>It doesn't even show error logs when I run it from the terminal
<radio>The window just doesn't appear
<radio>Anyone here is having the same issue?
<gabber>did you log out and back in?
<radio>Yeah, I rebooted the computer and it still doesn't work
<gabber>you can always roll-back if you prefer that
<radio>Well, I wouldn't like to do so now, because I changed some things on my home declaration that I would really like to keep
<radio>But I guess that's what I'll have to do
<gabber>i don't see why you shouldn't be able to roll-back and keep your changes
<radio>Ah, you meant to roll back the pull
<radio>Oh, guix is neat
<gabber>exactly. then re-configure and if that still won't work you can go back to your previously working state
<gabber>yes it is
<radio>So cool, thanks, I hadn't thought about it
<gx1>having a weird time with X on a new install, usually I use .xinitrc and startx. Right now I'm getting 'cannot open /dev/tty0 (permission denied)' when I try to start an x session, and it can't find the version of xorg which was installed so I have to pass '-- /run/current-system/profile/bin/X' to get it to run at all. Am I missing something?
<gabber>by "usually" you mean on other Guix Systems? or with different flavors of GNU+Linux software distribution?
<gx1>I mean on other systems, this is my first guix install
<gabber>it is easiest if you have a desktop-manager service installed (like gdm), e.g. by appending your own services to %desktop-services
<gabber>though i've heard of people starting sway (?) manually. but that's wayland, not Xorg
<gx1>I see, I currently don't have that in my config.scm file. What I usually do with most other distributions is opt out of the DE options in the installer and set it up on my own in order to avoid having excess software / a setup I don't understand, and because my desktop env isn't usually a default option anyway. Am I going to have a hard time
<gx1>configuring those options myself as a new guix user?
<lilyp>IIUC there's a service for directly starting X, though I personally recommend a WM as well
<gx1>I do use a a window manager I just don't use a login manager
<lilyp>you can get quite a lot of minimalist desktop environments (like ratpoison etc.) by installing them to your system config
<gx1>I tried using slim but it failed without giving me the x error message :/
<lilyp>ahh, yeah, I confused window managers and desktop environments in the above :P
<gx1>I'm still too new to know what you mean by 'installing them to your system config', is bspwm one of the supported ones?
<lilyp>it means adding the package name to the (packages …) field of your config.scm
<lilyp>then reconfiguring
<lilyp>haven't used it, but probably
<lilyp>you might want to look into xorg-start-command as well to start your X server
<gx1>I see, I didn't realize it was meant to be installed at the root level
<lilyp>this should set up all the things you need
<lilyp>"root level" and "operating system config" are distinct imho, but you do you – regular user directories are chmod 700 so it's kinda hard to pick up your local packages
<gx1>I'm not trying to do me, I just don't know how guix works yet. I assumed that '/etc/config.scm' would install things the way they would be installed for the root user on other systems/package managers and all the local stuff was just in guix-profile. I pretty much assumed this because the guix autocomplete only shows packages which were installed
<gx1>by the user I'm logged in as
<apteryx>any clue as to how to correctly handle 'leave' conditions from external software relying e.g. on (gnu packages) ?
<apteryx>I stumbled upon something it while using specification->package+output
<jaeme>How do you cc team members in git send-email?
<gabber>the manual says: "If your git checkout has been correctly configured (*note Configuring Git::), the ‘git send-email’ command will automatically notify the appropriate team members, based on the scope of your changes."
<graywolf>Guix (during make) actually modifies files in .git/, so it should "auto configure".
<gabber>yes, but one should tell git their own name and email IIUC
<graywolf>Right, but without that you cannot even commit, so that is few steps before the send-email
<graywolf>But yes, you are of course right.
<jaeme>Can I manually cc the team members email in my email client?
<graywolf>jaeme: I believe so. The send-email configuration does `etc/teams.scm cc-members-header-cmd', you can run it manually and set the appropriate header in your mail client.
<graywolf>Might be somewhat annoying in webclients and such, since I do not believe they allow setting arbitrary headers (we are not talking abount cc: here)...
<graywolf>I have no idea how the regular cc: interacts with debbugs. I guess would be "not well", but I might be wrong.
<jaeme>I use thunderbird
<graywolf>jaeme: well... not exactly ergonomic, but I guess it is possible
<gabber>as long as you send it to the correct addres (issue number if it's not the cover-letter main) everything is fine. there's no need to fiddle around with any headers. and yes, you may (and should) cc: the team members, that's what they are for (:
<jaeme>gabber / graywolf : thanks for helping, it turns out I was following the stable manual instead of latest which tells one to send their cover letter to
<jaeme>Just little things
<jaeme>I was able to send patch 66783 now, which updates pipewire and wireplumber.
<jaeme>I'm still wondering if pipewire and wireplumber should be moved out of linux.scm to a new file like pipewire.scm.
<rekado>jaeme: I would support this move
<jaeme>Because I see patch 57220 which does that
<jaeme>With qpwgraph as well
<jaeme>ACTION patiently waits for pipewire 1.0 to release
<NewGuixUser>rekado Is there an explanation somewhere of how to do a cut when applying package transformations? Basically I'm trying to wrap my head around how this bit you shared previously works
<NewGuixUser>I think I'm close to having things building on 1.4.0, I just run into issues where the transformation forces some other packages to be rebuilt that I don't need and they fail
<rekado>NewGuixUser: package-mapping is the most generic procedure for transformations
<rekado>the manual says:
<rekado> -- Procedure: package-mapping proc [cut?] [#:deep? #f]
<rekado> Return a procedure that, given a package, applies PROC to all the
<rekado> packages depended on and returns the resulting package. The
<rekado> procedure stops recursion when CUT? returns true for a given
<rekado> package. When DEEP? is true, PROC is applied to implicit inputs as
<rekado> well.
<graywolf>Is there some pipewire service somewhere? I am unclear regarding how to actually use it under guix.
<rekado>on line 88 we define a cut procedure that takes a package and returns #true when the build system of the package in question is not python-build-system.
<NewGuixUser>Ok so I just need to define a function that returns true for the packages I need and false for everything else
<NewGuixUser>Also where did you find that in the manual? Maybe I'm looking at the wrong document but I only see how to use transforms on the CLI
<rekado>the other way around: return true when you want to *stop* recursing
<jaeme>graywolf: there's no pipewire service, but there are Guix home patches for pipewire that haven't been merged (63863)
<rekado>NewGuixUser: I opened up the Guix info manual, hit ’i’ (for index) and then typed “package-mapping”
<jaeme>A system level service is not defined yet in gnu/services/sound.scm
<NewGuixUser>So if I have "(transform python-numpy)" would I instead do "(package-mapping transform (cut? python-numpy))" where cut? is a function I've defined?
<rekado>no, package-mapping returns a transformation procedure
<rekado>it’s a higher order procedure
<rekado>you’d do (define use-python-3.8 (package-mapping replace-python cut?))
<rekado>prior to that you’d define replace-python as a procedure that given a package 1) checks that it uses the python-build-system and 2) replaces the “python” package (just as it is done in the guix-past example)
<rekado>and you’d define “cut?” like it’s done in guix-past as well
<NewGuixUser>I think I'm getting confused. I don't want to rebuild everything that uses the python build system, just the specific packages I need (and their dependencies). Can I not just compare (package-name p) against my list of packages in the cut? procedure?
<jbnote>hi there, is there a way, in a system declaration, to refer to the install directory passed to guix system init ? I'm thinking about the grub-efi-netboot-bootloader argument targets, which i'd like to systematically install to guix-system-init-directory/tftpboot/.
<rekado-web>(oof ERC is acting up and doesn't let me submit lines)
<rekado-web>NewGuixUser: transformations are applied recursively
<rekado-web>so they need to be generic and take any package
<rekado-web>you want to not just rewrite your small selection of packages but also their Python dependencies
<rekado-web>and the Python dependencies of those dependencies
<rekado-web>until you hit a package that is *not* a Python module
<NewGuixUser>I don't know if that's exactly what I want
<NewGuixUser>so if I'm using numpy@1.19.0 I really only care about making sure that that numpy builds and that my other dependencies that need numpy build. I don't care about anything else.
<rekado-web>if you compared the package name against your list you'd build only those packages from your list with Python 3.8 while their dependencies are built with Python 3.9.9
<rekado-web>right, but you need numpy's Python dependencies to be built for 3.8 as well
<rekado-web>otherwise numpy won't build
<NewGuixUser>Ok I think I kinda half get it. Sorry if these are dumb questions
<rekado-web>so you apply the transformation recursively and only stop recursing when you hit a package that doesn't use the python-build-system
<rekado-web>(so you don't rebuild Inkscape just because it has Python 3.9 among its inputs)
<rekado>not dumb
<nckhexen>jbnote: You can sniff your own (command-line) in the system configuration…
<rekado>this is rather confusing, especially when you’re new to Guix
<nckhexen>jbnote: …but it's almost certainly a sign that you're doing something dodgy.
<rekado>and package-mapping is the most flexible procedure we have for this kinda thing, so it’s a little inconvenient to use
<NewGuixUser>rekado-web: Currently I have this thing, do I need to pull each of those specific transformations into a new replace-python function?
<nckhexen>jbnote: It gets even dodgier reading the docstring for make-grub-efi-netboot-installer. Why is your MOUNT-POINT not correct, if that's the issue you're having?
<nckhexen>scpaste is the thing I needed without knowing what I was needing.
<rekado>NewGuixUser: you can compose these two transformations: (map (compose python38-package transform) (list python-numpy python-pandas …))
<civodul> squashed \o/
<NewGuixUser>rekado: so transform in that compose refers to what I showed above in my pastebin?
<nckhexen>civodul: I'm sorry, I don't think I can get into this system anymore (the SSH sessions I had open timed out).
<nckhexen>I'll keep a mosh session open for if it happens again.
<Kolev>Mosh gave me locale errors.