IRC channel logs


back to list of logs

<theo_>Hi -- I've installed the Guix package manager on OpenSUSE, I've installed GNU Icecat with it, and it runs, but the font is just github icons, like every character is a github icon. Also, guix pull results in an error: Updating channel 'guix' from Git repository at ''...
<theo_>guix pull: error: Git error: the SSL certificate is invalid
<lfam>theo_: The Icecat font issue means you need to install some fonts, if I remember correctly
<lfam>theo_: The certificate validation issue shouldn't happen... That should just work. But, you could make sure to follow the instructions regarding X.509 certificates in the manual:
<theo_>ahhhh thank you !!!
<lfam>Let us know how it goes
<theo_>Icecat is still having that font issue, i installed the packages required.. websites show fine it's just the firefox UI that has the issue
<theo_>like the URL bar and stuff
<fnstudio>expired cert for ?
***sneek_ is now known as sneek
<lfam>Thanks for letting us know
<fnstudio>thank you, np :)
<lfam>I sent a message to the people
<kondor>What do you do if you need to modify `/etc/services` ? Do you make a custom version of `net-base` package?
<lfam>kondor: I suppose! I don't think I've seen this asked before
<kondor>lfam yeah, my solution would be, create a package variant of net-base, then crawl through all the required packages, substituting net-base as an input with my own package. All this to add a single line of text to that bloody file. I am sure there must be a more elegant solution.
<kondor>On the other hand, i could eval a new package definition of net-base inside the admin module. I guess that would take care of the dependant packages, too
<kondor>This is a weak point of Guix. Simple changes are not simple (unless I'm blind to obvious solutions -- entirely possible) :)
<lfam>I think we would need to create some configuration interface for it
<lfam>Maybe there is another way to affect it, not sure
<shcv>hello; how do I configure elogind so that it doesn't suspend on a timeout?
<shcv>I've set up a computer with desktop-services that I mostly want to use as a headless machine
<shcv>I'm slightly confused because the docs say the default idle action is 'ignore'
<OriansJ>shcv: if your goal was headless why did you install desktop-services? elogind never has to be on your machine at all.
<xelxebar>Not OP, but I've been forced to install elogind because dockerd apparently requires it :/
<OriansJ>was docker because of a preference or a technical requirement?
<OriansJ>as lxc and kvm/libvirt are options in guix
<awb99>How can I find out why a specific package ends up in /gnu/store that I get with a GUIX docker build? I see lots of duplicated packages and and also lots of different version numbers.
<dftxbs3e>awb99, you can try to use the guix graph command, but I don't think it can generate graphs for manifests or operating system configurations.
<dftxbs3e>Duplicated versions are normal, some times packages depend on different versions of some other packages so we have to package both.
<procra>hi, I got an error when try to export a org file to PDF through latex. if I compile on termina the pdf is produced with pdflatex and lualatex. And I use exwm on emacs.
<procra>this is the "org PDF latex Output"
<procra>thanks for reading, even if you can't help me.
<dftxbs3e>procra, not sure really here, what is the full command you're executing, output of "guix describe" / "guix system describe" etc? Also does pandoc work for you?
<procra>dftxbs3e: this is the "guix describe" output
<procra>I don't try pandoc yet
<procra>dftxbs3e: guix system describe ouput
<awb99>Thanks @dftxbs3e
<raghavgururajan>sneek, later tell cage_ : Sorry I had to be away. Were you able to figure things out? If not, let me know, I'll try my best to help.
<sneek>Got it.
<nixo_>Hi guix! Is emacs-elpy broken?
<mothacehe>hey nixo_, looks like it is:
<xelxebar>OriansJ: I need dockerd running for work, so "preference" I guess?
<nixo_>mothacehe: thanks. Today's not my day. I wanted 3 emacs packages, one does not build and two cannot find their required files :( And it's monday
<PurpleSym>Is there an automated tool to sort and deduplicate a Scheme file with package definitions?
<nckxv2>fnstudio, lfam: Fixed (for now...), thanks!
<fnstudio>nckxv2: wonderful, thanks
<fnstudio>i'd like to experiment with guix-jupyter in a vm; if i launch a machine with `guix system vm ...` however, i run into this error where it says that `/gnu/store` is mounted read-only
<dftxbs3e>fnstudio, /gnu/store is always read-only, where do you get that error? Please provide a bit more context
<fnstudio>i suppose the only way around it is to use the --share option?
<nckxv2>dftxbs3e: It's 'more' read-only in a VM.
<fnstudio>i launch a machine with: `guix system vm config-jupyter.scm` -nic user,model=virtio-net-pci,hostfwd=tcp::8888-:8888
<dftxbs3e>nckxv2, virtio-fs locks it read-only I believe?
<dftxbs3e>(even for a guix-daemon)
<efraim>you have to pre-build packages you want to use in a guix vm
<raghavgururajan>Is nckxv2 a bug-fix of nckx?
<nckxv2>Yes. guix-daemon can't sneak around and write to it.
<dftxbs3e>cbaines, hey! how are you doing? :-D
<dftxbs3e>efraim, hey, do you think it is worth attempting mtime thing or do we straight up go replacing Cargo?
<dftxbs3e>nckxv2, are you fake, sounds unlikely you log-in via kiwiirc
<nckxv2>raghavgururajan: It's nckx but rewritten in Rust and of course comes with an embedded MUA.
<fnstudio>the problem is that this error is thrown by guix-jupyter as soon as i launch jupyter and try to create a guix notebook
*raghavgururajan thought nckx was on rolling-model and didn't expect v2. :P
<fnstudio>i'm not sure what guix-jupyter is trying to install
<nckxv2>So now nckx can manage his memory good and reads mail.
<nckxv2>Ha ha. Both lies.
<fnstudio>some more context: after launching the machine, i log in and start a jupyter notebook, then go and connect to it via port 8888 from the host
<dftxbs3e>cbaines, tell me, do you like netdata? Monitoring dashboard showing up on: http://[2a01:e0a:2a2:1351::1ec]:19999/ - If so then it might be able to replace Grafana for you, I packaged it for GNU Guix (pending review), it's programmable meaning you can add any kind of new stat with shell scripts, python, nodejs, go.. GNU Guile (using shebang)?
<mothacehe>fnstudio: "guix system vm" spawns a VM that shares the host store using a RO mount. To be able to use the store in a VM, you should use "guix system image -t qcow2" that will in turn return a VM image.
<dftxbs3e>cbaines, that page is monitoring for one of the powerpc64le-linux agents (the one at my home)
<nckxv2>dftxbs3e: Does it sound more like me to completely blow up my laptop's rootfs by playing kernel dev, then have to borrow $partner's to SSH into my Guix mail server to build a rescue ISO that can read bcachefs?
<nckxv2>I mean, sounds pretty on-brand to me.
<dftxbs3e>nckxv2, oopsie.. it sounded a bit emergency the kiwiirc
<fnstudio>mothacehe: right, what if i still used "guix system vm" but i added a --shared option to let the VM home be rw, then i could start jupyter as a user and the guix write operation would happen in the rw shared home?
<dftxbs3e>nckxv2, is bcachefs any good? Also, is it available on GNU Guix?
<fnstudio>mothacehe: although the other option you mention (guix system image) also seems perfect
<dftxbs3e>Sounds like it, in GNU Guix
<mothacehe>fnstudio: I'm not sure what jupyter does, but if it tries to interact with the VM guix-daemon it won't work
<mothacehe>if you can manage to have the VM use the host guix-daemon via a shared socket then it may work
<fnstudio>oh i see, i think i see what you mean, so that's not even worth a try
<mothacehe>but it's hard to setup I guess :)
<fnstudio>ok, cool, i'll go for the image then - which is a perfect solution for what i'm trying to do anyway
<fnstudio>so thanks v much
<nckxv2>dftxbs3e: It's still in development but far more stable than btrfs at the same age. I don't blame it for breaking after I corrupt its page cache. No, no Guix support at all (apart from adding bcachefs-tools). You need a patched kernel, I haven't tried merging it + Linux-libre.
<nckxv2>You also need a separate /boot which, at least recently, Guix System did not support OOTB.
<nckxv2>To use it as / I mean.
<mothacehe>fnstudio: ok, the only drawback is that the image generation is way longer, as it needs to populate a store
<nckxv2> <> If IceCat specifically asks for a UI font by name, we should probably cave and propagate it. One can't argue choice if IceCat doesn't have any. With some luck it might use it as fall-back for the dreaded number glyphs, too.
<nckxv2>That said I'm typing this single-finger on a Windows laptop so nobody should trust my judgment.
<abcdw>hi guix!
<efraim>dftxbs3e: we could try the mtime thing first. One option is after the 'patch-cargo-checksums phase to add a phase to read the mtime from one of the Cargo.toml files, add some amount of time, and set the mtime of the compiled artifacts we've carried from the previous build(s)
<efraim>I don't know enough about using rustc inplace of cargo, but I do like that idea better overall
<kondor>Services that depend on packages ... where do those packages end up in -- the system profile? Does that mean that if I explicitly install a package in the system profile, they'll use that?
<kondor>Like, I see how to substitute inputs for packages which I control (by installing them in various profiles), but I don't know how modify dependencies of the services (such as, eg inetd)
<nckxv2>kondor: The packages end up in the store, that's the only guarantee. They are then called with an explicit store path. Some services -- and I am not a fan of this trend -- also propagate [some] of these dependencies into the system profile ($PATH etc.) so you can e.g. invoke cups tools without adding cups to your system packages, only the
<nckxv2>service. But what you describe (services calling binaries from /run/current-system instead of /gnu/store) is not done.
<nckxv2>kondor: Some services offer package fields: (cups-service-type (cups-configuration (cups-package my-custom-cups) ...)) but it's an ad-hoc thing.
<nckxv2>Fictional example.
<kondor>nckxv2 mu problem is that i need to add additional entries to `/etc/services`. Now, i think this gets cared of when i extend the `netbase` package in `admin` module. However, i guess that populating systems `/etc` is done by some (low-level) service which depends on the unmodified netbase. How am I supposed to avoid conflicts?
<jlicht>hey guix!
<nckxv2>kondor: I'm not currently in a position to investigate that, sorry.
<kondor>nckxv2 i think, i'll just eval a modified, custom netbase in the context of admin module
<kondor>No worries, thanks for your response
<kondor>Hey jli
<kondor>nckxv2 ah, i see, i should probanly extend etc-service
*nckx is boot \o/
*raghavgururajan does `nckx pull --commit=v1 --allow-downgrades`
<nckx>My last pull was from the FUCK branch, so #mood.
<nckx>There might be a bug in how we (don't) honour #check?, but I need to check.
*raghavgururajan is back to work on nextcloud-client
<kondor>If I want to extend one of the system services, should I chug it into `services`, or `essential-services` slot of OS definition?
<kondor>Basically, i want to rewrite /etc/services and it makes sense to extend etc-service, I guess
<bqv>nckx: I did that too. Not sure what I broke with it but I had to nuke the bcachefs partition and put it back to btrfs cause heck if I'm gonna have to reinstall my system on a regular basis
<bqv>It wouldn't boot and idek why :(
<nckx>Did what exactly, bqv?
<bqv>Fucked up bcachefs
<kondor>Oh wait, i see other examples of this ... so it's fine to stuff it in services
<bqv>I still use the patched kernel, but I have no bcachefs partitions now
<bqv>It was ambitious of me to make my system depend on it
<nckx>kondor: Sounds correct.
<nckx>bqv: Yeah, it still has rough edges. That said all my bcachefs failures during the past year were entirely self-inflicted.
<nckx>(‘Let's write some hibernation code, how hard can it be! Oh dear it looks like I've loaded complete bollocks into RAM how did that happen’)
<nckx>Although the corruption's now subtle enough that the system restores and actually runs long enough to flush it all the way to disc, so that's progress!
*nckx , watching their house burn down from the side of the road: ‘...progress I say!’.
<lf94>Is it possible to just manage some servers with guix without modifying their bootloaders and stuff, via ssh?
<lf94>I would like to use guix deploy but it seems to specify things which are not normally changeable on VPS systems
<roptat>lf94, doesn't a VPS need a bootloader to know which kernel to load?
<nckx>lf94: I've run Guix System on all my VPSes, but not with deploy, and we seem to have different definitions of ‘VPS’ (why can't you change the boot loader? how can they boot if you don't?).
<nckx>So yes to the first line, maybe to the second ☺
<lf94>roptat: VPS like DigitalOcean don't let you choose
<lf94>Yes I'm aware of the digitalocean deployment type
<nckx>Choose what, exactly?
<lf94>The bootloader
<nckx>Yes, but then how do you choose the kernel? Where's the line?
<nckx>I ask because you'll need to run our kernel to run Guix System, or do (even more) work do get the two to play nice.
<lf94>So using guix deploy then for such a scenario is not appropriate, gotchya :)
<nckx>I don't know, but I know it's going to be uphill both ways.
<lf94>It sounds like using something like Ansible is still required until guix deploy is more mature
<nckx>I ran a Scaleway Guix System for a few years, but even that was ‘jailbroken’ to load Guix's Linux-Libre instead of their hard-coded kernel.
<nckx>lf94: Guix deploy isn't mature, but this isn't related.
<wonko_the_sane>theres kexec
<nckx>Yes, that works.
<nckx>lf94: Ansible is an automated button pusher that turns a (say) Debian system into your Debian system by turning knobs. Guix deploy installs Guix System. If the VPS supports only some hard-coded (say) Debian kernel, it won't work.
<lf94>nckx: yeah that's the gist of what I understood
<lf94>thanks for clarification
<nckx>Does that answer your question or not really?
<wonko_the_sane>Guix is gaslighting me : D it's pulled in iw and wireless-tools inexplicably (so it seems), but no kind of dependency appears to call for them, so i'm brute forcing all the graphs...
<lf94>nckx: it does, thank you
<nckx>As wonko_the_sane suggests, kexec can be very useful here. Turn that mandatory DO kernel into a very expensive boot loader 😉
<lf94>nckx: I was hoping I could replace my Ansible usage with guix facilities, but I think I can't.
<efraim>IIRC DO has a 'grub' option for kernel
<jlicht>with a relocatable `guix pack`, how does one 'activate' the profile variables (such as PYTHONPATH)?
<nckx>lf94: I'm no expert on either, but it doesn't sound like it if you're not (yet) willing or able to switch to Guix System wholesale. Nor can I blame you, as you sad deploy could use some maturing.
<nckx>You may be sad also, this I do not know.
<nckx>I hope you are not.
<avalenn>Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS
<avalenn>my guix crashes when trying to build some package with a lot of dependencies
<nckx>avalenn: Too many or infinitely many? If there's a cycle in your input graph Guix will not detect that but loop forever, eventually running out of RAM.
<nckx>(TODO, etc.)
<wonko_the_sane>: D
<avalenn>This is possible.
<nckx>It's not great.
<avalenn>I will try to extract a dependency graph of my packages
<nckx>Not sure how that works if there's a cycle but good luck. My low-tech solution is commenting out new additions until it no longer happens, then figuring out how to build anyway.
<roptat>cyclic dependencies are fun :)
<roptat>if you have inheritance, remember that some input fields can be copied from a package to another, that may lead to dependency loops
<mdevos>is there any particular reason DISPLAY is preserved in pure environments, but XAUTHORITY isn't?
<mdevos> (
<bqv>Hi qyliss
<leoprikler>mdevos: not afaik, I didn't even know DISPLAY was passed
<leoprikler>since when do we do that?
<iis>Hello, how to automount any usb device drive in gnu guix OS? I followed but it doesn't work because /etc/fstab file is generating on boot or reconfiguration
<kondor>lf94 take a look at linode server provisioning in the guix cookbook. Forget about the debian part, just take the system config script, you can even replace the bootloader with something superstandard. Build the image with vm-image and it'll run in qemu
<kondor>The next step would be to upload such image to a vps system
<lf94>and then run the image in qemu on the vps? XD
<kondor>(Which runs something that likes qcow2)
<kondor>Is something wrong with substitute servers ... suddenly reconfigure compiles everything
<raghavgururajan>which module should I import to use `version-major+minor`?
<raghavgururajan>I am getting Unbound variable: version-major+minor
<nckx>raghavgururajan: (guix utils)
<nckx>kondor: Not AFAICT.
<raghavgururajan>nckx: Hmm, i used it though.
<raghavgururajan>(version-major+minor (package-version qtbase))
<nckx>Did you forget to unquote the call?
<raghavgururajan>works now thanks!
<nckx>iis: To do what that article describes you'd add a file-system entry to your operating-system's file-systems field, which is Guix System's equivalent of /etc/fstab. I think (device "<UUID here>") just works <>. It won't mount ‘any’ USB device, though, only that exact one, and only if it's present at boot. If it's not, I'm not sure that Guix handles it well! Be ready to roll back.
<nckx>raghavgururajan: Yay.
<raghavgururajan>leoprikler, pineapples: Fixed materialdecoration.
<raghavgururajan>nckx: I am planning to apply for commit access. Would you be one of my vouch? :-)
<nckx>Maybe! I'll need to dig into your recent history first.
<pineapples>I approve 👍️ :')
<nckx>Heh, thanks, but that's the stuff that made it in 😉
<pineapples>raghavgururajan: Neat!
<raghavgururajan>pineapples: :-)
*raghavgururajan build telegram-desktop on bayfront
<charmonium[m]>If a project supports installing releases from a tarball and a git repo (such as MediaWiki), which is preferred to package for Guix?
<leoprikler>depends on the type of tarball
<nckx>charmonium[m]: Might depend on whom you ask. We have a slight preference for git repositories at the moment because they are archived by Software Heritage, but only if the trade-off (extra inputs for bootstrapping, etc.) is reasonable.
<nckx>We used to have more of a bias towards bootstrapped release tarballs.
<nckx>Making sure that Guix can build the ‘raw’ development sources from git has some advantages for users. It's arguably the preferred form of modification.
<charmonium[m]>Interestingly the MediaWiki tarball contains all of its pure PHP dependencies but the git repo just has a version lock file.
<nckx>Using such bundled dependencies in Guix packages is strongly discouraged.
<nckx>Even though the alternative is more work ☺
<reepca>anyone using browserpass with icecat?
<sundbry>git is nice because you can run forks of whatever package it is that much easier.
<kondor>Argh, after llvm 10, it now wants to build llvm 11
<nckx>Yeah, Guix documents/automates the bootstrapping for you, which can be obscure/terrible.
<sundbry>@kondor do you need a bootstrapping script for linode
<kondor>keepassxc user
<nckx>kondor: Are you sure you're using substitutes? (Or that you don't want to?)
<sundbry> will get you a virgin guix-1.2 install from your own config.scm as long, provided you can boot into a rescue OS. Works great for provisioning bare metal servers and VMs without a premade Guix image.
<charmonium[m]><nckx "charmonium: Might depend on whom"> Is there an equivalent invocation for `guix download GIT_REPO` to get the hash?
<efraim>nckx: 'code name hard'?
<nckx>charmonium[m]: Yes: ‘git clone <URL>’ and ‘guix hash -rx <directory>’.
<kondor>nckx well, i don't know, i ran .. `guix system vm-image --image-type=.. -c8 config-script.scm` this usually downloads substitutes. I think I remeber a previois build failed with a TLS error. When restarted, it started compiling everything from source.
<kondor>sundbry thanks! We should collect different configs into a central repository.
<nckx>efraim: Should've been ‘NAME’.
<raghavgururajan>leoprikler: Is this ( commit message okay?
<nckx>kondor: has a substitute for current llvm@10 (/gnu/store/myl56hlqmcx44mq2mrpabp8c6g1m9fd9-llvm-10.0.0.drv).
<nckx>If your Guix is up to date & querying/accepting substitutes you should have got one. That's all I can say.
<leoprikler>Modules and snippets come in pairs, so that tells you nothing. "Add snippet to remove bundled sources" is more descriptive.
<leoprikler>Assuming that's what this actually does.
<nckx>kondor: You can test with ‘guix build -d llvm’ or ‘guix build -d llvm@10’.
<nckx>To see if your hash is at least the same as mine.
<nckx>Gotta go.
<iis>nckx: thanks for your help!. I found a solution with thunar (guix install thunar) and gvfs (guix install gvfs) and following the indications on
<sundbry>@kondor I plan to integrate it into `guix deploy` sooner or later, similar to the DigitalOcean installer.
<leoprikler>raghavgururajan: btw. are those really "bundled sources"?
<kondor>nckx i build from some commit from the previous week
<leoprikler>to me they look like "normal" CMakeFiles
<awb99>@nckx: could you share your scaleway GUIX config? I would like to run GUIX on scaleway.
<PotentialUser-75>Why Guix users do not pay attention to ?
<raghavgururajan>leoprikler: Yeah, extra-cmake-modules, which we already have in guix.
<raghavgururajan>Also passed as native-inputs. So I removed th bundled ones.
<leoprikler>PotentialUser-75: Many of those are not that easy to package.
<leoprikler>A few ones have already been packaged and just not yet been removed, though.
<raghavgururajan>PotentialUser-75: Can you email Some may be interested to package them.
<kondor>sundbry that's really great
*raghavgururajan tears-up on seeing "Signal Desktop is an Electron application ..." 😢️
<PotentialUser-75>Ok, thanks
<leoprikler>Didn't you already do that last year?
<raghavgururajan>leoprikler: No, that was linphone.
<leoprikler>Tearing up, I mean.
<raghavgururajan>leoprikler: LoL. I don't remember.
<leoprikler>I vaguely recall you starting a discussion over there to have a "native client".
*raghavgururajan remembers tearing-up for delta-chat
<raghavgururajan>Ah yeah, that's delta-chat.
<vagrantc>tear as in cry, or tear as in to rip apart? :)
<kondor>(la clippers)
<raghavgururajan>vagrantc: Cry
<raghavgururajan>Many things on that list are electron-based apps.
<vagrantc>i haven't used the desktop version, but i've used an app from f-droid and it works reasonably well
<vagrantc>delta-chat, that is
<raghavgururajan>Ah yeah, delta-chat is a cool project.
<cybersyn> yikes signal is electron? really safe stuff they are pushing *ughh*
<leoprikler>signal-desktop is electron
<leoprikler>The Android app is super secure though ;)
*raghavgururajan keeps calm and jabbers 😇️
<cybersyn>but, is anything on a phone "super secure"
<cybersyn>sorry, don't mean to open this can of worms
<leoprikler>If not, you can add just another sandbox and it is.
<cybersyn>**a comercial phone
<cybersyn>i can't help but find it a bit suspicious that signal was originally backed by a CIA org
<cybersyn>i know its been vetted to death, but there are too many factors i dont understand to not be suspicious
<leoprikler>okay, what's the difference between cargo-inputs and cargo-development-inputs?
<kondor>cybersyn maybe, tho' Moxie as a personality seems larger-than-life and difficult to manufacture in FBI HQ.
<kondor>or CIA
<kondor>every friggin version of llvm has to be built
<lf94>Let the protocol speak for itself.
<lf94>There were 2 things which suggest Signal is not completely sound: phone number and signal server to establish initial connection / login.
<lf94>Already this has shown to have had consequence
<pkill9>cybersyn: it could be like tor where they want as many people using it so they can use it themselves perhaps
<cybersyn>kondor: yeah, i get that and many friends really trust him. but i wouldn't recommend signal to anyone involved in serious political activism.
<kondor>cybersyn a lot of people in NGOs are using it. But, maybe, if i'm afraid of the West I'd use Telegram. If I"m afraid of the East, then Signal :)
<charmonium[m]>How do I add a new license type? If I understand Guile correctly, the `license` type's constructor is not exported in `guix/licenses.scm`.
<pkill9>why telegram kondor?
<cybersyn>kondor: yeah, thats essentially how i see it.
<cybersyn>hopefully we will all just use spritely goblins soon lol
<leoprikler>Telegram is not really secure tho.
<leoprikler>charmonium[m]: if it's a free license, you can send a patch to guix
<leoprikler>if it's something shadier, you need to look at the shady places
<charmonium[m]>It's the PHP3.01 license. I will submit a patch eventually. Is there workaround way of defining in a channel?
<cybersyn>leoprikler: i know telegram isn't secure by default, but are there some general vulnerabilities to be wary of?
<cybersyn>sorry, **isn't end-to-end encrypted by default
<leoprikler>well, binding to phone numbers is the same as in signal
<mdevos>does someone have a guix environment for building guile from git (for
<mdevos> development)?
<lf94>yep the phone number binding is the worst.
<lf94>mdevos: can't you just `guix environment guile` ?
<mdevos>when building from git, autoconf and other things are required
<mdevos>I would prefer using a somewhat official-ish guix.scm. If there isn't any, I'll just add things to guix environment as-needed
<leoprikler>We should probably have an autotools metapackage, which propagates all the stuff needed for building libraries fresh from source.
<kondor>pkill9 leoprikler re Telegram: I only know it's Russian :)
<mdevos>btw, are there any guidelines when to use autoconf-wrapper or autoconf in package definitions?
<mdevos>the former seems correcter (for generating missing ./configure when building), but the shebang #!/bin/sh will be rewritten anyways
<lf94>mdevos: `guix environment guile --ad-hoc autoconf` ? or whatever
<lf94>--ad-hoc will give you the tools inside the environment
<mdevos>lf94: libtool is needed as well
<lf94>mdevos: then specify it too
<mdevos>and gettext
<mdevos>lf94: I know how to do this, I just was wondering if someone had a working recipe; I was hoping to avoid trial-and-error (-:
<lf94>mdevos: You can look at the guile-2.0 package definition maybe?
<nckx>awb99: Sorry, no, it was ages ago, they've long been lost to time. According to <> they no longer use the same boot scheme anyway.
<lf94>no guessing necessary more or less
<mdevos>about autoconf-wrapper: should all package definitions be adjusted to use autoconf-wrapper instead of autoconf where it is used to generate the ./configure?
<nckx>In preparation for what, mdevos?
<mdevos>nckx: you responding about my comment about autoconf-wrapper vs. autoconf?
<nckx>Your last question.
<mdevos>I'm not preparing for anything, it's more about consistency
<mdevos>most packages use autoconf, but some use autoconf-wrapper
<nckx>-wrapper is a tiny minority tho.
<mdevos>when writing a new package definition, I'm sometimes wondering about whether to use autoconf or autoconf-wrapper
<nckx>I've never used -wrapper. Do you know if the (few) current users actually break without it?
<mdevos>I usually just use autoconf because that is used most often. idk any users that break without -wrapper.
<nckx>I don't think anything should be changed.
<nckx>Plenty of #t's to remove first if anyone is that bored 😉
<nckx>And tarballs to git.
<mdevos>Maybe the automake and libtool package itself actually need autoconf-wrapper? I don't think any other package actually needs it
<mdevos>nckx: writing a patch should be easy. Something like sed s/"autoconf" autoconf/"autoconf" autoconf/wrapper/, but with proper quoting (or the other way around)
<mdevos>I can do this right now, but I just need to know which colour to paint the bikeshed
<nckx>It's not about the effort (indeed trivial) but the churn and what we'd gain from it.
<nckx>I'm all for not confusing new users (which often learn by imitation), but that might not be enough.
<mdevos>nckx: benefit: consistency accross package definitions (except the special cases where one or the other is really needed). con: package rebuilds, accidentally breaking something!!!
<mdevos>as a naive confused user, I prefer consistency. But maybe guix maintainers know a good reason not to make this change.
<nckx>My ‘preparation’ question above was because I thought you might be pushing for /bin/sh-less builds, which would be interesting, and because without such a goal you might not get past the ‘churn’ objection. (One could suggest a scripted reindation of the entire code base for consistency, too...)
<nckx>*Apart* from that, I do think -wrapper is the right thing.
<mdevos>I thought /bin/sh (and /usr/bin/env) doesn't exist in the build environment? Or am I wrong here?
<nckx>Oh, you're probably right.
<nckx>I haven't checked.
<nckx>Indeed it does not.
<mdevos>also, I don't think the comparison with reindenting all the source code is appropriate here. Indentation is purely cosmetic (except for the rebuilds that would result because of change in hash in guix/build/*.scm), ...
<nckx>They shouldn't change, but that aside.
<mdevos>while the autoconf / autoconf-wrapper distinction affects the build process (one more package in the graph), though granted that's fairly minor
<mdevos>... I just found a problem for my solution!
<nckx>I think it's a good change by the way.
<nckx>If you want another (if also minor) problem: there are several packages that have to jump through a little hoop to keep upsteam's ./ from calling ./configure, e.g. by setting NO_CONFIGURE. That would go away.
<nckx>Is that worth it?
<mdevos>it's progress towards booting without /bin/sh. I sometimes run modify package source code with "guix environment PACKAGE -- open-an-editor-and-hack"
<mdevos>nckx: about the other problem: it's something to look at later.
<mdevos>I'll just write the patch, submit it and see what responses I get (and build a few packages for testing)
<nckx>I mean it's an argument in favour of your change.
<nckx>mdevos: Sounds good.
<nckx>I like it. If it happens, we can enforce it (like we do for gettext → gettext-minimal) so new patches can't add it back.
<raghavgururajan>> Indentation is purely cosmetic
<raghavgururajan>Hmm. Not sure. I'd say readability is one of the technical aspects of software maintenance.
<roptat>you could automatically re-indent code
<roptat>but yeah, it's better to be presented with readable code for maintainability :)
<cbaines>gnu/services/virtualization.scm:857:2: error: missing root file system
<cbaines>this is unhelpful in more ways than one
*charmonium[m] sent a long message: < >
<mdevos>charmomium: two comments: the message was too long, so matrix sent a link instead. ...
<mdevos>Also, what's the contents of phases? It should be a readable object. So it shouldn't contain procedures. (but something like (define phases '(... (lambda (stuff) ...))' may be ok)
<mdevos>You can get around that requirement by placing the (defie phases ...) in a guix/build/... module, though it needs to be imported explicitely
<mdevos>(I don't recall the specifics)
<charmonium[m]>> So it shouldn't contain procedures.
<charmonium[m]>I thought `phases` was supposed to be a list of pairs where the second was a procedure?
<mdevos>I modified a lot of package definitions automatically with a sed expression, does anyone know a simple automatic method to see what packages would need to be rebuild
<mdevos>charmonium: correct! (I think) But not in the way I'm thinking you're thinking ...
<mdevos>IIUC, the value of the arguments field of a package is serialised (using a procedure like write) to be executed in the build environment
<mdevos>and you can't serialize procedures. However,
<mdevos>serialising *the code* isn't a problem.
<mdevos>Can you post (define phases ...) (at
<roptat>mdevos, compute derivation for every package before your change, and after your change, see if any hash changed?
<ss2>how would one replicate the guix channel, and so that then guix would also pull from there? Or how do you hack in the channel?
<roptat>charmonium[m], I think you should have something like (define phases `(modify-phases %standard-phases ...)) for instance
<mdevos>roptat: I don't know the names of the packages I modified. I guess I could write a script for that, though. ...
<mdevos>the changes touch 146 fields
<roptat>mdevos, I was suggesting to compute the derivation of *every* package
<roptat>not just those you modified :)
<mdevos>basically, it replaces almost all mentions of autoconf with autoconf-wrapper
<mdevos>roptat: that makes more sense :)
<mdevos>roptat: is there a simple method to do that? I have no idea how what search terms to use.
<roptat>I think there's a method that returns every package
<roptat>I'd look into what (guix ci) does for that
<roptat>ah, fold-packages in (gnu packages)
<roptat>mdevos, you can do something like (fold-packages (lambda (package result) (cons (package->derivation package) result)) '())
<roptat>untested of course ;)
<mdevos>roptat: that seems a goood basis, though that returns a list of monadic procedures, not yet the hashes. Will look into it tomorrow
<roptat>charmonium[m], you can do that, because you need the procedure to be available on the build side, you need to import it for that
<mdevos>charmomium: put a quasiquote (the ` symbol) before (invoke "phize")
<mdevos>usually these procedures are 'inlined' in the package definition, however
<roptat>phpize-phase would be an unknown symbol on the build side
*mdevos Zzz
<roptat>what you can do is create a separate module, say (guix build phpize) that exports this procedure, and import in on the build side with #:modules (or is it #:imported-modules, I'm always confused)
<roptat>or simply inline the function in the package definition
<charmonium[m]>@roptat: Ok. Is this the conventional way of reusing a phase?
<roptat>you mean you have this phpize in multiple packages? if so, creating a separate module is the way to go
<roptat>if it's used only very locally in one or two packages, then don't bother and inline it
<charmonium[m]>@mdevos: I've quoted `(invoke "phpize") and I've quoted `phpize-phase, and it's still giving: Unknown # object #/<
<roptat>yeah, because you can pass the procedure to the build size that way, you need a module, or to inline it
<roptat>java-junit would be an example of a package that uses a procedure declared in a separate module
<roptat>(note that the module in question is already imported by the build system, so we don't need to change #:modules or #:imported-modules)
<roptat>also, might be relevant: (a composer build system)
<charmonium[m]>Thanks, that is pretty relevant.
<dustyweb>is there a nice way both to do the pre-inst-env guix
<dustyweb>but also have it not get confused by me importing things from my channels?
<dustyweb>I guess this must be a path thing
<roptat>what do you mean "confused"?
<dustyweb>roptat: I mean "/path/to/dev/guix/pre-inst-env guix system build /path/to/my-guix.scm"
<dustyweb>complains it doesn't know how to import one of the channels modules
<roptat>oh weird
<roptat>do you want to not use your channel, or do you want to use it?
<dustyweb>roptat: I want to use it
<dustyweb>and I want to use the new code I added to my hacking version of guix
<dustyweb>to see if it correctly builds a new system that works the way I expect with the way I changed this service
<roptat>well, I'd use -L to point it to a checkout, but otherwise I think pre-inst-env override the GUILE_* variables
<kondor>I was really looking forward to java packaging part of the FOSDEM fringe -- which never happened
<roptat>kondor, well, I don't think there's much progress since the previous guix days
*rekado packaged a Java thing today
<roptat>did you use the maven-build-system? :D
<dustyweb>I guess now that I'm saying it out loud, not sure why pre-inst-env would be clobbering channels though
<roptat>dustyweb, maybe because channels and guix are built to the same location, so pre-inst-env prevents you from using guix, which prevents you from using what's also there?
<dustyweb>roptat: maybe..
<dustyweb>roptat: nonetheless, looks like this kludge worked:
<dustyweb>~/devel/guix/pre-inst-env guix system build -L /home/cwebber/.cache/guix/checkouts/l74zueb3lgylhgxnuzx3d5fzraztxvzu2s4466wlqqvmz7hdct3a guix-config-twig.scm
<rekado>roptat: no :( I didn’t find any example, so I went with what I know.
<roptat>rekado, understandable
<kondor>These TLS substitute errors are killing me
<roptat>I'm a bit busy, but I'll try to focus on getting the maven-plugin-plugin at some point, at least some dependencies
*kondor mutes his flow-of-consciousnes until image building is over
<roptat>that would use the maven-build-system and give you some examples :)
<kondor>roptat i'll happily use the maven system
<kondor>There is a package with billion dependencies called metfrag which i'd love to have in the channel as it is used a lot over here
<kondor>But, need to figure out where to start
<roptat>kondor, two things: you must have all dependencies (of course), plugins (very hard to build) and they both need to be installed in lib/m2
<kondor>roptat that means i need to look thru manifest and package what's missong i guess
<kondor>Btw not familiar with maven .. how do i determine package url-s?
<roptat>yeah, look at the pom.xml file to see what are the dependencies, and see if they are in guix
<kondor>dependency urls
<roptat>if you're lucky the pom.xml contains a <scm> section that gives you that info
<roptat>but it's not mandatory
<kondor>I know some of the bigger ones are not
<kondor>Ok, i'll try
<roptat>oh, interesting how metfrag doesn't have a pom file ^^
<roptat>well, it has a list of dependencies in lib/, in the form of jar files...
<jackhill>Oh, scm is source-code-management or something, not scheme. Oh well ;?
<jackhill>er, :/
<roptat>out of which, I think we have only jdom and javax-mail ^^'
<roptat>lots of packaging ahead it seems :)
<roptat>jackhill, confusing :D
<kondor>roptat the most importsnt metfrag thing is the metfrag command line
<kondor>and that depends on lib
<roptat>oh, we have commons-codec too
<kondor>aaand that depends on java cdk
<kondor>which is huge
<roptat>wow, old software too, freehep's last release is in 2010
<kondor>If it ain't broken, don't fix it :D
<roptat>but you'll probably have fun times trying to build it
<kondor>I tried already month ago .. rmember there was some weird package from sourceforge i could not get my hands on
<kondor>When i have nerves, i'll try again
<kondor>or maybe just make a nongnu package :)
<roptat>maybe we should have a guix-bad channel somewhere, for these packages that are just too hard to build but are still free software
<rekado>I have a lot of those packages in (bimsb packages staging) in guix-bimsb
<kondor>rekado don't we all :)
<efraim>And guix-science
<guix-noob>hi, anyone know why my pc might be immediately waking after suspend, or where I can find system logs related to suspending in Guix?
<kondor>roptat we need our bruce perens and eric s raymond :D
<ylph>hey here ! I'm totally new to guix. I've just read that "guix pull" only updates my account. If I want to update all the system, that means that I must to "guix pull" on every account ?
<kondor>guix-noob this is just a guess .. maybe you spilled a drink full of caffeine over your pc?
<kondor>i should shut up
<kondor>good night everyone
<guix-noob>haha, decent theory but no drinks have been spilled
<guix-noob>haven't had the issue with other gnu/linux OSs in the past
<lfam>guix-noob: What kind of computer are you using?
<kondor>ylph you are on the right track
<lfam>guix-noob: My understand is that suspending and hibernation require support for the specific hardware
<lfam>kondor: They left :/
<kondor>ylph also note update /= upgrade
<lfam>For questions like that, kondor, I try to help them and also to find out what they read
<kondor>lfam well, there are public logs
<guix-noob>desktop PC, intel motherboard (i5 6500)
<lfam>Sometimes people read bad information on, like, a random message board
<guix-noob>suspending *happens*, it just wakes up immediately afterwards
<guix-noob>cat /sys/power/state indeed shows 'mem' available
<lfam>I was about to ask if you know about sysfs
<guix-noob>yeah doing it in that way has the same effect as loginctl suspend: pc turns off and immediately back on
<lfam>Are you using a desktop environment? Or just X? Or wayland? Or "headless"?
<guix-noob>X with i3 window manager
<kondor>lfam i'm just too slow typing from my phone :)
<lfam>I would check /var/log/messages, guix-noob
<nckx>guix-noob: ‘mem’ is hard-coded in /state, but it should always work.
<lfam>X with i3 is like the platonic ideal of "it should work"
<lfam>I would see if there are any other logs files with recent messages in /var/log
<lfam>Also, what kernel version are you using?
<nckx>guix-noob: Suspending writes stuff to /var/log/{messages,debug} here. Anything interesting there?
<guix-noob>i do see some stuff in /var/log/messages, kind of long but I am inspecting it now
<lfam>I saw /var/log/debug, but it seems similar to /var/log/messages. Do you know the difference nckx?
<nckx>Around ‘ACPI: Waking up from system sleep state S3’, perhaps, although my hopes aren't high.
<nckx>lfam: messages should be a strict subset of debug.
<nckx>So everything should be in debug but messages is often enough.
<lfam>I see
<nckx>And more pleasant to read.
<nckx>(If you mean ‘why’, I don't really know -- tradition? -- seems wasteful...)
<guix-noob>I see both the sleep and the wake state in messages with little in between
<guix-noob>will check debug now and see if there's more
<lfam>I just meant "what"
<lfam>guix-noob: If there's nothing there, you might try an older kernel (if you are using a new one, or vice versa), and also googling something like "linux suspend doesn't work $name-of-motherboard"
<lfam>These features do break in linux from time to time
<lfam>We offer a lot of different kernel series and they are all "up to date"
<guix-noob>I think this is the relevant snippet if you want to look
<guix-noob>I am using the mainline kernel for hardware reasons unfortunately (gpu causes freeze on boot without amdgpu blobs)
<lfam>Weird there is a message from wpa_supplicant even as the CPUs are being turned off
<nckx>Nothing there, as I feared.
<nckx>lfam: Just buffering/delays in the logging.
<lfam>I figured
<lfam>guix-noob: Does it work with other distros? If so, I would also compare the kernel versions with ours
<nckx>You can see the active wake-up sources with ‘cat /proc/acpi/wakeup’. You can toggle each state by echoing it to the same file, e.g., ‘echo EHC1 | sudo tee /proc/acpi/wakeup’.
<nckx>That might help narrow down the cause.
<lfam>guix-noob: It's okay you're using regular linux, but what version are you using?
<guix-noob>yeah I'll check that with a live usb if i don't get it working pretty quickly
<guix-noob>tried killall wpa_supplicant and then suspending because of the odd messages from it in the log but that did not work
<guix-noob>though it may have just restarted itself not sure
<lfam>I think nckx is right, and that the messages were just slightly out of order
<lfam>Did you see the messages about the "wake-up sources"?
<Sharlatan>Hi all
<guix-noob>I don't see anything about wake-up sources
<nckx>(I've spent *a lot* of time looking at Linux PM messages. Things don't reflect reality at that level, since things assume a boring ‘running system’.)
<nckx>guix-noob: What do you mean?
<lfam>guix-noob: I think you were offline when the message was sent:
<guix-noob>ah, I thought you meant in the log sorry. yeah I missed that
<lfam>Hi Sharlatan
<lfam>Speaking of kernel stuff... 5.11 is on the kernel-updates branch for whoever would like to test!
<guix-noob>there are several devices enabled there. is it safe to just start turning stuff off to test?
<lfam>I would be prepared to not be able to wake up the system :) Like, save your work and all that
<guix-noob>that should be fine as long as nothing persists after reboot here, does it?
<Sharlatan>I'd like to continue adding packages for Astronomy #46375 #46492 are there any concerns to accept them?
<guix-noob>heyy, success! turning off the device XHC allows a proper suspend
<guix-noob>only 'XHC'
<nckx>That's USB 3. So something's waking you up via USB, hmm.
<guix-noob>don't see an XHCI anywhere
<lf94>Some weird Ethernet USB thing
<lf94>(Just randomly shouting an idea)
<nckx>Apparently XHC is an alternative abbreviation for XHCI
<lf94>not surprised
<nckx>It's just weird because my X230T shows ‘XHCI’ fully.
<lf94>I think more than not, it's XHCI.
<guix-noob>nothing plugged into the ethernet jack at the moment, and the only usb devices are my keyboard and mouse
<lf94>Maybe mouse movement?
<guix-noob>maybe I relocate them to usb2 ports and try then?
<nckx> says you're right, lf94. ‘XHC’ is the 4-letter code for ‘XHCI’ -- of course!
<lf94>guix-noob: just try without mouse
<lf94>I'm curious
<nckx>guix-noob: What lf94 says, and if that doesn't fix it, try ‘sleep 10; echo mem ...’ and unplug your keyboard.
<lf94>So all day I have been thinking about why I would use guix now for software development and deployment...
<lf94>I think I spent a good hour with just my eyes closed thinking on it
<nckx>And did you reach enlightenment?
<lf94>Maybe it's because my usecase revolves around the company I work for, who uses debian Docker images
<lf94>No unfortunately I couldn't think of a good "model", or "workflow"....
<lf94>I think we would need to setup a custom channel with our custom packgaes
<lf94>This makes me think: we already do this with apt.
<lf94>We have a apt repository for our custom software
<Sharlatan>I would say from DevOps point of side - our dev team use bandle liek brew -> insall asdf -> asdf install python -> asdf install poetry -> poetry install packages -> poetry make requirements -> pip install requirements
<lf94>Then I think: well we use a VPS to deploy to, which uses a custom debian image
<guix-noob>all right, looks like it is the keyboard causing the trouble
<lf94>So how does guix help here...Well, guix deploy would deploy a "custom image" each time
<lf94>(Or using guix pack)
<nckx>guix-noob: Interesting. So assuming other distributions don't have this problem, maybe something changed in the USB HID driver (wild guess)?
<lf94>So what keeps pulling me back is: ok, everything guix offers, we can already do with existing software
<lf94>But that means guix offers one uniform language to deal with
<nckx>You can always disable it in wakeup if you don't care about tapping a key to wake up.
<lf94>which is a huge plus to me
<lf94>But it's too much of a big change overall I think for the company.
<guix-noob>I don't mind pressing the pcs power button so i guess I'll try to disable it
<lf94>Then I think about ok, if not for a company, then what about my own projects?
<guix-noob>in fact I didn't know you could wake up a suspended machine with keyboard
<guix-noob>has it been like that forever? :)
<lf94>guix-noob: it's not surprising lol
<Sharlatan>lf94: uses Guix
<lf94>I tap my keyboard to wake up my machine...
<lf94>Sharlatan: thanks!
<lf94>So my own projects: the only thing that needs "deploying" to a remote server is my own website, and my "blog"
<lf94>So what would I do? I imagine I create packages for these two projects, and remote install them
<lf94>but they are so simple to the point where, why not just `scp` them over....
<lf94>(which is exactly what I do.)
<nckx>That's our very own cbaines, although I think I remember them saying it's ‘not really the government’, just a test/side project, but don't quote me on that.
<nckx>lf94: If you haven't done so yet you might send a similar question to help-guix, ask people how they use Guix in situations similar to yours.
<nckx>And if it's not a good fit that's fine too‌ ☺
<kondor>nckx hahaha, then one can say French and Luxembourgish goverments use guix too
<lf94>This govuk project is very useful to look at...
<kondor>given that the academia is funded by public money
<lf94>nckx: Yeah I may ask there next :)
<kondor>soon guix is going to take over the world
<lf94>Maybe my issue is I need to see more projects using guix.
<lf94>My mental model is still young...
<kondor>guix system reconfigure world
<nckx>guix deploy my pretties
<Sharlatan>I support astronomer to migrate his team to Guix but lack of software is a magore stop for now
<lf94>Is cbaines a guix legend
<nckx>Sharlatan: sorry your question earlier got lost. Yes! More packages are very welcome. Sorry that our lack of reviewers might have implied otherwise.