IRC channel logs

2024-01-14.log

back to list of logs

<freakingpenguin>Hi, I'm trying to wrap my website in a Guix package w/ haunt, but I'm a bit confused as to what to put in the makefile for the install phase.
<freakingpenguin>Presumably I need to copy ./site (output files) to somewhere, but where?
<freakingpenguin>I was hoping cp -r ./site /site would magically put it in /gnu/store/.../site, but that doesn't seem to be it.
<freakingpenguin>Figured it out, used the abduco package as a reference. Nondeterministic with the RSS feeds but at least it builds.
<efraim>sneek: later tell feakingpenguin here's what I have for a WIP for building a site with haunt, in a guix.scm: https://bpa.st/AEPQ
<sneek>Okay.
<peanuts>"View paste AEPQ" https://bpa.st/AEPQ
<efraim>sneek: botsnack
<sneek>:)
<futurile>Finally managed to get my two blog posts on package transformations - very interested if anyone has feedback - https://www.futurile.net/2023/12/07/guix-package-transformations-in-manifests-with-guile-introduction/
<ulfvonbelow>how does one handle a sphinx theme that wants to download npm packages as part of its build process
<ulfvonbelow>e.g. furo
<futurile>ulfvonbelow: can you download them as part of the build and change the build?
<ulfvonbelow>not sure what you mean
<futurile>make the npm packages, inputs to the sphinx package?
<efraim>can you get a copy of the theme which already has those bits included? Or already built?
<ulfvonbelow>dunno, they don't seem to be in the pypi source distribution. Could maybe get them from the binary wheel, but...
<bumble>I hope this patch will be resolved soon https://issues.guix.gnu.org/67289 and came here to request (thank you)
<peanuts>"[PATCH] gnu: qutebrowser: Update to 3.0.2." https://issues.guix.gnu.org/67289
<bumble>the previous major release has issues rendering some sites, freezing the tab
<jaft>Ohh, nice, bumble; I'd been able to build a package up to 3.0.1 (but wasn't sure I was even doing it right) so been waiting on a more stable package definition for a while, now. 'Gonna update the definition in my channel and see if it works, tomorrow.
<bumble>jaft: awesome :)
<theesm>bumble: I tested the changes from the latest patch locally with my own qutebrowser definition and was able to build v3.1.0 without any issues (tests are still disabled though, as I suspect the test phase will still hang)
<mwette>mesboot/gawk-3.1.8 apparently does not supporting riscv64-linux-gnu ? I'm trying to generate riscv image. Is there a workaround?
<refurio>ACTION Is having great fun with guix under debian. Cool stuff!
<refurio>I haven't seen anything like `guix challenge` elsewhere. What a great idea! Are challenges (somewhat) popular? Do we have numbers about it?
<refurio>`guix pull` seems kind of slow. I wonder if that could be helped. I suppose there are better places to find out about what devs are doing than prodding folks here...
<janneke>it's been particularly slow here, this weekend -- no idea why
<refurio>Interesting! I'll keep an eye on it!
<refurio>Here's one thing I haven't resolved myself yet: When I put `source ~/.guix-profile/etc/profile` in my .profile, it will set up paths not relative to the profile but using absolute paths with hashes. That seems... wrong? Is there a way to fix it? Or am I holding it wrong?
<janneke>the debian folks have been thinking about and working on something they call "rebuilders" for at least seven years, which would have a similar use as guix challenge / or guix --no-substitutes
<refurio>Thanks, @janneke, I didn't know!
<janneke>guix always uses full store file names, i don't think there's a way around that
<janneke>ACTION agrees that it would be awesome to have all guix packages challenged, however, someone would need to put up the resources and time to do so
<refurio>Hm... It seems wrong, because it forces me to restart various stuff each time I update my main profile. And I feel that that should not be forced upon the user. The fix seems kind of simple: just generate an etc/profile which uses a guix profile as starting point instead.
<janneke>also, it's probably more useful to first try and make guix 100% reproducible?
<refurio>Having a decentral self-organized crowd doing the challenges has advantages too. Or rather, hvaing a known challenger makes it prone to attacks.
<refurio>Ah, of course it's not 100% reproducible yet. What was I thinking %-D Well, that may be a high bar to achieve.
<janneke>refurio: i don't want to dismiss your relative-to-profile file-names suggestion right away, but i would like to stress that one of the basic ideas of guix is that dependencies always strict; iow we must be sure to avoid finding/using a wrong dependency when not using absolute store file names
<mwette>If I'm cross-building guix image on x86_64 for riscv64 is it correct to see CC_FOR_BUILD=gcc for the configure flags? I am seeing --host=riscv64-linux-gnu.
<refurio>I see that they must be strict when it comes to packages themselves. But with respect to profiles the case seems to be a bit weaker: they have strong coupling built-in, so it's kind of redundant to repeat that in environment variables. You're still right for the use case I suggested: running software may end up with mixed versions, so I admit it would be a hack.
<refurio>Maybe it's a bad one in practice. It just feels so natural :)
<janneke>mwette: usually CC_FOR_BUILD is the native compiler
<refurio>Perhaps the suggestion to put it in .bashrc instead of .profile is a hint here. Maybe etc/profile should be loaded more often, and it would, if starting things would typically be wrappd in shell scripts. Thanks for making me think a bit deeper about this, @janneke!
<mwette>janneke: Thanks. It seems gawk-3.1.8 does not cross-compile to riscv64? I was under the impression people were building guix-system for riscv64.
<janneke>refurio: where did you find the "suggestion to put [source ..profile] in .bashrc" -- you must never do that!
<janneke>mwette: folks over at #guix-risc-v are working on that, but they haven't gotten past tcc-boot yet, afaik
<weary-traveler>how do you install the build time dependencies of a package in a given profile? guix package doesn't seem to use a "-D" option
<refurio>Oh, it's .bash_profile! Sorry, I confused those. It git a bit late yesterday :D
<refurio>of course, putting it in .bashrc will lead to ever longer paths. Argh.
<mwette>janneke: Oh cool. Thanks.
<refurio>fun topic, @mwette!
<mwette>refurio: Thanks. I'm currently targeting the StarFive VisionFive2 (headless mode)
<janneke>refurio: np, but .bashrc is being sourced when creating (reproducible) guix environments, you don't want to set anything like *PATH there
<refurio>It is? I feel slightly irritated about this, but nevermind, I still haven't dug into building.
<futurile>weary-traveler: guix shell is a good option: guix shell --development <package> --container --nesting --network
<weary-traveler>futurile: that will install the dependencies, but not save them to the profile iiuc
<refurio>I should get some riscV boards to play with. I've put the VisionFive2 on my candidates list. Thanks, @mwette!
<futurile>weary-traveler: you can see the packages that have been put into the environment (with --development <package>) by then doing guix package --list-installed --profile=$GUIX_ENVIRONMENT
<futurile>weary-traveler: correct - are you trying to ensure that the dependencies are in a certain profile or something?
<weary-traveler>futurile: yes. i'd like build dependencies of $foo to be available in profile $foo-build
<futurile>weary-traveler: do you use manifests?
<weary-traveler>futurile: not yet, but i suppose i could. could you give a hint as to what it'd look like for build dependencies of a package $foo?
<weary-traveler>or equivalently an expression that evaluates to said dependencies since it seems guix package does take an --install-from-expression argument
<weary-traveler>hm it seems the expression must evaluate to a package. okay a manifest file is what i'll need
<futurile>weary-traveler: yeah, you can't get the "development dependencies" using guix package. You really need to use `guix shell` to get those. If you use guix shell --development <blah> --export-manifest it will give you a manifest you can use with a profile
<weary-traveler>ah!
<futurile>I really recommend you look at guix shell - it's much cleaner that using a profile - and it caches anyway - and then use manifests with the shell env
<weary-traveler>futurile:
<futurile>weary-traveler: if you're interested I've done a few posts on shell and reproducible envs that might help - here's the shell one: https://www.futurile.net/2023/04/29/guix-shell-virtual-environments-containers/
<futurile>(I find profiles slightly confusing - so maybe it's my error - I just use shell for everything!)
<weary-traveler>futurile: appreciate it, thanks! how do avoid guix gc from culling things installed via guix shell?
<futurile>weary-traveler: I think you can link it with a profile if you want: see --profile=<profile> - I use manifests that have named profiles (e.g dev-project) - so I can then do guix shell --manifest=project1.scm
<weary-traveler>futurile: okay, so i now have the following manifest file https://paste.mozilla.org/KUFknvhM , but get this error when i try to install it via guix shell -m: https://paste.mozilla.org/HdMVd9FP . interestingly the guix shell with the packages listed on commandline succeeds. any suggestions?
<peanuts>"Mozilla Community Pastebin/KUFknvhM (JavaScript)" https://paste.mozilla.org/KUFknvhM
<peanuts>"Mozilla Community Pastebin/HdMVd9FP (JavaScript)" https://paste.mozilla.org/HdMVd9FP
<weary-traveler>futurile: possibly false alarm. i made a mistake my end
<weary-traveler>hm it seems you cannot simultaneously use --profile and -m with guix shell
<weary-traveler>and trying to do guix package -p $profile -m $manifest results in https://paste.mozilla.org/HdMVd9FP
<peanuts>"Mozilla Community Pastebin/HdMVd9FP (JavaScript)" https://paste.mozilla.org/HdMVd9FP
<futurile>weary-traveler: OK - I guess ignore my thin about using profile - I don't know how you avoid garbage collection I think - mostly because I never run gc
<futurile>I must have misunderstood what it does - it clearly loads the profile into the shell env
<weary-traveler>what's odd is that guix shell -m $manifest succeeds, but guix package -p $profile -m $manifest fails. i'm guessing because guix shell is implicitly ignoring collisions?
<weary-traveler>yeah, almost certainly
<futurile>weary-traveler: I think the difference with manifest when you use it with package is it just 'over-writes' the existing profile - so it is declarative. You don't get 'what you had before' + 'things from the manifest' - you get only 'things from manifest'
<weary-traveler>futurile: there's nothing "before". it's an empty profile
<weary-traveler>it seems like a known behaviour of guix shell: https://issues.guix.gnu.org/54350
<peanuts>"'guix shell' skips profile collision checks" https://issues.guix.gnu.org/54350
<apteryx>Hurd is interested in having a CI; perhaps ci.guix.gnu.org could help? https://lists.gnu.org/archive/html/bug-hurd/2023-12/msg00012.html
<peanuts>"Re: CI" https://lists.gnu.org/archive/html/bug-hurd/2023-12/msg00012.html
<futurile>hmm interesting
<Guest70>Hello i'm trying to build keyboard firmware with the `qmk` package, however i'm missing "arm-none-eabi-gcc" command, what would i need to do to setup gcc for cross compiling like this?
<vagrantc>hrm. i have a a guix system configuration that is basically a barebones with grub-efi ... any guesses what is pulling in guile-icons/guile-rsvg/librsvg?
<vagrantc>i *think* those are the only packages depending on rust, which on aarch64 is ... a lot of local builds
<vagrantc>is the grub configuration maybe pulling in some tooling to convert an icon or something?
<vagrantc>i would be happy to have an iconless install if it means i don't need to build 12 versions of rust ...
<vagrantc>this seems to come from %base-packages-artwork
<Guest70>Sorry, if anyone answered my queiston please repeat, since i accidentaly turned off my computer!
<Guest70>(i will get proper irc connection soon i promise)
<vagrantc>ok, stumbling through the differences between cons and append ... i maybe figured out a hackish way to drop guix-icons ... although maybe it will explode in some other way now
<efraim>I always think of it as (cons item (cons item (list)) or (cons* item item (list)) or (append (list item item) (list ...))
<efraim>where (list...) can also be an empty list
<vagrantc>what is cons anyways? (append (list ... i sort of get from the plain english of it
<vagrantc>this is my "no really, how little scheme does vagrant know" 2024 edition :)
<efraim>cons joins two atoms together into a dotted pair, (item1 . item2), unless item2 is a list and then it magically prepends it to a new list comprised of all the atoms.
<efraim>ACTION ends up playing guess-and-check with code far too often
<vagrantc>i "figured" this out comparing the differences between (packages ... in gnu/system/examples/desktop.tmpl gnu/system/examples/bare-bones.tmpl
<vagrantc>that is pretty much how i manage to do anything ... comparative cargo-culting :)
<vagrantc>although i guess i am cargo-culting to drop cargo in this particular case :)
<Guest68>i find references in guix code to arm-none-eabi-gcc, but it is not a package?
<vagrantc>Guest68: i think it is constructed as needed ... not a predefined package
<vagrantc>various make-arm-none-*toolchain ... functions? procedures? macros?
<vagrantc>i only know how to make them appear as part of a package definition... and again, through the powers of cargo-culting :)
<Guest68>adding "raspi-arm-chainloader" to package inputs and the cargo will surely appear
<futurile>is there some general breakage of video at the moment - I cna see that mpv was updated in Dec - but maybe it broke packages that depende on it like celluloid? (i'm a bit confused by the Ux in CI)
<Guest68>nope "fatal error: string.h No such file..."
<Guest68>seems to be pulling the crosscompile chain though
<janneke>efraim: "unless item2 is a list"
<janneke>i'm sure you know that it item2 is a list, it's also a (dotted) pair, where CAR is item2 and CDR is ... yeah, another pair
<vagrantc>ACTION bluffs
<efraim>you might be giving me too much credit, unless I see the dot I don't call it a dotted pair
<janneke>there's nothing magical, except maybe that '(0 1 2) is a nicer form displaying '(0 . (1 . (2 . nil)))
<vagrantc>ACTION waits for the kernel to compile to see if removing guix-icons was successful
<bdunahu>Does anyone have a working batsignal daemon? I have not been able to recieve any notifications from it through libnotify, but the logs show it is monitoring the correct battery. My notification server also works with other applications... Can someone please give input on my configuration and logs? https://termbin.com/ghhn
<vagrantc>is there a way to kill "guix system config ..." without killing the currently running build ... i've got linux-libre building, but do not want to convintue to build all the rust variants once that completes ... but i do not want to kill the linux-libre build as it has made some progress
<vagrantc>er, "guix system reconfigure ..."
<vagrantc>i've since figured out a system configuration that hopefully doesn't need the rust bits, and building 12 rust versions is something that would be nice to avoid :)
<janneke>vagrantc: i don't know, but i wonder what would happen if you stop de guix-daemon
<nathan-lt>Hi, I have been unable to do `guix system reconfigure` due to a failure in `mpv-mpris-1.1.drv` since at least mid-december. I see a pending patch https://issues.guix.gnu.org/68044 that may fix it. In the mean time, what is the best way to find out what package is requiring it so I can decide if I even need it?
<peanuts>"[PATCH] gnu: mpv-mpris: Fix build." https://issues.guix.gnu.org/68044
<podiki>nathan-lt: i don't see any packages using mpv-mpris as an input (based on "guix refresh"), are you sure you didn't include it somewhere?
<nathan-lt>That's possible. I'll take a look
<podiki>anyone use php on a guix system? trying a webapp (rss-bridge which we package but working on updating and then later a service for it) and getting a curl certificate issue
<podiki>"cURL error server certificate verification failed. CAfile: none CRLfile: none"
<podiki>but trying php curl locally (not via web) seems fine, based on my zero knowledge of php and just pasting examples to try
<podiki>and yes nss-certs in system configuration
<nathan-lt>podiki: Yeah, I did in-fact include it.
<futurile>nathan-lt: I've just run into this - it looks like mpv-mpris is being discussed here - https://issues.guix.gnu.org/68250
<peanuts>"[PATCH v2] gnu: mpv: Fix pkgconfig file." https://issues.guix.gnu.org/68250
<futurile>nathan-lt: there seems to be breakage in other video packages that depend on mpv in master - I just hit it in celluloid I think
<civodul>quick poll: how do you like the blue banner at the top of https://guix.bordeaux.inria.fr/jobset/guix ?
<peanuts>"guix" https://guix.bordeaux.inria.fr/jobset/guix
<vagrantc>heh. well, ran out of disk space. that's one way to make my proposed acrobatics moot.
<civodul>is it understandable? is it too prominent?
<vagrantc>civodul: seems just about right ... saves me some thinking trying to figure out what the most recent generation was
<civodul>vagrantc: actually it tells you when the repos were last checked (as in running ‘git pull’), which is not necessarily when the latest evalution was made
<vagrantc>civodul: close enough for me :)
<civodul>heh, alright :-)
<vagrantc>usually my question is ... has this stalled out for hours at a time or is it busy doing something
<vagrantc>i recall ci.guix.gnu.org used to stall out approximately around european bedtime, right about when I was ready to start pushing things
<civodul>heh :-)
<civodul>obviously it’s not supposed to stall, even when the rest of us are asleep
<civodul>but who knows!
<civodul>anyway i figured displaying more of the system activity would help
<civodul>right now you still have to check the logs to get a view of what’s happening, and that’s not optimal
<civodul>i wonder what’s up with qa.guix: https://qa.guix.gnu.org/patches
<peanuts>"Patches Guix Quality Assurance" https://qa.guix.gnu.org/patches
<futurile>what do we generally do about package transitions? So exa (a 'modern' replacement for ls) stopped releasing in 2021 - there's a forked/maintained version called 'eza'. We have both in the archive - is there a way to alias one to the other, or notify users that the unmaintained one will be removed?
<podiki>civodul: yes to more info, and i like that shade of blue :)
<civodul>podiki: good, thank you :-)
<civodul>the web interface can now communicate with jobsets, so we could do more things like that in the future
<snape>bumble: I pushed qutebrowser
<civodul>futurile: we’d use ‘deprecated-package’ in this case, such as “guix install exa” actually installs “eza” (with a warning)
<snape>thank you
<civodul>howdy snape :-)
<podiki>earlier question: anyone use php on a guix system? trying a webapp (rss-bridge which we package but working on updating and then later a service for it) and getting a curl certificate issue
<snape>hey civodul :)
<podiki>civodul: by the way, speaking now via self-hosted matrix server on a guix server (using docker), move went well! took lots of notes, mix of guix services too, wrote a quick one for miniflux (rss reader)
<civodul>podiki: neat! are you using oci-container-service-type?
<podiki>ooo i did not know about that, will take a look
<podiki>for now a pretty simple docker-compose file; was thinking about a simple service to run that from shepherd but maybe that's what oci-container is for
<snape>ACTION would be interested by a guix matrix service
<futurile>civodul: OK, thanks - checking it out
<civodul>podiki: yes, that’s what it does
<podiki>oh very nice, so i can translate the docker-compose info to that service pretty straightforwardly
<podiki>do you know if all containers in the service declaration run on the same container network?
<podiki>e.g. for containers to talk to each other
<civodul>podiki: i don’t remember, but it should be in the manual
<podiki>i see a "network" option, i guess can give them all the same named network or something? might have to see the code or what the service generates
<podiki>anyway, thanks for that!
<podiki>a few more little things to get running and then will look to translate to that service (could make for a good example to show how to move from docker to shepherd)
<cbaines>civodul, I cleared out all the patch branches today to get them rebased (and that confused the issues statuses for a moment)
<civodul>cbaines: oh ok, so it’ll come back soonish i guess
<cbaines>well, I'm hoping that the data service will process some revisions at least
<cbaines>unfortunately it's still quite slow
<cbaines>and substitute availability is pretty bad, so it's going to take a while before we can start building packages for patches again
<civodul>ok
<podiki>what do we think about a blog post about a guix home server? some basic web hosting, shepherd services (including writing a quick one), general set up?
<jonsger>would be nice
<podiki>maybe split with a very quick and easy basic setup and then a more involved example (like a matrix server or other things that use docker/oci)
<apoorv569>What's wrong this this? https://0x0.st/HUUT.txt
<apoorv569>I get this error, `guix home: error: invalid name: `.vimrc'`