<derivates>im installing firefox right now, just didnt know it was going to compile from source haha, how can i apot this with guix search?
<nckx>jgart[m]: The bright side is that's the only dependent...?
<nckx>derivates: ‘guix search’ doesn't tell you whether there's a substitute for a package, but ‘guix weather PACKAGE’ can.
<nckx>Firefox isn't in Guix proper, so unless someone (like the owner of the channel you're using) is running a substitute server *and* you've authorised it, you'll always have to build it (and other packages from that channel) yourself.
<nckx>Yes, Guix should always be parallel-safe, anything less is a bug.
<nckx>My ‘just update stuff’ script pulls for all users in parallel, and it's never failed. If it does, it is absolutely a bug we're happy to hear about.
<Noclip>How about invoking the garbage collector while installing/upgrading?
<nckx>The garbage collector takes a global lock on the entire system (it could be rewritten not to, but it's not that important), so it won't interfere with builds either or vice versa. And builds take temporary GC roots for their inputs so you won't have to rebuild them twice in the same invocation.
<derivates>theres something i dont quite understand quite well about Guix installaton intself, so i have my configs, now i should create an iso image for my laptop, but what about partitioning, what if my laptop does no longer have the scheme it used to when i installed the first time
<roptat>you'd have to change your file-systems declaration to reflect the changes
<jgart[m]>nckx: `guix refresh --list-dependent python-funcparserlib` says yes. python-hy is the only dependant
<derivates>right so when i boot up i dont use graphical but mabual instead!
<derivates>its unfortunate theres no video about this! :(
<jgart[m]>does anybody use dwm as their window manager with guix system?
<derivates>jgart: Im looking forward to it, will do once I set everything else, then ill get my st and dmenu builds as well
<derivates>im positive its not that hard you should be able to make your own scm file by using (inherit dwm) and modifying the url
<jgart[m]>That part I'm not clear on yet is the guix system configuration for running it. Ideally, I'd like to start xorg from a tty and with no display manager.
<jgart[m]>That's how I currently have my NixOS setup
<jgart[m]>but I'm using i3wm at the moment instead of dwm
<jgart[m]>It's probably something simple that I just haven't read yet.
<jgart[m]>I'll be happy to add an entry to the cookbook once I set myself up with that.
<derivates>I quickly found this hope this helps you and me on the future
<jgart[m]>derivates: What desktop environment or window manager are you currently using?
<jgart[m]><nckx "If it still works, maybe a cookb"> sure, that would be great! Would you like to come show that or anything else you'd like to share? I can promote the event.
<jgart[m]>I'm planning on hosting an event (TBD) with Christopher Lemmer Webber and the racket/guix community to work on a racket-build-system together
<xelxebar>derivates: I use startx with Guix. Unfortunately, the startx script that installs with xinit is broken, but you can get around that with an appropriate `.xserverrc` in your `$HOME`: http://ix.io/2WGk
<jgart[m]>If you happen to know any racketeers who know their way around racket/raco well let me know.
<xelxebar>I'm working on patching the xinit package to fix startx, though.
<jgart[m]><roptat "jgart, thanks, that's something "> We might just work on packaging or updating something. It depends who comes and what people want to do. We can also break up into groups in rooms. Mumble supports that quite nicely.
<jgart[m]>I'm starting to work on the bootstrap crystal project whenever I can. If people want to pair on it out of the context of a meetup let me know also. Send all patches to upstream or ryanprior for merging into our working crystal bootstrap repo.
<derivates>i literally had everything up and running, then i did a guix pull and all died
<PotentialUser-36>hello all, I'm seeing a difference in ld behavior between `guix environment --ad-hoc libev` and `guix package --manifest=... --profile=...`, the former doesn't seem to setup load paths and ld complains "cannot find -lev", while the latter creates a profile where ld can indeed locate libev. Am I misunderstanding how guix environment works?
<tissevert>hmmm same problems I have here with ibus, haven't set out to fix that yet but very interested
<tissevert>if setup prompts to start the daemon (which it does here too) it probably means the proper variable isn't set in environment
<tissevert>last time I checked, I was puzzled to find something in gnome-shell running ibus (so if you use GDM, it should be the case)
<tissevert>but which was unavailable from my (XFCE) session
<tissevert>about the «configure but nothing changes», it's an issue I used to have on other systems, and it was a dconf issue
<tissevert>(ibus uses dconf to store its config, but the dependency isn't mentioned in the package, for some reason)
<asdf-uiop>Is there an easy way to globally disable the 'beep' in guix? I tried searching the manual and the web, but I could not find anything.
<rekado>tissevert: yes, dconf uses the memory backend by default, IIRC, which is oddly named as it doesn’t memorize anything :)
<rekado>tissevert: I suppose we’d need to figure out a way to let the ibus client connect to the “global” ibus socket instead of the per-user socket that is created when starting ibus-daemon as a user.
<rekado>completely unrelated issue: I’m trying to package irods and it insists on using clang and libcxx.
<rekado>the configure step to test that the clang toolchain is capable of compiling a test program fails with linker errors.
<rekado>does anyone know how to use libcxx with the clang toolchain in a package definition?
<rekado>(I’m also exploring ways to build with GCC instead, but there are errors that I understand even less)
<efraim>glib failing again on core-architectures on powerpc (slow architectures). I'll bump the test_timeout_slow value
<mange>civodul: Hi! I've just seen your changes to the openjdk patch I sent yesterday. Can you explain why it's safe to remove the (or ...) around the (search-path ...) calls? According to "(guile) Load Paths", search-path returns #f if it can't find the file, which I would expect to then substitute #f incorrectly?
<mange>Hmm. That's a mistake by me, then. I had intended to put the (or ...) around all three, because I thought it was necessary based on the documentation. I haven't actually checked whether it works. I'll do a guix pull and check how the build result looks.
<mange>I should be able to see if it has a "#f" in the build result.
<civodul>i think the build would simply fail in that case, no?
<apteryx>civodul: Hi! Does this patch: 's/SUBDIRS = po/guix po/packages/DIST_SUBDIRS = po/guix po/packages/' makes sense to you? It prevents the first make from creating a flurry of diffs under 'po/' (which we regularly tell users to just 'git checkout po/).
<rekado>Gnome adopted ibus as the one supported input method framework
<apteryx>is explicitly adding 'firstname.lastname@example.org' required to use commands such as 'block NNNN\nthanks' at the beginning of a reply to an existing bug? Or is this already implicit by having NNNNN@debbugs.gnu.org in CC?
<rekado>this is why I can’t get things to work now with more recent versions, whereas I had no problems (other than stale caches) in earlier versions of Gnome.
<rekado>as you can see, all of these commands require the current bug number as an argument
<mange>efraim: I've given up on getting ruby and rails to work how I wanted. :( I've managed to get it working by only installing Ruby via Guix, then installing everything else via "gem" rather than Guix. Not what I was hoping for, but I don't understand enough to solve any of the real problems.
<rekado>whereas visible inline commands sent to NNNN@debbugs.gnu.org don’t need that
<apteryx>I'm guessing the problem has to be resolved by having the Makefile definitions under po/ to not contain any default target? not sure.
<civodul>apteryx: i'm discovering that DIST_SUBDIRS is a thing (which is humbling, i didn't think i could still discover automake stuff)
<brendyyn>i switched from gnome to xfce and it seems gnome has broken ibus for me. I only see ibus Anthy in the ibus settings, which i installed previously while on gnome. now im on xfce i installed ibus-libpinyin and ibus-rime but they do not appear
<civodul>apteryx: but yeah, we'd lose targets and make automake unhappy it seems
<civodul>roptat: BTW, i'm skeptical about the addition of translations of the manual below 5%
<apteryx>roptat: also, the only armhf offload machine on berlin is offline; I'm in contact with Simon to resolve this
<brendyyn>pulseaudio stopped working despite still runninng. the native socket disappeared. so i restarted pulse audio and it worked, but then my keyboard volume control stopped working... sort of. it uses amixer set Master to change volume. spamming volume up and down it somehow made the right channel louder than the left...
<brendyyn>funny. there is a stackexchange with the same problem
<roptat>apteryx, would be cool to get guix pull and maybe the core packages building again on ci
<cybersyn>is anyone working on the localization of guix in vietnamese?
<cybersyn>my partner and I were thinking it could be a cool "kill 2bird with one stone" project for me, I could improve my vietnamese and understanding of guix simultaneously, while she checks and corrects all of my errors.
<rekado>apteryx: someone’s got to run “guix system reconfigure” on the host
<civodul>apteryx: oh, did i forget to remove import/nix.scm from somewhere? POTFILES.in maybe?
<Sirex>How do you organize your software development with guix? Imagine, I have 20+ projects. Each project has multiple components: frontend, backend, database, memcache, some cli, etc and lives in their own git repositories. Projects are related. Firstly I thought, I can create channel-repo and put all packaging code here. But it feels wrong to me: each
<Sirex>project team must re-invent building, testing, packaging in upstream repo. And again in channel-repo.
<tissevert>Sirex: very interested in what you'll find but I have pretty much the same needs at a much smaller scale, and so far this is what I've done:
<pkill9>it comes with a script to create guix environments for each directory
<pkill9>so when you enter it you will enter a guix environment
<tissevert>- a file to define local builds for each of these packages (so, central, not one per project like I used to in nix — default.nix if that rings a bell)
<tissevert>- a couple bash aliases to be able to simply «build» or «enter» from any of these directory to try building or entering an environment where the package is installed, based on the current directory's name
<tissevert>pkill9: thanks for the direnv tip, I didn't know about that
<Sirex>@tissevert, I can put package definitions in each $PROJECT_GIT_ROOT/guix.scm and treat it as independent channel. In that case I likely end up with a lot of channels with few packages in them. And will get lot of maintenance headache, won't I? Another case: I create single guix repo and put all package definitions for all my projects here. One chan
<Sirex>nel is better to maintain, but each project team must either copy-paste definitions or use their own or whatever. Keep in mind, that upstream team wants to develop project, build release candidates, test, have multiple environments, etc.
<rekado>Sirex: you don’t need to use channels at all.
<Sirex>rekado: I won't have any shared packages probably. let me recap the idea: i create a guix repo *apps-suite.git*. I put in the *apps-suite.git* all my `(define-public projectN-componentM ...`. All these definitions reference upstream project git repository. In upstream project I put *guix.scm*. And what is next? Just reference *apps-suite.git* as ch
<Sirex>annel, inherit package definition like `(define-public projectN-componentM-dev ...` and override source version to use local files instead of git ref?
<lfam>A moment of silent keyboards for d95168321f4a9bf6857b598da0a183b45a868d54
<tissevert>yes, what you say sounds right, it should work (give or take one fix or two, I don't see any issue with the general picture) but yeah like rekado said you don't even need it to be a proper channel, only a mere scheme file (this is what I use)
<leoprikler>We should have called the guix.scm file guix.lock, then people wouldn't have so much trouble committing it to version control :)
<roptat>and probably doesn't play well with my addons
<roptat>but it's the same terminology for other online manuals of GNU software
<iis>Hello, I want to run a web server with php capabilities and option to download and upload files from/to it. I would install LAMP using any gnu/linux distro. But using gnu guix what would be the right approximation. I mean, I haven't found enough tutorials / videos about the topic with gnu guix.
<lfam>roptat: Perhaps, but I think it's okay to change from the norm. It sounds like a lot of us have the same problem
<lfam>I guess we need a LAMP recipe for the Cookbook
<davidl>Hi, I read somewhere that core-updates is merged every 6 months or so - is there any way to find out approximately when the next merge will be? I sent in a patch (#47898) but I have no idea when I can expect it to be merged to master provided someone reviews and commits it.
<lfam>luis-felipe: By the way, I liked your "Bermuda triangle" graphic regarding 1.2.1
<lfam>I've had the IRC log where I first discussed open in a tab for way too long
<iskarian>Hello :) is there a best practice for writing a package for something which installs files in /etc during make install, other than just preventing it from doing so via a patch and then having the guix package do it instead?
<apteryx>civodul: nevermind, that seems to be because one has to re-run 'autoreconf -f' *before* using Make again (at which point the var gets set and it's too late)
<apteryx>even though 'make release' ends up running 'autoreconf' itself
<apteryx>the output of 'herd schedule mcron' suggests the frequency is every hour
<arkhan>Greetings to all, I started to have this error with the last update, apparently it is related to python-importlib-metadata: https://paste.debian.net/1194452/, does the same thing happen to someone else?
<derivates>roptat: do you think you can give me a hand on the issue i had before?
<iskarian>something I am trying to package manually installs a few things using $(INSTALL) ... $(DESTDIR)/etc/..., yet when I set DESTDIR using (assoc-ref %outputs out) I end up with some things installed in a nested /gnu/store/...
<iskarian>setting DESTDIR as above, and then setting prefix= seems to somewhat work, but now I'm getting errors about libraries not being found in RUNPATH
<AleQu[m]>Ni! Hey everyone, I've migrated my main PC to Guix System over the weekend (for which I was here before under the name `solstag`) and now I'm writing my first package definition. I've stumbled upon something that I haven't been able to figure out: with only `(build-system gnu-build-system)`, guix is compiling the package with a very old version of GCC (gcc-7). Why is that and how can I make sure in the package definition that
<nckx>apteryx: Ricardo has requested a firewall hole. That is pending. In the meantime, Mathieu has responded (to your mail IIRC?) with a wireguard snippet that's eminently cargo-cultable, so I can use that if the MDC doesn't respond.
<nckx>I'll give them some time though; a direct connection is still less fragile IMO.
<apteryx>one wart with 'make release' is that when it fails, it won't pick up when it left the next time you try
<apteryx>so you basically have to clean the tree, undo the automatic commits and start over
<smoothdev>I'd like to get started with defining a package for a small program which is not packaged yet, I've checked all the dependencies (but maybe wxgtk3 which is optional) seems to be already available, it is a CPP terminal program
<apteryx>nckx: oh, why is a firewall hole necessary?
<apteryx>wireguard has a single port which is public, and that should be enough
<smoothdev>the first suggestion I have would be for the maintainers of the web site listing the packages, is it possible to have a link to the package descriptor in the git repository on the page?
<apteryx>the external machines connect to it (with their whitelisted public key, ala SSH), and keep the connection open in case they are behind NAT
<AleQu[m]><lfam "So, for example, you could add ("> Thanks, will try that. I had thought about adding gcc-toolchain-10 to native inputs, but was afraid that would not be the right way to do it. What is the difference? lfam
<Sebastien-16199>Hi there! Newbie question: can we define a source that is a set of local files? At the moment I need to package my sources as a tarball and compute the signature, but I'd like to skip that step as I'm building locally.
<mbakke>Sebastien-16199: perhaps you can use (source "/the/directory")?
<Sebastien-16199>I tried `(source ".")` which gives me a `guix build: error: invalid name: '.'`
<mbakke>Sebastien-16199: try the absolute pathname :)
<Sebastien-16199>Ah, yes, that did work! Now, the next problem I have is that I'm packaging a Python module with the intention to package it and run it as a container. I added a dependency in my `setup.py` but it somehow fails to resolve.
<mbakke>Sebastien-16199: did you create the package definition by hand, or with "guix import pypi PACKAGE"?
<Sebastien-16199>@mbakke: Still getting the same error: error: python-pytz: unbound variable -- hint: Did you forget a `use-modules' form?
<Sebastien-16199>@mbakke: I'm creating everything by hand, I want to do everything from source not REPL
<mbakke>Sebastien-16199: ah, you need #:use-modules (gnu packages time) somewhere at the top of the file
<Sebastien-16199>@mbakke: guix import pypi pytz worked, package was resolved and downloaded
<mbakke>Sebastien-16199: if the package you are packaging is already on PyPI, "guix import pypi PACKAGE" will produce a complete package definition to be pasted into your favorite editor :)
<mbakke>you don't need to guix import python-pytz, because it is already available in the (gnu packages time) module
<Sebastien-16199>I tried adding `#:use-modules (gnu packages time)` at the top, but got `error: gnu: unbound variable`. I also try to ad (gnu packages time) in the (use-module (guix-packages) ...) preamble with similar results
<mbakke>Sebastien-16199: (use-modules (gnu packages time)) should work
<Sebastien-16199>@mbakke: Scratch that, actually including it in the existing (use-modules) did the trick, I forgot to save. Now could you elaborate on why this is required? I don't understand why having `time` suddenly enables the downloading of a Python package.
<nckx>lle-bout: I can't reproduce it in my very much not shinily new checkout.
<Sebastien-16199>@mbakke: yes, but what is the relation between the (gnu packages time) and python-pytz? Why is it required? I'm asking as basically there I'd like to have that automated. From what I understand, for any PyPI package I want to use I would need to 1) run guix import pypy $PACKAGE 2) add the corresponding (propagated-input) 3) run a guix build -f mypa
<Sebastien-16199>ckage.scm 4) Look at the hint in the console for which module I need to add 5) add the module in (use-modules ...) 6) run guix build -f mypackage.scm again. This seems a bit contrived -- is there a better way to do this that would be fully automated?
<lle-bout>nckx: this one last seems like a genuine error
<nckx>Yes, it seems so. po/guix/Makefile: ../../guix/scripts/import/nix.scm \
<mbakke>Sebastien-16199: you don't need to 'guix import' anything that is already packaged
<mbakke>but you will need to import the corresponding module and add the package as a propagated-input
<lle-bout>nckx: also po/guix/POTFILES.in or is that generated?
<nckx>lle-bout: Time for me to test in a clean clone. This will take a while.
<Sebastien-16199>@mbakke: And is there a way to automatically get which module a package belongs to?
<lle-bout>nckx: I think the command I sent is pretty much equivalent (besides leftover hidden files which also includes .git which must not be deleted but those shouldnt affect build)
<civodul>i've pushed that POTFILES.in fix, sorry about that!
<lle-bout>nckx: It's interesting to know that 'make clean' doesnt clean everything
<mbakke>Sebastien-16199: the PyPI importer is for creating package definitions for things that exist on PyPI but not in Guix. It will automatically add things from the remote requirements.txt as (propagated-inputs ...), but currently it can not create the corresponding (use-modules ...) stanza.
<mbakke>gnu/packages/time.scm corresponds to (gnu packages time)
<lle-bout>civodul: if you didnt do it I was about to, I was mostly puzzled about how the commit message should look like heh
<Sebastien-16199>@mbakke: OK, makes sense, so then the alternative would be to calling `guix import pypy $PACKAGE` to generate the .scm package definitions, and then load them as part of my main package.scm -- at least for the packages not available with guix by default?
<mbakke>Sebastien-16199: That sounds about right. Note that package.scm can contain multiple packages. :-)
<Sebastien-16199>@mbakke: Well, that is super useful. For context I'm evaluating Nix and Guix for our build system, and really appreciate how quickly I can get support with Guix and also the quality of the responses. That's exciting!
<nckx>lle-bout: Yes, it was equivalent. My ~/guix has precious untracked files.
<rekado>Sebastien-16199: one note about the pypi importer: the quality of generated packages from Pypi is sometimes a bit lacking. I ran into several cases where I had to add more inputs to get the thing to compile.
<rekado>In that case I recommend asking for help here.
<Sebastien-16199>@rekado: Thanks for that, it will also be an opportunity to get up to speed on Scheme, it's been a while ;)
<mbakke>Sebastien-16199, rekado: I think that's because often there is a separate "dev-requirements.txt" or similar for test dependencies, which the importer can't know about
<Sebastien-16199>Oh, and that's not going to be a popular question, but how can I add a proprietary license to the package definition?
<rekado>mbakke: right; it seems that Python conventions have been shifting a little over the past years
<mbakke>and indeed, some packages don't have requirements.txt and just use install_requires from setup.py
<rekado>Sebastien-16199: you can declare any license value, or even use a boolean.
<Sebastien-16199>@rekado I wasn't sure as in licenses.scm it seems structured, but that solves my problem
<Sebastien-16199>So I now have my python app packaged, how can I package it as container image and run `python -m mymodule` to execute the code? (I'll publish a repo with the example in there so that it will help others)
<rekado>Sebastien-16199: you can use “guix pack” to build different images, including a plain tarball, a Docker image, a Squashfs image (for Singularity), etc
<lle-bout>nckx: things built now with the nix fix and rm etc.!