<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
<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.
<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?
<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).
<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?
<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’.
<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
<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>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
<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 (https://issues.guix.gnu.org/52598) 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.
<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>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.
<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>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)
<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 ld.so 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?
<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 email@example.com, wait for an automated response with a number, and then you send your patches to <number>@debbugs.gnu.org
<rekado_>(the first message to guix-patches will be delayed; there’s no delay in the future)
<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.
<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
<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
<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
<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/b.py)
<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: https://dpaste.org/YRxK
<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
<nisha>Hi guix folks, I am trying to package a python application. When running `guix package` I get an error: Download error on https://pypi.org/simple/pbr/: [Errno -2] Name or service not known -- Some packages may not be found!
<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
<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
<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>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>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