<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
<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
<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.
<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_>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
<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’.
<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>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
<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.
<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>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.
<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! https://codeberg.org/jengelh/pam_mount/src/branch/master/src/mount.c#L104
<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>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>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
<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
<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>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.
<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..
<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.
<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?
<lechner>kennyballou / is this step failing? Merging directory /gnu/store/4clfs2g67rg9sx8ki2qknxzwzf6y22bk-python-pygls-1.0.0/lib/python3.9/site-packages/pygls-1.0.0.data/data into /gnu/store/4clfs2g67rg9sx8ki2qknxzwzf6y22bk-python-pygls-1.0.0
<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?
<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'?
<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/default.pa.d ?
<mirai>at least that's what's on /etc/pulse/default.pa