IRC channel logs
2022-12-07.log
back to list of logs
<meolar>I use groff for typesetting and add additional fonts to the directory "/usr/share/groff/site-font/ps" so I can use them in my documents. Does anyone know how I might do this in guix? <meolar>No, it doesn't. I make a device independent typesetter roff font (ditroff) file from an OTF or TTF file and stick it in the "/usr/share/groff/site-font/ps" directory in other distros. That is where groff looks for it. <apteryx>podiki[m]: haha, "source" is in native-inputs for cross-compilation, not in inputs <rothari>Hello everyone. Does anybody know how to set GTK theme and icons in Guix? I have downloaded the theme in /usr/share/themes and the icons in /usr/share/icons and set up ~/.config/gtk-3.0/settings.ini and it still does not work. I am using Openbox without desktop environment. <oriansj>ok, this doesn't make sense at all and someone please tell me if I am missing something completely obvious but: https://paste.debian.net/1263153/ this sets up a static IP address but for some reason on boot, shepherd never starts the networking service but if I manually type herd start networking; then the static IP comes up just fine and networking is working just fine <apteryx>never starts the networking service, as in it fails and gets disabled? <apteryx>rothari: hi, guix doesn't use the file hierarchy standard paths, so /usr/share won't be considered <apteryx>you could use your user-specific XDG paths <rothari>apteryx: I see, I feared so. What are the XDG paths you mentioned? <oriansj>apteryx: It just shows stopped on boot unless there is some log I should be checking <apteryx>rothari: the theme should packaged and installed via 'guix install' <apteryx>I have some file "~/.config/gtk-3.0/settings.ini" that configures gtk-theme-name to Adwaita <apteryx>you may want to use some utility to configure this for you, like lxappearance <rothari>apteryx: So I have to "package" the theme? Usually on Debian I simply download the files and put them in the correct folder. <apteryx>there may be a way to use a XDG directory in your $HOME, but you'll have to look it up as I'm no expert <apteryx>or you could probably include any directory such in your XDG_DATA_DIRS and it should be picked up? <apteryx>I think that's how Guix themes are discovered <rothari>Ok so I have symlinked ~/.local/share/themes to /usr/share/themes and it works. The same thing does not work for icons though. <oriansj>apteryx: the only thing I can find in the logs is slim complaining about lack of access to dbus: <oriansj>[slim] (EE) dbus-core: error connecting to system bus: org.freedesktop.DBus.Error.FileNotFound (Failed to connect to socket /var/run/dbus/system_bus_socket: No such file o <oriansj>r directory) \nlocalhost last message repeated 4 times <oriansj>but that shouldn't disable staticly assigned networking right? <apteryx>if there are messages they would go to /var/log/messages I think <oriansj>I see the starting of all of the services EXCEPT networking and no networking failures <oriansj>ok, this doesn't make any sense to me but here goes: (requirement '(udev)) was added to the loopback service and networking starts up just fine <oriansj>but guix's %loopback-static-networking definition doesn't have that <oriansj>so how the heck is anyone else's static IP configurations working if that is the cause? (no loopback??) <oriansj>and now I have a full setup script for a kodi media server (connecting to a server for media and configuration) from zero to operational <oriansj>with static ip address setup and configuration to use as an example for anyone interested <oriansj>now to figureout how to get an iwd service and configure it ever so slightly <apteryx>oriansj: cool, thanks for sharing. perhaps there was some timing issue, and having shepherd wait for udev to be ready helps with that? <apteryx>probably for most users udev is already part of the dependency graph? <rothari>Hello. Does anyone know how to get GTK icons to work? I managed to select my icon pack in ~/.config/gtk-3.0/settings.ini but no GTK program displays icons. Instead I get errors like: "Icon <icon name> not present in theme <icon pack name>". <rothari>I am using Guix with Openbox and no desktop environment. <iyzsong>rothari: the theme dir should be in XDG_DATA_DIRS, you can run 'strace -e openat gtk-demo' and grep for 'index.theme' to get where GTK are looking. <rothari>iyzsong: I do not have that command. *I think* the icon theme is found, because its name is in the error message, but not the icons inside it. <allana>Hi Guix! I am tinkering with guix shell and curious about finding libraries in guile. For example, if I need to find a library through (dynamic-link "mylib") and my guix shell is invoked like "guix shell guile mylib", how do I go about setting up paths properly? Guile is not able to find the library in my case. <iyzsong>allana: guile manual says it look foreign libraries in GUILE_EXTENSIONS_PATH (since 3.0.6) and LTDL_LIBRARY_PATH (old). <allana>Thanks iyzsong. Do you know of any examples in the wild where someone sets this environment variable in a guix.scm for a project? <allana>Ah, I suppose this could be part of the package definition. I have found examples. Nevermind, and thanks again <iyzsong>yes, i don't think we have ways to set those variables other than search-paths of package. <lizog>hello guix, i have a question. zig, the programming language, is now self-hosted, and the way it bootstrap itself is designed with ease of system package manager in mind. there is a small wasm blob, which is compiled from zig's self-hosted implementation; when building the compiler, it firstly translate the blob into a c file, and then compile it as a bootstrap compiler <lizog>since it's now to fully build from source, because of the wasm blob, is it still considered feasible if we build the new compiler this way in guix? <zamfofex>lizog: You might be able to try to build it from an earlier version of Zig. <remyd1>Hi there, I have some issues to upgrade my channels and search for new packages. My channels.scm looks like this : <remyd1>However, even if it succeeds with `guix pull`, when I search for python package, it only find python3.8 from guix savannah <unmatched-paren>also, i'm pretty sure you need to log out and back in for that change to take effect initially <remyd1>unmatched-paren, only savannah displayed <unmatched-paren>also the guix channel can be replicated with %default-guix-channel, no need for (channel (name 'guix) ...) <unmatched-paren>> Packages in this repository have been merged into Guix, or moved to guix-science. <unmatched-paren>> Some of these package definitions won't be added to GNU Guix upstream as they are variants of packages that are of limited interest outside of the BIMSB. <unmatched-paren>if you want HPC stuff guix-science is probably the only one you need <remyd1>unmatched-paren, yes, I would like to also use this one <remyd1>No sure if I need a list or a cons in the beginning of the file <unmatched-paren>you could either do (cons* ... %default-channels) or (list %default-guix-channel ...) <remyd1>I also had some headaches with guix past and some channels; guix pull did not work and "--allow-downgrades" either. Maybe it was due to out of date channels you pointed out <unmatched-paren>remyd1: maybe some of those channels had been broken by upstream changes <remyd1>channel introduction is a way to check channel signatures ? <unmatched-paren>the other channels don't provide a .guix-authorisations file though, so you can't use introduction with them <ytc>hello. emacs-guix package is not working anymore on my machine. do you people also have this issue? <remyd1>unmatched-paren, that is weird, with your channels, guix pull worked but, even with logout/login, it still shows only savannah channel <unmatched-paren>if it works, add ``GUIX_ENVIRONMENT=~/.config/guix/current; . $GUIX_ENVIRONMENT/etc/profile'' to your .profile <remyd1>cgp-cavemanwrapper-fix-script.patch manifest <remyd1>cnrs manta-relax-dependency-checking.patch <remyd1>I am using guix in a hpc-like environment <remyd1>maybe it is a permission issue ? <remyd1>server is ubuntu, cluster is on almalinux <remyd1>I changed the IP of the cluster and updated /etc/exports according to this modification <remyd1>Although I have this channel issue, guix seems to work fine on the cluster <remyd1>I will try that on another machine <remyd1>It seems that I have many root profiles <rekado>you have one server running guix-daemon and exporting /var/guix and /gnu to the cluster nodes? <rekado>you need to make sure that /var/guix is in fact mounted on the current node <rekado>I also suggest tracing the symlinks from ~/.config/guix/current to /var/guix and see where it goes <rekado>it should hit the remote /var/guix on its way to the remote /gnu <rekado>(we also have an HPC cluster deployment here, but we configured with /gnu/var as the localstatedir way back) <civodul>cbaines: thanks for your feedback on guix-sysadmin! i'm looking into flashing it, but README.txt says to press "the button on the back of the case" and i see no such button <LuminousPath0>Hi everyone! I was looking to solve a problem I'm having with guix system apparently not "taking" my config changes for additional substitute servers, and I couldn't find anything on the net yet <LuminousPath0>but commands like weather and subsequent updates didn't use the substitute server at all <cbaines>civodul, I see a small hole between the USB serial port and the USB ports, I think that might contain the button <civodul>LuminousPath0: hi! after "guix system reconfigure", you need to either run "sudo herd restart guix-daemon" or reboot for these changes to be taken into account <LuminousPath0>is there a way to check the current generation's guix-daemon substitute server list? <unmatched-paren>LuminousPath0: Hmm, have you tried actually using ``guix build''? ``guix weather'' actually doesn't seem to use my own configured extra substitute servers, even though i download substitutes from them fine. <civodul>"guix weather" currently ignores the substitute servers that guix-daemon uses <LuminousPath0>is the list plopped somewhere I can read to check? I wanna make sure it's working before the next reconfigure I run <unmatched-paren>civodul, question: outputs in derivations look like this: ("out", "/gnu/store/v5pd69j3hjs1fck4b5p9hd91wc8yf5qx-irssi-1.4.3", "", "") <unmatched-paren>i tried building glib, which has 5 outputs, and none of them had anything for those "arguments" <unmatched-paren>civodul: ooh, sounds exciting, what's this thing that's booting going to be for? :) <civodul>unmatched-paren: see the <derivation-output> record: it's for "hash" and "hash-algo" <civodul>so it's only used for fixed-output derivatios <civodul>it's a derivation whose output content hash is known in advance <civodul>typically a file download (origin, etc.) <civodul>(the thing that boots is overdrive1.guix.gnu.org, an AArch64 box) <civodul>now i need to figure out how to set the default UEFI boot file <civodul>otherwise it defaults to the initial openSuSE GRUB <efraim>civodul: I think the "default" UEFI boot location is /boot/efi/EFI/BOOT/GRUBAA64.efi <efraim>ACTION spent almost 2 weeks trying to boot with uefi on a pinebookpro <oriansj>if one spent a 1/3 of the time they used just figuring shit out, documenting the things they actually know. Then the next person who runs into the issue would have 1/3 more time to hack on cool shit <oriansj>florhizome[m]: or atleast better documentation <efraim>On the other hand I feel I now have a pretty good handle on the internals of building Julia that comes from picking apart the code over several days <oriansj>I've spent the last few days trying to get static IP working correctly with my configuration, only to get lucky with a random guess <remyd1>rekado, yes, everything works like you described. <oriansj>but then again my configs have always been out in the edge cases of guix <oriansj>unmatched-paren: tabs for indent, spaces for alignment <unmatched-paren>i don't think that works very well with Scheme, but you do you -.o.- <oriansj>the ultimate sin in formating but it looks good <florhizome[m]>the premise of a community wiki is that it’s an open, on the go, documentation that has low thresholds to contribute and where you can be more specific at the cost of generality. i think guix is already overmatched in it’s capabilities to process contributions, don’t see how adding more to that stack makes much sense <oriansj>florhizome[m]: you can do the arch wiki approach and only limit contributions to those specifically selected for that task <unmatched-paren>it could swallow up the cookbook and include some blog posts, along with being globally-writable <florhizome[m]>Not hating on the blog, it’s good to show specific things from the side of the core team <unmatched-paren>oriansj: hmm, yeah, on second thought there are many reasons why that wouldn't really work <oriansj>but having a public, world readable git repo with a handful of people able to merge commits and patches would work just fine <florhizome[m]>I don’t know if it should be by guix officially, but it should be a solutions where guix core people would like to contribute as well… <oriansj>the big difference is how easy it is to search for the information you want <pkill9>is it possible to downgrade a specific package in a profile? <oriansj>unmatched-paren: index, tags and grouped content => wiki <florhizome[m]>oriansj well we have guix docs that are very good so I don’t think we need a quasi-official wiki… more like the emacswiki <oriansj>florhizome[m]: perhaps my bar for documentation is high as I find the guix source code more helpful than the existing documentation <unmatched-paren>florhizome[m]: oh emacswiki is a good example, that kind of thing sounds like it'd be pretty useful for guix <florhizome[m]>There is just the problem to me that it’s included with guix so very official and limited <oriansj>florhizome[m]: the biggest and most obvious is the second you turn off the defaults, there is nothing there which is helpful <oriansj>seriously look at my config; everything has to be specified <florhizome[m]>I have had many problems because I never coded or used guile before and in guix source code you often find multiple ways how to do a thing <unmatched-paren>oriansj: i think maybe part of the problem is how Guix has such a wide range of use cases <oriansj>I spent days figuring out that I needed to add udev as a requirement to the loopback to enable networking to start on boot <oriansj>with support for network media share and a local encrypted media fallback <unmatched-paren>oriansj: hmm, maybe udev should be a requirement for static-networking-service-type by default anyway? <dani-g5x[m]>oriansj: Cool, I use Gentoo so I love source based distros. If I ever get free hardware I could use guix on it <oriansj>it isn't if you look at the definition for %loopback-static-networking <oriansj>dani-g5x[m]: look in the repo I just linked above, you might find something of interest to get guix running on even non-free hardware <dani-g5x[m]>oriansj: I'm sorry but no, my main distribution is Gentoo <sepi>Do you usually run daemons like nginx as sytem service or user service in the context of a web server? <florhizome[m]>one day we might have a little community for any edge case that works on solutions that can be upstreamed or even distributes a special product but until then we need places to gather these usecases <oriansj>dani-g5x[m]: fair enough, if you see anything that can be improved in my install gentoo procedure. Let me know, I'm always looking for improvements <dani-g5x[m]>oriansj: Oh, can I see your install Gentoo procedure? 🙂 <dani-g5x[m]>Don't want to go off topic, but I can give you some tips on it <oriansj>dani-g5x[m]: there is #guix-offtopic for these sorts of off discussion bits <sepi>unmatched-paren: ok, I see. So I should just use the guix system services <tatsumaru>hey guys, I forgot my user password for my guix account. there should be away to use the boot media to edit my /etc/passwd right? <sepi>I just installed guix system. I'll read more of the manual (which is pretty good :) <unmatched-paren>tatsumaru: you could add (password "") to your user-account record in config.scm, then reconfigure and log in that way <unmatched-paren>and then remove it, use ``passwd'' to change your /etc/passwd password, and run reconfigure again <oriansj>or use mkpasswd --method=sha-512 to set the password to anything you want <unmatched-paren>tatsumaru: or you could just log in as root or chroot into your system with the boot media, then do ``su - USER'' and ``passwd'' <tatsumaru>unmatched-paren: I just realized I still remember my sudo password so I just did 'sudo passwd root' <tatsumaru>unmatched-paren: correct, but I thought I had forgotten that too <zimoun>mothacehe: any idea about what could be wrong? <unmatched-paren>tatsumaru: oh, the password you wanted to change was the root password? <unmatched-paren>tatsumaru: i was confused because you said you forgot your user password :) <SUPERB[m]>What’s the available Virtual Machine to install on Guix? <unmatched-paren>There's no Virtual Box, because it uses boot firmware that needs a nonfree compiler to build (though i believe they're aware of the problem and are trying to fix it) <unmatched-paren>description: GNOME Boxes is a simple application to view, access, and manage remote and virtual systems. Note <unmatched-paren>+ that this application requires the `libvirt' and `virtlog' daemons to run. Use the command `info '(guix) <unmatched-paren>+ Virtualization Services'' to learn how to configure these services on the Guix System. <SUPERB[m]>unmatched-paren: I guess Qemu doesn’t have a GUI <unmatched-paren>SUPERB[m]: i think it's usually just run with the ``qemu-system'' command <zimoun>mothacehe: thanks for the pointer. Well, I restarted them using the Action button, granted by a certificate. nckx, since you usually are the person who knows about certificate, has something changed? <remyd1>rekado, unmatched-paren I think I found my issue ! <remyd1>the guix binary path was not good <tatsumaru>is java available on guix? not seeing anything called jre or jdk in the package repo <remyd1>I have a symlink guix which overwritted my current guix binary symlink <nckx>tatsumaru: ‘guix search jdk’. <nckx>lechner: Set a man on fire; warm rest of life; etc. <lechner>thanks for Guix, everyone! I haven't tried every OS out there, but Guix totally stands out <tatsumaru>looks like this is a bug with the website package display then, the search didn't find openjdk there <nckx>zimoun: The server certificate expired. I was unable to create a new one that actually worked with existing client ones, at least in FF. I created a new one, and a new client certificate for me. Let me tidy up the steps I used and save it as a script so y'all can do the same. <rekado>a new SATA card arrived for my rk3399 rockpro64 board. Unfortunately, I still get a synchronous reset when trying to do “pci enum” and “scsi scan” from u-boot. <rekado>pci enum works fine; it shows the card <nckx>lechner: No, that is completely unrelated. <rekado>scsi scan appears to work fine at first; it detects all disks but then aborts. <lechner>nckx / sorry, i thought i could help <nckx>Then no need to be sorry. <rekado>it’s exactly the same behavior as with the previous card (different chip) <rekado>both cards work fine once the system has booted off a USB stick <unmatched-paren>what would be an example of a package whose source's derivation-output has recursive? as #t? <lechner>rekado / the reset occurs with version 22.04 of u-boot-firefly-rk3399? <unmatched-paren>> Packages in this repository have been merged into Guix, or moved to guix-science. <civodul>unmatched-paren: oh thanks, removed! <lechner>rekado / is the "syncronous reset" the same thing as the bus error or whatever you experienced last time? <civodul>then again, because a channel is on that page doesn't mean one has to use it :-) <unmatched-paren>civodul: i presume they wanted to add *all* bioinformatics-related channels <unmatched-paren>nckx: by the way (not wanting to sound desperate here ;P) how'd that meeting go? (2022-11-30 <nckx> We have a meeting coming up this Tuesday; I'll make sure your request is processed. <mothacehe>ventoy somehow uses the device mapper to make the iso image accessible <zimoun>Well, it seems an issue with Cuirass. <zimoun>yeah, as you pointed earlier :-) <rekado>lechner: I don’t think I ever had a bus error. I’ve only ever seen this “synchronous abort”, which leads to an immediate CPU reset. <lechner>rekado / what are you loading and how did you copy it? <rekado>I built u-boot for rockpro64 and then dd’d it onto a microSD card at the expected offsets <rekado>i.e.: sudo dd seek=64 bs=512 obs=512 conv=fsync if=$where/libexec/idbloader.img of=/dev/sdb <rekado>and sudo dd bs=512 obs=512 conv=fsync if=$where/libexec/u-boot.itb of=/dev/sdb1 <rekado>where “where” is the build output directory <rekado>the abort happens right after “scsi reset” or “scsi scan”; doesn’t make a difference whether a disk is connected to the SATA card or not <nij->I'd really like to try guix, but I <nij->am on macos. It's not supported, right? <lechner>rekado / you typed 'pci enum' in the u-boot booted from the USB stick, right? <civodul>nij-: correct; Guix only runs on top of a Linux-based system <civodul>anyway on macOS, you could use a VM or Docker image of Guix System <lechner>nij- / the microkernel linux could have been. it's too experimental for you <civodul>(but IMO the best option remains to leave macOS and choose a free system :-)) <nij->I wwill try a VM. But I see very little info out there about running guix on a VM based on mac. <lechner>sometimes you just have to take a plunge <nij->There are some reasons I eventually switched to macos. <nij->One main thing is zoom. Its support on linux is very bad. <lechner>nij- / i use zoom in the browser every day <nij->Sometimes it's ok but sometimes its awkward. That makes me appear to be unprofessional. <nij->Never crashed? No hiccup?.. etc? <nij->But it's perhaps off topic. Anyway, I know how great living in linux is.. <nij->But I've made the choice. And now a side-effect is that I may have to use the non-lispy nix :'( <nij->But it only works for x86_64. <lechner>nij- / well, we are not really supposed to talk about non-free solutions in this channel, but i experience no problems with Zoom in FF whatsoever. i use zoom as a minor public official because the committees i am on use it <lechner>nij- / i just joined it, if i can help you drop you current os <rekado>lechner: no, I have u-boot on the microsd card. <rekado>then ‘scsi reset’ or ‘scsi scan’ <sepi>What's the approach in getting something like wordpress running on guix? <sepi>is it possible to write some kind of package that would install and configure the necessary service, nginx, postgresql, fastcgi and then download the php code to some directory and run some curl commands to configure it or write to some php config files? <sepi>unmatched-paren: would it be the way to go (tm)? <unmatched-paren>though you probably would want to write a wordpress package that has all the php code in it <sepi>ah, I see. I'm still a bit confused about the dichotomy between packages and services <sepi>Do services also rely on packages? <sepi>Are there docs that explain it? <unmatched-paren>> Here we define a service as, broadly, something that extends the functionality of the operating system. <sepi>14:44 < unmatched-paren> but doesn't really explain the difference between the two <sepi>14:44 < unmatched-paren> but doesn't really explain the difference between the two <sepi>unmatched-paren: yay, thanks <gabber>what happened to gnu.tools / the GNU assembly? has it taken off? it sounded really interesting when i first heard about it but i haven't heard much since. sorry if this is off-topic here, please feel free to refer me to better places to discuss this <unmatched-paren>why do we need shell-authorized-directories? is there some esoteric security problem around automatically allowing it? <apteryx>unmatched-paren: a manifest.scm can contain arbitrary code <apteryx>so you could e.g. '(delete-file-recursively (getenv "HOME"))' and tell someone to 'guix shell' from your repo <unmatched-paren>"Run `make` to build this totally-legit program! Oops, your $HOME is gone, sorry about that!" <apteryx>perhaps civodul has more insight into the security considerations, as the main implementor of 'guix shell' <gabber>unmatched-paren: you can have a --container with your `guix shell` -- exactly for this reason <gabber>i don't think it's esoteric; it's a (small) barrier to guide users not to do potentially harmful stuff. even though this is not the most secure of security mechanisms, i guess it's reasonably secure with a minimal amount of inconvenience imposed on users <remyd1>Hey, how would you delete all generation except the last one ? <remyd1>unmatched-paren, this will delete all generation including the last one ? <rekado>also doesn’t boot, but it doesn’t panic after a scsi reset. <mrvdb>I am getting my feet wet in creating a channel. https://dpaste.org/0oV47 is my test package in a local channel. Works fine. How can I use that file to test build the emacs-next-lucid package without committing the file? So far I have been using a test file and copying stuff back into that file once done. <apteryx>rekado: hi! if you have to experiment with older u-boot versions, you may have a user for: [bug#59761] [PATCH v2 1/3] gnu: make-u-boot-package: Add a u-boot argument. <gabber>mirai: are these definitions equivalent? is alist really just a list in disguise? <unmatched-paren>this definition checks not only whether it's a list, but whether it contains cons cells <unmatched-paren>mirai: perhaps you could try using ``list-of'' instead of match there <gabber>it's an association list, right? when in Scheme a list is (cons 'a (cons 'b #nil)) <sepi>Do I understand correctly that extending a service is kind of the same as "using" parts of it? <sepi>but it's also not extending in an OOP way <unmatched-paren>but some also provide an interface for "extending" them, which allows you to create new services based on older ones <sepi>Ok, so that's what I meant by using. Basically the extending services uses procedures exposed to it by the extended service. <unmatched-paren>a service that extends udev-service-type with a list of packages will make those packages... udev-y? not sure what it does exactly... when the extending service is used <unmatched-paren>shepherd-root-service-type provides the functionality for running daemons <elevenkb>hey, what's the most popular/best way to get zotero on guix system? <sepi>unmatched-paren: So for the case of my wordpress service, would I need to extend the nginx service? I see that that one is configured using server-blocks for example. Is ngix-configuration something only used when not extending the service? <unmatched-paren>sepi: i have no idea about the specifics of extending nginx-service-type <sepi>ok, thanks. I'll have a look on the code <gabber>sepi: does wordpress run on it's own? or does it rely on a *CGI interface from a webserver? <sepi>gabber: it's usually run using fastcgi and php-fpm when behind nginx <sepi>Is there any explanation on how to compose services in general and how the exposed extensions are related to the configuration types? <gabber>IIUC you can test your wordpress (i'm not sure what exactly you are doing) by configuring an nginx instance correctly on your machine. but having ready-to-run services is always nice <gabber>do you have wordpress packaged already? <mirai>unmatched-paren: that's the thing, it can't be (define alist? (list-of <??? alist?>)) <sepi>gabber: no, there is no wordpress package and I didn't package it yet since I wanted to get the big picture first <mirai>because alist? is the procedure we want to define here <sepi>as far as I understand it, packaging and installing it would just make it available in the store, no? <sepi>how would I reference it nicely from the nginx config? <mirai>is there such a procedure as cons-cell? <sepi>unmatched-paren: where will you publish it? <mirai>the idea of the match is that an empty list is also an alist <sepi>I'm also watching the fosdem talk by Courtès from 2017 FOSDEM. I hope it's still somehow relevant <mirai>it also mimics most of the form found at the free-form-args type that is implemented in some of the existing services <mirai>with the added benefit that it's much more robust at matching pairs <gabber>sepi: IIUC wordpress consists of (PHP?) source files. so you can configure an nginx and a db server on your machine and configure nginx to point to the source directory (which you downloaded manually). i don't see why not <sepi>gabber: sure, that would work but defy the purpose of what I'm trying to do :) I'm coming from an ansible based automation approach and want something nicer to manage my custom software installation "scripts" <sepi>What I was building with ansible was a hierachy of ansible "roles" that would install and configure things like nginx, wordpress and then compose them to more complex setups that define my concrete applications. <sepi>but it doesn't really scale and it's not very declarative <lechner>sepi / with 'guix deploy' do you still need ansible? <sepi>unmatched-paren: that's why I'm here :) <gabber>sepi: i guess you'll have to package wordpress first then, and afterwards define the service <sepi>lechner: who knows, lemme first get the basics running <gabber>i'm just saying: as soon as you know how to run it "manually" you have some good pointers on how to extend what services ;) <sepi>gabber: I wanted to understand how things fit together first. But maybe tomorrow I'll just start packaging already and maybe manually configure services, as you say <sepi>only then I'll try to tie it all together into a service <lechner>sepi / i would also like to run a wordpress site on guix. did you get it to work? <sepi>lechner: yeah, I do this for work (not wordpress specifically) and I'm off in few mins, I can ping you about it when I get it working <sepi>I hope :) It would be weird if nobody in here has ever run a php application <sepi>I still wonder if services are the right abstraction to also create a database, set up users in the DB etc. <tricon>lechner: i have yet to setup WordPress on Guix, but i do run Snipe IT on Guix. similar principles. <oriansj>anyone know what causes: localhost -- MARK -- to showup in /var/log/messages every 20 minutes? <vagrantc>i recall disabling that in some syslogd implementation(s) back in the day <ham5urg>Is there a Python GTK4 reference out there? I see only a GTK3 one. <mbakke>using a custom linux-libre configuration just became more difficult <mbakke>do we have a way to modify a gexp-input? <oriansj>vagrantc: well that is what is occuring in guix straight out of the box <apteryx>mbakke: how did it become more difficult? <mbakke>previously we could override the "kconfig" key <mbakke>i.e. (modify-inputs (package-native-inputs linux-libre) (replace "kconfig" (local-file "kernel.config"))) <mbakke>this change was inevitable of course, I'm just wondering if we can improve the tooling around gexp inputs <apteryx>ah. there's a new customize-linux procedure which may be handy <apteryx>you can give it a defconfig file-object <apteryx>else pass it a list of config strings <mbakke>that seems like it will do nicely, thanks! <mbakke>maybe worth a news entry so people don't inadvertently boot the stock configuration <oriansj>looks like I have to tweak the out of box syslog configuration too <mbakke>if I hadn't seen the commit I would not have noticed that my kconfig became ineffective <apteryx>ah, I see there's a "kconfig" input replacement documented in the cookbook. OK, I'll write a news for it, thanks for suggesting. <nckx>oriansj: It comes from the (virtual) ‘mark’ facility of inetutils' syslog. <nckx>You can probably disable it with a syslog.conf rule. <nckx>unmatched-paren: It's OK to be desparate. Not yet, but soon™. <apteryx>mbakke: I'm wondering if a plain config file can be used as a defconfig file though <mbakke>Mismatching configurations in .config and arch/x86/configs/guix_defconfig (("CONFIG_CC_VERSION_TEXT" ("\"gcc (GCC) 12.2.0\"" "\"gcc (GCC) 10.3.0\"")) <apteryx>ah, I think you can use #:configs "your_config=y\nas_strings=m" for a full config <apteryx>so, pass the string corresponding to your config file to the #:configs argument of customize-linux should be equivalent, I think <mbakke>surely we can make that more ergonomic :) <apteryx>the mismatch detection is a new feature; before these problems would have gone unnoticed (VERSION_TEXT is not exactly critical but a missing driver is more annoying) :-) <apteryx>but that's a defconfig thing, which extends a base config. here you want to override the full config, which you should be able to do via #:configs <mbakke>still getting "Mismatching configurations" with: <mbakke>#:configs (call-with-input-file (string-append (dirname (current-filename)) "/kernel.config") (lambda (port) (get-string-all port))) <mbakke>which is a terrible interface anyway :P <mbakke>Mismatching configurations in .config and arch/x86/configs/guix_defconfig (("CONFIG_X86_AMD_PSTATE" (#f "m")) ("CONFIG_GCC_VERSION" ("120200" "100300")) <apteryx>hmm. I'd have expected the #:configs to be a full override, thus not having anything to compare with <mbakke>this seems like a "customer knows best" scenario: if they provide a full .config file, presumably hand crafted from `make nconfig`, assume they know what they are doing <mbakke>(or make menuconfig for those who did not get the ncurses memo) <apteryx>OK, when using #:configs without #:defconfig, customize-linux will end up calling "make defconfig" to generate a pristine .config to compare with <apteryx>now to think if this actually makes sense <mbakke>Kolev: use backticks around the text to make it render monospace in various matrix clients, e.g. \`foo\` renders as `foo` <lilyp>yep, perhaps we'd need an escape hatch to allow skipping this, but if "make noop" exists, then that could serve as defconfig <Kolev>But mbakke it rendered as formatted monospace text on my end. <nckx>mbakke sent \0x11make menuconfig here. <unmatched-paren>so i connected to ``guix repl'' with M-x geiser-connect-local, but when i do ,use (gnu packages irc) i get <unmatched-paren>In procedure manifest-entry-name: Wrong type argument: #<<manifest-entry> name: "guix" version: "b94724e" output: "out" item: "/gnu/store/v7rqxfwwskw8ykynjbhsrx2i6rcbvxvd-guix-b94724e8b" dependencies: () search-paths: () parent: #<promise #<procedure 7f3c41758630 at guix/profiles.scm:541:60 ()>> properties: ((source (repository (version 0) (url "https://git.savannah.gnu.org/git/guix.git") (branch "master") (commit "b94724e8b2102be0fe9d19e9dfe <unmatched-paren>44d6f7101bd4b") (name guix) (introduction (channel-introduction (version 0) (commit "9edb3f66fd807b096b48283debdcddccfea34bad") (signer "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))))> <apteryx>I think the idea behind the customize-linux check is 1. generate a generic defconfig or use the provided defconfig one, and derive a .config from that 2. try to adjust its values per #:configs, run 'make $defconfig' again, and compare the newly created .config with the target one. <unmatched-paren>when i try to do it again it works but none of the variables are imported <apteryx>the idea being that if the defconfig derived .config lacks any of the user configs, it's because there's something wrong (not satisfied) in the kconfig dependencies <apteryx>so perhaps it's just more strict and we've been shipping slightly broken .config files for a while. to investigate we can experiment in 'make menuconfig' <mbakke>apteryx: if the user already ran 'make menuconfig' to generate a perfectly cromulent .config, then customize-linux should not need to do any further processing on that <mbakke>perhaps customize-linux could take a kconfig key as an escape hatch for people with a custom .config <mbakke>seems like a good thing to document before 1.4.0, especially with the cookbook example no longer working :-) <apteryx>but I need to do more experiments before I can confidently say it's equivalent <mbakke>I think the linux build system automatically runs make oldconfig so people with outdated configs will get a somewhat working kernel anyway <apteryx>but that doesn't take care of dependencies; I'm trying to understand a case where my kernel with CONFIG_LIRC=y in defconfig turned out to be unset in .config, as detected by customize-linux <apteryx>it appears to be due to RC_CORE which is not enabled by default (and was not set in the defconfig) <cehteh>mhm what changed recently that i cant mount sshfs as user? <cehteh>fusermount3: mount failed: Operation not permitted <cehteh>.. do i need to be in some group? <nckx>cehteh: Did you downgrade Guix? <nckx>What does ‘type fusermount3’ say? <cehteh>no, but i rebooted for the first time in pretty long time, laptop that was put into suspend for maybe almost a year <nckx>The commit making sshfs work without privileges was only added in July. <cehteh>but looks like i rebootet a few times just didnt remember <cehteh>could there be a conflict of some sort when i have fusermount and fusermount3 installed? <unmatched-paren>Anyone know an example of a PKG for which (derivation-output-recursive? (assoc-ref (derivation-outputs (with-store %store (run-with-store %store (lower-object PKG)))) "out")) is #t? <unmatched-paren>or, anyone know what specific configuration of a source would cause it to be #t? <cehteh>ok giving up for now, fixing that another time, thanks <ekaitz>hi! I'm trying to run a gui program in a container and I can't make it find the display even if i'm `--share`-ing the `/tmp/.X...` directory, what am I missing? <gabber>ekaitz: isn't it more something like DISPLAY=:1 (copied from my local `env`) <civodul>unmatched-paren: sorry, regarding the "wrong type argument" thing <podiki[m]>ekaitz: are you preserving DISPLAY and sharing Xauthority too <ekaitz>gabber: I didn't try that properly, is DISPLAY a global variable? <ekaitz>podiki[m]: where's the Xauthority supposed to be? i found examples that have it at $HOME but I don't have that <unmatched-paren>civodul: though i'm not using emacs-guix, only geiser with guix repl --listen. would that be relevant information to add to the thread? <gabber>if by global you mean set by X window system, then i think so :P <podiki[m]>ekaitz: try with --preserve='^DISPLAY$' --preserve='^XAUTHORITY$' --share=$XAUTHORITY <nckx>cehteh: ‘Giving up’ sounds like there was effort involved, is all, but you didn't even answer. So I felt bitten in my but, as we say here :) Not that I have an idea what's wrong. Even if you have an old sshfs in your user profile, say, it should still go through the old setuid fusermount. <unmatched-paren>civodul: i presume recursive? in <derivation-output> is for sources where a tarball is downloaded that contains a directory or an executable, but you want to hash that directory/executable, not the tarball? if i interpret the ``derivation'' docstring correctly <apteryx>neat, I'm now running a TS-7970 ARM board using the stock linux-libre-arm-generic (its bootloader is still an older u-boot fork) <apteryx>perhaps soon I can try Guix System on it. <cehteh>nckx: i wanted to inform you that you shouldnt stop investiogating it because of some personal reasons here (i can tell you in a PM), i dont wanted you to waste time on it, i would say it would be rude when i let you figure out something but cant keep the ball <ekaitz>gabber and podiki[m] : thanks for the help!!! :D <nckx>cehteh: The reason I asked for ‘type fusermount3’ is because sshfs needs the setuid fusermount{,3} (depending on sshfs version) in $PATH. If that's misconfigured somehow, it won't work. <podiki[m]>ekaitz: welcome! forthcoming blogpost on the FHS container will have some examples with the lots of shares/exposes needed for graphical applications too <unmatched-paren>ACTION decides to see if there's any package sources like that using fold-packages <ekaitz>podiki[m]: that's great! it's a great tool I'm really happy we have it now. Thanks a lot <cehteh>nckx: ok ..thhanks i try to figure/fix that tomorrow <podiki[m]>ekaitz: glad to hear it! on that topic, any particular use cases or examples you've used or would want to see? <cehteh>(back on the office computer now) <unmatched-paren>the reason why i'm doing this is i'm writing what i hope will be a series of blog posts on low-level guix concepts. the first is about derivations. <unmatched-paren>if they aren't accepted for guix.gnu.org/blog i'll just make a sourcehut pages blog and slap them on there <ieure>unmatched-paren, I like the sound of that a lot. I have struggled mightily to understand the existing docs, and the lack of any theoretical basis on which to hang notions of concepts like provenance has been a big part of that. <unmatched-paren>and i want to add an example so that people can understand why recursive? is there <ekaitz>podiki[m]: I'm just running a game that is not free software :( so it won't cover the guidelines of the Guix blog, but if it's for your thing and you want to know I can tell you which game it is and how I run it privately <cehteh>nckx: i tried 'type fusermount' but i just had to stop work there i hope you understand (see my explanation in the PM) in contarly i explicitely wanted to inform you that i cant continute because it would be rude if i dindt :) <unmatched-paren>ieure: hmm, i wasn't entirely aware that there was a whole concept of "provenance" distinct from generations :/ <podiki[m]>ekaitz: thanks but that's okay! was just curious if there are things to include in the blogpost beyond what I was thinking already. but glad to hear it has been useful :) <civodul>unmatched-paren: yes, 'recursive?' is for a complete nar (normalized archive) rather than a flat file; so that means it can be a regular file, an executable, or a directory <civodul>for origins it's used in a single place i think <civodul>namely, bootstrap-executable in (gnu packages bootstrap) <civodul>unmatched-paren: i look forward to the blog posts! it's a great idea <civodul>you may find additional answers in jpoiret's talk too :-) <unmatched-paren>hopefully my writing isn't too dull. despite being a native english speaker i'm worse at writing than many of you non-native speakers :P <rekado>lechner: I don’t think that’s what I’m getting. It’s not a Linux problem. It happens earlier. And we are building u-boot with arm-trusted-firmware from source. <rekado>with both SATA cards I can see all disks and there is no synchronous abort any more. <civodul>unmatched-paren: heh, you can always pass it around publicly or privately if you'd like feedback, but i'm confident :-) <apteryx>can I bootloader field be set to #f? <rekado>booting still fails because I don’t know how it’s supposed to work. It’s probably looking for something on the SSD but doesn’t find it. <unmatched-paren>civodul: so far i've written these sections: "Store Paths", "`.drv` Files", "Exploring Guix Interactively", "Creating a `<derivation>`", and I'm working on "Exploring `<derivation>`" <civodul>well, it can be long, but i'm sure many will thank you for that <civodul>perhaps some bits could eventually make it into the manual <podiki[m]>A series of posts one a day or week would be nice <gabber>unmatched-paren: we could cheat and only publish them daily after you've written them ;) <ieure>unmatched-paren, Well, I don't really understand provenance myself. Because the docs don't really explain it or how it works, they just mention that it exists. So when when every `guix` command starts complaining about it, I have no idea how to do anything about it. <ieure>unmatched-paren, No idea! It's not documented! <unmatched-paren>if it is, maybe we should replace mentions of "provenance" with "generation" <ieure>It seems important, otherwise why would it start complaining about stuff missing it? <ieure>How did it get missed? How do I fix it? No idea. Not documented. <podiki[m]>Yeah I meant after you have them done or nearly so ☺️ <ieure>unmatched-paren, I don't recall exactly, this was on a previous attempt to use Guix. <ieure>I'll let you know if it happens again. <lispmacs[work]>hi, I'm trying to get some go software packaged, using a definition I got from the go importer. However, build fails because package looks for some go files in /gnu/store/...-go-1.17.11/lib/go/src/golang.org/x/text/secure/bidirulem, whereas the packages are actually in /gnu/store/...-go-1.17.11/lib/go/src/vendor/golang.org/x/text/secure/bidirulem <ieure>unmatched-paren, I had, in fact doing those things is what made it break. <podiki[m]>That's a message you get on a new install anyway though <unmatched-paren>ieure: oh, right, the first time you pull or reconfigure you'll always get that <ieure>unmatched-paren, This was way after that. <nckx>‘Provenance’ isn't ‘generation’. It's where the generation came from: their channel(s) and commit(s). There's no special jargon meaning. That information isn't always available, so Guix warns. <ieure>Yes, I understand that it loosely means "origin of something." But it's unclear how that's recorded, or what may have caused it not to be, resulting in the warning. <ieure>I grasp why it's important, but it would also be good to write that down, since not everyone may understand. <nckx>The problem here isn't that Guix warns, but that you think it's something that you need to act upon or risk $danger, when that's not really the case. That's the warning's fault. I'm not sure how to rewrite it to be less scary (whilst keeping it a warning). <ekaitz>podiki[m]: I need you again: how do I share the audio too? <ieure>nckx, If it's not important, maybe you should run something like `guix provenance' to check and report, and not have anything print during other operations. <nckx>ACTION was also researching the answer to that ☝ … <podiki[m]>could not having provenance indicate doing things like roll-backs won't work or otherwise get confused later (descending from something without further history)? <podiki[m]>ekaitz: no problem! let me see if I have it handy, all the good shell history is on another computer :) <podiki[m]>ACTION feels connected to nckx's (good) brain <nckx>I'm am seldom connected to my good brain. I save it for special occasions. <nckx>[I'm am? Case in point. 🤦] <podiki[m]>ekaitz: probably sharing XDG_RUNTIME_DIR/pulse if it exists, maybe dbus stuff? like preserving DBUS_ variables <ekaitz>podiki[m]: uuh it's getting interesting... let me try <podiki[m]>assuming you are using pulse or compatible, I don't remember if you'll need dbus but possibly (as it will send via dbus to pulse server...maybe just to start?) <podiki[m]>containers get interesting very quickly! figuring out things like hardware and various desktop service things shows how complicated modern environments are <rekado>welp, I think I got it: when building with arm-trusted-firmware-rk3399 I get the synchronous abort. Without it I don’t. <ekaitz>podiki[m]: it doesn't really work yet... the library I have to make work is openal <ekaitz>> AL lib: (WW) Error generated on device (nil), code 0xa002 <rekado>does this mean that I’m really using some built-in blob when arm-trusted-firmware-rk3399 is not included? <podiki[m]>I don't know anything about openal really, but I think it would just be the usual pulseaudio sharing needed. general hardware would be /dev, /sys/class, /sys/dev, /sys/devices to be broad <ekaitz>and those are shared by the --emulate-fhs? <podiki[m]>no, emulate-fhs doesn't do any sharing, exposing, etc. just internal container setup <ekaitz>podiki[m]: I'll try with dev/audio* then! can i share that with a regex? <podiki[m]>oh, you might add -N if you didn't already, I found that helped for dbus (probably some internal interface needed) <podiki[m]>I don't believe you can for share/expose but would love to be wrong. recently you should be able to just do /dev if you want to be blunt (used to fail) <ekaitz>I can't just share /dev, it gives me an error <podiki[m]>really? what's the error? when I tried recently it was allowed after some changes in how container mounts are handled (in the last few weeks) <unmatched-paren>civodul: sorry for all the questions, but what exactly is the purpose of the ``derivation-sources'' field? i understand it contains paths to either Guile source files or directories full of Guile modules, but i don't understand why it's there <unmatched-paren>or why we have to specify that in derivation-sources when we already do in derivation-args <ekaitz>podiki[m]: guix shell: error: mount: mount "/dev" on "/tmp/guix-directory.pLCcg5//dev": Invalid argument <civodul>unmatched-paren: for that you'll find all the details in Eelco's PhD thesis, but essentially, there's a distinction between "sources" (plain files that are in the store) and "inputs" (other derivations) <ekaitz>podiki[m]: if I share /dev/snd instead it works (the audio still doesn't sound, but there's no error) <podiki[m]>ekaitz: yes that was the old error, does guix shell -FC --expose=/dev error out or not? <unmatched-paren>civodul: okay, i actually haven't read that :) i'd better do that before continuing (or at least read the sections that are pertinent to Guix as well as Nix) <civodul>unmatched-paren: yes the part about derivations is worth reading <civodul>i mean it's worth reading in its entirety :-), but that part is definitely relevant <ekaitz>podiki[m]: maybe I have an old guix and I should guix pull? <ekaitz>the shell -FC --expose=/dev fails too <podiki[m]>yes, if it is a few weeks old, that would be the difference <ekaitz>podiki[m]: still, sharing the /dev/snd folder does not make it work <podiki[m]>something about recursive bindmounts...meant to fix some other container mounting issue but helped with doing things like /dev <podiki[m]>ekaitz: you use pulseaudio on X11? and this is on a guix system right? <podiki[m]>unmatched-paren: please to add some links to resources like that in your blog posts too, will be nice to have these collected (not that they aren't elsewhere but will make it a better reference) <ekaitz>podiki[m]: yes, I'm in a guix system with x11, and I think I use pulseaudio yeah <zpiro>can you guys get mbakke a new job? he isn't 🤸🧔🍻happy, and I just asked him to package wezterm, and what I think is the king of terminals, from irssi, westerm, and ctrl+shift+u and just writing "beer" in the transparant popup. While a phat, large and impossible rust and lua wirtten binary blub and rust cargo terminal you really really want your cool windows, macos and unix 🧔♂️ people to use <Kolev>On one hand, I want to play with Guix on my server. On another hand, I want to do things the way they're done in production, in business. <podiki[m]>ekaitz: broadly speaking I think one needs dbus, pulse (socket), xdg related variables probably, i don't know about hardware since I think the pulse server takes over from there <gabber>Kolev: that's what my school taught me on why i should use M$ Winblows <podiki[m]>unmatched-paren: appreciated, collecting references is hard work <Kolev>gabber: I mean, the way GNU/Linux is used in business. <podiki[m]>unmatched-paren: especially as a nice introductory blog series, that will be helpful future reference as well <Kolev>Guix is not how most job sites are running their GNU/Linux systems. <gabber>well, with that attitude that will stay like that forever <Kolev>gabber: I'm looking to learn the skills I will need for jobs. <civodul>zpiro: what's the deal here? that's not how we treat each other on this channel <gabber>Kolev: if you're looking for a job in IT then i guess the more important question is: what are your interests? if you're into reproducible builds, system deployments and similar stuff then Guix might be a good thing to get you acquainted with all different kinds of skills <podiki[m]>and using any Linux in detail will get you a lot of skills <podiki[m]>maybe more if you pick something/do things that make it break a lot so you lean how to fix all the weird things <zpiro>civodul: unixporn matters, but honestly, yeah; I am out of line. But mbakke needs to move around, and with something to do right now--would be perfect, especially if he can keep current ties and job at University of Oslo, but he isn't happy. <Kolev>gabber: I'm into Ansible and containers. <gabber>Kolev: Guix is a great (if not the only way) to create reproducible containers! <gabber>but yeah, it's the same at my work too: "we use Docker™". when i bring up reproducibility everyone is like "yeah this is important" but nobody cares to do it. Guix is a (relatively) pain-free way (cough) <civodul>zpiro: this isn't the place to discuss another person's personal situation <Kolev>It still sounds like I need to do things the hard way, with Ansible and containers, so that I will be accustomed to the way things are done on the job site. <civodul>in other news, i suspect the "rotate" parameter of rottlog isn't honored <zpiro>civodul: I am not, but it should also be fine; for the extent that Marius won't ask. But he is more than ready for a task and new social circumstance, where the latter is now the part that makes me do the faux pax on his behalf. <podiki[m]>for those at home playing with guix shell -CF my goto is -D ungoogled-chromium as a way to get lots of dependencies if you aren't sure what you need :) <zpiro>civodul: sure, but at the off chance there is room, and others that would be interested in work exchanges in these times---I did thisd with good conscience. <podiki[m]>ACTION is away for now, updated blog post on FHS containers coming tomorrow for review <rekado>without arm-trusted-firmware-rk3399 I can’t successfully boot from USB either. I suppose that’s not surprising. It avoids the reset but I guess nothing can happen once the kernel takes over. <unmatched-paren>civodul: what i don't understand is why module-import-compiled and the package-source aren't in derivation-sources <unmatched-paren>actually, i understand why the package-source isn't, because it's built with a derivation <unmatched-paren>but i don't understand why module-import-compiled isn't in that list <civodul>unmatched-paren: module-imported (?) might be a plain source <ekaitz>it's pretty specific to my machine <civodul>unmatched-paren: yeah 'imported-files' in (guix gexp) is quite smart: it can be a "source" or a derivation <civodul>modules-imported-compiled is always a derivation because it's the result of compiling those .scm files <zpiro>civodul: are we good? As the on person protesting, and also able to faciliate something like a work exchange to stimulate transfer of knowledge. Can I expect you to use your leverage to set up work exchanges to compensate for covid-19 troubles and other things that may induce burn-out and ward off motivation? <PotentialUser-39>hi guix! i am trying to pull my guix channel during the manual system installation. for some reason i get this error "Git error: Could not find appropriate mechanism for credentials" <nckx>zpiro: I actually believe you're trying to help, but this is not the way. Please, at least talk to Marius first, assuming they want to, and let's not discuss this further while they're not here to comment. <oriansj>and I am guessing there is no good examples in guix for syslog configuration <oriansj>wooo more brand new fun for me to explore <rekado>PotentialUser-39: consider doing this: guix install nss-certs; export SSL_CERT_FILE="$HOME/.guix-profile/etc/ssl/certs/ca-certificates.crt"; export GIT_SSL_CAINFO="$SSL_CERT_FILE" <unmatched-paren>please tell me if you find anything dull, repetitive, confusing, or wrong <civodul>too late for me for a detailed review :-) <civodul>i wonder if it would help to use ",lower irssi" in the examples <unmatched-paren>civodul: i considered that, but i think it's better to use proper scheme <civodul>unmatched-paren: it's more intimidating but also closer to "the real thing"; it's a tradeoff <oriansj>civodul: and without an example, I was literally guessing that it needed: (syslog-service (syslog-configuration (config-file (plain-file "syslog.conf" ".... <unmatched-paren>civodul: i'm also not sure how you'd operate on the derivation object that ,lower produces. since it's not a real scheme expression, you couldn't (define irssi-drv ,lower irssi), could you? <civodul>you could do (derivation-inputs $10) etc. <civodul>for the purposes of the posts, we could also add new REPL commands if you see a need