IRC channel logs


back to list of logs

<trevdev[m]>KarlJoad: When I read the docs on guix gc and connect those concepts to guix home, I realize that the only reason that I encounter this weird need to re-download a ton of stuff and build packages from source is likely because of my aggressive need to garbage collect. Other people who don't have my complaints use guix gc very differently from me (e.g. with the -F) flag.
<trevdev[m]>KarlJoad: Telegram needing to be built before being "ready for reinstall" was probably the largest source of my irritation.
<trevdev[m]>So I started weighing options. Do I just use "guix package" and separate package management from my home environment, or do I just take a breath and garbage collect once every few weeks instead of every upgrade cycle.
<KarlJoad>Ah. Yeah, GC does not need to be done too frequently. Don't quote me on this, but aggressive GC may be bad on SSDs too. I don't know if there have been investigations into that. But I GC anywhere from once a week to once every few months.
<trevdev[m]>I am ultimately choosing to do the latter.
<trevdev[m]>Ah, yeah. I think my misguided understanding of the guix gc command comes from old habits learned from tying to keep aptitude or pacman clean on Debian/Arch.
<KarlJoad>Makes sense. This is a completely different way of managing everything.
<trevdev[m]>The "reproduciblity" of guix home is one thing, but what really gets me is the immutable isolation for working configurations and running services. I think that has real value, and learning Guile Scheme to take things to another level feels valuable
<trevdev[m]>KarlJoad: Well, I have never really made it to the 70% mark of my 500GiB SSD, so I don't even know what I worry about.
<trevdev[m]>Plus I archive to external storage
<mbakke>mitchell: does that file exist and look good? :-)
<mbakke>if not, you could try to 'guix gc -D /gnu/store/...-guix-1.3.0' and hope that re-downloading will do the trick ... but 'guix gc' should have noticed if it was incorrect, I think
<KarlJoad>trevdev[m]: The immutability is quite nice, you're right. Because everything is read-only, it is quite difficult to break your home environment with a bad config update.
*mbakke -> zZz ... later, guix
<KarlJoad>I'm running on a 128GiB SSD, so I get close to running out occasionally. GC-ing TeXLive usually solves that for me.
<trevdev[m]>KarlJoad: I could see TeX being big. I did not realize you could cherry pick specific packages.
<KarlJoad>I don't know if you can cherry-pick necessarily. I was just using that 3GiB package as an example of one that is very large and causes me to have to GC more frequently.
<trevdev[m]>Ah fair enough
<nckx>trevdev[m]: Have you tested/considered/encountered --gc-keep-{derivations,outputs} in the manual? It's a guix-daemon option, nota bene, so however you start the daemon would need to be modified & applied before restarting it.
*nckx super zzz, so -> zzz; goodzzz, zzzuix.
<gabber>(how) can i replace gcc-toolchain with clang-toolchain in a package definition which uses gnu-build-system?
<sneek>gabber, you have 1 message!
<sneek>gabber, bjc says: no, i don't need credit. also, you'll probably need to make changes to it anyway
<trevdev[m]>/whois nckx
<trevdev[m]>Haha, was trying to see if you were away. Matrix apparently isn't good at everything.
<trevdev[m]>"These aren't the droids you're looking for"
<trevdev[m]>sneek tell nckx I haven't tested that feature. I installed my system while closing following some 3rd party docs (for non-gnu stuff). It's technically a Guix System install, so the daemon is up without me really knowing about it.
<sneek>nckx, trevdev[m] says: I haven't tested that feature. I installed my system while closing following some 3rd party docs (for non-gnu stuff). It's technically a Guix System install, so the daemon is up without me really knowing about it.
<trevdev[m]>sneek later nckx I haven't tested that feature. I installed my system while closing following some 3rd party docs (for non-gnu stuff). It's technically a Guix System install, so the daemon is up without me really knowing about it.
<sneek>trevdev: Greetings!
<dominicm>gabber: #:configure-flags '("CC=clang") and add clang to the native inputs? You'd still have gcc in the inputs but that should be fine since gcc is a base dependency anyway right?
<gabber>i guess so. should i add `clang' or `clang-toolchain' to the native-inputs?
<KarlJoad>Does Guix have an equivalent to Nix's buildFHSUserEnv for shell environments? Does Guix even need it? I am working on building buildroot, and it does not play nicely with binaries not being in "standard" (FHS) locations.
<maximed>KarlJoad: is this about shell environments or about building packages?
<maximed>If the latter: no.
<maximed>If the former: not really, but there are bindmount tricks (--share, --expose) that might be useful and also "guix pack" that (maybe?) does some of that
<maximed>and also has been investigated previously, so you might want to contact whoever did that for collaboration
<elais[m]>you can mess around with guix containers to do something similar
<maximed>In case of packages, it's usually a manner of a sufficient amount of 'substitute*'
<elais[m]>well nonguix has a function for creating a containerized FHS environment, maybe check out their repo, it's a fairly involved process that I recall there being talk of upstreaming
<podiki[m]>nonguix does have an fhs container for a certain package, but not something you can use easily with an arbitrary binary
<podiki[m]>takes a little tinkering but doable, it is on my list to make it an easy to use general container
<podiki[m]>I think it would be useful more generally in guix as well
<KarlJoad>maximed: I am doing development work for something else. I am not packaging buildroot (if I don't have to). I just need a shell with buildroot dependencies. Buildroot hard-codes some binary paths, which is the problem.
<KarlJoad>Perhaps I just missed this in the manual, but is there a convenient way to search for system services?
<KarlJoad>Nevermind. I tried the obvious thing and it worked.
<johnjaye>is there a way to manually install guix without an internet connection?
<johnjaye>i tried manually installing on actual hardware and it froze as soon as i picked wifi
<lfam>What are people using instead of wicd?
<KarlJoad>johnjaye: If you have access to another computer with Guix, you can build the configuration and deploy that.
<KarlJoad>See `guix system image` in the manual about that. I think you can build an OS into some "raw" format for direct copying.
<johnjaye>hmm. how do i do that
<johnjaye>it might be better if the installer just installed guix without having to be online first
<johnjaye>but yeah i get ya
<johnjaye>i'll check it out
***duds-_ is now known as duds-
<KarlJoad>If that was done, the install would be _massive_, and likely out-of-date.
<johnjaye>i'm assuming the installer is bugged because all my other devices are connected fine.
<KarlJoad>You would have to double check by running the commands too, but something like `guix system image --image-type=ef-raw <path/to/system-configuration.scm>` may work.
<johnjaye>i don't even think it tries to establish a connection, as soon as i enter password it says does nto provide internet. lol
<johnjaye>well i'll have to do it from a VM
<johnjaye>because i can't install on hardware.
<johnjaye>so i'll be depending on virtualbox shared folders
<KarlJoad>Oh. I ran into something similar. Double check your interfaces. For me, all traffic was being routed through the management ethernet port, which does not provide an actual connection. I just disabled it, and everything worked fine.
<johnjaye>in the intstaller?
<johnjaye>it just provides a menu that has Wifi and Wired as options
<KarlJoad>Yep, in the installer. It was on a server board, so no WiFi, but many ethernet ports. By default, the installer selected the management port as the one to use. I just disabled it and things worked. Had to switch to a TTY to do it.
<johnjaye>i'm guessing you mean do the install from the command line?
<johnjaye>that was the only other optiont he installer gave me
<KarlJoad>The installer does not force you to use one or the other the entire time. For my server board, I selected "graphical" install, but when it got to networking, I switched to a TTY to disable the odd interface, then switched back.
<johnjaye>ok i didn't realize i could do that.
<johnjaye>i'll check it out again
<johnjaye>i have an uncanny talent at breaking software.
<johnjaye>that or my internet is just really really bad
<singpolyma>Why not both?
<monadam>how does one view the configuration of a previous generation?
<KarlJoad>monadam: If you have not deleted & GC'd the generation, you can list the generation and delve into /var to find it.
<lfam>`guix system list-generations` prints out the name of the configuration file
<KarlJoad>The particular configuration used for a particular generation is saved within the generation's directory.
<KarlJoad>johnjaye: Yeah, the installer is just an ncurses program that builds a configuration file for you. You can switch tasks as you see fit while it is doing things. I just recommend you do not change things beneath the installer.
<KarlJoad>monadam: `guix system list-generations`, and the store path will be printed with "canonical file name:"
<monadam>also my wifi is unreliable and i can't seem to figure out how to fix it
<lfam>network-manager is working for me to replace wicd 🙏
<KarlJoad>My laptop uses network-manager as well. But it has a WiFi chip that is poorly supported by linux-libre.
<KarlJoad>How should I manually mount NFS shares on a Guix system? The only flag that seems to allow things to work is `-o nolock`. I cannot change the UID or GID of the mount point.
<Michal_Atlas[m]><KarlJoad> "The particular configuration..." <- There is a quirk with that though, I tried to subdivide my configuration, since they can get slightly unwieldy, but the submodules don't end up in the store afaik, although that probably doesn't have a neat solution
<KarlJoad>Michal_Atlas[m]: That seems... odd. That breaks reproducibility.
<KarlJoad>For the `configuration.scm` inside the store, what does it refer to, instead of the subdivided portions of your configuration?
<Michal_Atlas[m]>It basically just copies the main passed file, sso any logic, imported modules or relative paths are kept the way they are, although maybe I'm not looking well enough
<Michal_Atlas[m]>At least i checked `guix home` now, don't have access to a full SD at the moment so can't check that, but i remember it being the same last time I did
<KarlJoad>Michal_Atlas[m]: That seems to break things in my mind. If the `configuration.scm` inside the store for a generation does not refer to everything, how is that reproducible? Unless the subdivided portions of the configuration are also inserted into the store somewhere.
<Michal_Atlas[m]>I think you are right
<Michal_Atlas[m]>you could probably generate the configuration back after it is evaluated but that will lose all comments and formatting as far as I'm aware
***dongcarl3 is now known as dongcarl
<KarlJoad`>Comments and formatting are fairly minor in this case (at least in my mind). We want to have a configuration that can be rebuilt. It does not need to be pretty. But the top-level configuration.scm should still be buildable.
<Michal_Atlas[m]>How would you deal with for example, file-like.object references though? Rewrite them as references to things in the store?
<Michal_Atlas[m]>Or, I hope that is the correct name, just, things like local-file
<KarlJoad`>No idea _how_ I would deal with them. Just in the broadest sense, everything referred to by the configuration should be pulled into the store, somehow.
<Michal_Atlas[m]>can't disagree with that
<KarlJoad`>I have to look into that. Right now, everything of mine is in a single file.
<Michal_Atlas[m]>On the subject of reproducibility, maybe it might be a good idea to include a disclaimer or warning about gdm in the manual? At least before the kinks get worked out?
<KarlJoad`>I have no idea. I'm just a regular user right now.
<Michal_Atlas[m]>I am too, thus i was quite stumped when after playing around with disabling gdm it breaks throughout all generations 😅
<unmatched-paren>hello, guix :)
<KarlJoad`>Michal_Atlas[m]: It may not be a reproducibility thing, but a changed GDM configuration file in your home directory.
<unmatched-paren>Alas, my aerc package is condemned to the mailing list for eternity.
<unmatched-paren>And to guixrus I guess.
<KarlJoad`>Adios, Guix!
<NaturalNumberEnj>oh, just got your messages KarlJoad and lfam, thanks so much
<NaturalNumberEnj>i've been able to get my wifi mostly working by doing herd stop networking and then use wpa_supplicant. I'm using the SystemCrafters base system config.
<fps>hmm: guix substitute: error: TLS error in procedure 'write_to_session_record_port': Error in the push function.
<fps>i wonder where that came from :)
<fps>anyways: i'm still wondering if it's possible to tell guix system image to neither install a kernel nor a bootloader..
<abrenon>hey guix
<abrenon>any progress on ibus-anthy ?
<fps>trying to build an aarch64 image here. linux-modules build fails. here's the log:
<fps>maybe i'm going about it in the completely wrong way though. what's a good start if i want to get an aarch64 image build going?
<fps>for raspberry pi
<nckx>You could manually remove ahci from %base-initrd-modules, I think it's called, but this is a bug.
<sneek>Welcome back nckx, you have 1 message!
<sneek>nckx, trevdev says: I haven't tested that feature. I installed my system while closing following some 3rd party docs (for non-gnu stuff). It's technically a Guix System install, so the daemon is up without me really knowing about it.
<nckx>Sounds familiar actually.
<nckx>Other possible work-arounds there.
<nckx>trevdev: Who are *you*? :) There is an example of modify-services at (guix)Using the Configuration System, which you can use to set (extra-options (list "--this" "--that" ...)).
<fps>nckx: thanks
<johnjaye>hey nckx
<johnjaye>you'll never guess what my problem is now.
<johnjaye>apparently installing to hardware i got stuck on wifi step. even though it recognized my wifi network name, it can't bring it up for some reason
<johnjaye>and it doesn't allow the install to continue without internet
<nckx>Still no laptop here, and I don't know connman by heart. You can switch to a VT (C-M-F2, I think) and try to set up the interface manually if you're familiar with that?
<nikola_>johnjaye: you can probably use your phone as a wifi adapter too
<nikola_>Usb tethering
<johnjaye>i don't see how that would help. it says it can find my wifi ssid i just can't join it.
<johnjaye>i'll try again maybe i misentered the password somehow
<nckx>I think wpa_supplicant is installed by default. Dodgy source but good examples:
<nckx>johnjaye: It could help by magically working (who knows) or giving better error messages. You could also check logs & dmesg.
<johnjaye>hmm. well i've used wpa-supplicant on debian, never had problems
<johnjaye>well. once you have the config file right. XD
<nckx>If you have a telephone nikola's suggestiot might work, but it's beyond my ken. Does it just show up as an if then?
<johnjaye>yes i press enter and it almost instantly says failed to join or something. no error
<johnjaye>dunno, i'll have to check. i didn't realize i could access the other virtual terminals during the installer
<johnjaye>also refuses to continue without internet which surprised me.
<nckx>johnjaye: Learning a basic 2-line wpa_supplicant.conf by heart was a good investment.
<johnjaye>probably shouldn't do that.
<nckx>johnjaye: It will need to download things.
<nckx>Things that in theory could be 'pinned' and included but aren't.
<johnjaye>that's... bad. even debian netinst can get a basic install going without internet
<nckx>Fix it.
<nckx>Oh right you can't because you can't install it. Hmm.
<nckx>(Any chickens or eggs handy?)
<johnjaye>i have it on virtualbox. i guess i can work with it there.
<johnjaye>but yes... that is why installers need to be as reliable as possible.
<johnjaye>can't improve something you don't have
<nckx>I don't use the installer, sorry.
<nckx>You're sure you don't need firmware? (Cfr. dmesg)
<nckx>Adding a bare-bones closure to the ISO & a system test for installation w/o networking sounds like fun, actually.
<jpoiret>nckx: that's already what's done iirc
<jpoiret>no system test though
<jpoiret>the installer image tries to keep the closure of itself
<nckx>Well, by def it does, but does that suffice to install a system? Didn't used to.
<nckx>Sample size: one: me.
<jpoiret>ok i'm lying, it tries to keep bare-bones-os
<nckx>For sure it has 99% of what it needs, and I forgot what it had to download and for sure it was something silly, but I positive it was a bare-bones.tmpl and I needed networking. Anyway, the system test is the fun part, so we'll see and be sure then :)
<nckx>* 'm
<johnjaye>hmm, what is the closure of itself?
<johnjaye>sounds like something technical
<nckx>We'd also need to tweak the installer to provide a 'install without networking' flow that's on pretty strict rails, so users can't accidentally select something that would require networking.
<silicius[m]>Can you match multiple lines at once in `substitute*`?
<johnjaye>the installer simply says it requires networking right now
<nckx>johnjaye: Here it just means all transitive (recursive) references ('run-time dependensees', kind of) of a thing.
<nckx>So the closure of a system is just the entire system, nothing more.
<nckx>silicius[m]: No, but you can match one trailing newline, which sometimes enables 'clever' hacks.
<nckx>Like commenting out the second line. Rare, but I've used it a few times in Guix,
<silicius[m]>I want to remove arguments from a python function calls but it's structured like this: \n],\n keyword=value,\n keyword2=value2)
***stikonas_ is now known as stikonas
<nckx>Are the lines unique, silicius[m]? Otherwise you can just match them separately.
<silicius[m]>I can match the kv pairs just fine, but getting rid of the trailing coma is harded
<nckx>Not otherwise. 'If so'.
<nckx>Can you insert a bogus argument, or did the signature really change?
<silicius[m]>I tried giving them None value, but it doesn't like that
<nckx>It's OK to use patches if a substitute* gets too clever.
<silicius[m]>Ok, I found the problem. Trailing coma is fine in python, but not multiple ones. I wasn't deleting the comas at the end of the arguments
<silicius[m]>I'm trying to package and first thing in order is stopping it from compiling opencv on its own
<nckx>Good. (Bad!)
<silicius[m]>next problem is that it tries to touch files in gnu/store on the check phase
<silicius[m]>disabling tests fixed it, but idk if the library is functional at all
<nckx>Disabling tests for Python packages is doubly discouraged, yes. Without tests you have no way to know you're not installing unrunnable garbage.
<nckx>Without details I can't say more but this should be fixable, if possibly tedious.
<silicius[m]>nope, it's empty
<silicius[m]>the package doesn't contain anything useful
<johnjaye>ok i was actually entering the wifi password wrong. so i got past that. then to the disk partitioning error
<johnjaye>i tried deleting a partition then creating one with / on my GPT drive.
<johnjaye>i have no idea what ice-9 is
<silicius[m]>I think I need to replicate the the package's functionality and copy some opencv files into its source dir. The way it is written is so hard to read
<nckx>johnjaye: Guile's own extension module namespace but not relevant here. The failure is that the UUID passed to uuid->string is... missing (#f). WTF.
<nckx>The code handles it horribly, but it also shouldn't happen in the first place.
<johnjaye>hmm ok
<johnjaye>by the way that backtrace was somewhat lucky to get.
<nckx>Could you file a bug report with that pastebin contents + the output of 'fdisk -l /dev/sdx'?
<johnjaye>i tried writing it to the usb disk but it wouldn't let me. device busy.
<johnjaye>no ntfs so couldn't do that. not sure if i could have ssh'd to this box to do it either.
<johnjaye>luckily i had a debian partition on that drive i could copy it to
<nckx>Well, there's a reason I personally (and selfishly) don't use the installer. :-/
<johnjaye>where to file bug reports
<johnjaye>lol. how do you mean. you only use it in vm?
<nckx>So glad you asked! bug-guix at gnu dot org.
<johnjaye>does that go to one of the mailing lists?
<nckx>johnjaye: I just switch to a VT and do things by hand.
<johnjaye>oh yeah. another point. i didn't even realize i could switch VTs before someone told me
<nckx>Yes, ML with debbugs instance behind it. Also tracked at
<johnjaye>so that's another luck factor in getting this bug output
<silicius[m]>Is it possible to copy opencv cmake build artifacts out of the store? I imagine the installation process moves the files and the hierarchy might be different...
<johnjaye>maybe the script should just ask to send a bug report to a tracker and do it anonymously ?
<nckx>johnjaye: Feel free to add that (VTs), I think it's in the manual but might be mistaken, and the UI could repeat it.
<johnjaye>i mean if internet is required to even have the install at all...
<johnjaye>well the debian installer kind of blows on usability as well
<johnjaye>so i can't exactly demand guix do better than that
<nckx>johnjaye: You can't really send mail anonymously, but there could be an API or something.
<johnjaye>that would be a good idea. you want as many bug reports as you can
<johnjaye>esp with the installer. that's what my intuition tells me
<johnjaye>but i've noticed common sense rarely prevails in the computing world.
<nckx>You can't demand anything, we're just a bunch of generous volunteers & this one is currently typing on a telephone & looking at guix.git in a Web browser to help you report issues :-p
<johnjaye>i meant as in what one should reasonably expect.
<nckx>Nor are we lacking in common sense, only in numbers, alas,
<johnjaye>you can add all the cool features you want. but if people don't reasonably expect them to be there they won't use them
<nckx>A broken installer won't help grow those for sure.
<johnjaye>very brave to be using a phone!
<nckx>It sucks.
<nckx>I want to hurl it.
<johnjaye>anyway the upshot of what i'm saying is that most users i don't think would have done what i did to get that backtrace
<johnjaye>maybe i have too high an opinion of myself.
*nckx can't wait for replacement laptop parts to arrive.
<johnjaye>but there were several points of failure. maybe i didnt' have linux on another partition. maybe ssh didn't work etc
<johnjaye>is it not reasoanble to expect the usb thumbstick to be writeable?
<nckx>Please document them all. May be tedious, but it's the only way you can help other than contributing code.
<johnjaye>it showed /dev/sde2 with 2MB as the only partition. the thumb drive is 32G
<johnjaye>ok. so send bug report by email, include fdisk output and error text. anything else?
<johnjaye>uuid's i don't really grok too well. did guix fail to compute a uuid properly?
***wielaard is now known as mjw
<nckx>johnjaye: You sound entitled even though you probably aren't, making it tempting to say 'no it's not reasonable'. It's an ISO, a read-only fs by design. There could be a boot-time service that 'notices' the medium (uwu) and offers to create an ext4 partition in the trailing space, but that also needs to be written, won't magically appear if enough people expect it.
<johnjaye>emotions are hard to do over text.
<johnjaye>but yes it's hard to say which of my expectations would be shared by other people.
<nckx>johnjaye: Failed to extract it (the array of bytes passed to compute - really just decode - the UUID data) was empty, maybe referring to a vanished partition, can't really say from here.
<johnjaye>i think it's insane that mingw doesn't try to be as compatible with msvc as possible. but i learned that today
<johnjaye>nckx: meaning, if the usb stick isnt' writeable it's not clear where the backtrace would be copied to
<nckx>Anything else: the other random expectations you had, but better open new reports (mails) for each one.
<johnjaye>if you're installing it to a hard drive. and the hard drive has no partitions.... well you see thep roblem
<nckx>Random as in assorted, not unreasonable.
<johnjaye>i guess this is also a bootstrapping problem
<nckx>johnjaye: Thing is I'm sure that's handled (empty drives are not uncommon), but clearly buggy.
<johnjaye>an error in making partitions. cant' report it, because there's no partitions to copy to
<nckx>Maybe the driwe becoming empty at an unexpected time etc.
<johnjaye>i will arrogantly claim that my impulse to try instaling in virtualbox has been vindicated
<johnjaye>so at least that was a correct assumption
<nckx>I can't respond to much or half as verbosely as I'd like.
<nckx>So sure, OK, great. Whatever works, or doesn't.
<johnjaye>it's def a good idea to provide a vm image as guix does. although i haven't tested it
<johnjaye>well i regard it as a decision making process. i want to be sure i am making the right decisions at each stage
<jpoiret>johnjaye: i'm late to the party, you're using the installer, right?
<johnjaye>thanks for the tips. i'll see about filing that tomorrow.
<johnjaye>jpoiret: yes but i'm leaving now
<jpoiret>oh, alright
<johnjaye>you can read the scrollback. but yes tried virutalbox then physical installer
<nckx>I understand your frustration. I am also frustrated. GN.
<nckx>Thanks for offering to file bugs. That is also contributing.
<nckx>johnjaye: The VM image is more for demo purposes than long term use, I think, just to spare you further frustration. The installer is definitely the primary vector that 'should' always work, ahem.
<nckx>We should definitely hire this Should fellow, he does so much work in Guix already...
<nckx>silicius[m]: Sorry, you got lost in the din. What are cmake build artefacts here? Are they present in the opencv build output (/gnu/store/...opencv-x.y/)? If so, you can absolutely copy-file or copy-recursively them, but I'm not sure *they* will work out of the box.
<nckx>If they expect a source tree, say.
<fps>nckx: the workaround (using linux-libre-5.17) does not help. same error if i put (kernel linux-libre-5.17) into the operation-system.
<nckx>There were others. Did you try manually munging %base-initrd-modules as I suggested? Not as easy, granted, but more to the point.
*nckx has to go, but look at (rnrs lists)'s (remove "ahci" %b-i-m), or something like that.
<fps>nckx: no, i haven't. might try
<fps>nckx: thanks
<fps>is there a writeup somewhere about how to use emacs to actually navigate the guix source tree? finding symbols and functions, etc..
<fps>grep only goes so far :)
<bjc>there's a ‘.dir-locals.el’ file in the top-level, too, which helps move around in the checked out version
<bjc>it won't affect a running geiser session, so make sure you only start geiser after the dir-locals is loaded
<fps>bjc: thanks
<silicius[m]>nckx: yeah, cmake was not tricked so easily. I symlinked the expected cmake-install dir to opencv but it just complained that the dir already exists
<silicius[m]>It would help if I could stop the build process shortly after the build phase started and inspect the build dir
<bjc>are you using the ‘-K’ flag on
<silicius[m]>I'll try using --timeout
<bjc>just taking too long, then?
<silicius[m]>Looks like my custom phase doesn't work as it should. It didn't copy any files
<silicius[m]>Fixed it
<efraim>I have a snippet I use with vim to generate ctags
<efraim>perhaps that could be adapted to something useful
<silicius[m]>I noticed I won't be able to use the native opencv anyway, because opencv-python-headless needs opencv with "-DBUILD_opencv_python3=ON" which isn't present in opencv's package
<nckx>Then add an opencv-with-python variant that inherits opencv, or add it to our main opencv package.
<nckx>(I'm assuming 'native' here means 'Guix's', not native as how it's used in Guix terms.)
<nckx>The bundling should be undone regardless.
<silicius[m]>yeah, I'm already working on opencv-with-python, then I'll use that to undone the bundliing and hopefully it'll work
<maximed>nckx (or someone else): Could the current antioxidant jobset be cancelled?
<maximed>(the packages are just failing to build, & fix has been pushed)
<nckx>I'll try!
<nckx>maximed: Eval ...130?
<maximed>nckx: yes, that one.
<maximed>Thanks, but it's a bit late now, everyhing has been built/failed to build.
<nckx_>Yes, you're welcome.
<maximed>Looks like antioxidant might currently be worse than cargo-build-system, space-wise.
<maximed>Because binaries in dependencies are compiled & saved even if unused by the leaf package.
<maximed>Idea: move them to a separate 'bin' output?
<nckx_>No need to ask someone to cancel a jobset for a trivial number of rebuilds next time. It was a pain to get my certs from back-up for what was apparently a few minutes (if that) of CI time.
<nckx_>maximed: What's the main output? Still source?
<maximed>So 1619/few minutes counts as trivial?
<nckx_>A few minutes, yes.
<maximed>nckx_: antioxidant never saves source (except for those few crates that have a configure script copying the source code to #$output).
<maximed>Main output: compiled library, binaries and ‘crate info’.
<nckx_>Things would be different on something like aarch64 of course, a 'please cancel pointless builds' would be *very* welcome there, but x86_64 is... meh. Human time > machine time there :)
<maximed>Idea is to move, for crates that are used as libraries like rust-crc64 but not for stuff like alacritty, the very likely unused binaries to #$output.
<nckx_>maximed: So binaries != libraries here?
<nckx_>I'd put the libs in :lib instead, I think that's more intuitive, IIUC that is.
<maximed>nckx: libraries = .so/.a / (or .rlib, in case of rust)
<maximed>binaries = stuff for $PATH
<maximed>nckx: OK -- that could be done more automatically.
<maximed>I could just give every crate a "out" and "lib" output.
<nckx_>Right, that part isn't automatic (I think, unfortunately?) but build systems pu tting the right things in the right output once specified is accepted. E.g. :debuf.
<maximed> antioxidant build system currently (in theory, rather untested) supports "out", "lib", "bin" and "env" splits
<maximed>Will try out making splitting the default ...
<nckx_>maximed: Current antiox eval is deliberate, da?
<nckx_>Just to make sure.
<maximed>nckx: Yes.
*nckx_ wants to cancel something now, having gone through all this effort. Dang. Maybe later.
<maximed>Unfortunately some new build failures after a fix, TBI ...
<nckx_>I didn't get the :env output at first.
<nckx_>Very Rusty.
<maximed>Initially for supporting DEP_... environment variables that likes.
<maximed>Extended a bit to avoid propagation.
<nckx_>Yeah, probably a good hack.
<maximed>Philosophically, you could say it's still propagation.
<maximed>But it's propagation inside the build, instead of outside.
<nckx_>TBC, I like it. I hope some 'oh, right, it breaks X' won't pop up requiring reverting to 'real' propagation, because I like it.
<nckx_>I like it as much as one can like propagation.
<maximed>It breaks stuff.
<nckx_>Conceptually tho?
<maximed>Only because of missing inputs.
<maximed>Which can be added.
<maximed>So conceptually, currently no AFAICT.
<nckx>maximed: BTW, don't hesitate to ask for more antiox arches when the time is ripe.
<maximed>also, no reply by coolblue yet
<nckx>Thx :)
***Xenguy__ is now known as Xenguy
<silicius[m]>opencv-with-python build successfully - though it takes a while to compile.
<maximed>I just got a response from Coolblue
<maximed>‘Naast de artikelen die je hebt gestuurd kan ik overigens nergens anders terug vinden dat een verkoper verplicht is om dit aan te bieden, dus helaas kan ik je hier niet verder mee helpen.’
<maximed>What more do they want?
<maximed>Those articles link to (among others) the legal decisions, the court cases where the consument succeeded, etc?
<nckx>'Nergens anders'
<nckx>When you think you're Wikipedia.
<nckx>Rather a slip of the tongue, or I'm overthinking.
<maximed>I mean, I tried to find all relevant sources, and it's not very well known. Of course they won't find it anywhere else.
<maximed>(unless I missed some of course)
<maximed>Anyway, the fsfe WindowsTaxRefund page asks to ‘please report back to us what came out’.
<maximed>Would you like a copy?
<nckx>This might be naive (I've never asked them for help), but maybe the FSFE could get involved?
<maximed>Maybe, I dunno.
<nckx>And sure.
<maximed>That FSFE page also says ‘also a good idea to forward experiences to local consumer protection organisation’, maybe.
<maximed>(Alhoewel het als een leek mij niet 100% duidelijk is of dit ook van toepassing is in België)
<maximed>(‘dit’ = geen windows kopen)
<nckx>Based on European legal ground, they are valid across the European Union
<nckx>But yeah, good luck convincing everyone who needs convincing, aashsumintg that is true.
<maximed>Presumably yes. But /me no lawyer etc.
<silicius[m]>Here's the patch for my crude opencv-with-python
<abrenon>this langugae does look nice…
<abrenon>thanks for the gift of these two lines !
<nckx>Een prachtig taaltje maar aan Engels kan het toch niet tippen, hoor.
<abrenon>: )
<abrenon>is there a way to assemble several sources into a package ?
<abrenon>or, conversely, to have a "virtual" package doing nothing but grouping together packages obtain from various sources ?
<maximed>nckx: TBC, would you like a copy (of what I'm about to sent to contact @ fsfe . org)?
<maximed>Sent the mail, if you want you can ask for a copy.
<nckx>I'd love to, although TBEC, I'm not currently buying hardware.
<maximed>TBEC: to be exactly clear?
<nckx>I was thinking Entirely but yep.
<nckx>I'm not completely convinced by the pro-refund arguments, sadly, but I'd love to be.
<maximed>nckx: Do you prefer e-mail encrypted?
<maximed>Me neither, though if I understood all the legal terms etc, maybe I would be.
<nckx>Yes, but it's not vital here if you don't have keys handy.
<nckx>The NSA knows I'm into this dangerous 'freedom' thing.
<silicius[m]>I didn't need to package opencv-python-headless, opencv-with-python already provides the same module
***Xenguy_ is now known as Xenguy
<silicius[m]>I was this close to giving up this
<maximed>Anyway, I've found some additional work-arounds to supplement the ductape, so I don't have to cave in yet for practical reasons.
<maximed>Sent it first to the FSFE contact address, will wait for what they recommend ...
<nckx>maximed: It's not clear to me you have the right to ask for only the refused EULA refunded when the seller demands you return the entire system (laptop).
<nckx>Well, you have the right to ask... :)
<nckx>maximed: ..,literal ducktape?
<maximed>What I'm hoping for is that I could ask the seller to get it directly without the Windows license, instead of refund (seems simpler for both seller & consumer to me)
<maximed>nckx: Yes.
<maximed>Would you like a photograph?
<nckx>Ha! Sure.
<maximed>Looking for I was wondering if the FOD Economie somehow had information: <>
<maximed>‘You are a professional in elektro? What to do with [afgedankte] devices’?
<nckx>I wish my current story had pics (fan exploded, threw tiny little fan blades into my cat's fur, he still has trust issues) but alas.
<maximed>‘Explosives for civil use’
<nckx>I found something there too about koppelverkoop but, despite a generic title, only mentioned financial services.
<nckx>maximed: As proposed solution? Bit strong IMO.
<maximed>TBC, I meant exploding the computer, not placing a bomb in Microsoft.
<maximed>In case authorities are reading this.
*nckx waves.
<maximed>Any preferred image pasta service?
<nckx>Not me.
<silicius[m]>Sorry for posting the link again, but this code looks kinda ugly, any way to improve it?
<maximed>Any unpreferred image pasta service?
<abrenon>bye everyone
<nckx>Also no. I never use them, have Web site.
<nckx>maximed: I also wonder if it's relevant or coincidental that both successful suits were agains OEMs directly (Lenovo, then Samsung), not resellers.
<maximed>‘terms of service’: We collect [personal information] by [...] and lawful means.
*nckx reading but IANAL and worse, IANAFL, so I'm reading 2 layers of foreign language.
<nckx>'By force' omitted?
<maximed>‘by fair’ actually
<maximed>What's the point of placing in a ‘terms of service’ that you follow the law?
<maximed>Legally, you have to do that anyway.
<nckx>'Reassurance'... oh wait.
<maximed>TBF, the TOS actually seem reasonable ...
<maximed>Beware of ads (blocked by noscript), but:
<nckx> Nice.
<nckx>Friend, you need JB Weld.
<nckx>(Or a new machine, fine, if boring.)
<nckx>Anyway: 'Cette fois-ci par exemple, le juge se satisfait pleinement de l'argument de la fourniture de produits non demandés (vente forcée), plus direct et définitif que celui de la vente liée.' — okay, that addressed my earlier concern, but raises more questions.
<maximed>I guess I should but I'm more of a software person than a hardware person.
<maximed>nckx: Could I ask to confirm something (in PM)?
<nckx>And of course 'le commentaire détaillé par Me Frédéric Cuif' links to '10 Ways to Maintain The Spark in a Relationship'
<nckx>(Re: PM.)
<nckx>(Readers, it was confirmed.)
*nckx AFK o/
<silicius[m]>Now while trying to package python-libmpv it won't find no matter where I put mpv (which contains the lib) i.e. {,propagated-,native-}mpv
<nckx>Does it use pkg-config, and is pkg-config a native-input?
<nckx>Trying different input types at random won't work.
<nckx>Hm, looking at the code on GitHub: no.
<nckx>Run-time libmpv'ing? Probably...
<silicius[m]>I'll try putting an absolute path to libmpv there
<nckx>...yes. Does find_library accept absolute file names in place of "mpv"? You could substitute*
<nckx>Great idea honestly. 10/10.
<silicius[m]>it uses CDLL to load libmpv
<justkdng>some patchelf might be necessary
<nckx>I don't know what CDLL means but sounds bad.
*nckx AFK again.
<trevdev>Time appropriate greetings
<mbkamble>hi, could someone help me with this: how do I print the path or location of a module in scheme code?
<mbkamble>Here is the context of my question: I want to modify the function add-shell-profile-file that is defined in (gnu home services shells) module. So I copied it to a local directory : ~/my-guile-modules/gnu/home/services/shells.scm and made the change and added a display statement at the top of the file to get a confirmation that the file is being
<mbkamble>used. My source file that declares home-environment of course imports the shells module. But when I run the command "guix home reconfigure -L ~/my-guile-modules path-to-home-env-decl.scm", I dont see the message printed, and the function also does what is defined in /gnu/store/blah-guix-module-union/share/guile/site/3.0/gnu/home/services/shells.scm
<mbkamble>I printed the %load-path and %load-compiled-path as first thing in home-env-decl.scm, and verified that ~/my-guile-modules is the first in the list. So why is this method of overriding a function definition not working?
<jpoiret>mbkamble: I would try to use a different module name first
<jpoiret>since the guile modules are compiled and thus might interfere in some way
<trevdev>That and if your module is *first* on the load path, I feel like maybe it may be overridden by proceeding modules. Not based on experience, just a hunch
<trevdev>I too would try to avoid name collision
<mbkamble>Yes. That works.. But then that function is also called internally by home.scm - specifically by home-environment-default-essential-srvices. So if I rename the module locally, home-environment would still use the one from the site/3.0/.... path
<mbkamble>My local path is listed first in the %load-compiled-path too. still it doesn't seem to take precedence over the site file.
<mbkamble>What is the command to compile a module into a .go file?
<mbkamble>the whole point for me is to learn if it is feasible to override function definition locally over riding the site code, and it seemed that adding our own local path to head of %load-path was the way to chieve that
<silicius[m]>yay, making it use an absolute path worked. python-mpv is functional
<vagrantc>I'm torn between fixing the test suites on guix 1.3.0 in Debian ... or just trying to upload a build from git and hopefully see a new upstream version real soon now
<vagrantc>i386/armhf-specific issues in the test suites ...
<acrow>autoconf armhf-specifics?
<vagrantc>i think it was the channel test suites, possibly related to git
<vagrantc>or guile-git might have been the culprit
<unmatched-paren>Could someone quickly merge #56294? It indirectly fixes an annoying issue with pinentry-ncurses and fish
<vagrantc>main struggle is figuring out weather to leap towards the future or fix the past :)
<silicius[m]>Now. Should I
<silicius[m]>*send two separate patches or just a patchset
<silicius[m]>with the two unrelated python libraries
<vagrantc>how hard would it be to get guix test suites to only verbosely report failures? when reading build logs, i'm swarmed by *lots* of successful test suites, but that makes it much harder to find the relevent failed tests
<unmatched-paren>silicius[m]: Send a preliminary email to, wait until the mailer replies with the bug number, then git send-email the two commits as seperate patches to
<mbkamble>one more observation: if I invoke the repl, I can see the override :
<mbkamble>guix repl -L ~/opensource/mydotfiles/dotconfig/guix/my-modules
<mbkamble>GNU Guile 3.0.8
<mbkamble>Copyright (C) 1995-2021 Free Software Foundation, Inc.
<mbkamble>Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
<mbkamble>This program is free software, and you are welcome to redistribute it
<mbkamble>under certain conditions; type `,show c' for details.
<mbkamble>Enter `,help' for help.
<mbkamble>scheme@(guix-user)> ,use (gnu home services shells)
<mbkamble>;;; note: source file /home/mbkamble/opensource/mydotfiles/dotconfig/guix/my-modules/gnu/home/services/shells.scm
<mbkamble>;;; newer than compiled /gnu/store/nz4a1rghyk99ky5a1nay5y7r19fl47k8-guix-module-union/lib/guile/3.0/site-ccache/gnu/home/services/shells.go
<mbkamble>;;; note: source file /home/mbkamble/opensource/mydotfiles/dotconfig/guix/my-modules/gnu/home/services/shells.scm
<mbkamble>;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/gnu/home/services/shells.go
<mbkamble>;;; note: source file /home/mbkamble/opensource/mydotfiles/dotconfig/guix/my-modules/gnu/home/services/shells.scm
<mbkamble>;;; newer than compiled /home/mbkamble/.cache/guile/ccache/3.0-LE-8-4.6/home/mbkamble/opensource/mydotfiles/dotconfig/guix/my-modules/gnu/home/services/shells.scm.go
<mbkamble>mbk:::: my version of gnu home services shells
<mbkamble>The last line printed comes from the display statement I added in my local shells.scm
<mbkamble>But running "guix home reconfigure -L <path to my-modules> <home-env.scm>" does not do that. why?
<vagrantc>mbkamble: please use a pastebin such as for more than a couple lines of text
<unmatched-paren>Unless you only have one patch to send, in which case you don't need the preliminary email
<mbkamble>vagrantc -- thanks for the tip. I'll do that in the future. I'm a newbie in terms of using chat for seeking help
<vagrantc>mbkamble: welcome! :)
<vagrantc>does + (git-error
<vagrantc>+ #<<git-error> code: -1 message: "invalid version 0 on git_proxy_options" class: 3>) ring any bells? all of the failing test suites seem to have this error.
<vagrantc>seems, strangely, 32-bit specific ... those tests pass on 64-bit architectures and fail on 32-bit ones
<vagrantc>seems plausibly related to a libgit2 upgrade ...
<acrow> Which makes one wonder if it should really have been called an upgrade...
<acrow>I see NEON is not guaranteed there...
<NaturalNumberEnj>thanks so much for this great OS and for the community being so helpful. slowly but surely i'm figuring out how to set up my guix system.
<nckx>silicius[m]: Yay!
<akonai_>Trying to install a new guix system with a luks encrypted root but I can't get it to work, just drops me into grub rescue with "error: no such device <uuid>" with this config
<akonai_>anyone knows what could be the cause?
<unmatched-paren>I think we've seen this a few times before, but I can't remember how to fix it
*nckx same :-/
<nckx>This is the one with the core image and the missing module, right?
<akonai_>the uuid displayed matches the /dev/mapper/root partition which is a bit bizarre to me
*unmatched-paren searches through bug-guix and help-guix
*unmatched-paren can't find anything :( sorry
<vivien>I’m having a lot of fun with gnulib
<vivien>That’s a cute thing.
<maximed>vagrantc: On the bug tracker of guile-git, I noticed a size_t = 64-bit assumption
<maximed>maybe related
<maximed>Also a little-endian assumption.
<unmatched-paren>Looks like we changed guile-git's version of libgit2 to 1.3 on 2022-05-15?
<unmatched-paren>Commit b6bfe9ea6a1b19159455b34f1af4ac00ef9b94ab.
<nckx>Hmmm? I wasn't following.
<unmatched-paren>Sorry for repeating myself, but I think this might have gone unnoticed because of that wall of text earlier: Could somebody please quickly merge 56294, which is a four-line/two-line (depending on how you look at it ;)) diff that exports Fish environment variables to child processes?
<unmatched-paren>I sent it because of an irritating issue with GPG_TTY and pinentry called from another program.
<nckx> Unrelated: did anyone get 2 copies of or is it just more Android weirdness?
<unmatched-paren>(where pinentry-ncurses fails to start unless run from pass [not sure why that's an exception], because GPG_TTY isn't exported.)
<unmatched-paren>nckx: I think it might be something with ccing
<unmatched-paren>Oh, no it isn't.
<unmatched-paren>But yes, I see two (of many of your messages, in fact)
<nckx>I guess mu4e hid them for me.
<trevdev>Has anyone set up gpg-agent for ssh authorization via guix home? I'd love a good example to get mine going with
<trevdev> always check RDE first I guess
<nckx>unmatched-paren: lucky for you, I'd already applied it before you pinged twice.
<nckx>Anyway, pushed. You can close.
<unmatched-paren>nckx: Oh, sorry :) Thanks!
<nckx>unmatched-paren: Forgot to say thanks for the mail feedback.
<nckx>Oh yw.
<nckx>unmatched-paren: Oh, you think CC is *not* to blame? Interesting.
<unmatched-paren>Oh, cool, somebody merged pkgconf too :D
<unmatched-paren>Thanks to whoever that is.
<nckx>unmatched-paren: It just took ages to get gpg set up for commit signing.
<unmatched-paren>Ah, silly me, pkgconf looked merged because I still had the commits locally /o\
<nckx>Thanking yourself, eh.
<silicius[m]>I got one last problem with hydrus-network. It's meant to be used from its own directory but that won't do in guix. So I thought about symlinking or copying the and files to /bin as hydrus-network and hydrus-network-server. I can't get it to work though
<silicius[m]>copy-recursively "" (string-append out "/bin/hydrus-network") complains it can't find
<nckx>There's no need for -recursively, use -file, although the former not working on regular files would be a bizarre choice.
<attila_lendvai>is there any peculiar reason for removing older minor kernel versions straight away when a new one is added? having a few days of delay, or a shifting removal, could make life easier for people using that other channels.
<silicius[m]>nckx: still fails
<nckx>Thought so.
<nckx>So there is no
<silicius[m]>But there is
<silicius[m]>I can go the with -K and see the file
<silicius[m]>wait, something's changed and it's a solid file there
<nckx>I don't know what that is, but the file is clearly not present in (getcwd), see the error message.
<nckx>You can use (pk (getcwd)) in the phase to see if you are where you think you are, or (invoke "ls" "-l" "") etc.
<nckx>attila_lendvai: Why only linux-libre?
<attila_lendvai>nckx, because that other channel breaks when the variable goes away, and pulling becomes impossible until fixed (without looking up the commit prior to the removal, and fixing the guix channel to that commit in the channels.scm file)
<nckx>I missed which channel.
<attila_lendvai>nckx, the one with the full kernel
<nckx>It would add work for lfam.
<nckx>We don't support nonguix.
<silicius[m]>The error was on my side. I didn't know python-build-system isn't unpacking tarballs on its own. Switching to just git solved it
<nckx>It's not?
*nckx surprised.
<nckx>Nested tarballs?
<nckx>attila_lendvai: Maybe lfam's open to that, I mean, but you'll have to ask them directly.
<vagrantc>maximed: thanks, that sounds very plausibly relevent!
<vagrantc>maximed: will look into it
<vagrantc>with guile-git
*unmatched-paren rebooting into linux-libre-5.18
***mark_ is now known as mjw
<unmatched-paren>The patch did fix the pinentry issue, thanks nckx!
<unmatched-paren>and the reboot into 5.18 succeeded. All is well.
<unmatched-paren>I hope I didn't just invite bad things to happen.
<vagrantc>maximed: i'm not finding a specific bug on guile-git though i haven't read all of them yet
<silicius[m]>copying the file to /bin didn't work as it needs to import a module from its own directory so I must somehow point it to that
<atka>vagrantc: hey, did you receive your honeycomb yet?
<vagrantc>atka: yup, mostly testing debian on it so far
<atka>nice, are you happy with it?
<vagrantc>haven't done much more than install it
<atka>ah ok, well have fun with it
<nckx>Can you wrap-program it to add the directory to GUIX_PYTHONPATH, silicius[m]?
<vagrantc>but it's running several of the aarch64 builds for guix ... some of the folks running those might be able to comment and keep it on topic :)
<silicius[m]>nckx: I'll try that. But I think this will result in it being wrapped twice, because python-build-system already does it once
<nckx>It should either be clever enough to detect and amend a previous wrapper, or I'm thinking of wrap-script, or both.
<nckx>Even if not, double-wrapping never hurt the marhine, it's only a human dislike of them.
<lilyp>double-wrapping actually hurts the machine if the second one is an =
<lilyp>or the first, depending on which order you're reading :P
<maximed>nckx: I've found that Lenovo sells the computers directly, with some room for customisation, and you can select ‘no OS’ without any fuzz (if you don't mind the longer shipping times)
<nckx>lilyp: Yeah but don't hold it that way.
<nckx>(The prevalence of — to me — pointless 'prefix'ing everywhere in Guix actually annoys me somewhat.)
<nckx>maximed: Niiice.
<nckx>I loathe Coolblue because of their condescending teevee ads.
<nckx>So me hap.
<lilyp>Do they really ship without an OS though?
<lilyp>I don't trust hardware manufacturers *not* to install one, ironically. I'd like to tell them to install Arch (or Hyperbola), just for the meme.
<maximed>lilyp: By default, it is ‘Windows 11 Home 64’. There are also a few other options, which add +€, and the ‘no OS’ option with -€.
<maximed>I assume that means ‘no OS’.
<maximed>And even if there's still an OS, I'm not paying for it and I can replace it.
<unmatched-paren>I've heard they sometimes install something like FreeDOS with the 'no OS' option, but that might not be the case here
<lilyp>I picked the FreeDOS option once, but still got myself some Windows 8 :)
<lilyp>Wasn't Lenovo though, maybe they're better at not installing Windows.
<maximed>Anyway, summarised: if you don't mind the extra shipping time, I recommend skipping the intermediary to select ‘no windows’ and reduce the €.
<maximed>(can be €60 or €120 cheaper!)
<maximed>... I just noticed some prices are listed with ‘excluding taxes’, so possibly more expensive than first expected.
***EdwardIII is now known as edwardiii
<lhp22>hello. It seems that the pdf french version link of the guix manual is broken :
<lhp22>html versions work
<civodul>ah! apteryx looked into this recently, and i thought this was fixed
<civodul>apparently not
<nckx>lilyp: Did you pay for it?
<nckx> Financially.
***edwardiii is now known as EdwardIII
***the_tubular32 is now known as the_tubular
<vagrantc>wow, make dist actually worked.
<vagrantc>almost... it seemed to pick an arbitrary git commit ... but ... i'm going to try again from a clean git tree.