IRC channel logs


back to list of logs

<ngz>raingloom: About libsignal-protocol-c: if inputs check and openssl are required for tests, shouldn't they be native-inputs instead?
<ngz>raingloom: Bonus points if you can replace (assoc-ref inputs "gtk+") with (this-package-input "gtk+"), using gexps.
<ngz>Have to go, bye.
<char>If a build procedure assumes that cc should point to gcc, what is the best to to tell guix to use gcc when cc is invoked?
<rekado>char: it’s up to the build system. Many Makefiles will define a CC variable that can be set to specify CC=gcc.
<rekado>if they insist on invoking ‘cc’ without any indirection you will need to patch the build files.
<char>rekado, would substitute* be sufficient be okay, or is it best to use patches.
<char>it is invoked directly.
<sam_>that should be patched
<char>thanks sam_
<SeerLite[m]>Hm so there's no easy way to just symlink gcc to cc during the build?
<sam_>that's a cheat anyway because they likely don't need gcc anyway
<sam_>but also you want to support specific gcc versions
<Guest24>I would like to see the value of a variable, say `%desktop-services`. I expected to be able to start the guix repl and then view the variable by typing just `%base-services` but I get an error for an unbound variable.
<SeerLite[m]>Guest24: Guix-specific variables are defined in modules, usually the name makes it intuitive enough to figure out which. I think those two are either in (gnu services) or just (gnu)
<SeerLite[m]>So you'd have to (use-modules (...)) first to see them
<SeerLite[m]>sam_: What do you mean by "they likely don't need gcc anyway"? And also what do versions have to do with cc -> gcc? Sorry I don't know enough about gcc
<sam_>SeerLite[m]: if they're hardcoding 'gcc', it means that you can't force even e.g. x86_64-unknown-gnu-gcc-11.3.0 or whatever
<sam_>(vs say, 10.3.0)
<sam_>SeerLite[m]: but also, their code probably works with Clang and such anyway.
<Guest24>thanks SeerLite[m] I got it now
<SeerLite[m]>sam_ Hm, alright I think I get it. Thanks
<drakonis>i'm currently investigating the implementation of hooks in build systems for adding extra steps to builds, such as invoking pytest after a python-build-system
<drakonis>which allows recurring occurrences of certain steps to be converted into procedures and reduce code duplication
<drakonis>are hooks too similar to adding a new build phase?
<drakonis>anyhow, convert non exclusive build steps into hooks
<nckx>the_tubular: I was responding to ‘there's a cool systemd feature which I don't know if you can use in Guix yet’. That odds are low is all I can say without knowing which feature.
<the_tubular>Can shepherd handle parelization yet ?
<vagrantc>of what?
<the_tubular>Start services simultaniously
<the_tubular>As far as I know, shepherd doesn't do this. Not the most usefull feature, I agree but still something that is cool to see
***califax- is now known as califax
<KarlJoad>The default audio server on Guix System is pulse right now, right?
<the_tubular>We should reject lennart poettering to the very end :P
<nckx>No, we should not.
<nckx>the_tubular: Nope, no such feature yet.
<the_tubular>It was a joke sorry :(
<nckx>the_tubular: I was pretty sure it was, and sorry, but irony is dead and systemd haters killed it.
<the_tubular>I meant no systemd and no Pulse -> Shepherd and Pipewire
<the_tubular>It wasn't Ironic, I really feel they are better alternative to both systemd and Pulse ^^
<nckx>Let's come even close to rivalling systemd before we claim to reject it ☺
<nckx>the_tubular: And that's fine, but quite different from ‘reject $author to the very end’. Forgive my pedantry. It's quite necessary.
<the_tubular>Yeah it was a bit strong :P
<nckx>People joke about emacs and vi but boy. ☺
<the_tubular>Talking about emacs, been trying it for like 2 weeks and really starting to like it
<the_tubular>I was really misunderstanding what emacs was before
<the_tubular>I though when everyone compared it with VI, that it was a text editor
<KarlJoad>drakonis: I could not find where pulse was defined as a service in the Guix source. Do you know where it is?
<drakonis>just a moment
<nckx>KarlJoad: (gnu services sound).
<nckx>Note that it ‘just’ configures Pulse/ALSA. It doesn't run a process.
<nckx>Sorry drakonis 😉
<nckx>the_tubular: Similar story here, and I never even *really* liked vim whilst I was using it.
<nckx>The power of preconceptions (and overzealous advocacy).
<the_tubular>Same, I used to use vis a lot
<KarlJoad>That's what I was missing. I don't know how I missed that.
<the_tubular>Is it a plan to change guix default audio to pipewire ?
<the_tubular>in the plans *
<nckx>There's no plan either way. I personally think it's likely, for non-policy reasons like ‘it sounds interesting’ and ‘we are hackers who like shiny new things’ and ‘other downstreams will start to use it’.
<KarlJoad>I was looking into it because I am interested in PipeWire, but am stuck on NixOS right now. I would like to switch to Wayland+PipeWire in the future. Just need Emacs to support GUI emacsclient windows on Wayland.
<the_tubular>Umm emacs and wayland ...
<nckx>the_tubular: If PW covers more default use cases than PA (thinking specifically of real-time audio here), why not.
<the_tubular>I'm trying to use exwm, I wonder if that's going to support Wayland
<nckx>Uh, is my emacsclient GUI not native? I honestly don't know.
*nckx pkills Xwayland.
*nckx ‘nope’.
*nckx restarts emacs.
<the_tubular>Wait, what ?
<KarlJoad>Yeah, emacsclient expects to open on an X display. On my system it expects display :0.
<KarlJoad>Found that out when I updated my NixOS laptop.
<the_tubular>So you think it will work with wayland in the future ?
<KarlJoad>I think it should. Eventually. Emacs is having development for a pure GTK implementation, which might allow that to happen (from what I've heard).
<robertmcatee>Y'all should really use emacs -nw from the tty who needs a window manager
<the_tubular>As a very new emacs user. My biggest fear is that the future looks "bleak" for emacs
<robertmcatee>Jokes aside emacs Org-mode changed my life
<nckx>Now HexChat has the stupid default ⨯ cursor.
<nckx>KarlJoad: I'm using the pgtk version now, so it's not working without X yet (or at least wired up to be).
<nckx>robertmcatee: Running a terminal for each Emacs window??? OMG bloat!1
<nckx>s/terminal/VT/ before I get flamed for owning 0 VTs100.
<nckx>It's on the to-do list OK.
<KarlJoad>Someone managed to get Emacs working on Wayland, with a lot of work.
<KarlJoad>But it is not default by any means.
<the_tubular>Good read KarlJoad
<the_tubular>Still need hyper threading support too :P
<robertmcatee>So I have a GUIX question: Anyone running a kuberbetes cluster with GUIX? Deployed my first server to vsphere today, want to move away from Fedora Core OS.
<nckx>KarlJoad: Thanks for the link.
<nckx>robertmcatee: You might also want to ask via mail to help-guix@ to reach a wider (and less time zone dependent) audience.
<the_tubular>Ohh also related to emacs, I've seen this today :
<the_tubular>Looks a bit slow, other than that, it looks awesome
<robertmcatee>nckx: ty, will do,
<nckx>* It's a habit.
<robertmcatee>I am also trying to understand how to handle my own substitutes and/or create a build farm.
<xelxebar>Is there any particular reason that guix shell doesn't shove $GUIX_ENVIRONMENT/share/man in MANPATH??
<nckx>xelxebar: It does. You need to include a consumer, e.g., man-db.
<nckx>robertmcatee: A substitute server can be as simple as running ‘guix publish’ on any Guix host. It will serve all store items. Setting up a build farm can be done with Cuirass, but that's a bit more work and not something I've done from scratch myself.
<nckx>Because of Cuirass' complexity, my own substitute server is closer to running ‘guix build $everything’ in a while loop… :)
<robertmcatee>I have been reading about guix publish. Had me wondering if people were using it that way. I think Cuirass is not within the length of my cable tow right now. Thanks for the feedback on your experience.
<singpolyma>Can a substitute server be done without guix publish? Just with a static server?
<the_tubular>nckx cuirass is another project I need to checkout
<xelxebar>nckx: Oh, neat. So the search-paths mechanism is how packages export environment variables into a profile.
<the_tubular>nckx I wonder what's the lowest spec I could go with for a buildfarm using cuirass
<nckx>(→ work; HAND everyone.)
*the_tubular Confused.
<jgart>singpolyma, re: static server: that would be cool
<singpolyma>jgart: yeah, for sure, I just don't know if the required layout is documented. Everything I've found so far just says "use guix publish"
<char>sam_ how does patching support different gcc versions better than symlink? also I do not think a specific version is needed.
<jgart>I'd like to serve substitutes via darkhttpd
<sam_>because you'll be respecting the CC environment variable
<sam_>and hence allow setting any version
<jgart>singpolyma, I had made a service for darkhttpd:
<jgart>but I like the simplicity of just using darkhttpd from the cli
<singpolyma>jgart: why not, right? Unless the substitutes protocol is "smart" and needs something a static server can't give it
<jgart>the static server should be modular
<jgart>maybe that change is just a few S-expressions away
<char>sam_ in my case there is no cc variable
<KarlJoad>the_tubular: I actually looked into that on my Epyc computer. Spun up a VM, and found I needed at least 2GB of RAM and 2 vCPUs to make it usable. But building the hello package took 3 hours.
<nckx>the_tubular: ‘Have a nice day’.
<nckx>The substitute protocol isn't bidirectional or ’smart’, it's just HTTP, but that doesn't mean you can run a static HTTP server. Clients ask for .nars, not individual files. They have no way of knowing which files to request. You'd have to create an ‘index file’ ahead of time, at which point you're reinventing nars very poorly. Just proxy guix-publish and save or cache the result (nars).
<nckx>A static server wouldn't be simple.
<nckx>That doesn't mean guix-publish's job needs to be done at request time, it can be done beforehand, but it's not optional (and you need more storage to store the many gigabytes of nars).
<the_tubular>KarlJoad: Ohh yeah,3 hours for hello ... Rip my dream of running cuirass in a small VPS somewhere
<raghavgururajan>Hello Guix!
<nckx>Building hello does not take 3 hours.
<nckx>Hi raghavgururajan!
<the_tubular>Then what would be the minimal spec for running a small scale buildfarm nckx ?
<porcupirate>building `knights` started failing in December. CI log says it's because auto_ptr is deprecated. Until I find the repository or someone maintaining a fork, should I patch the source not to use it, or tell g++ to ignore -Wdeprecated-declarations warnings?
<porcupirate>Presumably I would follow advice at
<char>Do dynamically linked libraries need to be propagated inputs?
<nckx>porcupirate: Or just -Wno-error?
<nckx>the_tubular: There's no answer to that question. If you want to build all packages, answer is ‘whatever ungoogled-chromium happens to need to build today’, or some similar ridiculous package. ☺
<char>nckx, I did not think so, but they are not being found
<the_tubular>I know very little about cuirass, I'd just build the package I personally use, around probably 2000
<nckx>And that still depends on how many cores you give it. I think a single core with 8 GiB should be able to build everything Guix offers, slowly.
<nckx>the_tubular: Oh, are you talking about *only* Cuirass itself?
<nckx>That I don't know.
<the_tubular>No, not talking about Cuirass itself
<the_tubular>Talking about building around 2000 packages, most are very minimal. But I guess building gcc and stuff is unavoidable
<nckx>char: propagated-inputs and inputs are identical at build time, the only difference is how they are added to the profile or subsequent builds after the package has been built. They can never fix build errors in the package in question.
<char>The libraries cannot be found at run time. Is there some environment varialbe that needs to be set?
<nckx>the_tubular: It's just impossible to answer that question. I'm pretty sure 8 GiB of RAM can build everything in Guix (assuming the system is sane, with swap etc.), the question is ‘by when’.
<char>LIBRARY_PATH is correct
<nckx>char: Maybe. It depends on the error.
<nckx>Before you mess with environment variables: do you have pkg-config as a native input? Many build systems use it.
<nckx>As a rule you don't have to set any environment variables to build a sane package.
<char>I do have pkg-config. "error while loading shared libraries: cannot open shared object file: No such file or directory"
<the_tubular>Mind if I ask what is the spec of yours building machine ?
<porcupirate>Why does ungoogled-chromium take so long? Is it because of all the included libraries?
<porcupirate>each of which has to be built from source
<apteryx>porcupirate: browsers like to build the world as bundled libraries
<porcupirate>So we can theoretically make ungoogled-chromium build faster by unbundling its libraries?
<apteryx>at least to some degree yes
<porcupirate>But that would be difficult because ungoogled-chromium uses an oddball build system?
<nckx>porcupirate: That, and C++, and the final linking stage of a *huge* collection of object files.
*the_tubular flashbacks building firefox almost everyday on gentoo
<porcupirate>Sounds like it could be a lot more modular. And it would be a nightmare to modularize...
<nckx>the_tubular: A very modest i5-6402P with 16 GiB of RAM. It has 4 cores, so if you're very unlucky and they all demand much RAM, it starts swapping, but does so to zstd zswap so the effect is quite limited.
<the_tubular>Umm, I might give it a shot on a VPS, but I have doubts
<the_tubular>Like 4vCPU 8Gb Ram
<char>nvm it is working, i have no idea what i changed. Ignore me.
<nckx>char: Strange, that file exists in the right place. Please share the complete file you're trying to build.
<nckx>Even better.
<nckx>the_tubular: That's definitely not much RAM/core. The annoying thing is there are only a few packages that need that much, and it will be wasted on the others :)
<the_tubular>Yeah, as I said GCC is probably the heaviest package I plan to build
<the_tubular>I'm staying far away from any modern web browser and libreoffice
<nckx>Mine used to have 8 GiB and it never died, but it did waste a lot of time swapping on a handful of packages.
<porcupirate>My daily driver has 32GiB and no swap :|
<nckx>the_tubular: You'd be surprised at what pulls in WebKit and its too-many forks.
<porcupirate>It took more than a day to build ungoogled-chromium. I'm surprised how little time CI took...
<nckx>I don't get people who don't add swap. Sounds like a waste of RAM to me. But they do them, maybe I'm just too obsessed with mine.
<nckx>porcupirate: CI is an absolute beast.
<the_tubular>Cl ?
<the_tubular>C lang ?
<nckx>I'm off, for the day this time. Have a nice day all.
<porcupirate>Continuous Integration
<the_tubular>Ohh that's and "I" I read "L"
<porcupirate>Sometimes serif can be useful I guess...
<the_tubular>Goodnight nckx :)
<the_tubular>Or good day ?
<porcupirate>Correct me if I'm wrong, IIUC excessive swap can damage SSDs. Am I mistaken?
<porcupirate>And even on an SSD, swap is slow, correct?
<KarlJoad>In theory, yes. Excessive swapping can cause damage. But the question is how long and how much. Because swap is limited in size, the SSD should be able to wear-level the writes nicely (if it even reaches the actual NAND cells).
<the_tubular>That's pretty fair
<the_tubular>They are some better SSD that can handle more read/write too
<KarlJoad>You would have to do some pretty impressive writes to an SSD to cause noticeable damage to the longevity of the disk.
<porcupirate>Is it better to have a swap partition or a swap file?
***gmodena_ is now known as gmodena
***modula is now known as defaultxr
<KarlJoad>porcupirate: In theory, the effect should be the same. You are giving blocks of your disk to swap. There may be VERY minor performance differences. But swap files can be better because they can be resized. Swap partitions are a bit more permanent.
<florhizome[m]><the_tubular> "Ohh also related to emacs, I'..." <- There is also the emacs–webkit dynamic module which sounds more promising imo
<florhizome[m]>And what’s the difference to zram?
<the_tubular>Doesn't it depend on the file system used KarlJoad ?
<the_tubular>Apparently Swap File don't play nice with CoW FS
<the_tubular>I'll check this out florhizome[m] :)
<porcupirate>Perhaps I should consider adding a swap file to my guix configuration...
<KarlJoad>the_tubular: Sort of. If you use LVM or BTRFS then things get wonkier.
<KarlJoad>florhizome[m]: zram makes a compressible "SSD" out of RAM. So swapping there may be more efficient, but does not expand your virtual memory as much as an SSD. But, you may swap faster.
<florhizome[m]>That’s too confusing for this time of the day lol
<the_tubular>Is this the official git repo ?
<florhizome[m]>So zram pretends my ram is an ssd to be able to compress it and use it as swap vice versus
<florhizome[m]>*vice versa
<florhizome[m]>the_tubular: yup. akirakyle has been hanging out here lately, too.
<the_tubular>Building a Web Browser is a huge undertaking, but seeing how slow the developpement is I don't think I will use it too much
<the_tubular>Web browser is the sandbox between me and the web
<KarlJoad>florhizome[m]: From my understanding of it, yes.
<the_tubular>And that feels risky to use, to me
***charles_ is now known as char
<florhizome[m]>I want to try build hyperbolas iceweasel uxp somewhen
<the_tubular>florhizome[m] that being said, that looks like an awesome project.
<the_tubular>Is there a way to try it on guix ?
<xelxebar>I have a habit of always using #:select when pulling in modules; however, most guix code just pulls in all exports unconditionally. Am I being silly? Is there some concrete reason to avoid overuse of #:select? Or is this mostly a stylistic choice?
<avalenn>xelxebar: I think it is just an habit. Coming from other languages I am disturbed by the unprefixed import of symbols by default so I understand you very well. I don't think there are other reasons than stylistic ones.
<reily>Hello, there is currently a open bug ( that prevents any packages using clojure-build-system from building. I submitted a patch for this around three weeks ago, but as far as I can tell it has gone unseen. What is the proper protocol to get this patch applied without spamming maintainers? It is a very simple change.
<mothacehe>hey guix!
<rekado_>reily: thanks, I’ll apply it.
<reily>rekado_: Thanks! There is also another patch I have thats been waiting to be applied for a while (, but that one is a bit more involved.
<rekado_>reily: I’m on it
***sneek_ is now known as sneek
<xelxebar>Heh. Looks like `guix style' still tries to do something when run without arguments.
<florhizome[m]><the_tubular> "Is there a way to try it on guix..." <- yes , package it :)
***Guest4659 is now known as roptat
<abrenon>hi guix
<rekado_>according to IT the network problems have been fixed yesterday night
<user_oreloznog>hello guix!
<attila_lendvai>crontab -e doesn't work for me. i get a scheme error/backtrace when saving from: (copy-file "/tmp/crontab.5235" "/var/cron/tabs/alendvai") the issue is /var/cron doesn't exist. what am i doing wrong?
<attila_lendvai>i want a user cron, not a root one
<xelxebar>Man, the J package submission has been a slow back and forth for half a year. Just finished up a huge improvement on the patch. Feel like sharing, so if anyone is curious:
<abrenon>I managed to get my beamer theme to be included in a guix environment, with the proper texlive packages so that $GUIX_TEXMF is defined, but pdflatex still doesn't find my theme : (
<abrenon>I really wonder what I could be missing
<attila_lendvai>ok, so i've learned that i should use mcron, and job scripts in ~/.config/cron/foo.guile. `mcron --schedule 3` prints my (job '(next-minute) ...) cron jobs as expected, but they are not run.
<attila_lendvai>`sudo herd schedule mcron` doesn't print it
<attila_lendvai>the manual doesn't say anything about root vs user cron jobs
<asdf-uiop>hello guix!
<xelxebar>What are some interesting channels out there? I learned about Guix Past not too long ago; interesting in others.
<attila_lendvai>so, i need to start mcron as my user for it to run my user's cron jobs. now, on to the question of how.
*attila_lendvai is annoyed and adds a note to his list of what's missing from the manual
<attila_lendvai>i assume the right way is to add mcron --daemon to ~/.profile, right?
<rekado_>abrenon: can you share more details?
<abrenon>I'm sorry for asking help again after you spent so much time yesterday helping me : S I'm not sure what details could be useful or relevant
<abrenon>I now get an environment with texlive, I checked that GUIX_TEXMF is defined, my beamerthemeLIRIS2018.sty is within the right folder
<abrenon>along with the "official" themes
<abrenon>and when I call pandoc to transform my .md presentation into a PDF, with theme: default or theme: Copenhagen it works, and with theme: LIRIS2018 it cries that beamerthemeLIRIS2018.sty is not found
<abrenon>I've searched for the file by copy-pasting the error message to make sure I didn't make any typo, it's still found within $GUIX_ENVIRONMENT
<abrenon>and I'm working in a --pure env, to be sure that the pdflatex I'm using sees everything that was put in the environment
<abrenon>I don't really know what to try next, I'm assuming the themes must be somehow listed in one of beamer's own files ?
<xelxebar>abrenon: Maybe a simple-minded suggestion, but have you tried stracing pdflatex to check whether it really has picked up the correct search path for your sty file?
<abrenon>no I haven't, thanks for the suggestion
<abrenon>not sure what you mean though, if it finds Copenhagen, surely it must be looking into that directory, right ? I'll try it anyway
<xelxebar>Yeah, jumping in the middle here, so I don't fully grok your setup, but if Copenhagen is a sibling of beamerthemeLIRIS2018, then you're probably right.
<abrenon>I hoped so, but it's apparently not enough ^^'
<xelxebar>Is it odd that specifying LIRIS2018 ends up looking for the file beamerthemeLIRIS2018.sty? Why the "beamertheme" prefix?
<abrenon>that's a beamer thing
<xelxebar>Huh. Never dove into beamer that far. Noted.
<xelxebar>Does that mean that there's a corresponding beamerthemeCopenhagen.sty alongside the LIRIS2018 file?
<abrenon>for instance Copenhagen is defined in beamerthemeCopenhagen.sty, placed in …/share/texmf-dist/tex/latex/beamer/
<abrenon>absolutely : )
<xelxebar>This is dirty, but what happens if you swap the filenames?
<abrenon>hmmm, ok, possibly a filename issue
<abrenon>(I didn't want to have to tweak the guix expressions generating the environment because my guix-foo is far from being fast enough)
<xelxebar>Oh, neat. You've defined an expression to build your beamer presentation?
<abrenon>no, not even that
<abrenon>skilled people here discouraged me ; )
<rekado_>it would probably be good to figure out what does the searching here
<xelxebar>Sorry, I'm making you explain things for the thousandth time again, prabably.
<xelxebar>texlive uses kpathsea for path searching, IIRC
<rekado_>yes, it does
<abrenon>they had a point: I'd be much more efficient writing a Makefile and simply generating an environment where I can compile my MD presentation (which could then be turned into a container for CI and auto-generation on the git forge)
<rekado_>but it’s important to be sure that this is in fact happening here
<rekado_>you can set ‘export KPATHSEA_DEBUG=100’ or similar to see what files it encounters
<rekado_>on wip-texlive and version-1.4.0 we have fixes to the behavior employed by kpathsea when encountering directories that only contain symlinks
<abrenon>ahh so that's what kpathsea is for, I've seen the name when trying to use texlive-base instead of the whole texlive (and it complained about cmr10 file, but that's not my goal RN, I can make it work with the whole texlive)
<abrenon>oh, thanks for the debug tip
<rekado_>that problem you mention: it’s fixed on wip-texlive and version-1.4.0
<rekado_>kpathsea employs a strange hack to decide when to recurse into a directory
<abrenon>from within the strace xelxebar suggested, it seems it doesn't even try to look into $GUIX_TEXMF but remains in the current folder for some reason
<rekado_>it’s plain wrong on Guix directories
<abrenon>is it ? that's great
<abrenon>I didn't think it could be a "bug", I was just thinking I was missing a package
<rekado_>strace is *very* detailed and may have a little too much noise
<abrenon>so I can still adjust that later when I've figured how to make it find my beamertheme
<rekado_>you may find that it searches other directories later.
<abrenon>it looks for something called textcomp.sty
<abrenon>then textcomp.cfg within PWD
<abrenon>and then it repeatedly tries to open ./beamerthemeLIRIS2018.sty and fails
<abrenon>well, thanks for the fresh info and tips, I'll take a break and start again later
<abrenon>aren't there any other standalone beamertheme guix packages to your knowledge ?
<abrenon>see you
<rekado_>abrenon: search paths are very inefficient. It’s a common pattern in strace output to see lots of failing attempts.
<rekado_>(that’s what prompted the hack to use an cache to avoid having to search every library on every directory in the RUNPATH)
<ennoausberlin>Hi. I do my next attempt to produce python package definitions. I could create one for python-starlette. The next I try is python-fastapi, which depends on starlette. How can I tell the fastapi package to use the starlette.scm from my file system?
<rekado_>ennoausberlin: put them in the same file
<rekado_>that’s the easiest
<rekado_>otherwise you’d have to learn about Guile modules
<ennoausberlin>rekado_: OK. I will give it a try
***daviid` is now known as daviid
<ennoausberlin>rekado_: In the packaging tutorial it is mentioned, that I can contribute the package definition for - lets say - some missing python packages. Is it possible to open an issue on the tracker and just paste the content of the scm file there?
<rekado_>ennoausberlin: it’s possible, but not the preferred way of contributing
<rekado_>ennoausberlin: ideally, you’d have a copy of the Guix source code and make your changes there.
<rekado_>then you can generate a patch file from your changes, which we can directly apply without any manual work.
<ennoausberlin>rekado_: I have a clone of the guix repo on my file system. So I add the new package definition to ./guix/gnu/packages/python-xyz.scm and run git diff python-xyz.scm afterwards to generate a patch file. Where do I send the patch to?
<rekado_>better use ‘git commit’ to commit your changes (one package definition per commit), and then do ‘git format-patch -1’ (”1“ for the last commit; ‘2’ for the two most recent commits, etc).
<rekado_>the difference to ‘git diff’ is in author information and so on
<rekado_>the Contributing section in the manual has all the details, but the upshot is that you send an announcement to, wait for an automated response with a number, and then you send your patches to <number>
<rekado_>(the first message to guix-patches will be delayed; there’s no delay in the future)
<ennoausberlin>rekado_: That was the missing piece. Thank you
<rekado_>this makes it appear at<number>
<rekado_>once you’ve sent it, feel free to tell me the issue number, so I can take a look without delay.
<ennoausberlin>rekado_: I like the idea of reproducible and easy deployable builds. But most of my limited scheme/lisp knowledge comes from Andy Balaams excellent youtube channel. So I struggle often on guile and GUIX DSLs. I have now two package definitions in a combined.scm, but it only installs the last one.
<ennoausberlin>guix package --install-from-file=./combined.scm
<roptat>ennoausberlin, that's because guix builds the returned value
<rekado_>didn’t you say you have a copy of the code?
<roptat>a package is a scheme value, so the last package is the return value of your file
<roptat>you can return a list instead if you want to build both at once
<rekado_>when you added your packages there you can do ‘./pre-inst-env guix install this that’ to install both ‘this’ and ‘that’ as defined in your copy.
<roptat>I find the store gets corrupted very easily on power loss...
<ennoausberlin1>roptat: Thank you. I will try that
<roptat>had some issues with a derivation that contained null bytes... guix gc solved it for me though, that's nice :)
<ennoausberlin1>mothacehe: Is guix system reconfigure working on your system? Due to the gremlin issue I can add and update packages, but adding a user or a service is impossible
<ennoausberlin1>mothacehe: aarch64
<mothacehe>ennoausberlin1: i usually do not reconfigure arm systems. What's the grelin issue?
<mothacehe>ennoausberlin1: i missed that one, let me have a look!
<davidl>nckx: looks like vsftpd no longer supports ssl_tlsv1_2. When started it gives: 500 OOPS: unrecognised variable in config file: ssl_tlsv1_2. The old version works: guix time-machine --commit=634d9845a6b4e362f32ba369ae42851719455ba3 -- package -i vsftpd
<sash-kan>hi all! why does `guix lint` write about version `581.2` if the package version is `13.0`?
<xelxebar>sash-kan: Looks like that repo has a tag named vendor/less/v581.2.
<xelxebar>Notice the error message just says "can be upgraded to 581.2", meaning that `guix lint' thinks it found a newer version. In this case it's clearly mistaken.
<sash-kan>the artificial intelligence embedded in `guix lint `seems to me too helpful in this case.
<roptat>last call for comment, I'd appreciate if you proof-read the guix days announcement:
<roptat>I'll pushe this evening
<irfus>hi #guix! is the new 'guix style --styling=format' meant to replace 'guix lint'?
*xelxebar tips hat to roptat
<roptat>irfus, not at all
<abrenon>hi roptat ! great announcement for the guix days
<abrenon>it makes me wish I had something to present : )
<civodul>yup, that's exciting!
<civodul>while biking, i also thought that, since it's Guix's ten year anniversary, we should consider organizing "special events" throughout the year
<civodul>things like install parties
<civodul>i'll email the list
<abrenon>a small remark about the text itself, though it's more of a question really because I may well be wrong
<abrenon>an install party ? wooo ! that's wild ! it makes me feel like it's 2010 again
<abrenon>also, 10 years, already ? Oo
<civodul>yeah i never actually took part in an install party, but i think it's a powerful way to connect people around free software
<abrenon>so, isn't a "will" missing l. 94 of the .md (or am I missing some weird time concordance thing because the proposition is hypothetical and depends on an event in the future ?)
<abrenon>I would've expected "whether your talk will be part of"
<jonsger>civodul: holding our own "Tour de France" and getting intesting thoughts :)
<abrenon>also, I have a weird uneasiness about the "coming days" on the previous line, is it just me or can that expression only be used in reference to the present ? shouldn't it be "the following days" ?
<abrenon>you haven't ? it's a bit… weird actually I think ? not very good memories, a vague feeling of discomfort is all that remains over ten years later
<jlicht>is it appropriate to patch Cargo.toml files to relax semver requirements of dependencies? It seems the recent update to rust-clap-2 broke our git-absorb package
<civodul>jonsger: heh, sorta, but more like many tours in different regions of the world by different people!
<apteryx>hello Guix! Is it possible to use the new style in the presence of origin inputs?
<civodul>apteryx: hi! yes, but you cannot refer to them by label
<civodul>see for instance commit a21590dabfcef0aa008503ea981364b90750b07c
<wingo>10 years!!
<civodul>yes, that's a bit crazy
<civodul>which means that Guile is... getting old :-)
<civodul>but it was already more than 10 years old when we got involved i guess!
<mbakke>I worry about gexp performance and keep writing "old style" packages unless there are specific things that benefit from gexps; am I being overly cautious?
<xelxebar>Trying to build a package programmatically. Am I doing things sanely? (run-with-store (open-connection) (mlet %store-monad ((hello (package->derivation hello))) (build (list (derivation->output-path hello)))))
<apteryx>Guile was brought in GNU to compete with Sun's TCL. That says a lot about its age :-).
*jonsger finds Sun still present as stickers on expensive servers :P
<apteryx>civodul: thanks for the ref
<civodul>mbakke: i think "gexp performance" is not a problem per se, but in general we should be cautious about moving computation from the build side to the host side
<civodul>for example, this-package-input moves lookup to the host side, though it plays a negligible role in the overall performance of package->derivation i suppose
<xelxebar>Hrm. Worked for hello, but now for my custom package.
<xelxebar>Just returning #t but output path doesn't exist in store.
<xelxebar>blah. I need sleep. Later, Guix!
<nomad67>It’s my first attempt to use irc, please don’t throw me under the Gates of Hell if I am ridiculous.
<nomad67>I am trying to install guixsd on my machine, lvm2. I did manage to get Guix system init done with lvm mappings. When booting I get early guile prompt. All I can see:
<nomad67>GC warning: prhred_getattr_np or …
<nomad67>GC warning: Couldn’t read /proc/stat
<nomad67>it loads kernel modules, finds lvm group, says: 3 logical volumes … now active
<efraim>Everyone get ready! riscv64-linux support is going to land very soon!
*efraim is finally getting ready to push the patches
<civodul>efraim: woow, that's quite an achievement!
<nomad67>ice-9/boot-9.scm:1669:16 In procedure raise-exception: pre-mount actions failed
<efraim>just added the snippet to the manual saying its in "technical preview" mode and now checking to make sure I actually still need all the patches I wrote before
<nomad67>Any help appreciated.
<civodul>nomad67: hi! "pre-mount actions" is typically setting up device mapping, so mostly likely your LVM things
<abcdw>efraim: Yay! You rock!
<civodul>nomad67: the "GC warning" messages can be safely ignored (though they're annoying)
<civodul>could you share your confi?
*xelxebar All the cookies to efraim!
<nomad67>I will need to boot from installation media. Give me a sec.
<apteryx>efraim: oh! on time for the release?
<apteryx>it's exciting
<apteryx>civodul: is inheriting from a package in a different module always bad? this doesn't seem to be documented, and is in actual use without causing us problems it seems?
<civodul>apteryx: we should never do that
<civodul>it might work in some cases, but it's generally a bad idea
<roptat>abrenon, thanks for the remarks!
<civodul>more generally, referring from the "top level" of a package module to a variable in another package module should be avoided
<civodul>so it's not just "inherit", it could also be (define foo (do-something package-from-other-module))
<roptat>civodul, should I add something like "The Guix Days are part of the “ten years of Guix” series of events" to the blog post?
<nomad67>Boot issue. This is my config:
<nomad67>(use-modules (gnu)
<nomad67> (gnu system nss)
<nomad67>;;#:use-module ((gnu services) #:select (service-value))
<nomad67> (guix)
<apteryx>civodul: why is that so? it seems a severe limitation (avoiding to refer from the "top level" of a package module to a variable in another package module)
<nomad67> (guix build-system gnu)
<nomad67> (guix transformations)
<nomad67> (guix profiles)
<nomad67> (guix licenses)
<nomad67> (gnu services)
<nomad67> (gnu packages freedesktop) ; for wayland
<nomad67> (gnu packages xorg) ; for xorg-server-xwayland
<nomad67> (gnu packages gnunet)
<nomad67> (gnu packages admin)
<nomad67> (gnu packages usb-modeswitch)
<nomad67> (gnu packages web)
<nomad67> (gnu packages linux)
<nomad67> (gnu packages audio)
<apteryx>nomad67: could you please use a paste service such as in the topic?
<nomad67> (gnu packages pulseaudio)
<nomad67> (gnu packages wm)
<nomad67> (gnu packages gtk)
<nomad67> (gnu packages version-control)
<nomad67> (gnu packages file-systems)
<nomad67> (gnu packages certs)
<nomad67> (gnu packages terminals)
<nomad67> (gnu services xorg)
<nomad67> (gnu services pm)
<nomad67> (gnu services networking)
<nomad67>;; (gnu services virtualization)
<nomad67> (gnu services desktop)
<nomad67> (gnu services sound)
<nomad67> (gnu packages mtools)
<nomad67> (srfi srfi-1)
<nomad67>;; (srfi srfi-26)
<nomad67> (ice-9 optargs)
<nomad67> desktop
<nomad67> sddm
<nomad67> networking
<nomad67> audio
<nomad67> )
<nomad67>(use-package-modules bootloaders
<nomad67> emacs
<nomad67> emacs-xyz
<nomad67> )
<nomad67> (initrd-modules (append (list "mmc_block" "sdhci_pci")
<nomad67> %base-initrd-modules))
<nomad67> (host-name "precision")
<nomad67> (timezone "Europe/London")
<nomad67> (locale "en_GB.utf8")
<nomad67> (keyboard-layout (keyboard-layout "gb")) ;for the console
<nomad67> ;; Use the UEFI variant of GRUB with the EFI System
<nomad67> ;; Partition mounted on /boot/efi.
<nomad67> (bootloader (bootloader-configuration
<nomad67> (bootloader grub-efi-bootloader)
<nomad67> (target "/boot/efi")
<nomad67> (keyboard-layout keyboard-layout))) ;for GRUB
<nomad67> (mapped-devices (list (mapped-device
<nomad67> (source "vg0")
<nomad67> (targets (list "vg0-root2" "vg0-home" "vg0-store"))
<nomad67> (type lvm-device-mapping))))
<nomad67> ;; Assume the target root file system is labelled "my-root",
<nomad67> ;; and the EFI System Partition has UUID 1234-ABCD.
<nomad67> (file-systems (append
<nomad67> (list (file-system
<nomad67> (device "/dev/mapper/vg0-root2")
<nomad67> (mount-point "/")
<nomad67> (type "ext4")
***ChanServ sets mode: +o apteryx
<nomad67> (needed-for-boot? #t))
<nomad67> (file-system
<nomad67> (device (uuid "CD0A-9777" 'fat))
***nomad67 was kicked by apteryx (nomad67)
***ChanServ sets mode: -o apteryx
<abrenon>apteryx: oh, we should've told them to use a pastebin, they said that they didn't know IRC properly so this savage paste could've been expected
<apteryx>:-/. I hope they come back so that I can apologize and explain.
<abrenon>nomad67: you couldn't know but we usually use pasting services to share huge configs like that
<abrenon>(anything over one line, really)
<nomad67>I'm really sorry. A little unpatient.
<civodul>apteryx: it is a serious limitation, yes
<apteryx>nomad67: welcome back! apologies for the kick, it was to avoid spamming the channel with your config. We typically use for this purpose.
<civodul>one we can live with, but the most annoying part is that we can break things without immediately noticing
<nomad67>I completly understand. My apologies.
<apteryx>civodul: does the limitation stem from the module system of guile? is it documented as an issue somewhere?
<civodul>apteryx: i don't think it's documented, but it's quite natural
<civodul>Guile's module system allows for circular module references
<civodul>the (gnu packages ...) modules heavily rely on that
<civodul>but imagine Guile reads a.scm, which does #:use-module (b)
<civodul>then it reads b.scm, which does #:use-module (a)
<civodul>so far so good
<civodul>but now b.scm does (define something a-variable-from-module-a)
<civodul>at that point, "a-variable-from-module-a" isn't defined yet, because Guile hasn't had a chance to evaluate the top level of a.scm yet
<civodul>(only its define-module clause)
<civodul>thus you get: "unbound variable: a-variable-from-module-a"
<civodul>if you happen to load b.scm first, you might get a different error
<civodul>i prolly described it in more detail on the mailing list some time ago
<ennoausberlin>Is there any power management on by default? I configure a guix server on proxmox and from time to time the vm is suspended. Don't know how this can happen
<jackhill>civodul: (I guess I should reply on the mailing list, but…) 10 year celebratory activities sound great! I do wish we could kick this pandemic as it would make local workshops/install fests easier, but perhaps I can think how to do those online.
<jackhill>also I need to get back to guix activities. I have been ejoying an extended new years vacation though 😸
<apteryx>civodul: I see, thanks for explaining. I just tried to see how Python dealt with it: ImportError: cannot import name 'B' from partially initialized module 'b' (most likely due to a circular import) (/tmp/python-test/
<apteryx>so, similar situation
<Guest10>I am having trouble setting up a loopback device service. I have tried to copy the one from `gnu/services/base.scm` and another from an example config on github but neither work. Here is what I have tried with the error messages:
<ennoausberlin>Guest10: There were some issues recently on how to define static network devices.
<Guest10>this should help, ill try to apply this.
<apteryx>perhaps a good thing to have in the next release would be to have the phase modification primitives fail when they wouldn't do anything, e.g.: (add-after 'some-no-longer-existing-phase 'some-phase ...). Currently that's silent, invites shooting oneself in the foot.
<Guest10>I am still not able to define the loopback device. If anybody has this in their config I would appreciate to know how you did it.
<Tirifto>Hello! Would anyone happen to use darcs in Guix, or have experienced issues with programs not handling Unicode correctly? (I experience the latter whilst using the former, on a foreign distribution.)
<civodul>jackhill: yes, i'm kinda hoping it'll be possible to have activities in person by Spring in the northern hemisphere
<civodul>thinking about it, libraries too are a place that could possibly host events, at least where i live
<podiki[m]>same here (in the long lost "normal" times)
<podiki[m]>and hooray for 10 years of guix!
<nckx>Should we keep guile-emacs? I can't remember when I last saw it build.
<ngz>Hello. I get a strange error when I try to use python-matplotlib: "UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure."
<ngz>Does that sound a bell, somehow?
<ngz>(also python-matplotlib seems outdated, but it may not be related)
<apteryx>ngz: version-1.4.0 branch has this commit: gnu: python-matplotlib: Update to 3.5.1 and run tests in parallel.
<apteryx>we haven't turned on substitutes on the branch yet though
<civodul>apteryx: BTW, what are your thoughts on getting the branch merged on master?
<attila_lendvai>c2ffi has been lying there but i think it's ready for getting added:
<ngz>apteryx: OK. Thanks for this information.
<apteryx>civodul: we should first have it built (it's a world rebuild branch); I think rekado_ wanted to merge texlive related things too
<rekado_>it’s already done
<civodul>apteryx: yes, so whenever substitute coverage is good enough, at least on x86_64 i guess
<civodul>sounds like a plan!
<apteryx>alright! then I guess I'll have Cuirass build it
<civodul>and thumbs up for the texlive fixes :-)
<apteryx>which means I have to run this SQL query: update specifications set is_active = 1 where name = 'version-1.4.0';
<civodul>or just click on the thing?
<apteryx>not possible currently (I've deactivated the branch in the UI, so it's gone)
<jpoiret>hello everyone
<apteryx>jpoiret: hello!
<apteryx>civodul: do you know how to get a psql prompt? I'd need to know the user it wants and a password I guess
<jpoiret>i'll try to finish the installer patches this evening so that we can finally merge it before the first pre-release
<apteryx>jpoiret: awesome!
<civodul>apteryx: maybe not the smartest way to do it, but this works: sudo su - cuirass -s /bin/sh -c 'psql -U cuirass'
<apteryx>civodul: ah, thanks: $ sudo -u cuirass psql -U cuirass -l
<apteryx>or even just: $ sudo -u cuirass psql -l
<civodul>heh, that's smarter indeed :-)
<apteryx>OK, I could run the query with: $ sudo -u cuirass psql -c "update specifications set is_active = 1 where name = 'version-1.4.0';"
<apteryx>let's see
<apteryx>(it returned UPDATE 1)
<apteryx>cool, the branch has reappeared already
*apteryx grabs lunch
<nisha>Hi guix folks, I am trying to package a python application. When running `guix package` I get an error: Download error on [Errno -2] Name or service not known -- Some packages may not be found!
<nisha>however, pip seems to be able to find it: Getting page
<nisha>Found index url
<nisha>Looking up "" in the cache
<nisha>Request header has "max_age" as 0, cache bypassed
<nisha>Starting new HTTPS connection (1):
<nisha> "GET /simple/pbr/ HTTP/1.1" 304 0
<nisha> Found link (from, version:
<nisha>any ideas on how to fix this (or override the defaults)?
<jpoiret>there is no internet connection in guix builds
<jpoiret>are you using python-build-system? did you try using the python importer?
<civodul>apteryx: i've create this pseudo-bug to keep track of things to address for the release:
<nisha>I am using the python build system and just following the "hello world" example
<nisha>I don't know how to use the python importer
<jpoiret>what does your package definition look like? you can use to paste it
<podiki[m]>nisha: for the importer, see here
<ngz>nisha: to use the python importer: guix import pypi --recursive name_of_the_package
<nisha>package definition here:
<nisha>Do I have to write a package definition for each of the dependencies?
<ngz>For each dependency not already included in Guix, but apparently, your package has no dependency.
<ngz>nisha: Actually, it has some un-packaged dependencies, try: guix import pypi --recursive tern
<ngz>(un-packaged, or outdated)
<nisha>nice! that worked. Does this mean I don't have to write a guix definition for tern?
<ngz>You may want to share your work with other Guix users. You need to tidy up generated package definitions (e.g., using guix lint and guix style on them), then send the result as a patch set.
<unmatched-paren>my profile appears to have vanished
<unmatched-paren>i can't run `guix (install|remove|upgrade|package)`, "unsupported manifest format"
<unmatched-paren>i found a mailing list post by someone with the same issue but they didn't reply to further questioning, so there's no answer :(
<unmatched-paren>what should the ~/.guix-profile/etc/profile file look like?
<podiki[m]>have you tried a rollback?
<unmatched-paren>hmm, it worked. expected, i guess, because that would roll back my profile, but i don't get why it did that in the first place
<podiki[m]>the profile file should be readonly (owned by root) and would contain things like setting PATH or other env variables from your packages
<unmatched-paren>all i did was install nyacc
<podiki[m]>what was the operation that got you to this generation? you can use list-generations to see
<unmatched-paren>guix package --list-generations lists all the generations except the one i rolled back from (invalid manifest format)
<unmatched-paren>here's an excerpt:
<podiki[m]>maybe try installing something else, see if that is okay, try again with nyacc and see if it is reproducible?
<unmatched-paren>Generation 465    Jan 11 2022 19:41:32
<unmatched-paren> - mes    0.23    out    /gnu/store/zv7zil32k6w592zj3mnar9srk84q5821-mes-0.23
<unmatched-paren>Generation 466    Jan 11 2022 20:30:43    (current)
<unmatched-paren> + man-pages    5.13    out    /gnu/store/3vdaz7iprj9k1phb9gfrkbqjw847v43w-man-pages-5.13
<unmatched-paren>Generation 467    Jan 12 2022 17:46:44
<unmatched-paren>guix package: error: unsupported manifest format
<unmatched-paren>i guess i'll guix package --delete-generations 467
<unmatched-paren>also, occasionally when i boot, a message about coreboot appears, even though my device is not (core|libre)booted (sadly it's not eligible), what's that about?
<unmatched-paren>something buffer something device
<unmatched-paren>all this happened after my laptop abruptly died from low battery, but i doubt that's why, i'd installed nyacc a little while before
<podiki[m]>I see a coreboot message too, something about the framebuffer; my guess is after the recent-ish fixes for coreboot/framebuffer I saw discussed
<podiki[m]>but I just ignore it
<podiki[m]>gotta run, hope you figure out what caused the manifest problem or that all is fixed!
<unmatche`>oops, i switched buffers accidentallf
***roptat_ is now known as Guest7387
***daviwil_ is now known as daviwil`
***daviwil` is now known as daviwil
***dragestil_ is now known as dragestil
***theruran_ is now known as theruran
***irfus- is now known as irfus
***distopico_ is now known as distopico
***Guest7387 is now known as roptat
<KE0VVT>Ugh. Tor did not start when I rebooted.
***stryan_ is now known as stryan
<KE0VVT>I hate Shepherd.
<KE0VVT>Can't rely on it.
<KE0VVT>pkill -9 tor && herd start tor :-(
***the_tubular72 is now known as the_tubular
<rekado>KE0VVT: could you gather more information about what Tor was doing?
<rekado>Shepherd isn’t trying to be smart. It starts the thing and retries for a while.
<rekado>maybe Tor did something silly? Or maybe it depends on your system being in a certain state that wasn’t the case on reboot?
<rekado>in that case the service may need changing
<KE0VVT>rekado: I abruptly shut down my system with the power button, because Sway has no power management, and `sudo poweroff` did not work.
<lfam>This is changing the subject, but the command on Guix is `halt`
<lfam>But, we should add some aliases
<lfam>It's not good if people can't figure out how to turn off their computer
<lfam>And, there is also `shutdown`
<KE0VVT>I thought `poweroff` was part of `shutdown`, but I guess it wasn't.
<KE0VVT>Now, with Tor, I don't know how to diagnose this.
<KE0VVT>I don't know `strace` and stuff.
<lfam>Does it have any logs? Maybe '/var/log/tor'? Or maybe there is something in '/var/log/messages'?
<KE0VVT>Oh, goodness. `grep tor` catches `/gnu/store/` everything.
<lfam>Problem with using a short name
<Noisytoot>egrep '\btor\b'?
<apteryx>apparently, Requires.private also need to be propagated for pkg-config
***pushcx_ is now known as pushcx
<KE0VVT>`tor.log`: <>. `messages`: <>.
<dumbdemic[m]>`Could not bind to Address already in use. Is Tor already running?`
<KE0VVT>dumbdemic[m]: But I thought I killed Tor with `pkill -9 tor`.
<apteryx>what doe `pgrep tor` says?
<apteryx>does ... say*
<lfam>The X.509 certificate for expired
<rekado>nobody responded to my message about it :(
<lfam>I poked around maintenance.git when I saw your message but it wasn't clear to me how these certificates are supposed to be provided
<rekado>yeah, I also don’t know what to do with it. I’m running “certbot renew” now.
<rekado>renewal for disarchive succeeded, it says
<lfam>We really need to improve our automation with certbot
<lfam>I think you'll need to reload the web server rekado
<rekado>I did.
<rekado>and I visited https://disarchive.*
<rekado>something broken?
*rekado –> afk
<lfam>Yes, something is broken
<lfam>"NET::ERR_CERT_AUTHORITY_INVALID" on both Firefox, Chromium, and Chrome on a variety of operating systems
<lfam>s/both/each of/
<nckx>It's been fixed?
<lfam>Does it load for you
<nckx>Firefox 95 on Guix System.
<nckx>No warnings.
<podiki[m]>lfam: that link works here too (firefox, guix system)
<lfam>It doesn't load for me on Firefox, Chromium, or Chrome on Debian. Nor with Firefox or Chrome on Android
<lfam>Something must be messing with the DNS
<nckx>Not Before Wed, 12 Jan 2022 18:42:01 GMT | Not After Tue, 12 Apr 2022 18:42:00 GMT
<lfam>The dates are correct, but the chaining isn't set up
<lfam>At least from my point of view
<nckx>Chains to R3 -> ISRG Root X1 here.
<lfam>So weird
<nckx>‘The usual’.
<lfam>Something is interfering with it for me
<nckx>This isn't last years cert chain change come to bite you?
<lfam>Check my last email on guix-sysadmin
<lfam>Besides, my Android is up to date (Android 12) so the roots are definitely not obsolete
<nckx>OK. I just got in.
<lfam>Yeah, it's a problem with my DNS
<lfam>Serves me right for trying to avoid the big DNS providers
<nckx>SSLlabs gives no issues. Which is not a guarantee for anything, but still.
<nckx>lfam: Ah :)
<lfam>When I got off my own network, it works fine
<nckx>Hijacking? :-/
<lfam>I don't know
<lfam>Definitely worth disabling port 80 on that server
<nckx>I agree but don't follow the reasoning.
<lfam>No reason, it's unrelated
<podiki[m]>(for what it is worth, I have my own local DNS too)
<lfam>You're probably using something different from me
<nckx>lfam: You are talking about
<nckx>I don't remember considering it either way when I made the change for most other subdomains.
<podiki[m]>(I've run into problems before with things like dnssec, definitely pitfalls in doing it yourself)
<nckx>Running authoritative DNS (even with DNSSEC) is much easier and less scary than running a personal recursive resolver…
<lfam>I'm not using dnssec, but rather a random non-ISP and non-FAANG DNS server
<lfam>So, I'm going to look into changing that
<nckx>OK, but those are a dime a dozen, and there's a lot of bad in that apple basket.
<lfam>It's weird, right?
<podiki[m]>anyone have an example offhand of a package that has both gtk and qt parts? either split in outputs or split into different packages somehow?
<lfam>Transmission has a GUI output for GTK stuff, but not Qt
<podiki[m]>hmm. I'm have a package for (python) autokey which as both qt and gtk frontends; trying to see if it is worth it to do more than a trivial outputs
<podiki[m]>since the python files itself would need to go into the other outputs or wrap guix_pythonpath again, and doesn't seem that reduces the closure anyway
<lfam>Most users will already have GTK and Qt stuff in their profile or system closure, so the benefit of splitting these things out is not often realized
<lfam>Indeed. I was using a DNS server that did something wrong
<podiki[m]>so you are saying it would be fine to do the easy split: gtk/qt front end script with desktop file and man page?
<lfam>podiki[m]: I'm saying that it's not worth splitting at all
<KE0VVT>Maybe I should tackle this Tor thing on the mailing list, so I can focus.
<podiki[m]>lfam: you mean the late hours I spent learning/coding different outputs, more wrapping, and gexps was me being obsessive? :-)
<lfam>Even if you can really split the outputs in a way that totally separates the two GUI toolkit dependency graphs, podiki[m], any Guix user with a lot of packages will have GTK and Qt in their profiles anyways, so nothing is saved
<jgart>hi guixers!
<jgart>how do maintainers currently get patches off of debbugs( I'm trying to brainstorm more efficient workflows for myself
<lfam>podiki[m]: I think it was really valuable :) And if you can split the package up, you should!
<podiki[m]>lfam: makes sense and kinda what I thought, but gave it a shot
<jgart>My ideal workflow is something like this:
<jgart>`get-patches 48364 "v2" | git am -3`
<podiki[m]>I'll try one last thing of seeing if I can stop it from building both front ends so I really could use a patch to separate out the pieces; but probably not worth the huge effort it would take
<lfam>jgart: I'm not a maintainer (there are only a few and dozens of others do patch review), but I'll answer. I use email instead of the website. So, my email client makes it easy to use `git am` on the patch files
<jgart>get-patches 48364 "[PATCH v2 1/7]" | git am -3
<jgart>lfam, you use neomutt iirc?
<lfam>Specifically, I use Mutt, which has a way to run shell commands on the email themselves
<podiki[m]>lfam: lastly, since this is meant as a user run program rather than a python library, would the package just be "autokey" or should it still be "python-autokey" (seems mostly we prefix the python- but not always)
<lfam>There are other workflows but this is one of the canonical ways to develop the Linux kernel and similar projects
<lfam>podiki[m]: Just autokey is okay. We use the "python-" prefix for libraries, but not really for end-user applications
<jgart>lfam, how do you arrive at the guix patch you want to apply?
<jgart>by subscribing to the list?
<lfam>Yes, I am subscribed
<podiki[m]>perfect, thanks lfam; more packages coming from me soon :)
<jgart>but what If you need to get an older patch set?
<jgart>before you subscribed?
<lfam>I configured my email host to put all Guix related messages in their own 'guix' mailbox
<lfam>I've been subscribed since ~2015 jgart. That scenario doesn't happen
<jgart>right, but what if I'm not subscribed since 2015
<jgart>what should I do?
<podiki[m]>don't some of the mirrors have mbox you can download? (not sure about patches list)
<lfam>Here's what I would do, jgart. Of course people will complain that we should use Gitlab or Github but whatever.
<lfam>On the top, click "download the archives in mbox format"
<lfam>Then, I could do `mutt -f ./path/to/downloaded/mbox`
<jgart>re: github: not me. I like my email patches
<lfam>Then it just works within my normal workflow
<jgart>then, in mutt what do you do to apply a patch to a guix checkout?
<jgart>pipe the message id somehow into git am?
<lfam>Yeah, like this:
<jgart>mutt has a command mode iirc
<lfam>Press the '|' button. Above the enter key on my USA-style thinkpad keyboard
<lfam>It opens a pipe
<lfam>Then I type this:
<lfam>cd ~/work guix && git am
<lfam>Before that, if the patch is an attachment, you have to open the attachment by pressing "v" and selecting it
<lfam>Otherwise, if the patch is the email itself, you can skip that step
<lfam>It's annoying when the patches don't apply for reasons
<lfam>But, overall, this workflow is really productive for me
<lfam>If the patch series is like 100 patches long, then I'm in trouble
<jgart>the pipe allows you to type `cd ~/work guix`? or do you cd first them pipe to `git am`?
<lfam>Just like I wrote. First open the pipe interface, then cd ~/work/guix && git am
<jgart>lfam, what do you do when a patch series does not apply anymore?
<lfam>I think it's some UNIX magic
<jgart>use wiggle?
<lfam>It really depends jgart
<lfam>We started to encourage patch authors to use the "--base" options of `git {format-patch}|{send-email}`
<lfam>So, hopefully there is a reference to which commit the patches apply to
<lfam>I might save the patch as a file and try `patch -p1 < the/patch`
<jgart>oh ok, so then you'd apply the patch from the commit that still applies?
<lfam>Yeah, and then rebase
<lfam>It's always easier to rebase than to rewrite the patch
<jgart>and if you get merge conflicts then you fix them?
<lfam>Or, I might ask the patch author to rebase it themselves and send revisions
<lfam>Like, when rebasing?
<jgart>yeah, I've gotten merge conflicts before when rebasing in rare occassions
<lfam>Right. Well, then I have to read and understand the patch and learn how to fix the conflicts. But that's necessary for reviewing anyways
<lfam>I have A Lot of practice with rebasing now. So it's not too bad
<lfam>Going back to looooong patch series, this workflow isn't amazing
<jgart>git-interactive-rebase-tool has saved me
<lfam>Like, you'd have to apply each patch one at a time
<jgart>it's made my workflow very efficient for rebasing
<lfam>It's why I concatenate my long patch series into a single file
<lfam>And I recommend that submitters do the same
<lfam>Like, `git format-patch origin/master --stdout > my-paches`
<jgart>this tool:
<jgart>I have to get back to fixing that one
<lfam>I'm pretety comfy with `git rebase -i`
<lfam>Sometimes I feel like I have no real skills but after so many years of code review, I am definitely a Git expert
<jgart>I've used it that way too but I've been made lazy with the above tool
<lfam>Whatever works!
<jgart>lfam, do you use worktrees regularly?
<jgart>when hacking on guix?
<jgart>raghavgururajan, and efraim I know do
<jpoiret>fwiw i do use them as well
<jgart>jpoiret, cool!
<jgart>thnx for sharing
<jpoiret>pretty useful to avoid `make clean-go` and friends
<podiki[m]> package def for autokey (I use it to have emacs keys everywhere)
<podiki[m]>if anyone has a chance for a quick look before I submit...thanks in advance!
<jpoiret>by the way, git rebase in magit is pretty much the tool you posted :)
<jpoiret>very useful having all git commands bound to key as magit is doing, i've been using interactive rebases so much
<jgart>yup, It's pretty much like git rebase in magit
<podiki[m]>(noticed the autokey license should be gpl3+, changed)
<jgart>I find myself mostly using a mix of tig, git-interactive-rebase-tool, and scripts that wrap the git cli, and the git cli directly
<lfam>jgart: Yeah, I use worktrees when they are useful
<jgart>sometimes I might open up emacs and fire up magit but rarely
<lfam>Worktrees for large changes or long-running changes, branches for smaller things
<jgart>I'd like to learn a comfortable workflow for magit someday if I find the time
<ngz>podiki[m]: License is gpl3+
<jgart>lfam, sounds good to me
<ngz>podiki[m]: nevermind, you noticed it :)
<podiki[m]>thanks ngz, been learning from review to check some source files besides just LICENSE
*lfam afk
<ngz>I think developer tutorials/workflows could be a nice addition to the cookbook
<jgart>podiki[m], if you Cc ~whereiseveryone/ when sending to upstream I can add autokey as a pre-release in guixrus
<jgart>feel to upstream anything from the above guixrus list. We just ask to mention any co-authors when sending (see git blame) to upstream from guixrus
<podiki[m]>thanks jgart; I also have some patches for mangohud that maybe could go there in the meantime too: (bit more involved changes)
<jgart>podiki[m], If you'd like to help with upstreaming stuff from guixrus at the end of the month, I'll be hosting a meetup for it in addition to the Guix Packaging Meetup that is (un)related. Any patches a contributor sends from guixrus to upstream, they can add themselves as the committing author along with Co-authored-by statements for anyone else who first contributed the patch in the channel.
<jgart>anyways, I'm being redundant now
<podiki[m]>I have a giant list of haskell packages for taffybar I haven't had the heart to make patches for yet, still catching up on all these little ones I have
<podiki[m]>funny to read the early packaging attempts and what I know now
<jgart>podiki[m], do you use taffybar with xmonad or some other wm?
<podiki[m]>I have only tested out taffybar, haven't made the switch (still polybar)
<podiki[m]>but I'm on xmonad now
<podiki[m]>I think it should work fine for any WM though?
<jgart>I'm interested in improving purescript support in Guix. I wish we had a purescript-build-system shelling out to spago
<jgart>podiki[m], atleast that's what it says on the carton
<jgart>the alternatives for getting purescript libraries are not as nice. I would prefer to use guix than to use the easy-purescript-nix approach
***root1 is now known as nomad67
<jgart>podiki[m], we started a wishlist on the sourcehut wiki ( that is linked to
<jgart>We're looking to tackle large packages together as a group, distributing the dependencies amongst various contributors
<jgart>gomuks has 20 deps that are not in guix (that does not include any transitive deps)
<jgart>gomuks is a matrix cli client that's quite comfy:
<podiki[m]>that sounds like a good plan
<jgart>We'll send gomuks to upstream once it's ready
<podiki[m]>taffybar has ~1300 lines of packages, but it works
<podiki[m]>after a lot of fussing early in starting with guix it worked almost immediately on a fresh guix import after our big merge
<jgart>But we'll also send it to guixrus at the same time in order to have it available immediately in a convenient way
<jgart>podiki[m], cool!
<podiki[m]>but I haven't yet put everything where it needs to go for patches (a few have been sent as part of the xmonad update)
<jgart>I'm looking forward to trying out taffybar with dwm
<podiki[m]>I'll check it still works and submit it as one file to guixrs in the meantime, might as well get some testers and eyes on it at least
<nisha>Can I use guix lint to check package definitions?
<podiki[m]>if people have use for the other haskell packages then they can use and submit them too
<jgart>podiki[m], We also have guix lint running in sourcehut CI:
<podiki[m]>nisha: depends what you mean, but it will check some things like descriptions, CVEs, some inputs
<jgart>more todos to go through to fix those lints :()
<nisha>podiki[m] I would like to check the .scm file I have created...
<jgart>nisha, Try `guix lint --list-checkers`
<jgart>to see what's available
<ngz>Ouch. Toutenclic upstream disappeared.
<jgart>and see `guix/lint.scm` the code is pretty readable in that module
<podiki[m]>I've done it like guix lint package before submitting a patch, some useful checks
<nomad67>Sorry for messing up the feed earlier on guys. Probably would not happen if not someone advertising this effort as production ready. I don't think so as what brought me here at the end are bugs. Mainly in graphical install it wiped my lvm drive. I was only using arrows - no enter. Second of all, it boots not from lvm without magic. And I've said before I do understand why admin kicked me out. Well, I
<nisha>I guess I will just have to guix package repeatedly :)
<KarlJoad>Maybe I'm just uninformed, but why does Shepherd have such a hard time following processes sometimes? Like forking ones?
<rekado>jgart: re get-patches: wget -O- | git am
<rekado>it already exists
<philip>Is there a convention for packaging fonts that include woff2 files? e.g. I could imagine a "share/fonts/woff2/" under a "woff2" output.
<rekado>I’m forcing myself to use the website so I can empathize with requests to change it.
<rekado>I’m not subscribed to guix-patches
<jgart>rekado, oh great! thanks!!!
<rekado>(I used to just hit “a g” on an email with a patch to select the “[g]it am” [a]ction.
<rekado>jgart: I found that it doesn’t always work right, so if you find a problem like that please feel free to report it
<jgart>OK, will keep that in mind
<ngz>rekado: Is this API documented somewhere?
<jgart>rekado, I'll be testing it with this wrapper:
<porcupirate>Why is it `guix build package` refer to an existing store item, but (build-derivations store (list (run-with-store store (package->derivation package)))) does not?
<porcupirate>That was weird. I ask a question about building with scheme instead of on the command line, and I'm immediately disconnected.
<vagrantc>well, nothing's happened on the channel since youre departure, porcupirate
<rekado>ngz: no, it was a demo
<rekado>ngz: I only wanted to announce it once it worked reliably
<rekado>but I’m not working on this, so I guess if it’s not working reliably I’d prefer to have someone else figure out why :)
<ngz>OTOH, if it's not announced, no one can tell if it's working reliably. :)
<rekado>well, now you know :)
<rekado>if it’s useful enough we can document it
<ngz>Right! Hopefully, I will not forget it before using it.
<ngz>I have mega Rust patch sets to use it on.
<ngz>Now if only I knew how to batch sign off commits…
<nckx>porcupirate: What we saw was ‘porcupirate has quit (Remote host closed the connection)’ exactly 150 seconds after your question.
<lfam>ngz: You can use `git rebase` to operate on many commits at once: <>
<lfam>That's an example for signing commits. If you want to add the sign-off line, I think you can just add "--signoff" to the `git commit` arguments
<lfam>You pass it a Git refspec
<lfam>Er, not a refspec
<lfam>I forgot what it's called. The format for specifying a commit or range of commits
<lfam>HEAD~3, for example
<lfam>Revision Selection:
<ngz>OK. Thanks. I'm using Magit so I kind of forgot how to use git on the command line.
<lfam>There's a man page for the revision selections, `man 7 gitrevisions`
<porcupirate>in build-derivations what is MODE supposed to be?
<lfam>porcupirate: Based on context and Git history, I think it's either 'normal' or 'check'
<lfam>See commit a8d65643fb21fdf6c46b3d248bda411d970e53ab
***aweinsto1k is now known as aweinstock
<lfam>We should document this in the docstring
<porcupirate>I see. store.scm:260 refers to an enumeration type "build mode". normal, check, repair
<roptat>just pushed the guix days announcement
<roptat>it should be online soon
<civodul>roptat: woohoo!
<roptat>now we need the guix-days@ alias back
<jpoiret>watch me "while true; do killall cryptsetup; sleep 1; done" to test the installer errors
<jpoiret>the installer is so perfect that I have to force an error
<nckx>roptat: Is somebody on that?
<civodul>nckx: i'm on it!
<civodul>roptat: should we restore it to its previous value, which is you + lfam + zimoun + maintainers?
<civodul>roptat: i've done that but nckx or myself or anyone with access to can change it later if needed
<nckx>About that (it happened to come up twice this week): how does one get access to fencepost?
<nckx>Ask GNU?
<civodul>there's a section in
<civodul>lemme see
<nckx>I should probably re-read that, it's been ages. Thanks.
<civodul>info "(maintain)GNU Accounts and Resources"
<alMalsamo>So I just did a duckduckgo search for Guix, and this is the second result:
<alMalsamo>wtf is Microsoft making software called Guix for?
<alMalsamo>Does anyone know about this project?
<rekado>it’s called GUIX and ours is Guix.
<jpoiret>i mean, GUI+suffix isn't a novel or original idea
<nckx>alMalsamo: Microsoft bought Azure (I know! More naming WTF!).
<nckx>They had a product called GUIX®.
<nckx>It's a few months younger than GNU Guix IIRC.
<jonsger>alMalsamo: maybe ask MS to rename their project to MUIX :P
<porcupirate>Do I need to use set-build-options if I want to use substitutes?
<nckx>alMalsamo: To answer your actual question: yes, we're aware of it, but we don't really care, nor does Microsoft seem to.
<nckx>If they wanted to sue anyone it would've come up when they bought the thing.
<nckx>I misremembered the Azure thing, though, the company was Express Logic.
<alMalsamo>nckx: Hmm I check Wikipedia on Azure and it doesn't mention M$ buying it but it looks like it started as a project internal to the company
<nckx>Yes, my original message was:
<nckx>RTOS is (apparently) branded as under the Azure umbrella but it was just bought from (or as part of) Express Logic, it was not developed by Microsoft.
<nckx>In my defence it was literal years ago that I dug into all this, before the MS acquisition. We don't consider it a threat.
*jonsger imagines a "defending" action of GNU Guix: porting overnight to windows/ReactOS to show the world what proper package management could do for you :)
<nckx>Although it's not as dead as I expected it to become back then:
<nckx>Whether astroturf or not, somebody's still using and hyping it.
<nckx>“I invite you to learn more about the benefits of using GUIX for your real-time and embedded user interfaces”
<nckx>100% AGREE, Oliver.
<nckx>Oh, it's total astroturf, in the sense that this fellow is an Azure employee. Never mind.
<KE0VVT>noisytoot, did you say you installed Argos Translate from PIP?
*mbakke wanted to update a couple of Python packages and ended up fixing dozens of unrelated ones