IRC channel logs


back to list of logs

<gnucode>vagrantc do you ever wanna manually tweak something on your guix system? But NOT use your config.scm to do so.
<gnucode>basically, I have a locally running nginx, and I have it set up to serve a local website.
<gnucode>but if my hard drive crashed tomorrow, I would have to re-install guix, and then manually create /srv/http/ again.
<gabber>gnucode: no backup? i'd think about storing config.scm and the code for the website in a (private) git repo
<gnucode>gabber I do have the website stored in a public repo actually.
<gnucode>It's just a static website.
<gabber>so you're just storing your config.scm away from something close to a real backup :)
<gnucode>gabber: maybe. I'm confused. :)
<gnucode>I guess something concrete that I am asking is this:
<gnucode>How would I tell guix to create /srv/www/html/ and make sure that permissions of those files allow nginx to serve those html files locally?
<gnucode>Or perhaps better yet, how do give nginx the correct permissions to access /home/joshua/prog/gnu/guile/ so that it can serve those files locally?
<gnucode>in config.scm ?
<gnucode>I bet my perfectionism is just driving me to do things obsessively correctly today.
<flypaper-ultimat>gnucode: using the nginx service type?
<gnucode>flypaper-ultimat: yup!
<gabber>regarding the permissions: easiest (and nastiest) hack is to give it global read permissions (ala `chmod 755`)
<gabber>nginx doesn't need write permissions to serve files
<gnucode>gabber: hmmm. and you can give global read permissions in config.scm ?
<gnucode>man I am really looking forward to learning gexps. They are soo cool!
<gabber>regarding the nginx-service-type: that shouldn't be too hard since you're only serving static html files (and you seem to have a working configuration ready). just start hacking -- you can inspect the result of your system configuration (which creates the nginx.conf et al. files) and figure out the differences to your manually created configs
<ham5urg_>Is /etc/profile the place for systemwide manifests?
<gnucode>gabber: thanks for the encouragment. It's not the problem that I should be working on now, but I will definitely start hacking. thanks!
<gabber>gnucode: i guess you can write some hook somewhere in your system config that actually alters your read permissions, but you might just want to create a package (copy-build-system) of your website, so that the html-files get pulled into your store
<gnucode>there's a couple of ways that I could create a reproducible locally running website. Thanks for the suggestions!
<gabber>this being said: going down that route also means reconfiguring your system after each and every update of your website -- but i guess that's as guix-y as it gets
<gabber>you're welcome :)
<gnucode>ham5urg_: what is a systemwide manifect?
<gnucode>but '/etc/' is the place for systemwide configuration that affects all users.
<lechner>Hi, why would running 'tap-harness' abort with "no code for module (test tap-harness)" in a guix shell guile-tap, please, even though the respective guile module is installed?
<lechner>in the store path
<gabber>is it the same in a --pure guix shell?
<gnucode>lechner: I understood some of those words in your question...
<lechner>but not all
<gnucode>lechner yup. :)
<ham5urg_>gnucode, I want to install via one manifest a couple of packages and run them in their own namespace (network, processes, filesystem). For that I want to install them not with a local-user-own manifest but to install via root or systemwide like /etc/config.scm
<lechner>i'd like to use TAP testing for my Guile modules. The 'harness' that runs the tests, however, aborts (inexplicably, to me)
<gnucode>ham5urg_: dude, I didn't know you were a genius! Running a package in their own namespace sounds awesome! You could just run the Hurd. :)
<gnucode>lechner I haven't actually heard of TAP testing. I bet it's fun to use though.
<gabber>lechner: i can reproduce. this might be a bug. maybe find the last commit that edited that package, time-machine into a commit before that one and find out whether that upgrade broke the package. otherwise it might have been a dependency change that broke it
<ham5urg_>gnucode, what have I assumed wrong?
<gnucode>ham5urg_: I doubt you have assumed anything wrong. Your question is way above my paygrade. :)
<gnucode>I'm just impressed that you are working on what sounds like seriously securing your guix system.
<gnucode>That's super cool!
<gabber>ham5urg_: maybe just write a manifest and run it in a `guix shell --container`?
<lechner>gabber / i think it's potentially a packaging error unrelated to any prior commit
<gabber>i mean... the terminology might be somewhat different in guix than what you'd expect: to install usually means "install to your user/system profile". as soon as you build a profile (through a shell, a system reconfiguration or whatever) it is "installed" -- as in built within your store. you can then run it in a shell almost instantly
<ham5urg_>gabber, I will try that. I would prefer to run it automatically at boot via /etc/config.scm or whatever *.scm I need for it. I will try.
<lechner>it uses the gnu-build system, which may not set the GUILE variables correctly
<ham5urg_>Doing my first steps with Guix. Sorry if my questions are weird from time to time. Guix is new to me but it looks like it is for what I'm looking.
<gnucode>ham5urg_ dude, don't worry about weird questions here. :) You should read some of the weird and hilarious stuff I've sent to guix-devel.
<gabber>lechner: this may well be. "test" seems to be the top-level module name for that module, so if guile can't load that nothing works
<gabber>ham5urg_: yes, no worries, here community means "willingness to help each other out"
<char[m]>I'm trying to configure something using plain-file, but I keep getting ERROR: In procedure opendir:
<char[m]>In procedure opendir: Not a directory for that file's location in /gnu/store. I've tried various #~#$ stuff and also local-file.
<gabber>lechner: indeed it seems that the package has never been altered. though i'm not sure the gnu-build-system has anything to do with setting the GUILE* env-vars
<gabber>char[m]: what's the exact error message?
<char[m]>In unknown file: (opendir "/gnu/store/mghgd196bk2j7avnjwavd5irwix1qpkd-1?") ERROR: In procedure opendir: In procedure opendir: Not a directory
<char[m]>The file name is cut off with ? but it does exists.
<oriansj>char[m]: sounds like a variable is expanding to 1?
<char[m]>that is just the name of the file: "10-network-manager.pkla"
<gabber>usually file names don't get cut off in error messages. IIRC you can (display) in a GEXP -- a hacky way to inspect what a variable name is expanded to
<ham5urg_>Is every package which is installed (by e.g. a manifest) bound to a specific user?
<lechner>Hi, guile-tap is apparently used in the 'check phase for guile-termios. i'd love to see a recent build log but cannot find one. Why is this log on so short, please?
<mbakke>char: sounds like you are providing a file to something that expects a directory
<mbakke>ham5urg_: what do you mean?
<oriansj>ham5urg_: if the package is in your /etc/configuration.scm then yes. Otherwise no, it is just for the user that ran guix package -m manifest.scm
<gabber>lechner: because it's not built, just substituted
<gabber>you can build it yourself locally like so: `guix build that-package --no-substitutes`
<char[m]>mbakke: wow thank 🤦‍♀️
<ham5urg_>mbakke, I want to install multiple packages each in its namespace. GUIX is new to me. I can't figure out how to define multiple (packages ...) in /etc/config.scm, separated each in its own namespace.
<gabber>ham5urg_: what exactly do you mean by namespace? when a package is installed to a profile, it's contents are directly adressable. i.e. if the package `icecat` is added to the packages field in the system configuration a root-user can simply invoke `icecat` from a terminal and start the browser (it is not recommended to run icecat as user iirc). when an unprivileged user then installs `icecat` from the same (or equivalent, in respect
<gabber>to the package) guix git checkout, the same package is made accessible to that user.
<gabber>ham5urg_: not 100% sure if i'm answering questions you are having: please tell me to stop if i'm telling you irrelevant stuff
<ham5urg_>gabber, I want to containerize a package into a namespace (netowrk, filesystem, etc...)
<ham5urg_>Found this
<ham5urg_>But I'm far from understanding.
<char[m]>What is the directory equivalent of plain-file?
<gabber>i think that was from before the `guix shell` command -- it's probably all still correct, but `guix shell` makes your like easier
<jgart[m]>plain-directory jk
<gabber>try the following: `guix shell package1 package2 package3 --export-manifest > manifest1.scm1`
<mbakke>char: maybe (computed-file "foo" #~(begin (mkdir #$output) (call-with-output-file (string-append #$output "/file-name" (lambda (port) (format port "stuff")))
<gabber>with the packages you want "in the same namespace" (as you said it before)
<gabber>then you can `guix shell --container -m manifest1.scm` and voila: you are in a container with the packages previously defined
<ham5urg_>gabber, can this container be defined? Like a NIC, etc.?
<ham5urg_>*Like having a NIC
<gabber>WDYM with NIC?
<ham5urg_>A virtual NIC inside the container, which will have its counterpart outside the container. To bridge the network-traffic to/from the container (which has a different IP-configuration).
<gabber>if you want to have services deployed you will probably want do define a system-configuration. then you can deploy that on a VPS, create a docker container from it (though you might not want or need that) or run it in a qemu container
<gabber>ham5urg_: i didn't understand what NIC stood for, and you're telling me it's a virtual NIC :) is a qemu container enough for your needs?
<ham5urg_>I've done it with LXC in the past but would like to abandon it and run it all via GUIX.
<gabber>it might help if you told us what you're trying to do in the end -- maybe you don't need to go *that* far.
<ham5urg_>I need mostly container in the sense of LXC-containers wich are in a way similar to a VM.
<ham5urg_>A LXC-container has its own filesystem, network, etc. like a VM.
<ham5urg_>The host bridges all containers via virtual interfaces and virtual bridges.
<mbakke>ham5urg_: system services can run in containers with only select parts of the file system visible, but networking is currently all-or-nothing
<gabber>i'm rather sure guix brings the right toolset to let you define your (reproducible) container-like images, i'm not that sure how easy it is to orchestrate all of these (but this is way out of my field of knowledge)
<ham5urg_>E.g. I would install multiple SAMBA-server each in its own container and own filesystem, network, etc. and route the traffic accordingly outside of the container.
<mbakke>there is lots of room for improvements if you want to get your feet wet with guix
<char[m]>mbakke: beyond unintutive... Thanks though.
<jgart[m]>mbakke: what are some areas of improvement that are not packaging?
<mbakke>char: I agree, would be great with a better API for that use case ... maybe a #:directory argument to plain-file?
<char[m]>I get the same error anyway about the result not being a directory.
<char[m]>What about plain-directory like jgart said. It could take a list of things like plain-file or other plain-directorys
<mbakke>right, something like union-build, but on a higher level
<jgart[m]>Would define-method work here?
<jgart[m]>if file type do foo if dir type do bar
<char[m]>The thing you shared created exactly the correct format I need. I still get the same "not a directory" error.
<gabber>char[m]: are you sure the path is expanded correctly?
<mbakke>char: what exactly are you trying to do?
<ham5urg_>mbakke, yes, I did not find a network example for namespacing except this where a user is still using iproute2 and netns
<mbakke>wait, "still using"? what do people use nowadays?
<mbakke>ACTION is old
<ham5urg_>Still using in the sense like default-linux-distros are using it.
<ham5urg_>Something like (namespace ... (packages ... )) which would do the stuff in the background would be great.
<jgart[m]>the cool kids are using goops
<ham5urg_>mbakke, Ansible/RedHat 'enforces' NetworkManager
<char[m]>mbakke: Ultimate goal configure polkit to stop annoying me; meaning, stop asking for my password to make network changes. I'm trying this:, converting to guix stuff obviously. I've spent hours trying to just try something that might not work.
<char[m]>gabber: I'm pretty sure
<oriansj>char[m]: depends upon what network connections you care to enable the user to change.
<gabber>i'm not a huge fan of it, but network-manager works fine for me
<oriansj>I'm partial to iwd and dhclient
<jgart[m]>if you want a non network-manager config I would like at unmatched-paren 's dots:
<mbakke>char: so you created #$output/share/polkit-1/localauthority/foo.pkla and added a (simple-service 'stop-annoying-me polkit-service-type (list that-computed-file)) to your system configuration?
<jgart[m]>What am I doing wrong here?
<jgart[m]>gnu/home/services/mcron.scm:115:9: error: invalid value (home-mcron-configuration (jobs (list (gexp (job next-minute-from (let ((random-quote (string-append (ungexp daikichi) "/bin/daikichi " "fortune"))) (string-append "echo \"$(" random-quote ")\" |" (ungexp espeak) "/bin/espeak --stdin"))))))) for field 'jobs'
<jgart[m]>that's the backtrace message on stdout
<jgart[m]>also, should I be using pipeline from (ice-9 popen) instead of a bash pipe in a string?
<mbakke>jgart: I think you want (next-minute), not (next-minute-from) as the latter expects an argument
<mbakke>and it needs the parens IIRC
<jgart[m]>next-minute-from was working before I started using simple-service
<jgart[m]>I was using service before
<mbakke>jgart: right, then I suspect you need to remove home-mcron-configuration and just pass a plain list to that simple-service declaration
<mbakke>that's how mcron-service-type works at least, I expect home-mcron-service-type is the same
<jgart[m]>do you happen to have an example of that?
<jgart[m]>concrete example I mean in someone's repo
<jgart[m]>ok I changed it back to this which works:
<jgart[m]>going to shave the pipeline yak first
<mbakke>jgart: not for home-mcron, and not from a public repo, but here is an example from one of my systems:
<jgart[m]>thnx, the ... on line 5 is for curl cli flags separated by spaces?
<jgart[m]>is that what you meant by the ...
<jgart[m]>why does the 20 integer have to be ungexp?
<char[m]>mbakke: Other things already add a polkit-service. I have this (modify-services %desktop-services... (full message at <>)
<mbakke>char: (simple-service 'foo polkit-service-type ...) extends polkit, not replaces it
<nckx>jgart[m]: The 20 isn't ungexped, the ‘minute’ variable is, and for the same reason that the ‘curl’ variable is ungexped. Gexps are quotes: for access to ‘minutes’, bound in the context of varnish-cache-preheat-job, you to drop back down to that context: i.e., unquote.
<nckx>gnucode: I am slowly porting my opensmtpd configuration to the new records. I'm not sure I'm doing it right. In particular, it appears that ‘filter’s are written before ‘table’s are, so I get ‘no such table: ddns’.
<nckx>gnucode: Also, typo: (string-append "queue ttl" ttl-delay "\n") ; missing space
<char[m]>mbakke : I just tried that. same "not a directory" again. also it wants to make the file in /etc/polkit-1. I'm not sure if that matters.
<nckx>gnucode: ‘pki *’ seems unsupported. Is that deliberate? (I can see the difficulty in doing so: how to refer to it so it gets pulled in?)
<nckx>‘pki "*"’, that is. ‘pki *’ is what this generates but that's invalid.
<nckx>Whoever made nl skip blank lines was such a dork.
<mbakke>char: I have not tried adding localauthority rules (not sure why, they look a lot more sane than writing rules in JavaScript!), but here is an overengineer example for adding .rules files:
<mbakke>note: I adapted the rule from something else to NetworkManager, but the rest of the code is tried and tested
<jgart[m]>nckx: got it thanks! I meant the minute variable but that wasn't clear on my part
<mirai>gnucode: have you looked at ?
<led-lightbulb>~mirai: Open issue )6zf( "[PATCH] services: mail: add opensmtpd records to enhance opensmtpd-configuration." from Joshua Branson
<nckx>That is their issue.
<nckx>jgart[m]: I didn't mean to pedant, it's just that people tend to be intimidated with how #$~@ing gexps look and think they are weirder than they are.
<nckx>mirai: Oh, did you mean to ping me?
<mirai>nckx: not really, no
<jgart[m]>I stopped thinking about what it all means. I'm building an intuition for how to use them. It's working well for me so far
<jgart[m]>I might go back and read Ludo's article again on the reasons for it at some point
<omlet[m]>Searching gpl programming languages
<nckx>I think intuition is actually the best approach.
<jgart[m]>we need a #guile-school room
<jgart[m]>similar to #clschool
<jgart[m]>which is excellent btw, highly recommended gem on Libera for learning CL
<jgart[m]>The only thing is that we need someone at the expertise of beach or Bike to be in that room helping guilers out all day with their noob questions ;()
<jgart[m]>Is there a way to register a mcron service with guix home but not start it by default when reconfiguring?
<oriansj>in bad news I can officially report that this bug: is alive and kicking in the current guix release
<led-lightbulb>~user: Closed issue )nqb( "shepherd exits for no good reason" from Ludovic Courtès
<oriansj>I even managed to find several different combos for the reason why:
<Parnikkapore_m>Hi Guix! Let's say I wrote some packaging helpers and home services in Guile modules. a) What should I do so that Guix sees them, ideally without having to commit the changes in a git repo first? b) Could I distribute them in a channel?
<oriansj>short version appears to be some sub-process fails hard (such as pulseaudio [shakes fist] which I never wanted on my system) and shepherd goes: fuck it I'm out.
<jgart[m]>Parnikkapore 😁: have you tried -L flag
<jgart[m]>The other option is a local channel
<jgart[m]>file uri
<jgart[m]>see this line
<ecbrown>does target arm-linux-gnueabinf run on mac m1 hardware?
<ecbrown>(as a guix system image)
<ecbrown>(i'd probably be happy with running in UTM / qemu)
<Parnikkapore_m>I haven't tried it yet, but -L should work, thanks!
<Parnikkapore_m>Would home services and other non-package Guile modules from channels be visible? Would they cause problems?
<Parnikkapore_m>would the new home services be visible in guix home search?
<Parnikkapore_m>The documentation suggests that channels are added to the Guile load path, but aren't really intended to be used with anything but packages
<mirai>it can be used for guile scheme modules as well
<jgart[m]>Parnikkapore 😁: You can put almost anything in a Guix channel: servies, home-services, packages, patches, docs, scripts, etc.
<jgart[m]>Think of a Guix Channel as just more Guile/Guix code that sits on top of
<jgart[m]>Your Guix channel can also use other custom channels as dependencies. You can take code from any channel you like and use it in your own channel
<jgart[m]>In other words, you're able to import modules from any existing channel as you please
<Parnikkapore_m>Do services in channels need to be under a certain module path to be found (e.g. by guix home search) or they could be anywhere and they will be found a la packages?
<jgart[m]>I think they can be anywhere but I haven't fully tested that
<jgart[m]>Theoretically they should be allowed to be anywhere. You just have to use Guile's module system as normally intended
<jgart[m]>by anywhere I mean anywhere that Guile's module system can import from
<Parnikkapore_m>Ok, thank you so much!
<jgart[m]>You can even load files like this with primitive-load:
<jgart[m]>One way to think of Guix is as yet another Guile library
<Parnikkapore_m>Coming from Racket, I might be inclined to add (current-dir) to the module load path instead haha
<Parnikkapore_m>on that note, can you load a module via relative path?
<jgart[m]>So anything that applies to any other Guile library applies to Guix code with regards to how you use it.
<jgart[m]>re relative path ya I'm sure Guile supports that
<jgart[m]>this that I linked to you is relative path:
<Parnikkapore_m>primitive-load doesn't do modules stuff, no?
<jgart[m]>You can even use this library:
<jgart[m]>primitive-load loads that file with all of it's modules in the current file
<jgart[m]>I think it just inserts the file contents into the location where it is called but don't quote me on that as I may be wrong on the low-level details
<jgart[m]>I think unmatched-paren may know the details
<jgart[m]>Parnikkapore 😁: You can even use the clojure threading macro if you desire with Guix code:
<jgart[m]>or even this quirky reader macro:
<jgart[m]>so you don't have to escape double quotes in guile strings
<jgart[m]>You're only limited by what you can hack up in GNU Guile Scheme
<Parnikkapore_m>yeah, it seems to just eval the contents; ideally I could import a proper module with a relative path to reduce namespace pollution, but that might do
<jgart[m]>You can use a regular module then
<jgart[m]>You can use the define-module macro
<Parnikkapore_m>yeah, regular module, plus guix -L or patching the load path.
<jgart[m]>Like every other Guix module does
<Parnikkapore_m>thanks for the macro suggestions btw!
<jgart[m]>no probs
<jgart[m]>here are some more macro hack jobs that I experimented with at one point:
<jgart[m]>I don't recommend them today but maybe they give you some ideas of how to hack the existing Guix APIs
<jgart[m]>I'd look at rde for how to hack the guix home APIs
<jgart[m]>Parnikkapore 😁:
<jgart[m]>But if you're new to Guix and Guile I recommend just using the basic APIs for now until you get comfortable with all the tooling
<jgart[m]>That alone will be one big yak to shave
<jgart[m]>Then you can try the rde yak shave
<jgart[m]>and feel more comfortable with it
<Gooberpatrol66>is it possible to make a guix system image with a read-only root fs?
<lechner>sneek: later ask rekado: Hi, does guile-irc accept credentials? I'm not sure the 'set-password!
<sneek>Will do.
<lechner>sneek: later ask rekado: Hi, does guile-irc accept credentials? I'm not sure the 'set-password!' export is being provided. Thanks!
<sneek>Got it.
<lechner>sneek / botsnack
<retropikzel>Which package should have linux/errno.h?
<efraim>retropikzel: it's in the linux-libre-headers, but it normally only becomes a problem when cross-building packages
<retropikzel>efraim, I'm cross building but not packages. Any links or tips you could give me?
<msgilligan[m]>openjdk@9.181 fails to build on aarch64-linux and the error message matches this FIXED openjdk issue:
<msgilligan[m]>I should probably submit an issue or a patch, but I'm still learning the tools and the community/process so I thought I'd at least mention it here.
<mekeor[m]>raghavgururajan: thanks for sharing your x200t/wacom config! it works! i think i was lacking the baud-rate declaration. btw, i additionally installed xf86-input-wacom and now i can use xsetwacom to configure the buttons. (e.g. i disabled touch, mapped the side button to middle-mouse-button, and the eraser to right-mouse-button.)
<aadcg>I got the following error: ./pre-inst-env: line 55: exec: guix: cannot execute: Is a directory
<aadcg>how can I fix it?
<nckx>aadcg: Did you build guix?
<aadcg>nckx: I run ./bootstrap and ./configure as suggested in the manual
<nckx>And make?
<aadcg>ok, I missed that. thanks!
<aadcg>oh I see, in
<aadcg>the manual says to skip make checks, but not to skip make!
<aadcg>make check *
<nckx>Yes, that paragraph could be made clearer (and probably without making it longer).
<aadcg>I may draft a patch!
<nckx>Pointing out which step creates pre-inst-env is... kind of irrelevant, but makes it sound like instructions.
<nckx>Oh, thanks!
<aadcg>could you explain your point about being irrelevant to make sure I understood it?
<nckx>The whole 'the pre-inst-env script lives in the top build tree of Guix; it is generated by running ./bootstrap followed by ./configure' parenthetical is unnecessary IMO, at least oddly arbitrary, but looks like it's enumerating build instructions. Instead, just link to the actual build steps.
<nckx>ACTION away.
<sneek>Yey! lechner is back :D
<rekado>nckx: I’m still waiting for the linux-libre script to finish “Scanning the generated tarball for blobs...”
<sneek>Welcome back rekado, you have 2 messages!
<sneek>rekado, lechner says: Hi, does guile-irc accept credentials? I'm not sure the 'set-password!
<sneek>rekado, lechner says: Hi, does guile-irc accept credentials? I'm not sure the 'set-password!' export is being provided. Thanks!
<rekado>nckx: it’s been like this for hours
<rekado>and *then* I can finally build the kernel for these machines and finish deployment.
<nckx>Ah, was just asking if this was on ARM :-) Yep, takes aeons.
<nckx>What's up with... pankow IIRC? The one responding & loaded but not listed in /workers. Was that load just you reconfiguring? I didn't pry.
<rekado>maybe I should cross-build the linux libre tarball in the future
<rekado>pankow and grunewald have had their disks replaced
<nckx>I might have got the name wrong.
<rekado>kreuzberg, then
<rekado>all of them were listed in /workers when I left the data centre
<rekado>no idea what’s up now
<nckx>I get lost in the real Berlin too.
<nckx>OK, no bigsie.
<rekado>uhm, the cuirass-remote-worker service was stopped
<rekado>started it again
<rekado>on /workers I see grunewald and pankow doing stuff, and kreuzberg is still idle
<nckx>It wasn't listed at all earlier (I did a text search).
<nckx>Earlier being euroyesterday.
<lechner>Hi, on my system greetd produces this error upon logout. "Hxproc_run_async: ofl: No such file or directory" It seems to me that hxtools should be a prerequisite for libpam-mount (and therefore also for libpam-mount-greetd), but hxtools is not packaged in Guix. Is my thinking correct? Do I need to patch the CMD_OFL path in libpam-mount? Thanks!
<nckx>That's a bit excessive, no? I can't find where CMD_OFL is defined, but the error message implies it's just "ofl", meaning that users who want it can package & install it, without affecting everyone.
<nckx>Yep, it's "ofl".
<lechner>nckx / thanks!
<nckx>There's a grey area of what to embed as reference, and what to resolve at run time, but this doesn't fall into that, IMO. Like how bash doesn't pull in coreutils, even though everyone runs 'ls'. 'ofl' is an obscure debugging tool upstream thinks you'll love enjoying. Does that make sense?
<lechner>yes, it does. plus that PAM module needs to be retired. i spent a lot of time on it years ago
<lechner>Hi, how may I fix the guile-tap packages so that 'tap-harness' will run instead of producing the error message "no code for module (test tap-harness)"? Thanks!
<lechner>Does guile-tap need guile-3.0 also as a regular input?
<nckx>Oof, the ones in Guix are broken? I assume you tried setting GUILE_LOAD_PATH before running the tests?
<nckx>ACTION doesn't know, but native- is the one relevant to tests.
<nckx>ACTION away.
<lechner>this is not for testing the guile-tap package, i don't think. 'tap-harness' is an executable shipped with guile-tap. i have not run it but hope to use it for my upcoming Guile packages. the tap-harness executable itself is experimental and at least some packages in Guix use the trusted TAP framework from Perl instead. that's also the one i know
<lechner>i will try with GUILE_LOAD_PATH and with a modified package. at this point, i am just checking my assumptions because each of these tangents takes me a long time
<lechner>nckx / tap-harness runs with the appropriate GUILE_LOAD_PATH, but adding (inputs (list guile-3.0)) had no effect
<leg7[m]>Is it possible to patch software trough guix? Like with portage
<rekado>leg7[m]: yes.
<rekado>leg7[m]: see the manual for package transformations
<rekado>for a quick overview: “guix build --help-transform”
<leg7[m]>Ok cool ty
<ft>lechner: tap-harness runs from my profile, without the error. In what context is this happening?
<ft>ACTION wrote that thing too…
<nckx>lechner: (getenv "GUILE_LOAD_PATH") is correct — contains test/ — in a build phase when I add the two packages as inputs.
<nckx>tap-harness runs, and dies peacefully due to lack of tests, not modules.
<ft>I am using tap-harnesses in some guile libraries too, like srfi-151, which maybe I could bring into guix.
<nckx>Be welcome. Guix has a pitiful 8 srfis packaged.
<ft>I sort of kind of have it in a private channel already. I suppose it's pure laziness at this point. :)
<lechner>ft / thanks, and good to see you here! i'm a noobie here. when running guix shell guile-tap -- tap-harness i see this error. what am i doing wrong, please?
<nckx>lechner: You need to add guile *as well*, both here and in your package.
<nckx>It's what sets G_L_P.
<nckx>Relying on your user's profile to ‘bleed through’ mostly works when it comes to tools and $PATH, but not here.
<lechner>okay, i am clearly confused. tap-harness is a Guile executable. do we also ask users of Python scripts to make 'python' available separately?
<lechner>also, why do i get guix shell: error: guile-3.0: unknown package please?
<nckx>sneek: Later tell lechner: No, we (usually) wrap them, in the same way that tap-harness should be wrapped. If you're offering to add that to your to-do list, I won't stop you.
<sneek>Will do.
<nckx>sneek: Later tell lechner: guile@3.0 on the CLI.
<sneek>Will do.
<lechner>sneek / botsnack
<sneek>lechner, you have 2 messages!
<sneek>lechner, nckx says: No, we (usually) wrap them, in the same way that tap-harness should be wrapped. If you're offering to add that to your to-do list, I won't stop you.
<sneek>lechner, nckx says: guile@3.0 on the CLI.
<lechner>nckx / thanks for the ->specifications versioning hint! as for wrapping, what would that entail, please? is there an example? thanks!
<nckx>mumi looks like a good example (there are others, but not all of the same quality).
<lechner>ok, thanks. mumi and i are getting friendly anyway
<nckx>I'd drop the getenvs if possible, though.
<lechner>that went right by me, but i'll come back to it when my brain catches us
<lechner>Hi, are Avahi offers for substitutes via guix-publish cached indefinitely?
<ecbrown>ACTION is getting 404 pulling substitutes from
<ecbrown>"Gateway Timeout"
<mirai>any special regards when including liburing in a package input?
<nckx>ecbrown: …what? That's just wrong. Do you still have the output with this bizarre error in it?
<mirai>I'm guessing liburing is linux specific and would break the package on hurd?
<ecbrown>nckx: i got over the hurdle by switchign to bordeaux
<ecbrown>i am currently in a build of a system image but will check again when it is finished
<nckx>Still, that indicates a misconfiguration somewhere. It should simply never happen. LMK if you still have the URL.
<nckx>mirai: Yes, it won't build on the Hurd. You can condition it on target-linux?.
<mirai>nckx: ah
<mirai>that's why I wasn't finding that predicate
<nckx>(It should probably advertise its supported-systems, but consumers will still have to make it conditional.)
<mirai>I grepped and was getting hurd-target?
<mirai>but no linux-target?
<nckx>There's target-hurd?.
<nckx>No hurd-target? or linux-target?, no.
<mirai>There's hurd-target?
<mirai>and with what you just wrote, target-linux? which is "inverted"
<nckx>Not sure what you mean by inverted.
<mirai>word order
<nckx>hurd-target? is just a wrapper around target-hurd?.
<mirai>under gnu/packages I only see hurd-target? and target-linux? being used
<mirai>I mistakenly assumed at first that linux-target? existed
<nckx>There's plenty of target-hurd? usage, but yes, this has strayed from my original point: you should *not* predicate it on (not hurd?), that would be wrong.
<nckx>You want to predicate it on linux?, the only supported system.
<nckx>Igrone the fact that we support only 2 systems for now 😉
<nckx>ACTION igrones.
<mirai>right, I did want to predicate on target-linux? from the start but wasn't finding the procedure for it
<nckx>It's a fun little prank.
<char[m]>Is there a herd service to restart polkitd?
<sneek>Yey! lechner is back!!
<char[m]>mbakke: Thank you so much. That javascript polkit rule worked very well!
<lechner>sneek really knows how to make people feel special after a power outage
<lechner>sneek / botsnack
<lechner>i hope this fellow engineer runs Guix!
<apteryx>nckx: hi! I'm following up on #60068; was the need for it clarified by my example (niche) use case?
<led-lightbulb>~maxim: Open issue )8Gg( <Huh?> "[PATCH 1/2] Add GUIX_ALLOW_OVERWRITE environment variable." from Maxim Cournoyer
<mekeor[m]>char: did you mean "how to restart polkitd with (shep)herd?"?
<char[m]>mekeor: That is what I mean
<mekeor[m]>ACTION does not see any recent message from mbakke to char, hmmm
<mekeor[m]>char: did you find a solution? maybe try "sudo herd restart polkit" or so. you might find the correct name of the daemon with "herd status | grep polkit"
<char[m]>herd status | grep polkit returns nothing. I was referring to the last message from mbakke yesterday.
<mekeor[m]>char: uhm maybe try "egrep 'pol.*kit'"? :)
<mekeor[m]>cuz maybe its named policykit or so
<char[m]>still nothing.
<char[m]>I did notice that in ps --forest, polkitd doesn't appear to have a parent process.
<mekeor[m]>char: how did you start polkit?
<char[m]>mekeor: I believe it is started from the polkit service in my config.scm.
<mekeor[m]>char: herd should at least list it (as disabled or not-running) if your system.scm has a polkit service.
<mekeor[m]>maybe try killing that process manually and then reconfiguring your system?
<PotentialUser-99>Hi all, does anyone have a working config for fcitx5?
<char[m]>I have rebooted and reconfigured multiple times
<PotentialUser-99>Can you provide a link plz?
<mekeor[m]>char: could u share ur system.scm's relevant parts?
<mekeor[m]>char: are there any relevant logs in /var/log/messages?
<lispmacs[work]>hi, I am trying to print to a B&W Brother network printer, which I think might be covered by the drivers in the "brlaser" package. Can I add that package as a "filter" like as described in the Guix docs, or...?
<char[m]>mekeor: what is the name of your polkit service or do you use only window manager? It should be present and any basic desktop environment setup.
<mekeor[m]>char: i'll look it up later, i'm not at my comouter right now. need to go buy groceries now, sorry!
<mekeor[m]>char: ok, for me it behaves the same as to u
<mekeor[m]>no herd service
<mekeor[m]>but ofc it has 1 parent process
<PotentialUser-99>Hi all, does anyone have a working config for fcitx5? Could you provide a link plz?
<nckx>lispmacs[work]: extensions.
<nckx>That's for very old or niche printers though. Does it not work without a driver?
<KarlJoad>Does anyone here have a guix-deploy configuration in a channel? I'm having issues on my end.
<Kolev>Are most webcams supported? I have a class coming up. Can I just buy a Logitech webcam at Walmart?
<KarlJoad>Kolev: My USB camera uses the uvcvideo and snd-usb-audio kernel drivers, which do not look to be stripped from the linux-libre kernel.
<KarlJoad>And I just checked in a VM that uses linux-libre 5.18.11 with `modinfo` and both drivers showed up. So USB camera will probably work? I cannot confirm through experience.
<lispmacs[work]>nckx: I was experiencing an error when I tried to print using the generic postscript driver. I went to reproduce the error and now printing is working
<Ash[m]1>what's the difference between ~/.guix-profile and ~/.config/guix/current, on a non-guix system?
<podiki[m]1>I think most should use the standard kernel video module, but I can't be sure (I don't use the libre kernel)
<rekado>Ash[m]1: the latter is used by “guix pull”
<rekado>Ash[m]1: it contains only Guix.
<rekado>the former is for packages you install with Guix.
<rekado>(it’s the same on foreign distros and Guix System)
<rekado>KarlJoad: there are a bunch of deploy configs in the “maintenance” repository
<lispmacs[work]>nckx: okay, the issue seems to be more complicated. it seems that I can print okay from Icecat, but if I print from libreoffice or evince then I just get a page that says "syntaxerror OFFENDING COMMAND: STACK: --nostringval--
<Ash[m]1>do i need to source both ~/.config/guix/current/etc/profile and ~/.guix-profile/etc/profile?
<rekado>KarlJoad: all the stuff starting with “deploy” in
<rekado>Ash[m]1: you need to source the former only to put “.config/guix/current/bin/guix” onto PATH. The latter needs sourcing to set all variables that are required for whatever software you installed with Guix.
<Ash[m]1>i see
<rekado>~/.config/guix/current/bin/guix should always be first on your PATH, so that you can’t accidentally screw things up.
<lispmacs[work]>nckx: maybe a desktop issue
<PotentialUser-99>Hi all, I want to add my custom package to my system in a declarative way(i.e. in my system definition), how should I achieve that?
<PotentialUser-99>Thanks a lot
<PotentialUser-99>Do I have to create a channel?
<rekado>PotentialUser-99: if it’s a one-off thing you could define them right in your system configuration file.
<rekado>channels are for when you want to share your package definitions with other people
<PotentialUser-99>I want to split them up to a seperate file
<PotentialUser-99>* seperate files
<PotentialUser-99>Could you give an example? rekado
<rekado>several options: (include "/path/to/file.scm"), or define a module and add it to the load path with “guix system -L /path/to/module/root”, or set GUIX_PACKAGE_PATH
<PotentialUser-99>Okay I'll try this, thank you!
<KarlJoad>rekado: Is the maintenance repository a channel though? My configs work when the tree is just a repository, but when I try to guix-pull the repo as a channel, I get a syntax error.
<Kolev>KarlJoad: I could buy a webcam and take it back if it does not work.
<PotentialUser-99>What should I do if I'm missing headers when building a package? specifically I'm missing some wlr/* headers(wlroots library), but in the input of the package definition there's already wlroots..
<lechner>do you also have gcc-toolchain?
<Kolev>I thought channels WERE repos.
<PotentialUser-99>there's gcc-12 in native-inputs
<PotentialUser-99>I'm just trying to reproduce this, I don't know why it's not merged
<led-lightbulb>~Potential: Open issue )zvg( <Huh?> "[PATCH] gnu: Add hyprland." from Adam Faiz
<nckx>All channels are git repos but not all git repos (even those on Guix's savannah) are channels.
<lechner>PotentialUser-99 / the gcc-toolchain may be required for the environment variables to be set up correctly, but i am not positive
<KarlJoad>Kolev: That seems to be the best way to move forward with testing. But USB cameras tend to work on most things, so you should probably be fine.
<lechner>UVC cameras
<lechner>wow, that made me look really old
<rekado>PotentialUser-99: it doesn’t actually build.
<KarlJoad>nckx: rekado: A pull of a channel that contains a deploy machine has a syntax error on the operating-system symbol for the machine list.
<rekado>that sounds like a problem you should bring up with the maintainer of the channel.
<KarlJoad>I'm the maintainer of the channel. It is my personal one with configs and package definitions.
<rekado>I suggest putting the modules in a subdirectory and add “(directory "modules")” to the .guix-channel file
<rekado>otherwise Guix would assume that all Scheme files are meant to be Guix modules and try to compile them.
<rekado>but the deploy files are not Guile modules providing Guix packages
<rekado>so this fails.
<KarlJoad>rekado: Is there a manual that explains that in more depth? Or perhaps an example?
<rekado>looks like the manual doesn’t mention it at 7.6 Creating a Channel
<rekado>but here’s an example
<KarlJoad>So `directory` informs Guix which directories actually hold Guile modules to evaluate during guix pull? Is there an inverse (directories to not evaluate)?
<rekado>yes to the first question
<rekado>no to the second
<KarlJoad>Dang... No issue. I only have 3-4 subdirectories.
<KarlJoad>rekado: I am now getting a misc-error and understand why. My question is do I need to introduce _another_ level of directories for the channel.
<KarlJoad>The guix-past channel you sent has all its packages use (use-module (past packages blah)), when the past directory is under modules, and .guix-channel sets directory to modules.
<KarlJoad>I am doing the same with mine .guix-channels has (directory "synnax"), which is the directory with everything except deploy configs. The misc error says (packages blah) has no code, which makes sense, because packages/blah.scm does not exist. synnax/packages/blah.scm does exist.
<KarlJoad>Apologies for walls of text.
<kennyballou>I'm trying to package pygls->jedi-language-server, but I'm getting an error that I'm not sure how to dissect: `error: in phase 'install': uncaught exception: system-error "rename-file" "~A" ("Directory not empty") (39)`. pygls is using the new pyproject builder and there's some intermediate "-data" package that I think is causing the problem. Anyone here have experience with that?
<kennyballou>Full build log:
<lechner>kennyballou / is this step failing? Merging directory /gnu/store/4clfs2g67rg9sx8ki2qknxzwzf6y22bk-python-pygls-1.0.0/lib/python3.9/site-packages/ into /gnu/store/4clfs2g67rg9sx8ki2qknxzwzf6y22bk-python-pygls-1.0.0
<lechner>/gnu/store/4clfs2g67rg9sx8ki2qknxzwzf6y22bk-python-pygls-1.0.0/lib/python3.9/site-packages/ -> /gnu/store/4clfs2g67rg9sx8ki2qknxzwzf6y22bk-python-pygls-1.0.0/lib
<KarlJoad>rekado: I guess some updating of the "Creating a Channel" section is in order. Using guix-past as an example, I got everything to work. Thanks!
<KarlJoad>Now, the next big question, do I need to define an image for Cuirass to build an operating-system configuration? Or is there some way for Cuirass to run an equivalent of guix system build config.scm?
<PotentialUser-99>Hello does anyone know how to get wayland 1.21 to work on guix?
<kennyballou>lechner: yes, the merge step is failing.
<PotentialUser-99>On hyprland it requires a wlroots that requires wayland 1.21
<lechner>kennyballou / perhaps you can look at the attempted build directories (after specifying -k). for a merge step, whatever that means, is seems to be pretty natural to deal with non-empty directories
<mirai>how do I restart pulseaudio (or gdm since it seems like it's the user launching it)?
<lechner>mirai / nothing looks appealing with 'herd status'?
<lechner>how about 'sudo herd status'?
<mirai>I mean that there's nothing that points to gdm
<mirai>if it's a herd entry then sure it isn't named "gdm"
<lechner>there is always herd restart xorg-server if that's not too much
<lechner>i don't see it here either. maybe it's part of elogind?
<singpolyma>pulseaudio -k and assumed it'll get restarted?
<lechner>or maybe even just send -HUP ?
<mirai>pulseaudio seems to be ignoring the files passed with extra-script-files from pulseaudio-configuration?
<lilyp>IIRC that field only exists to place files in the pulse directory, you have to source them on your own
<Mystified>Hi is there a default editor other vim or nano. Just to take notes
<lilyp>ed :)
<Kolev>Mystified: I use echo to take notes. Haha.
<lechner>Mystified / mg is better than those two
<Mystified>I needs some help, I'm new here, I've successfuly installed Guix, and able to install pkgs, but I'm unable to save any changes to files with # or sudo ie add to fstab. I recieve the error Read-only file system
<Mystified>how can I fix this it was suggested that I run "guix system reconfigure /etc/guix/configuration.scm", how do I do that
<mirai>lilyp: is that done with a .include /etc/pulse/ ?
<mirai>at least that's what's on /etc/pulse/
<mirai>I assume that would do the trick?
<lilyp>to be honest, I don't know
<lilyp>it wasn't my use case back when it was being reviewed and still isn't
<lilyp>for what it's worth, I think these files get loaded with nofail, so if you messed something up inside, you'll never know
<mirai>there's no easy way to get pulseaudio logs
<mirai>not that I can see
<lechner>Mystified / please send the output of ls -al XXX for the file you wish to change
<lilyp>mirai: pulseaudio -k; pulseaudio -vvvv
<lilyp>it's a race
<lilyp>ACTION → zzzz
<Mystified>etc/fstab -r--r--r-- 1 root root
<Mystified>I see the whole system is read only
<lechner>Mystified / fstab is configured via /etc/config.scm
<Kolev>Cannot launch Cheese. > cheese
<Kolev>Failed to register: Timeout was reached
<Kolev>Webcam works!
<roptat> \o/
<roptat>(for French speakers)
<roptat>for others, it's a translation of the release announcement from the Guix blog
<Mystified>lechner: Tried that, still would not allow to save the changes with nano
<Mystified>btw Thanks :)
<nbalzarotti>Hi! Will there be guix days this year before fosdem?
<roptat>nbalzarotti, yes!
<nbalzarotti>Wonderful, thanks! I've just found the libreplanet page, hope I'll be able to come
<rekado>KarlJoad: I’d be happy to review your changes to the documentation. You are in a perfect position to articulate in what ways the text needs to change.