IRC channel logs

2022-03-21.log

back to list of logs

<ngz>But in the general case, there is no specific tool
<atka>why will guix search dig not then?
<ngz>It will, but the answer is buried among other matches. It's a search across description of the packages.
<atka>ok, thinks, I'll learn how to refine my searches
<atka>s/thinks/thanks
<atka>ngz: do you know what this means "The `utils' output of this package contains the following command line utilities"
<atka>I installed bind but no dig command is available
<atka>just insalled ldns for drill and no drill command...
<mekeor[m]>hello guix :)
<Noisytoot>Does the Guix Nheko package work for anyone else? It fails to log in for me.
<Aurora_v_kosmose>I tried it lately and it worked, but Nheko missed a few features from the web client so I didn't mess with it much longer.
<Aurora_v_kosmose>On another topic, I've got a package that is broken with any recent version of one of its dependencies. Should I package an inherited older version of its dependency in the meantime?
<mekeor[m]>Noisytoot: does it print any error message?
<Noisytoot>mekeor[m]: Not unless I click on the settings button, in which case it crashes with this message: https://x0.at/pN5q.txt
<Noisytoot>If I don't, it just loads forever
***rekado_ is now known as rekado
<Aurora_v_kosmose>>3200s for build
<Aurora_v_kosmose>Hm, this is going to take a while
***iyzsong-www is now known as iyzsong-w
***apteryx_ is now known as apteryx
<lfam>atka: For dig, you need to install bind:utils
<nouun1>Does anyone have a cgit setup they use which I could use as an example?
<nckx>sneek: later tell atka: guix install ldns:drill
<sneek>Okay.
***alMalsamo is now known as lumberjack123
<dust_>Can some take a look at this ? https://issues.guix.gnu.org/53730
<Aurora_v_kosmose>yay, it finallly built!
<Aurora_v_kosmose>Now I just have to upstream a bunch of patches. Later.
***janneke_ is now known as janneke
<florhizome[m]>* is wondering which of guix‘ desktop environments could be switched to be home services
<florhizome[m]><Noisytoot> "mekeor: Not unless I click on..." <- Ah i had this problem too, when trying it a while ago
<civodul>Hello Guix!
<efraim>o/
<mike237681>guix pull is stalling at 75%
<civodul>weird
<civodul>efraim: what's up? :-)
<EndOfAnEra>hi, so when you do guix pull from https://git.savannah.gnu.org/git/guix.git
<EndOfAnEra>which branch does it pull that is authenticated?
<lilyp>it pulls from master
<EndOfAnEra>lilyp: ok then. When I checked out the master branch and set the channel to (url "file:///local/copy"), it seemed to recompile everything, so I thought that's because the local master is an experimental branch
<lilyp>What are you trying to achieve? Did you read through the Contributing section of the manual?
<EndOfAnEra>lilyp: I'm trying to add a package and there seems no way to do "guix system reconfigure" without adding the local git repo as a channel, with that update
<EndOfAnEra>and it begins recompiling everything for 12 hours, webkit twice with webkit-with-libsoup2 etc
<EndOfAnEra>after guix pull --allow-downgrade --disable-authentication
<EndOfAnEra>I thought it wasn't finding substitutes, because the local master was experimental
<lilyp>well, that depends on what you did to your branch
<lilyp>and whether substitutes are enabled at all etc.
<EndOfAnEra>added a package and committed, so it can't be authenticated
<efraim>civodul: got guix itself to build on riscv64-linux, I'm up to day 4 building it on powerpc-linux
<efraim>testing a slightly modified wfmash on riscv64 for the bioinformatics folks
<lilyp>just adding a package does not require a system rebuild though
<EndOfAnEra>but I want to keep everything in my config, hence guix system reconfigure
<jpoiret>you can totally do ./pre-inst-env guix system reconfigure
<EndOfAnEra>ok then
<jpoiret>and if you want to simply add a package, you can also do so right in your config.scm
<jpoiret>without modifying Guix, although if you want to upstream it the former way is preferred
<lilyp>why not first check whether your added package builds using ./pre-inst-env guix build?
<civodul>efraim: oh, neat!
<lilyp>note that you can also do integration tests using guix system vm
<civodul>efraim: were there problems to build Guix on these architectures?
<jpoiret>did you make your commits on the latest master? if so, you should be able to find substitutes
<EndOfAnEra>jpoiret: yes
<EndOfAnEra>ok I'll try some more
<efraim>civodul: the only one I remember is the one I patched, where I used guile-3.0 for the bootstrap instead of 2.0, so it asked for the wrong bootstrap guile version
<civodul>oh i see
<civodul>not too bad!
<jpoiret>you could try "./pre-inst-env guix weather webkit" for example
<EndOfAnEra>jpoiret: thanks
<efraim>now i need to fix nss. I'm strongly considering skipping the test suite on riscv64-linux since it takes like 31 hours
<efraim>then I'm most of the way to building an image
<civodul>efraim: woow, impressive
***vlorentz1 is now known as vlorentz
<EndOfAnEra>lilyp, jpoiret: I had to first do ./pre-inst-env guix pull --disable-authentication --allow-downgrades before doing "system reconfigure", thanks!
<lilyp>that sounds like --safety-third
<jpoiret>you can directly run `./pre-inst-env guix system reconfigure` though
<jpoiret>well, rather, `sudo -E ./pre-inst-env guix system reconfigure`
<EndOfAnEra>ok I fixed my channels file and now these flags weren't needed anymore
<EndOfAnEra>I assume ./pre-inst-env adds the local git repo to the front of the load paths
<nouun>Is there a shell independent way to set envvars?
<EndOfAnEra>nouun: you can use POSIX compliant $HOME/.profile
<EndOfAnEra>.bash_profile sources that file first
<EndOfAnEra>nouun: "guix home search" shows there is a service "home-shell-profile" for the .profile file
<EndOfAnEra>now I have no idea how to modify them in your config, you'd have to add or modify the service somehow to include your exported variables
<GuiGuiGuix>Hello, I'm trying to install (though time-machine) a previous version of chromium guix time-machine --commit=c334b7c52fe77b68a90b23fbac5c9de7337e607b -- -i ungoogled-chromium
<GuiGuiGuix>but I've got this error:
<GuiGuiGuix>building /gnu/store/bnmi1nfsxzna0qxbs27wnzn457j2yc22-nonguix.drv...
<GuiGuiGuix>|builder for `/gnu/store/bnmi1nfsxzna0qxbs27wnzn457j2yc22-nonguix.drv' failed to produce output path `/gnu/store/b90clqc48hhcp3dkvmywj7fsd4vhl8d6-nonguix'
<GuiGuiGuix>build of /gnu/store/bnmi1nfsxzna0qxbs27wnzn457j2yc22-nonguix.drv failed
<GuiGuiGuix>View build log at '/var/log/guix/drvs/bn/mi1nfsxzna0qxbs27wnzn457j2yc22-nonguix.drv.gz'.
<GuiGuiGuix>cannot build derivation `/gnu/store/klm0jzm6hgi4slm132h1s70g3g21ysjk-profile.drv': 1 dependencies couldn't be built
<GuiGuiGuix>guix time-machine: error: build of `/gnu/store/klm0jzm6hgi4slm132h1s70g3g21ysjk-profile.drv' failed
<GuiGuiGuix>Derive([("out","/gnu/store/alkdfvbyzcjbiaxnzjplwbzzml9mskq4-profile","","")],[("/gnu/store/26qpj6z2ybwdc14ky8a0vlc9sdpp3c0d-glibc-utf8-locales-2.33.drv",["out"]),("/gnu/store/47srflaki1n9189krji9bzc0mbpmwmcw-guix-package-cache.drv",["out"]),("/gnu/store/5cp2rvby354i3waxrzlir4qyqfcyi8mq-info-dir.drv",["out"]),("/gnu/store/bl5psiid6sklkfv1dg9sx07knav
<GuiGuiGuix>xvzg0-module-import-compiled.drv",["out"]),("/gnu/store/bnmi1nfsxzna0qxbs27wnzn457j2yc22-nonguix.drv",["out"]),("/gnu/store/djxxgzv2gzd1ma4ilgjcp5b2bb1gq6xg-ca-certificate-bundle.drv",["out"]),("/gnu/store/gvypwi628j45388lzgcxfigkc3wrmc3k-guile-3.0.7.drv",["out"]),("/gnu/store/pbg0mzck596piggxbjvgi7iw9bnd7z44-guix-c334b7c52.drv",["out"]),("/gnu/sto
<GuiGuiGuix>re/whpffgqqfmndsffidhgw0nnb8xa100br-fonts-dir.drv",["out"]),("/gnu/store/yd3cfkcrbd2aq2lfw2f8zdsifvcvmb3k-emacs-subdirs.drv",["out"])],["/gnu/store/f8yq0qvy1qfccsadyj8m7vq92n33b44j-profile-builder","/gnu/store/kmr0lld3hcjm4blfaxpdigpxi1a3163l-module-import"],"x86_64-linux","/gnu/store/1kws5vkl0glvpxg7arabsv6q9vazp0hx-guile-3.0.7/bin/guile",["--no-a
<GuiGuiGuix>uto-compile","-L","/gnu/store/kmr0lld3hcjm4blfaxpdigpxi1a3163l-module-import","-C","/gnu/store/0yrmxis4pi7ar0ianm8sx539v033xlns-module-import-compiled","/gnu/store/f8yq0qvy1qfccsadyj8m7vq92n33b44j-profile-builder"],[("GUILE_WARN_DEPRECATED","no"),("allowSubstitutes","0"),("guix properties","((type . profile) (profile (count .
<GuiGuiGuix>2)))"),("out","/gnu/store/alkdfvbyzcjbiaxnzjplwbzzml9mskq4-profile"),("preferLocalBuild","1")])%
<GuiGuiGuix>any idea ?
<GuiGuiGuix>sorry for the long message :(
<lilyp>use a paste service next time
<GuiGuiGuix>yes sorry I'll take care next time4
<EndOfAnEra>GuiGuiGuix: see the log, "zcat ...drv.gz" from the "View build log at"
<EndOfAnEra>it will tell you where it failed
<lilyp>also it appearrs as though your problem is that the naughty chanel doesnt build, note that the naughty channel itself states you shouldn't bug us in such an event :)
<GuiGuiGuix>(exception unbound-variable (value #f) (value "Unbound variable: ~S") (value (imgui-1.86)) (value #f))
<lilyp>s/appearrs/appears/;s/chanel/channel/
<GuiGuiGuix>hmm sorry I'm not really used to that (quite new in guix community)
<EndOfAnEra>GuiGuiGuix: the "~S" is a formatting variable, it's trying to print something out and that value isn't specified
<nouun>EndOfAnEra: Thanks for that, I know how to setup the service.
<EndOfAnEra>GuiGuiGuix: like (format "something: ~S" myvariable) <-myvariable isn't specified
<GuiGuiGuix>EndOfAnEra: yes got it
<EndOfAnEra>GuiGuiGuix: if you do "guix edit <package>" you should be able to see it's build script
<EndOfAnEra>and that's where it's the responsibility of the channel maintainer to make sure that the build script works
<EndOfAnEra>but #guile can help with code in general
*attila_lendvai is still hoping that the #:rlimits and shepherd-for-guix patches get merged eventually
<mike2376>What shoule I do guix pull stalled at 75% overnight?
<civodul>mike2376: hi! could you interrupt it and try again?
<civodul>that sounds weird
<mike237691>I tried that yesterday when it stalled at 90%
<mike237691>Cpu usage drops and stalls
<civodul>mike237691: is that on x86_64?
<mike237691>I686
<civodul>attila_lendvai: finally pushed with minor tweaks! https://git.savannah.gnu.org/cgit/shepherd.git/commit/?id=3ee9a7193d73821d6f1dd76a745ed5e4bb1a78c8
<EndOfAnEra>when ./pre-inst-env guix describe --format=channels
<EndOfAnEra>it doesn't load the channels in $HOME/.config/guix/channels
<zimoun>EndOfAnEra: that’s expected. The Guix is from the checkout, so you need to pull. ./pre-inst-env guix pull -p /tmp/new --url=$(pwd) or something along this. But you will not have what you want and the easiest is to write a specific channels.scm file containing extra channels and instead of %default-channel the local checkout.
<EndOfAnEra>zimoun: oh I had no idea about guix pull -p, thought just pull worked
<zimoun>EndOfAnEra: by default “guix pull” creates a generation for the profile ~/.config/guix/current. Therefore, if you do not want to pollute this default profile, you can use another profile and test with ’/tmp/new/bin/guix describe’.
<EndOfAnEra>I see
<EndOfAnEra>zimoun: but odd that ./pre-inst-env guix package --list-profiles shows the same profiles
<EndOfAnEra>it's confusing when you want to do anything in the guix code, a lot of profile and channel set up to do
<zimoun>the same profiles of what?
<EndOfAnEra>zimoun: the same as without "pre-inst-env"
<zimoun>why it would be different?
<EndOfAnEra>so ./pre-inst-env guix pull, pulls from all channels, then ./pre-inst-env guix describe --format=channels, shows it missing
<EndOfAnEra>then ./pre-inst-env guix system reconfigure, no channels, despite that you did a pull in the env
<zimoun>yes, it is expected.
<EndOfAnEra>ok, I'll look into profiles
<zimoun>because the Guix you pulled is in the profile ~/.config/guix/current
<zimoun>EndOfAnEra: ’./pre-inst-env guix pull’ uses the code (guix scripts pull) to compile the code from the channels defined by ~/.config/guix/channels and the result is going to the profile ~/.config/guix/current.
<zimoun>Does it make sense?
<zimoun>(I mean the code (guix scripts pull) from the checkout :-))
<EndOfAnEra>zimoun: yes
<EndOfAnEra>zimoun: so then when ./pre-inst-env guix system reconfigure, you need to add the default profile through $GUIX_EXTRA_PROFILES to the default profile?
<zimoun>Well, it depends what you modified.
<EndOfAnEra>GUIX_EXTRA_PROFILES=/home/noname/.config/guix/current ./pre-inst-env guix describe --format=channels
<EndOfAnEra>still no channels but the git directory
<EndOfAnEra>I'm trying to do simple editing in packages
<EndOfAnEra>from the git resources of guix
<EndOfAnEra>but I need all of my channels to use the packages I've edited
<EndOfAnEra>to create a system profile generation
<zimoun>’./pre-inst-env guix pull -C channels.scm’ where channels.scm contains your channels and replace ’%default-channels’ by a channel pointing to your local checkout. Then “guix system reconfigure” will use the edited packaged with the packages from your channel.
<zimoun>But doing so, you pollute your history, so I would do “./pre-inst-env guix pull -C channels.scm -p /tmp/new” and then “/tmp/new/bin/guix system reconfigure”
<EndOfAnEra>trying
<attila_lendvai>civodul, thank you, much appreciated! if i may, i'd like to also draw your attention to the shepherd-for-guix one: https://issues.guix.gnu.org/54216#9 and the cleanup that should go into staging: https://issues.guix.gnu.org/54216#13
<EndOfAnEra>ohh, guix from THAT directory!
<EndOfAnEra>zimoun: ok thnx I won't use more space
*attila_lendvai updates the patches to include the #:resource-limits commit from shepherd
<apteryx>is there a reason why 'emacs-substitute-sexps' and 'emacs-substitute-variables' from (guix build emacs-utils) are syntax rather than procedures?
<yoxem>Excuse me, I found a dispute in the installation tool of Guix.
<yoxem>The Locale setting in the beginning contains "Taiwan, a Province of China" after selecting Min Nan Chinese
<apteryx>it appears this string is not in the sources of Guix
<yoxem>Most users of Min Nan Chinese/Taiwanese in Taiwan are not pro-China; it will decrease the incentives to use it.
<yoxem> https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/installer/locale.scm?h=v1.3.0
<yoxem>(call-with-input-file iso3166) may be related to it.
<yoxem>ISO 3166 claimed that Taiwan is a province of China.
<apteryx>seems it'd come from the package iso-codes
<apteryx>available from https://salsa.debian.org/iso-codes-team/iso-codes
<civodul>seen on the intertubes: https://nitter.net/9bladed/status/1505785780744048641
<apteryx>fun!
<acrow>Another beautiful day with guix!
<yoxem> https://salsa.debian.org/iso-codes-team/iso-codes/-/blob/main/iso_3166-1/zh_TW.po#L1567
<mekeor[m]>will this replace "prefix = /usr/local" in the file "Makefile" with "prefix = /gnu/store/…-package-name"? (substitute* "Makefile" (("/usr/local") %output))
<apteryx>yoxem: I'd suggest you open a bug/request with them (iso-codes)
<yoxem>I suggested to use the common name for Taiwan/R.O.C.
<yoxem>as taiwan
<apteryx>OK!
<yoxem>@<apteryx> where can I open it?
<apteryx>salsa is an instance of Gitlab, so I'd expect you can use it to open an issue
<apteryx>i.e.: https://salsa.debian.org/iso-codes-team/iso-codes/-/issues
<abrenon>hi guix
<apteryx>o/
<yoxem>The "Taiwan" is defined in common_name; while "Taiwan, P.o.C." is defined int name
<yoxem>a workaround is :(name (if (= alpha2 "TW") (assoc-ref hash "common_name") (assoc-ref hash "name") ))
<yoxem>or some runable similar to it
<euandreh>does the containers supported by Guix provide actual isolation (FreeBSD jail-like) to help with things like exposing services to the internet?
<mekeor[m]>is it possible to use %output in (package (source (origin (snippet HERE))))?
<apteryx>I'd think (snippet #~(begin your snippet ... #$output)) should work (using a gexp for the snippet)
<apteryx>euandreh: some Guix System shepherd services are containerized; using 'make-forkexec-constructor/container' to run the process in its own namespace
<apteryx>you can choose what part of the file system to expose from the host via the #:mappings argument
<euandreh>apteryx: yep, I've seen that. My question is whether this isolation helps with security
<mekeor[m]>apteryx: thanks, i'm trying that now. i wonder where the "%output" variable comes from. it's also used in some package declarations.
<apteryx>mekeor[m]: it's a "magic" variable
<euandreh>apteryx: Docker is famous for allowing root users inside a container to escape the container and get root on the host
<apteryx>euandreh: I'm no security expert, so I'll let others tip in on that particular question.
<euandreh>apteryx: ack
<euandreh>looking at the manual, other than reproducibility and isolation, I couldn't find more resources on containers
<mekeor[m]>apteryx: where's it documented? :)
<euandreh>I'll try reading the implementation
<apteryx>mekeor[m]: the %output variable?
<mekeor[m]>euandreh: also consider consulting the mailing list :)
<mekeor[m]>apteryx: yes
<apteryx>seems to be documented as part of build-expression->derivation
<civodul>hey abrenon, apteryx, and all :-)
<apteryx>hey, civodul!
<mekeor[m]>hey civodul :)
<civodul>euandreh: i think security is not black and white; isolation via containers makes it a bit more difficult to do things--not impossible, but more difficult
<abrenon>hi civodul
<mekeor[m]>apteryx: there's only %outputs documented, not %output
<euandreh>civodul: ack. I'll read more to judge where Guix containers fall between the Docker <-> jails spectrum :)
<apteryx>%output indeed doesn't appear to be documented, but the snippet is documented as acceptinga G-expression, and that in turn documents the #$output special variable.
<civodul>yeah, %output is deprecated
<civodul>euandreh: you might like https://guix.gnu.org/en/blog/2017/running-system-services-in-containers/ :-)
<euandreh>civodul: ty :)
<civodul>new! an intro to Guix Home: https://guix.gnu.org/en/blog/2022/keeping-ones-home-tidy/
<apteryx>wow, nice addition!
<mekeor[m]>guix-home looks nice. but i'll wait for it to support system-services :)
<mekeor[m]>there's also the cc-for-target variable which is not documented
<civodul>mekeor[m]: it supports "home" services, not "system" services :-)
<civodul>i guess that post was long overdue
<mekeor[m]>i know
<mekeor[m]>hm, i'm trying to define a package but i get an error. here are both package and error. any ideas? https://paste.rs/THL.scm
<nckx>Yo Guix!
<nckx>civodul: Yay!
<nckx>Wow.
<nckx>"Taiwan, a Province of China" is beyond offensive, and so needlessly so. We should fix it even if upstream doesn't. Thanks for bringing it to our attention, yoxem.
<civodul>i'm surprised iso-codes takes such a stance
<nckx>Yeah.
<df>I would guess it refers to ROC rather than PRC
<df>although maybe not, it looks like taiwan has no representation in ISO
<df> https://en.wikipedia.org/wiki/Taiwan,_China#The_United_Nations_and_the_ISO
<lispmacs[work]>in guix, how do I get the debugging symbols for installed applications?
<jpoiret>lispmacs[work]: you can pass --with-debug-info to `guix build`
<jpoiret>it might not work for all packages
<civodul>lispmacs[work]: yes, and see https://guix.gnu.org/manual/devel/en/html_node/Installing-Debugging-Files.html
<jpoiret>civodul: wdym by "service types and their extension operation form a monoid"?
<civodul>df: ah, now we know
<zimoun>jpoiret, civodul: I had the same question. :-)
<jpoiret>My first guess would be that, for a fixed service type, its extensions form a monoid
<civodul>jpoiret: it can be viewed as a monoid, which gives (few) properties regarding how this thing works and what can be done with it
<civodul>well it's the set of service types plus the extension operation i'd say?
<df>if you wanted to patch the data it looks like the logical source would be CNS 12842
<podiki[m]>yes, that was me with the guix on steam deck! need more time to iron it out, not sure about wifi but at least the usb-c dock I have includes ethernet (or I'll just build a better image from my main computer)
<jpoiret>but, service-type `extend` service-type doesn't give you a new service-type?
<abrenon>civodul: extension combines two services ?
<civodul>yes
<abrenon>what's a service extending itself ?
<civodul>ah! not possible i guess
<civodul>(as you can see, i'm not myself a math geek :-))
<civodul>the identity element would be the service that extends nothing
<jpoiret>but i agree that for a fixed service type, its extensions form a monoid (which you actually specify yourself when defining the service :) )
<civodul>heh
***dlowe[x] is now known as dlowe
<bost>Hi. The checkouts for the '%default-channels' are stored under '~/.cache/guix/checkouts'. However where are the checkouts for the other channels? (Specified by '~/.config/guix/channels.scm')
<jpoiret>they should be there as well
<bost>jpoiret: aaah. Ok.
<bost>jpoiret: Ok then, I'd like to inspect a few recent commits from a channel which is not in the %default-channels. Is there a command for that? Or do I have to create myself my own?
*attila_lendvai is waiting for the shepherd-for-guix staging patch to build locally before sending the updated version
<jpoiret>you could simply `git clone` it?
<bost>jpoiret: yeah sure. But I thought somebody may have made something for such a use case already.
<civodul>attila_lendvai: just replied! i'm afraid this is not the reply you expected though, but we'll make progress i'm sure :-)
<attila_lendvai>civodul, i'd like to have a Shepherd in Guix master that includes the #:resource-limits commit, whichever way it's deemed more appropriate. if we release Shepherd HEAD just so that Guix includes only releases of Shepherd... then so be it! FWIW, i'm much more relaxed wrt releases in contexts where there's full version tracking.
<civodul>attila_lendvai: yeah; i think it's good here to have formal releases where we declare new interfaces
<attila_lendvai>civodul, FYI, updating the shepherd package must go into staging. and also to clarify: are you against the entire idea of shepherd-for-guix, or only against building a snapshot?
<attila_lendvai>civodul, there's rationale in the discussion for the latter. namely that it enables a much faster dev cycle when testing changes to Shepherd in the context of the Guix environment.
<attila_lendvai>civodul, let me know if you want me to update the shepherd-for-guix patches, or you prefer to make a shepherd release and tailor them yourself afterwards. i'll have another hour of so today for hacking.
<zimoun>civodul, attila_lendvaiL: I think the use of Git source is a good idea. And it is not about release. :-) I mean the source can point to a Git tagged release. Then attila_lendvai can easily use a package transformation to get the recent Shepherd.
<mekeor[m]>when i try to install my own package from my own channel, i get an error during the build of guix-package-cache. what's wrong?
<zimoun>mekeor[m]: probably a conflict with your own package from your own channel. :-)
<attila_lendvai>it built, so i've sent the patch anyway FTR
<attila_lendvai>heh, fetching from git is so obviously better IMO that i haven't even considered that to be a possible obstacle... :)
<mekeor[m]>zimoun: my channel's git-repo was corrupted, so i deleted its .git directory and re-initialized the repo. could that be a reason?
<zimoun>mekeor[m]: yes, maybe.
*civodul looks at "guix graph --path dblatex shepherd" and cries
<civodul>das ist terrible
<Aurora_v_kosmose>So I just pushed a patch to fix something that hasn't been building for a bit more than a year. Unfortunately it required some questionable fixes.
<mekeor[m]>uh, it'd be so nice if i could guix pull only one of my many channels
<unmatched-paren>i wish guix had an option to sternly tell you off when you use an imperative command instead of a manifest; i'm trying to migrate all the things to guix home, but i keep impulsively running `guix install` :P
<Aurora_v_kosmose>I don't think that should be upstreamed, but that is an amusing idea.
<unmatched-paren>guix package: error: side effects are sinful
<unmatched-paren>:)
<Aurora_v_kosmose>Ultimately there are legitimate reasons for using "guix install". Namely incremental building of an intended end-state.
<unmatched-paren>try telling that to #haskell
<Aurora_v_kosmose>unmatched-paren: They just abstracted side-effects into monads and decided that wasn't the same but with some indirection.
<Aurora_v_kosmose>But on a more specific example, producing a program using ghc is a side-effectful action.
<lilyp>Well, Guix packed its side effects into the store monad, so...
<unmatched-paren>writing bytes to memory is a side-effectful action
<Aurora_v_kosmose>Indeed.
<lilyp>cons has side effects
<Aurora_v_kosmose>Yeah. It all boils down to the scope you decide to care about and the design goals you intend to reach.
<Aurora_v_kosmose>A significant part of Guix's monads was to abstract & simplify code that otherwise needed to be repetitive and finicky.
<jpoiret>Aurora_v_kosmose: Haskell's justification is that the IO monad could very well just produce bytecode for an IO interpreter, which would then be ran, but they optimize it and directly do the IO.
<jpoiret>in that model, there are no side-effects
<Aurora_v_kosmose>That's a strange notion, but I see what they mean.
<jpoiret>IO () values are simply "IO interpreter bytecode"
<Aurora_v_kosmose>I'm kinda wondering what a system with such an interpreter would look like.
<blake2b>out of curiosity, has anyone here tried mostly replacing their .bashrc with guix script which is executed from .bashrc initially?
<blake2b>sorry, I meant guile script
<blake2b>i'm considering giving it a go just because it would make reading my env vars so much cleaner, but would be curious to hear others experience, if it ends up being to slow, etc
<jpoiret>blake2b: you will no be able to modify bash's own state with such a script
<jpoiret>env vars are inherited by child processes, but not the other way around
<dlowe>I've been trying to get multimedia keys working using the pulseaudio plugin on xfce4. I made a new package for it with libnotify and keybinder enabled, and installed it using guix package --install-from-file. My question is - how can I tell if xfce4-panel is using the one I just installed
<blake2b>ah, got it! thanks that saved me a lot of headache
<mekeor[m]>blake2b: but are you aware of guix home? https://guix.gnu.org/en/blog/2022/keeping-ones-home-tidy/
<blake2b>mekeor: I am, and forever delaying adopting on it. thanks for this push, it seems like now is the time
***iyzsong- is now known as iyzsong
<dlowe>okay, xfce4-panel is using the system profile and ignoring mine. Not sure what to do.
<apteryx>as a first step to test things out, you add the packages to your operating-system's packages field and reconfigure
<dlowe>If I've added the package via install-from-file and not to a channel, will reconfigure still pick it up?
<dlowe>A: nope
<nckx>Hullo friends. Libera guix/user/ cloaks: do we want them? Any reservations? I've got two questions about cloaks in as many weeks; probably time for another round of 'who wants a cloak, is it you, do you want a cloak?'
<nckx>And what should be the criteria for them & guix/contributor/* cloaks?
<nckx>Fight amongst yourself, arena-style, & the last one to survive can ping me with the answers when I log back on.
<Aurora_v_kosmose>While on one hand it sounds neat, I don't think I want all my opinions and statements to be assumed representative of the project.
<jonsger>is there an "easy" way to determine if a NAR/narinfo is for a particular architecture?
<Haider>Clangd is giving me the following error:/home/haider/.guix-profile/include/c++/backward/binders.h:130:6: error: expected ';' after class [clang-diagnostic-error]
<Haider> } _GLIBCXX11_DEPRECATED_SUGGEST("std::bind");
<Haider>Doesnt matter, Ill go back to ccls
<dlowe>okay, installing it as a system package worked.
<dlowe>wondering if I should push this to guix
<dlowe>(rather, submit it to guix for inspection)
<unmatched-paren>once i've gotten fish set up with guix home, is it safe to change my shell to it?
<unmatched-paren>i've been bitten by that before; fish didn't source some things that guix needed
<unmatched-paren>s/change my shell/change my default shell/
<civodul>unmatched-paren: it should be, but fish is likely less tested
<civodul>you can test your home configuration under fish with: SHELL=fish guix home container ...
<unmatched-paren>ah, good point about the container
<apteryx>if (guix man-db) starts using guile-zstd, this makes it a hard requirement, right?
<civodul>apteryx: mandb (the package) doesn't use zstd anyway, does it?
<apteryx>it supports it (updated on guix-staging)
<civodul>oh
<civodul>it's ok for (guix man-db) to depend on zstd
<apteryx>I just need to adjust the phase compressing manpages in gnu-build-system to give it a shot
<civodul>we just need to add (with-extensions ...) where it's used
<civodul>(i think)
<apteryx>but it means guile-zstd is no longer a soft requirement, right?
<civodul>it's ok because it's only use "on the build side"
<civodul>in the manual-database hook
<civodul>(guix man-db) is not compiled otherwise
<apteryx>ah
<apteryx>thanks
<civodul>well, IIRC, but hopefully i do :-)
<apteryx>:-)
<apteryx>hmm, info-reader would need to support zstd too
<atka>hi guix, any decent ARM SBCs that are guix friendly?
<sneek>Welcome back atka, you have 1 message!
<sneek>atka, nckx says: guix install ldns:drill
<atka>nckx: thanks got it!
<unmatched-paren>hm, why is my guix home configuration's packages not getting installed? (i'm using package objects directly, then mapping (lambda (x) (if (list? x) x (list x "out"))) over the list)
<atka>also drill is the new dig yeah?
<unmatched-paren>hm, okay, if i do `SHELL=fish guix container ~/.config/guix/config.scm` i can't use guix inside the shell :(
<unmatched-paren>so i guess i won't be changing the login shell to fish then...
<pushcx>What are the system requirements for a running guix system? I can't find it documented anywhere and it seems to be prompting a crash.
<unmatched-paren>pushcx: what kind of crash? kernel panic?
<nckx>atka: I don't know about that, but it's certainly more featureful and, for me, useful.
<atka>thanks, sounds good to me
<pushcx>unmatched-paren: 'guix pull' crashes, saying 'guix pull: error: You found a bug'
<unmatched-paren>unless you're using an Intel(r) Pentium Pro(tm) from 1995(c), guix should work; there are many people using it on thinkpads from 2008
<nckx>And does dmesg log an OOM, pushcx?
<atka>I'm running it on 2006,2007 & 2015 hardware, works well
<pushcx>nckx: Let me run it again and watch. Takes about 10 minutes. In the meantime - do you know if are system reqs documented anywhere?
<unmatched-paren>In fact, its reliability is probably directly proportionate to the age of your device, as in 'the older the better'!
<unmatched-paren>(because of linux-libre)
<nckx>Guix® system requirements are a Soundblaster 16 and an 8x CD-ROM drive. Everything else is optional.
<atka>haha
<atka>what's the dhrystone of a soundblaster 16
*Aurora_v_kosmose ponders running Guix on a soundblaster
<nckx>pushcx: But seriously, not being a 90s PC game we don't have a 'system requirement' page. Happiness comes easier with a gig of RAM and some swap, or zswap, or zram, and you need a few gigs of storage for a minimal comfortable /gnu, but so much depends on how & what you build.
<atka>speaking of linux-libre what would you be missing out on with modern intel (framework laptop), I'd bring my own atheros wireless. igpu, hardware encode/decode,thunderbolt 4, would those work?
<nckx>I recommend more of both of course.
<nckx>Maybe the gig is too low by now.
<nckx>My first Guix System had 256 MiB of RAM. That's impossible now.
<Aurora_v_kosmose>pushcx: OpenBlas takes 11G of memory, minimum, to build. You can however do it with a machine that has less, if you use zswap & swap.
<Aurora_v_kosmose>*GB
<nckx>pushcx: Do you want to build a 'modern browser'? Good luck with <16G RAM. But's that's not Guix eating it.
<Aurora_v_kosmose>Nyxt is modern.
<nckx>The quotes are significant & scary.
<Aurora_v_kosmose>And while I can't load all tabs at once, I do have over 500 tabs open in one instance...
<pushcx>It's a pretty small vps running the weechat instance I'm typing in now. It has a gig of RAM which feels like a lot because I'm old enough to have played 90s PC games that required a fancy machine with a second meg of RAM. So pretty much there's just tmux, weechat, and a handful of command-line utils on top of a base system here.
<Aurora_v_kosmose>An instance of firefox, I mean.
<Aurora_v_kosmose>The firefox instance is running in a VM capped at 8GB of memory atm.
<nckx>Firefox runs with a lot less RAM than it needs to build.
<unmatched-paren>nckx: ...but if you choose GNOME as your UI, you're gonna have to figure out how to bolt on 256GiB of RAM and a top-of-the-line NVIDIA card onto your Soundblaster 16 :)
<Aurora_v_kosmose>nckx: Indeed. Does guix enable the slow-but-lower-memory mode or the "hope you have a workstation" mode?
<unmatched-paren>qutebrowser is also modern and it takes 0 seconds to build :P
<nckx>Soundblaster 17 fine.
<unmatched-paren>(it's in python)
<nckx>I'm sure it just wraps Webkit, a beast to build.
<nckx>( sorry :-)
<Aurora_v_kosmose>In theory that could apply to Nyxt too, if you run it with a CL implementation that supports no-compile load-only.
***ec_ is now known as ec
<nckx>I don't know Aurora_v_kosmose, but I *think* the latter.
<nckx>I use my own FF build.
<jgart>guix package: error: corrupt input while restoring archive from socket
<jgart>has anyone ever gotten that one?
<unmatched-paren>oh, cool, nyxt is written in lisp?
<nckx>Likely network drop jgart.
<unmatched-paren>jgart: that happens when my network disconnects in the middle of the <whatever>
<Aurora_v_kosmose>unmatched-paren: Indeed it is.
<jgart>unmatched-paren, https://github.com/atlas-engineer/nyxt/search?l=common-lisp
<Aurora_v_kosmose>It's packaged in Guix
<jgart>unmatched-paren, re: network disconnects: THNX
<unmatched-paren>@nckx: actually, it wraps QTWebEngine, which is even more of a beast to build :P
<unmatched-paren>(i mean, probably)
<Aurora_v_kosmose>unmatched-paren: It can be used with different browser backends.
<Aurora_v_kosmose>I think it has two implemented atm.
<jgart>Aurora_v_kosmose, what are the two?
<unmatched-paren>does nyxt have a vi keybinding mode?
<Aurora_v_kosmose>I think it's webkit & gtk
<Aurora_v_kosmose>unmatched-paren: It does.
<unmatched-paren>i hear that it uses emacs keys by default
<unmatched-paren>ah, cool!!
<Aurora_v_kosmose>It also has an Emacs mode. It doesn't map exactly.
<jgart>unmatched-paren, I use nyxt with vi binds
<nckx>pushcx: Sorry I missed it earlier, but OOMs are logged (e.g. dmesg), you shouldn't strictly have to watch live. But can't hurt of course.
<unmatched-paren>the one true browser is `lynx(1)`, of course
<nckx>'Killed.' is the symptom in the shell.
<jgart>Oh got this one:
<jgart>Throw to key `encoding-error' with args `("scm_to_stringn" "cannot convert wide string to output locale" 84 #f #f)'.
<jgart>after a `guix upgrade *`
<nckx>Useful :-/
<nckx>Any more?
<jgart>nss-certs 3.59 → 3.71
*nckx has to go.
<unmatched-paren>well, actually, if you want to REALLY loosen your definition of a browser... curl :)
<jgart>maybe nss-certs doesn't like to be upgraded so many versions forward at one time?
<nckx>Oh.
<jgart>unmatched-paren, https://sr.ht/~sircmpwn/gmni/
<nckx>That one package has notoriously Unicode file names.
<nckx>Not related to jump, just it being nss-certs.
<nckx>I thought that was fixed. Sad.
<Aurora_v_kosmose>unmatched-paren: 'eww' > lynx
<Aurora_v_kosmose>:3
<nckx>Yes.
<jgart>that's unfortunate
<jgart>too bad for me
<unmatched-paren>jgart: yes, i was about to mention that one, but i realized that curl is Purer because gmni has a line mode :P
<jgart>on void-linux
<jgart>unmatched-paren, the line mode is cool
<nckx>jgart: Bug time if you have time. Bye!
<jgart>ed visits gemini
*jgart will be a good citizen and do his bug reporting duty
<unmatched-paren>anyone know of any programs that *only* download raw text files from gopherspace?
<unmatched-paren>NO WAIT
*jgart repeats it on the whiteboard
*unmatched-paren recalls that the finger protocol exists
<pushcx>nckx:nckx: I did not see 'Killed.' in the shell, and dmesg doesn't include a process name in its log.
<Aurora_v_kosmose>How about system logs?
<unmatched-paren>if a pure-finger file downloader doesn't exist, it shouldn't be too hard to make it exist >:) suckless.org will bow to us
<pushcx>Ah, it crashed again. Yeah, output doesn't include "Killed." but 'dmesg -w' logged an OOM kill. How do I know how much more RAM the system needs? And then I guess fingers crossed my vps provider lets me resize.
<pushcx>And... is there any way to run 'guix pull' in a smaller increment rather than 'update everything in the world to current'? This isn't a big rush, I don't mind if it spends a day or two doing small updates.
<Aurora_v_kosmose>pushcx: If you don't have any swap, I strongly recommend using zram.
<Aurora_v_kosmose>It should allow you to stretch hardware capabilities some.
<pushcx>And I guess it would still be really nice to have an idea of how much RAM is required to run guix. I checked config.scm, the only pacakages added are 'openssh nss-certs rsync tmux vim'.
<lispmacs[work]>hi, I install gajim and gajim-omemo, but gajim doesn't see the plugin. I'm having trouble figuring out how to tell gajim where the plugins are installed. Can anybody here help me with that?
<pushcx>Aurora_v_kosmose: I don't have swap. I've found an example or two of zram, but how do I guess what size to give it?
<singpolyma>pushcx: guix pull doesn't update anything but the guix command itself
<Aurora_v_kosmose>pushcx: However mucn you feel like. I usually give it something like a quarter.
<Aurora_v_kosmose>pushcx: Set it to zstd or something with similarly high compression.
<Aurora_v_kosmose>Effectively you're trading CPU cycles for memory.
<unmatched-paren>hm, not exactly a promising first experience with nyxt; i got this when i tried to click the back button (haven't set the keys to vi yet): <WARN> [21:48:19] Warning: Error on separate thread: There is no applicable method for the generic function #&lt;STANDARD-GENERIC-FUNCTION HISTORY-TREE:PARENT (1)&gt;
<unmatched-paren>ohh, i get why that happened, never mind
<unmatched-paren>they could have a slightly nicer error message though
<unmatched-paren>it's working well now...
<Aurora_v_kosmose>I intended to do some work porting umatrix-like experience to it at some point, but it supposedly is getting webext support eventually.
<unmatched-paren>is there some way to have noscript-like functionality in it?
<Aurora_v_kosmose>There is.
<Aurora_v_kosmose>I'm not currently using it (still procrastinating on porting all my stuff & dependent on umatrix)
<unmatched-paren>with per-website whitelisting?
<Aurora_v_kosmose>I think so.
<Aurora_v_kosmose>You might want to ask #nyxt about that.
<unmatched-paren>ok
<char[m]>how to debug bluetooth daemon? It was working just fine earlier, but now, when I start it, it stops and becomes disabled.
<pushcx>I added a 1Gib swapfile because it was easier than figuring out zram and 1 is a nice round number. It seems to have done the trick; 'guix pull' has advanced past where it used to crash. It's not so great to run into an undocumented requirement with no way to estimate a correct value.
<Aurora_v_kosmose>The issue with plain swapfiles is they're not compressed.
<Aurora_v_kosmose>pushcx: If you're using a swapfile however, you can and should enable zswap (instead of zram)
<Aurora_v_kosmose>It's as simple as echoing Y into some sysfs API
<Aurora_v_kosmose> https://wiki.archlinux.org/title/Zswap#Using_sysfs
<Aurora_v_kosmose>it has an "enabled" parameter that should be self-descriptive.
<pushcx>That parameter is clear, but it's not clear whether that's a good tradeoff when I can't size how much memory is needed. It's just one more blind setting change.
<Aurora_v_kosmose>Unlike zram, it's only a compressed ram cache. So it's basically a buffer with I think up to 3x storage efficiency.
<pushcx>How do you know if the system requires 1G RAM or 3x that?
<Aurora_v_kosmose>Well you can't know that for any software without just plain testing it.
<Aurora_v_kosmose>Even those recommended requirements for games are either just averages or lies.
<pushcx>No, usually I just read the docs. Back in the soundblaster days it was even printed on the box.
<Aurora_v_kosmose>Any memory leak will throw that completely out of wack, as will environmental item duplication.
<Aurora_v_kosmose>pushcx: Unless everything is statically pre-allocated at build-time, with fixed-size buffers/arrays/vectors, you can't.
<pushcx>You think 'guix pull' has a memory leak?
<Aurora_v_kosmose>pushcx: No. Guix does dynamic memory allocation.
<Aurora_v_kosmose>And how much it dynamically requires depends upon many things such a whether or not it needs to build parts of its tools and self or if substitutes are available.
<Aurora_v_kosmose>And yes in the olden days it was common (and in embedded programming it still is) to statically allocate and manage memory.
<Aurora_v_kosmose>So you could have a much better idea just how much was required, since you instead limited the scope of the program accordingly.
<pushcx>Are you a guix committer?
<Aurora_v_kosmose>I am not a contributer to the core itself. I am contributer of packages, yes.
<pushcx>Thanks for that context.
<Aurora_v_kosmose>A year or two ago, I ended up unable to pull for a day because substitutes for firefox weren't built yet by the Guix substitutes farm and I didn't feel like modifying my local definition of firefox to use the low-memory alternative to its build (nor adding swap).
<Aurora_v_kosmose>These days I'm confident-enough with modifying definitions I'd just go ahead & do that instead.
<singpolyma>Aurora_v_kosmose: you mean you were unable to upgrade? Pull shouldn't be affected by substitutes for a package
<Aurora_v_kosmose>singpolyma: Yes, that's correct, I mispoke.
<Aurora_v_kosmose>I do tend to go "guix pull && guix upgrade", but that's hardly an excuse, yeah.
<Aurora_v_kosmose>*contributor
<Aurora_v_kosmose>And now I'm uncertain. Sorry for my English.