IRC channel logs


back to list of logs

<singpolyma>The headline is always rust, but the sad part of that project is the anti-copyleft
<civodul>yes, that's very clear
<civodul>Ledru led efforts to replace GCC with Clang in the past
<civodul>but i guess the real question is what makes it look exciting to techies?
<pkal>anti-copyleft or anti-gnu?
<vagrantc>i think the main selling point for rust is memory safety?
<vagrantc>weather that's a good reason or not...
<gordon1>why guix depends on avahi?
<civodul>gordon1: for substitute discovery
<gordon1>so it's not optional, isn't it?
<civodul>vagrantc: how 'bout a memory-safe "cat" command?
<civodul>gordon1: not really
<gordon1>i guess i can hack deps of guile-avahi then
*civodul -> zZz
<gordon1>well, how can i do that?
<gordon1>damn that sucks
<drakonis>why though?
<gordon1>it's not trivial to get rid of avahi then
<drakonis>why does it matter though?
<gordon1>because it depends on dbus
<drakonis>what is the logic behind that?
<gordon1>i don't want to have dbus on my machine
<gordon1>it is a malware that can start itself without me asking for it, that fingerprints my system for no reason
<gordon1>not an ethical software
<drakonis>ethical, is it?
<drakonis>i'm not sure if i follow, dbus is a service and doesnt start itself
<gordon1>it does, it can start dbus-session right from the software that uses it
<gordon1>or dbus-launch?
<gordon1>something like that
<gordon1>only system bus starts as a service
<gordon1>so can i somehow rewrite guix's inputs?
<drakonis>it typically gets killed
<drakonis>and yes.
<drakonis>its in the docs
<akonai>i think dbus autolaunches only if you don't have session dbus already running
<drakonis>dbus-session has a flag in which it gets killed after the binary that called it dies
<drakonis>it exits after the binary does
<gordon1>still fits definition of malware in my book
<drakonis>i'm just not sure what's the point of doing so when it prevents a very large amount of software that still requries it?
<drakonis>i really don't think it qualifies as malware
<drakonis>its not the pinnacle of software design but it works well enough
<gordon1>well now i'm running gentoo where not a single piece of software requires it, and i'm trying to pull it off in guix
<drakonis>that's gentoo though
<gordon1>so? is it different software that i'm running?
<gordon1>only guix and shepherd are different
<gordon1>and shepherd for sure can live w/o it
<drakonis>its not a shepherd dependency though?
<gordon1>it's avahi dependency
<drakonis>i'm confused though
<drakonis>there's not a whole lot of things that actually provide the option to disable dbus here
<gordon1>rest of the things are getting either patched or masked
<drakonis>disabling guix's substitutes discovery would require more work than you'd want to invest
<drakonis>discovery through avahi
<AwesomeAdam54321>I'm currently trying to package gnustep-base, but during configure it errors out with configure: error: The command 'gnustep-config --objc-libs' (provided by the gnustep-make package) returned no Objective-C library. Unable to continue configuring without Objective-C support.
<drakonis>are you going to patch everything with a dbus dependency in guix's package archive?
<drakonis>AwesomeAdam54321: missing deps?
<gordon1>i'm going to do mass input-rewrite/make-flags and not going to install anything that fails after that
<drakonis>i'm pretty sure guix will fail to build if you rip out guile-avahi like that
<gordon1>i can leave guile-avahi and remove avahi dep from it instea
<gordon1>or make a stub
<drakonis>it would still cause guile-avahi to fail by extension
<gordon1>then stub it is
<gordon1>but first i need to figure out of to rewrite it
<gordon1>one thing i would like to avoid is forking guix
<drakonis>you seem quite willing to create work for yourself
<gordon1>i'm quite willing not to have malware on my system, rest is just derived from that unfortunately
<gordon1>i would love to not to do it
<drakonis>not sure why dbus is even malware though
<drakonis>it works like a daemon
<gordon1>software that is infected with it can start it without my consent
<drakonis>and then they close it after being done
<AwesomeAdam54321>drakonis: I included gnustep-make as an input, but 'gnustep-config --objc-libs' returns nothing when run in a container. It does output compiler flags when it's in my environment
<gordon1>doesn't matter if browser does that
<gordon1>i have it running constantly
<gordon1>btw i have guix installed in gentoo w/o guile-avahi and it works perfectly fine, just discovered that
<drakonis>oh, do you?
<drakonis>surely you realize that guix has its own copy, right?
<gordon1>maybe, but it definitely has no avahi as dependency
<drakonis>also i have dbus running here and it isn't taking any notable amounts of processing power
<gordon1>it doesnt matter, ultimately it's about i want to have control of my devices and what stuff they run
<drakonis>hm, so you can build without it
<drakonis>the option is in the makefile
<gordon1>dbus is clearly crossed the line
*nckx hums The Frozen Song.
<gordon1>oh cool, i see it also in configure
<gordon1>so is there a way to customize guix that i have installed as system guix?
<mhj[m]>sneek: later tell lfam Guix system list-generations has this: commit: bbe52d3b86c06857eca2722fada77be060b145f5 with the 5.15.17 kernel
<sneek>Will do.
<gordon1>it's definitely there, guix package i mean, i just wonder where it is "recorded" in config
<drakonis>its part of the minimal package set
<gordon1>oh, ofc, it's part of guix-service-type!
<gordon1>i mean i guess at least there
<gordon1>it probably mentioned somewhere else as well
<drakonis>the guix service is part of the minimal service set
<drakonis>which okay, fine.
<gordon1>yes yes, it is
<gordon1>ok, hopefully it is doable then it day has been saved
<akonai>i'm trying to guix pull my custom channel and i'm getting a "no code for module ~S" "1 dependencies couldn't be built" error, even though the file seems to be there
<akonai>anyone knows what could this be caused by?
<drakonis>the imports are wrong iirc
<drakonis>can you post the module definition block?
<drakonis>on a paste service, please.
<akonai>here's the service where i think the error happens (sorry for long link)
<drakonis>hmm, actually, better yet
<drakonis>how is your channel directory structured?
<drakonis>it should have a yk/services/<filename>.scm
<akonai>i have it as yk/services.scm
<akonai>i though (channel module) would load the module.scm under the channel?
<drakonis>it should be ./yk/services.scm
<drakonis>with that name
<akonai>i'll try that
<drakonis>the dot being the directory containing the channel
<akonai>yeah, that seems to have worked
<Ribby>Is there a way to search/install dependencies/resources and compile source code? I know about the make, but "apt-file search missingfilename.pc" provides a vague list. ./configure file method is dependent on the project's assertion. Is flatpak the better way over other package installation and source code compilation?
<drakonis>hmm, yes.
<Ribby>too many questions, sorry. I am almost at a breakthrough.
<Ribby>Here is the reference material.
<drakonis>are you trying to manually build things on guix?
<drakonis>i'm not sure if i follow
<Ribby>I'm not sure what exactly is building.
<Ribby>I'm trying to search for the right dependencies to install before source code compilation.
<drakonis>this question is a bit broad
<Ribby>Is apt used/preferred in guix?
<drakonis>it doesn't use apt
<Ribby>What does it use then?
<drakonis>the guix package manager?
<Ribby>And that's it?
<Ribby>Is that simple?
<Ribby>Because the packages may or may not have the recent version of certain projects. That's my concern.
<drakonis>alright? update the package definitions then
<Ribby>Okay, can it make custom directory paths for installation?
<drakonis>its possible, yes.
<Ribby>Well, then it would settle my mind.
<drakonis>i'd suggest reading the documentation for the latest version
<drakonis>have you already installed guix?
<drakonis>the package manager or distribution?
<Ribby>I haven't touched it yet.
<apteryx>is someone using jackd for their sound here?
<monego>if there is a package definition in guix you can guix -D <package> to set up a full dev environment for it
<drakonis>guix shell -D you mean?
<Ribby>I thought there is a standard to get latest version of software.
<monego>and package transformations to update dependencies, --with-latest=<package> or --with-commit=<package>=<tag|commit>
<drakonis>i feel like there's a language barrier right now
<monego>yes, guix shell
<Ribby>Well, okay then.
<drakonis>well i don't know
<drakonis>i feel like there's missing information right now
<Ribby>I will switch and experiment with guix actively soon. I don't think guix isn't really like most unix-likes in the first place.
<drakonis>anyways, what i mean here is that your initial batch of questions are a bit confusing
<drakonis>if you invoke `guix edit <package name>` you can check the package definitions
<drakonis>thus finding out which dependencies are used to build a package.
<Ribby>It's from another linux os, but I assume that source code compilation is relatively compatible and universal.
<drakonis>it is compatible, yes.
<Ribby>Okay, note taken.
<drakonis>to some degree.
<Ribby>Comparing orange to apple juice.
<drakonis>well i don't know.
<Ribby>ok, np
<xelxebar>Hey Guix! Another day.
***califax- is now known as califax
<bdju>minetest 5.5.0 is out
<bdju>in case anyone wants to bump the package
***dongcarl1 is now known as dongcarl
<efraim>hello guix!
<AwesomeAdam54321>hello efraim o/
<efraim>sneek: later tell jonsger: I have in my .bash_profile (with other stuff too) and it seems to work for me for quassel and keepassxc: if [ ${XDG_SESSION_TYPE} == "wayland" ]; then\n export QT_QPA_PLATFORM=wayland\n fi
<sneek>Will do.
<efraim>sneek: botsnack
***o is now known as niko
***roptat is now known as Guest1387
***distopico_ is now known as distopico
<sneek>wb efraim :)
<dust_>How do deal with a package depends that requires perticular version, which is not in the Guix channel ? For a creation of new definition ?
<dust_>Do I have to maintain them ? Or is it possible to have Guix channel multiple version ?
<AwesomeAdam54321>dust_: If the version is no longer in the official guix channel, I think guix inferiors are the solution
<AwesomeAdam54321>dust_: If it's a newer version and/or not packaged in the Guix channel, then you can send patches to update the dependency
<civodul>Hello Guix!
<dust_>AwesomeAdam54321 Thanks
<dust_>AwesomeAdam54321 If test suite requires a perticular version. Should I skip the test or make a patch for it ?
<dust_>In Darcs package the test have been skipped. Should I do the same ?
<xelxebar>dust_: If you can patch to make tests run, that's probably ideal, no?
<xelxebar>FWIW, I've definitely gone way out of my way to set up a proper check phase on other packages.
<civodul>dust_: you may also be interested in the Guix-Past channel for old versions you'd like to keep around:
<dust_>I have made 30+ package definitions of hackage ? Should I only commit with parent package, making depens implicit (included in the patch)?
<abrenon>hello guix
<civodul>hey abrenon!
<civodul>dust_: i'm not sure, but perhaps it's worth asking on guix-devel so that those more familiar with Haskell packaging can answer
<attila_lendvai>any good ideas for a guix channel/repo name for crypto/blockchain related packages? my current candidate is guix-channel.crypto
<civodul>or just "guix-crypto"?
<civodul>my 2¢ :-)
<attila_lendvai>and on a related note, would Guix proper accept binary-build-system from another channel? if Guix had that, then my channel wouldn't need to depend on that other channel that currently holds binary-build-system.
<civodul>i don't think it would make sense in Guix proper
<attila_lendvai>depends how you look at Guix. if we consider it a fully open/free OS that people can use for whatever their goals are, then b-b-s doesn't seem so alien. even if Guix doesn't include any binary packages.
<attila_lendvai>both feels wrong: depending on an entire channel for that single thing, and copy-pasting it into my channel.
<civodul>from a purely pragmatic standpoint, i wouldn't add code to Guix that Guix itself doesn't use
<civodul>we already have enough code to take care of :-)
<attila_lendvai>ok, i'll forget about that possibility then. i'm leaning toward just copying it into my channel, and keeping it updated. feels wrong, but it's easier on the users of the channel.
<attila_lendvai>hrm... i assume channels are not isolated wrt scheme modules, right? i.e. when i have the same module in two channels, then they will clash in guile, right?
<jpoiret>attila_lendvai: i believe _that other channel_ has a binary build system you can use
<jpoiret>and channels can depend on other channels
<attila_lendvai>jpoiret, yep, and i'm already using it. but i don't want to depend on that other channel...
<attila_lendvai>may i'll just depend on it first. i can always change that later.
<abrenon>dust_: what do you mean, 30 definitions to pinpoint older versions of existing packages, or 30 new unrelated packages ?
<attila_lendvai>will i have a headache if my channel is signed with a PGP key that will expire? seems like i must specify the fingerprint of the actual signing subkey in .guix-authorizations
<attila_lendvai>i mean, with a key whose signing subkey will expore
<civodul>attila_lendvai: no, the OpenPGP expiration date is ignored:
***Guest1387 is now known as roptat
<dust_>abrenon: new packages and one of them needs different version of Quickcheck for its test suite.
<gordon1>looks like i don't understand something fundamental, so i'm trying to reimplement package-input-rewriting using package-mapping by moving modify input stage upwards one level, package-input-rewriting (same as package-input-rewriting/spec with string key) works just fine, but my implementation using package-mapping does not, any clue why it might be?
<gordon1> - this one successfully avoid installation of eudev, but that one still pulls it -
<gordon1>and it looks like the only think that refers eudev with my code is "profile"
<gordon1>oh, nvm i'm dumb, it's specified in the %base-packages-linux explicitly
<jpoiret>gordon1: first, I don't think the disinfect-package property dance is useful, as you'll still have to rewrite every single place a package is used at
<jpoiret>you could do some memoization but I doubt that'll squeeze any more performance
<gordon1>jpoiret: i thought it avoids case when it can go to the package that was already processed before, doesn't it?
<gordon1>yeah, ok
<jpoiret>eg package-map will not map twice on the same input package
<gordon1>oh, ok
<gordon1>they it's not required yes
<abrenon>dust_: that's great ! I suppose if they are unrelated they should be added in different patches (probably some are added only as dependencies for others and you can cluster them into fewer than 30 patches)
<gordon1>is there any better way to do check if package changed other than equals? on input?
<jpoiret>gordon1: looking at package-map's source, it's already doing the heavy lifting of memoizing the result of the package-map
<dust_>abrenon: I have this one dependency that requires different version of quickcheck and base, its only for test suite. Do I have to skip the test ? (The one is httt-media)
<tschilptschilp23>Hi guix! Every now and then my guix-help within emacs does not work (like right now), I suppose this is somehow related to updating my home environment, but that's not what I'm after now. I fear that this is a stupid question -- but where are the definitions here on my installed system? I already ruled out the obvious /gnu/store and /var/guix...
<tschilptschilp23>I mean 'package' definitions (I'm used to look at them through guix-help)
<jpoiret>tschilptschilp23: they're in ~/.config/guix/current/share/guile/site/3.0/gnu/packages/
<tschilptschilp23>jpoiret: thank you, almost three years with guix, and I still don't have a clue ;)
<jpoiret>basically, guix is installed in the ~/.config/guix/current/ profile, and package definitions are a part of guix :)
<jpoiret>gordon1: since you're rewriting rewrite-inputs, you could add some stateful code that accumulates all changed packages?
<abrenon>dust_: hmmm I'm not sure for that, like advised above discussing it on guix-devel is probably a good idea
<abrenon>I suppose keeping tests is better if there aren't any non-reproducible parts making them fail (like network access or such)
<abrenon>it's more work but I think providing the appropriate version for quickcheck and base would be better
<abrenon>is the library getting older and not being updated to new versions of its dependencies ? isn't there a way to make upstream follow the upgrade and be able to use the newer versions for this test ?
<tschilptschilp23>jpoiret: thanks for the info. it quite seriously blows my debian-wired brains :)
<dust_>abrenon: The servant-clent requires it, at 64 . The compiles with it too. Should I remove it ? (that one library, http-media is old, last update was in 2019)
<dust_>abrenon: The servant client complies without some of the dependencies too. Should I remove them ?
<dust_>abrenon: And nobody is in the guix-devel or am I in the wrong channel ?
<jpoiret>guix-devel is a mailing list :p
<dust_>My bad
<abrenon>ah sorry, we kept it implicit : /
<abrenon>s/complies/compiles/ ?
<abrenon>they're not necessary for compilation ? I wonder why they're listed then, perhaps they were deprecated but the author forgot to remove them ?
<dust_>I mean the servant-client definition compiles without some packages that was mentioned in guix import hackage.
<dust_>I believe its for compatibility.
<abrenon>then yeah, probably remove them ?
<abrenon>I'd be surprised there could be such things as runtime-only dependencies for haskell packages, but could this be the case ?
<abrenon>have you been able to use the resulting package (without those optional deps) and check all its functionalities are working ?
<dust_>That I havnt tired.
<dust_>In general should a package definition include those inputs that is very much required for the build.
<abrenon>there are separate inputs and native-inputs fields, to distinguish between what is required at build-time and at runtime
<dust_>I saw nix package def of servant-client and it all the dependencies.
<abrenon>I don't know if hackage's importer can distinguish between both concepts so you may have to make some adjustments
<abrenon>guix importers provide hints, they're not able to output the perfect proper definition
<abrenon>ok so there's probably a reason to keep them
<abrenon>have they documented that ?
<dust_>Yeah, yeah. But can lean from nix def right ?
<abrenon>absolutely !
<abrenon>: )
<dust_>If were to make a package def for a different version then I should do the same for its dependencies.
<dust_>(Turtle all way down)
<dust_>abrenon: Are you a Haskeller ?
<phodina[m]>Hi,... (full message at
<Marco>Hi, since last Thu my pc is building ungoogled-chromium-97.0.4692.99-1.
<gnoo>hello, guix shell -D screen --check gives Can't exec "aclocal": No such file or directory at /gnu/store/c0fl0g4kn9s6kb142l6dj18sqm53ya4j-autoconf-2.71/share/autoconf/Autom4te/ line 274.
<Marco>Since Sat the progress bar is at « 100% » and ld.lld is doing I/O and not much CPU.
<gnoo>(when doing ./
<Marco>I think I'll stop the building process (and wait until the next version 98.smth that upstream is working on), but if someone has an idea about this issue that would be welcome. :-)
<haugh[m]>anyone have thoughts on re: auto-update and community guidelines for programmable package management?
<gordon1>question, if i use offload machine to build stuff, will guix install native inputs locally?
<gnoo>i think that's what propagated-inputs does
<gnoo>native inputs is just for the host which is building in case the target is different than the host
<attila_lendvai>is guix an implicit dependency of every other channel?
<attila_lendvai>s/guix/the guix channel/
<rekado>the guix channel must be present.
<gnoo>probably not, you have to use (cons (channel ...) %default-channels) in ~/.config/guix/channels.scm
<attila_lendvai>the reason i'm asking is because it's not part of the .guix-channel file of that other bigger guix channel...
<gnoo>rekado: can't you remove the guix channel? maybe a lot of existing stuff won't work but it will probably work, right?
<gnoo>(by removing %default-channels)
<attila_lendvai>and i'm having a hard time with setting up channel dependencies, when my guix channel is pointing to a /local/path (as opposed to the official URL)
<rekado>gnoo: yes, you can remove it, but as you write “a lot of […] stuff won’t work”
<attila_lendvai>ok, the issue was this: the name of channels are evaluated when in a channels.scm file, i.e. need to use 'guix. but when they are parsed out from a dependency, then their name is not evaluated, i.e. it needs to be (name guix) to match
*attila_lendvai looks at the issue tracker
<mbakke>Marco: if you did not cancel yet, it should complete soon ... the final step takes a long time.
<attila_lendvai>it's actually rather annoying that even though a channel's name field is evaluated, it must be a symbol, i.e. 'channel-name must be quoted. not sure if putting/allowing anything else than a constant symbol there has any point.
<rekado>attila_lendvai: the channel data is provided as an sexp. Everything there is data
<rekado>there’s no evaluation.
<attila_lendvai>rekado, pull.scm does this on channel files: (load* file (make-user-module '((guix channels))))
<attila_lendvai>this seems to be a mess. part of the channel code is parsing it as an sexp, and at some other places it's eval'd into a throwaway (guix channels) package instance.
*attila_lendvai is writing up a bug report
<cbaines>has anyone seen this from the static-networking-service?
<cbaines>Throw to key `%exception' with args `("#<&netlink-response-error errno: 17>")'.
<Marco>mbakke: Thanks, I'll let it crunch! (More than decade old machine with spinning disk probably doesn't help.)
*attila_lendvai has reported
<civodul>cbaines: hi! 17 = EEXIST, so that obviously (!) means that it's trying to add a route or an interface that already exists
<civodul>i think we need to work on error reporting there
<rekado>attila_lendvai: what’s the big can of worms here?
<attila_lendvai>rekado, everything that evaluated codes makes possible, including rookie mistakes. (not a security hole here)
<rekado>ah, so just the regular can then :)
<cbaines>civodul, thanks, I seem to have got it working now, not sure what changed though
<gnoo>somehow guix was using 5 gb of memory
<gnoo>it's just bonkers how much resources even a simple guix install takes
<gnoo>(this was a guix time-machine which i understand is more complex than that)
<rekado>was it Guix or something it spawned (e.g. a build)?
<rekado>you can end up compiling quite a lot when using “guix time-machine”
<gnoo>it's still going after 16 errors so i don't know...
<gnoo>(i use while ! guix ... ; do sleep 1 ; done because there's always two errors even when doing guix install and such)
<civodul>sneek: later tell lfam + nckx a system built from 43dd34c7777a212c99a97da7a2c237158faa9a1b fails to boot on my laptop (hangs before syslogd is started)
<roptat>sounds weird, and does it work sometimes?
<gnoo>only guix build works without errors if the package definition is right
<gnoo>and guix shell if the package has already been installed/used once before
<roptat>what's the error when you try "guix install"?
<gnoo>guix substitute: error: TLS error in procedure 'write_to_session_record_port': Error in the push function.
<civodul>gnoo: are you talking to https://{ci,bordeaux} or using a different substitute URL?
<gnoo>this time it was a different one, but even with, i get that error a lot
<gnoo>used to, after adding this one, i get error from this one so i assume it's how guix does things rather than the substitute servers themselves
<roptat>I (almost) never get that kind of error
<paladhammika>hello guix, 2 questions. Is it undisruptive to create and place a swapfile into the root directory? Also, is there an awareness about fontmanager ( failing to build?
<roptat>like, I see it once or twice a year when the server is overloaded or whatever
<roptat>paladhammika, hi :)
<gnoo>i think it's due to the combination of my very old hardware with very slow internet speeds
<roptat>you can create a swapfile, but you'll have to either mount it manually at each boot/each time you need it, or declare it in your config
<roptat>not sure about fontmanager, I don't think we were aware of that
<jpoiret>paladhammika: for how to include a swap file in your config
<roptat>gnoo, might make sense
<paladhammika>thanks roptat, i can submit a bug report about fontmanager
<paladhammika>jpoiret, my thanks.
<tschilptschilp23>Is there a way to get python-3.8 going on current guix? Not that I'm extremely eager for it, but I'm trying to package a slightly older version of python-black for yet another package, and a test fails for 3.9 (3.7 and 3.8 seem to do).
<tschilptschilp23>It feels a bit dumb, what I'm trying to achieve, and feel very tempted to just disable the tests. But would like to get it 'as clean as possible'...
<tschilptschilp23>Or would the proper way be a time travel back to a guix commit which carries 3.8?
<rekado>tschilptschilp23: disabling the 3.9 tests sounds like the best option
<rekado>if you want python 3.8 juts for python-black you’d also need python 3.8 variants of all the other packages that python-black needs
<jpoiret>any reason we use a host-side build-aux/build-self.scm rather than just gnu-build-system?
<jpoiret>for guix pull that is
<rekado>tschilptschilp23: that’s just not worth the effort.
<tschilptschilp23>All tests pass, it's the following one failing for python-black@21.7b0 (maybe it's something else in the end anyway):
<roptat>paladhammika, I have a simple fix, I'll push it shortly
<tschilptschilp23>rekado: thanks, you are totally right, they're already piling up. I will reconsider how to do this!
<roptat>paladhammika, fixed in 9295b911163f386ac63286c1d797718afabf5585
<tschilptschilp23>(black is already a follow-follow-follow-up)
<paladhammika>roptat: i see thanks again.
<attila_lendvai>it would be really nice if someone could fast-track this config patch:
<phf-1>Hello Guix! I've observed a surprising behaviour. Given texlive and texlive-bin installed in my profile, I install an other package that has texlive and texlive-bin in propagated-inputs then I have xelatex 'remade' (mktexfmt [INFO]: --- remaking xelatex with xetex). If I remove texlive and texlive-bin from my profile, then xelatex is not remade.
<attila_lendvai>the rationale is that define-configuration defaults not to 'disabled, but to 'undefined
<attila_lendvai>this also looks like a safe change, and it's sitting there since forever. i'm running my laptop with this for months:
<gordon1>so i did guix system delete-generations, and guix system list-generations show only one generation but for some reason i have two /gnu/store/*-system objects, what is the other one?
<gordon1>*guix system delete-generations ; guix gc
<gordon1>unfortunately guix gc --referrers shows nothing
<civodul>gordon1: it probably keeps the latest one, the running one, and the booted one
<civodul>see /run/{current,booted}-system
<gordon1>oh, i see
<gordon1>lemme try to reboot
<gordon1>civodul: you're right, thanks!
<civodul>efraim: what's %final-inputs-riscv64?
<civodul>i mean why does need to differ from %final-inputs?
<Guest139>Maybe this needs to go in another channel, but how do I expand a list in scheme as arguments?  Specifically like (use-package-modules *modules-list), where the star is understood like in python, expanding modules list into direct arguments to use-package-modules
<apteryx>how can I compose a new file-like object to have the content of a file-like object with some new string appended to it?
<apteryx>is this what slurp-file-gexp from guix-home would do?
<apteryx>I'm trying to append some things to the file provided by pulseaudio
<apteryx>ah, using the directory seems like it'd be a better idea
<apteryx>the file has this at the end ".include /gnu/store/7xwgz4bavb1i8sfx1lm55hlrr3ngjkdx-pulseaudio-15.0/etc/pulse/"; we could have it point to a directory of user-provided snippets that can be provided via a field of the pulseaudio-configuration.
<podiki[m]>I think this is good to push?
<cbaines>woo, there's a new guile-fibers release out!
<cbaines>this again takes me straight back to wanting a better QA process though, as I'd really like to check this builds reliably on x86_64-linux, aarch64-linux and powerpc64le-linux before updating
<cbaines>I was just looking at guile-fibers build failures on aarch64-linux
<attila_lendvai>so, any channel author can override which URL the guix channel is pulled from in his channel's .guix-channel file. am i the only one surprised by that?
<attila_lendvai>you have an URL in /etc/guix/channels.scm, and if you add my channel, then i can override that URL in my channel's .guix-channel file
<nckx>The 404 example was rather useless. Do you have one that works?
<nckx>I was unable to reproduce it, but channel ordering is, unfortunately, significant.
<attila_lendvai>nckx, whatever you put in the dependencies entry will be used instead of what is defined in /etc/guix/channels.scm.
<nckx>So you said.
<attila_lendvai>that "-zork" was only an easy to notice demonstration of that
<attila_lendvai>nckx, not sure what you meant to say, but it reads borderline insulting on my side.
<paul_j>Good evening guix!
<paul_j>I have come across an issue on my system which I am trying to resolve. I have a basic guix system on a thinkpad laptop which has been running so far without any issues. At some point, I have updated the system, and the manifests I have defined, and now when I try to log into slim, it drops me back to the login screen. Looking at the log, I am seeing "font-config error: no writable cache directories". The xorg log seems to be OK - no
<paul_j>errors reported. Has anyone else seen something like this? There is a record of this being a bug sometime back, but I don't think that is relevant to my issue.
<nckx>attila_lendvai: Can you explain the security impact?
<attila_lendvai>nckx, if it indeed replaces the entire channel entry, as opposed to just the URL, then if you trust a channel author, then you implicitly trust them to replace any code in the guix codebase
*attila_lendvai tests that assumption
<attila_lendvai>it's not a disaster. i can trick it to pull my guix fork. but it fails, even though the dependency channel entry does have an introduction: guix pull: error: channel 'guix' lacks an introduction and cannot be authenticated
<attila_lendvai>the channel i'm playing with is (but i'll force push into it, and eventually purge the relevant commits)
<nckx>That's the channel I'm using.
<nckx>let me double-check
<nckx>/etc/guix/channels.scm, with a commit to add the change to its .guix-channel that you quoted in your mail. Because the existing one is innocuous.
<nckx>But I replaced the -zork bit with a valid file:// URL because I have no idea what the 404 is proving.
<nckx>Besides, invalid repo is invalid.
<attila_lendvai>nckx, the previous line to the 404 says: Updating channel 'guix' from Git repository at ''
<nckx>Please assume that I read your e-mail multiple times.
<nckx>You are not the only one feeling misunderstood.
<nckx>Hooray, guix pull has deigned to finish.
<attila_lendvai>my mail is unreadable on my side, due to word wrapping
<nckx>it's fine here, at least in emacs.
<nckx>So don't worry.
<attila_lendvai>i assumed the reader would press C-s and type zork. at least that's how i use such unique tokens.
<nckx>You're still assuming I missed it.
<attila_lendvai>nckx, for the URL replacement to happen, guix-crypto must be prior to the guix channel entry
<nckx>I was using /etc/guix/channels.scm but I think my ~/.config might have interfering.
<nckx>I'm expecting ‘guix show hello’ to show hello@666 once guix pull has returned from its final holiday.
<nckx>Does that make sense?
<nckx>Is that the assumption?
<attila_lendvai>ok, to sum it up: i can hijack the URL, but i can't make guix pull to accept the replaced source due to a missing channel intro error
<nckx>OK, but that's not really reassuring.
<attila_lendvai>nckx, i don't understand that paste. let me paste my config.
<cbaines>nckx, I'm looking at any tips on how to obtain the config from a running Linux?
<rekado>so, I just did “sudo apt install guix” on a Debian system; this installs Guix 1.2.0. I then pulled to the commit corresponding to 1.3.0, but at the end I get an error: “the requested type does not match the type in the ODB”
<attila_lendvai>notice that according to the guix pull output, it's pulling from my fork, not the official URL specified in the channels.scm
<nckx>cbaines: Whose Linux? Guix System's? That's in /run/booted-system/kernel/.config .
<nckx>attila_lendvai: Yes, your mail was clear.
<nckx>To us #blessed with plain text apparently.
<cbaines>nckx, yes, ah, I was looking there, but I didn't think to look for hidden files... thanks :)
<nckx>These 15+-minute guix pulls are driving me batty.
<nckx>attila_lendvai: The fact that Guix channel dependencies are global, not scoped as I think we both expect, has always felt wrong to me. Not insecure, just wrong.
<nckx>The requirement for unique names, I mean. Surely that can't scale.
<nckx>I wrote all this and more in a glorious e-mail that got lost when my laptop crashed again. Also: yet, the quote/no-quote discrepancy is silly, as is declaring a dependency on 'guix itself in a Guix channel. Don't do that.
<attila_lendvai>nckx, yeah. when i saw the channel dependency resolution code, i got scared away. but i had to look at the code to even get it parse (see
<attila_lendvai>nckx, IIRC the reason i added a guix dependency was because of what i saw in the code. i had an assumtion, and i added it to test.
<attila_lendvai>heh, the funniest part is that my service code in the channel requires a pending patch to guix to work. if i could get trick this through, i could make it work "transparently" without waiting for :)
<attila_lendvai>nckx, let me know when you're done and i can roll back the test commits from my channel
<nckx>I was working from a local clone of your channel. Do you think it matters?
<attila_lendvai>i see no reason why it should, but then i also don't claim deep knowledge of the codebase
<nckx>So here, <>, file:///tmp/guix in the top hunk is a local clone of your ‘guix’ repository, that contains the .guix-channel shown in the middle hunk. It should be identical to the repository you used, except that I replace the fake -zork URL with a real one that actually works:‌ file:///tmp/eh, which is a vanilla copy of upstream guix with a single extra commit shown in the last hunk. Pulling from this unholy st
<nckx>ack I would expect ‘guix show hello’ do show hello@666, what I interpret as the ‘vulnerability’, but it does not.
<nckx>It *is* baroque. I hope you can still follow.
<attila_lendvai>nckx, wait, the .guix-channel file that matters is not in the guix repo, but in the guix-crypto repo
<nckx>Sigh. OK.
<attila_lendvai>nckx, you can see the top commits where i tried various things:
<attila_lendvai>also note that guix pull will not get through without errors
<attila_lendvai>or at least i couldn't make it
<nckx>I'm pulling with authentication disabled.
<attila_lendvai>oh, i didn't even try that
*attila_lendvai tries
<nckx>I'm pretty sure when I tried pulling guix-crypto my order was different from yours (because I lacked your helpful paste then), so god knows how that probably affected things.
<attila_lendvai>back then i haven't even consider yet that the order matters
<nckx>I've noticed it matter once and since then I'm paranoid.
<nckx>Anyway, pull #whatever started, another 20 minute holiday begins.
<attila_lendvai>nckx, FYI, i have added a 'hello' branch to my guix fork, and another commit to guix-crypto to point to that branch. and initiated a guix pull to test what you're testing (hopefully).
<attila_lendvai>i have a suspicion though, that the 'branch field is not propagated (because the 'introduction is neither)
<nckx>LMK if my assumption is bullshit btw.
<nckx>Well, both ‘master’ and ‘configuration’ have that commit here, by luck.
<nckx>That's completely separate from ‘is this bad’ or even unexpected to the Guix knower, but I think it is unexpected to the average user *even* when the average user has read all channel .scms, so it's quite sneaky.
<gordon1>it looks like that guix for guix home is not customizable
<gordon1>should i report it as a bug/feature request or is there a deep reason behind it?
<nckx>And not to push my own cart but I think this would be fine if channel dependencies were local to the channel, i.e. my-cool-chan depends on a fork/branch of upstream 'guix and can use the cutting-edge hello@666 as an input to its own packages (or even choose to explicitly ‘re-export’ it). But this implicit ‘global’ behaviour is, to me, weird.
<nckx>And at the root of several gotchas.
*attila_lendvai agrees
<gordon1>or is there another way to customize guix that get imported from (gnu packages package-management)?
<nckx>attila_lendvai: Thanks for the detailed explanation.
<attila_lendvai>nckx, yw! and thanks for the more welcoming attitude! i felt rather dismissed by Ludo's response...
<nckx>gordon1: I'm not familiar with guix home but if this were a regular service I'd ask it to support accepting any custom package variant, not hard-coding say #$bind or #$cups. #$guix is no exception but I don't know how guix home is configured.
<nckx>As the code stands, no, I don't think you can.
<nckx>attila_lendvai: I'm sure that wasn't the intention and it wasn't mine either.
<gordon1>nckx: yea, i haven't found a way to configure it, and most frustrating part is that it actually used only once in some gettext config thingy
<gordon1>i'll report it
*attila_lendvai has managed to reproduced the hello@666 change using the github repos
<akonai>sorry for dumb question but i'm trying to add a shepherd service and getting a "wrong type to apply: (list (shepherd-service <'s definition> ))" error. does this mean i'm passing it wrong or does it mean that there's a wrong type inside of the shepherd-service definition?
<attila_lendvai>nckx, it means that the 'branch field indeed has an effect, contrary to my assumption
<attila_lendvai>akonai, you may find this example useful:
<nckx>akonai: ‘Wrong type to apply’ is Scheme for: you are trying to call FOO as a procedure, i.e. you wrote the equivalent of (FOO […]), but FOO is something else. Here, a list.
<nckx>That's as much as I can say without a concrete code snippet. Feel free to share it in the pastebin in the topic, but I have to go. Bye all.
<akonai>i thought so, but the error also occurs if I define it without a (list and code i'm looking at seems to pass a (list (shepherd-service ...))
<Guest140>Are there plans to allow users' home configuration to be instantiated on system install, or is this undesirable for some reason?  Seems like it could be as simple as passing a home configuration to the (user ...) data type.
<cbaines>vldn[m], by the way, now supports querying package derivation outputs without the nar data
<akonai>here's my service definition, id be grateful if someone could tell me what i'm doing wrong
<jpoiret>akonai: service extensions should be passed procedures that take a service value and return the value to pass to the extended service
<jpoiret>so you should make yk-init-shepherd-service into a procedure that takes a single argument (which you can ignore)
<akonai>ah, that's what i was missing
<akonai>manual specifies that you should pass "a list of shepherd-service objects", i feel like that's confusing
<lilyp>Guest140: I don't think that'd be desirable from a reconfigure POV
<lilyp>skeletons and a backup of your home-config.scm ought to suffice
<apteryx>lilyp: I think I've found a way to make pulseaudio-service-type config not need a reboot; also added an extra-script-files config field; if that's of interest to you, I can cc you on it.
<Guest140>lilyp:  I suppose that makes sense.  So in that case, it seems the only way to do what I want is to launch the install as a VM and run guix home reconfigue once before first boot
***dgcampea-2 is now known as dgcampea
<apteryx>lilyp: ~/.config/pulse/ takes precedence as soon as I touch something in pavucontrol though... (that's unchanged)
<apteryx>perhaps that's not too bad
<trofi>is there a way to plumb a channel from ~/.config/guix/channels.scm to './pre-inst-env guix'?
<trofi>looks like channels are able to break guix itself and i'd like to be able to tweak guix itself when operating on them:
<podiki[m]>the --channels (-C) option?
<podiki[m]>not sure what you mean though
<trofi>i have a guix with a channel. i'd like to patch guix while still make channel somehow available to patched guix. i plan to run patched guix with ./pre-inst-env.
<trofi> hints that adding channel path to load path might Just Work.
<podiki[m]>yeah, that might be it too
<trofi>'./pre-inst-env guix install pkg -L ~/channel-checkout/' seemingly works \o/ (crashes in the expected way)
<apteryx>it'd be nice if file-like objects had a common interface to get their file name
<civodul>folks, comments on "guix deploy -x" to execute commands on a set of machines?
<rekado>I uninstalled guix 1.2.0 via apt again, and installed with
<rekado>it works but I don’t know how to ensure that a) the Guix profile is sourced and b) all env vars are set so that I can use GUI programs
<apteryx>rekado: guix profile is sourced via /etc/profile.d/ IIRC
<rekado>I created .bash_profile and dumped the usual sourcing lines there, but on debian this doesn’t seem to have any effect
<rekado>apteryx: oh, do I need to log out for that to have an effect?
<apteryx>yes, or start another login shell
<apteryx>bash -l
<rekado>apteryx: I started a new terminal, but that didn’t help
<apteryx>even with -l?
<rekado>no, just closed the terminal emulator and started a new one
<rekado>but I already shut down the machine, so I guess it’ll be fine when I start it tomorrow
<rekado>the bigger problem is a crash I see in xournalpp
<rekado>the output says something about loading icons