<PotentialUser-8>I just did two identical installs, except that the second install had the root fs in a luks partition. The first one boots fine, the second freezes at the grub menu (after selecting an entry). My root fs has mapped-devices as the dependency. I specify the luks via uuid, and fs by label. Has anyone had a similar problem?
<PotentialUser-8>I diffed the configs, so that really is the only difference. setup scripts are the same except starts with cryptsetup format/open and /dev/nvme0n1p2 is replaced with /dev/mapper/btros
<nckx>PotentialUser-8: It's probably waiting for your passphrase without video output.
<nckx>Type it once or twice (followed by return each time).
<nckx>Yes, I get that, we use nbsps in Guix for that reason (‘GNU<nbsp>Guix’) etc. I'm only puzzled as to what specifically ‘.<nbsp><space>’ is trying to prevent. Maybe character-level orphans (one space at beginning of next line?) but then again, I call that broken word wrap.
<nckx>I don't want to further noise up the channel with my inane question.
<lechner>the misnomer would be my fault, and not that of the PotentialUser or their editor
<nckx>Where did you go, PotentialUser-8, what did you see, what editors did you use…
<cmmm>Hello everyone! I'm trying to implement a system service for spinning up shepherd-services which start containers within mnt and net namespaces, bringing up networking between them as declared in the top service config (to get rid of docker completely). I'm new to extending guix and would be happy if you could give me some ideas or point me in the right direction. I'm using make-forkexec-constructor/container to spin them up, how
<cmmm>could I add separate profile to each container (make the declarations system profile independent)? Should I use the ip program to setup all the necessary interfaces, or there is (should be) a general guix way for that? I guess the dev mailing list will be a better place to ask these questions, after I get a clearer picture on the topic.
<lechner>cmmm / Hi, the folks in this channel will probably help you faster than on the mailing list, except traffic really slows down on Friday nights, and I know too little about Shepherd. Can you wait until tomorrow or Sunday?
<cmmm>lechner: Yes, of course I can wait. This is also the first time that I'm using IRC, do you know of any good bouncers that are easy to setup with erc? I'll be checking the logs online for now.
<mekeor[m]>cmmm: personally, i use matrix. libera.chat has a bridge to the matrix-protocol. i then use an matrix-client, namely ement.el inside emacs.
<mekeor[m]>cmmm: btw, that idea sounds really interesting :) i guess, another approach would be to introduce a universal option for services (-- i.e. each service would have this option --) to run it inside its own namespace?
<mekeor[m]>or even better, if there was a function which takes (1) a namespace; (2) a service-declaration; and returns the same service, but running in the specified namespace.
<lechner>cmmm / in Guix we only have znc and pounce, i think. i have not set up either one yet, but would like to
<lechner>cmmm / how do you like ERC? I am on Circe
<zamfofex>nckx: In HTML, multiple spaces get collapsed into one (whereas non‐ASCII whitespace doesn’t), so maybe that’s where that practice came from.
<pat_n>Is it possible to pacakge a java program built with gradle?
<zamfofex>pat_n: I don’t think so. Last time I checked, Gradle is written using Scala, which in turn is difficult to bootstrap, and no‐one has gone through that effort yet.
<cmmm>lechner: I find ERC to be quite solid and I also like that it's built-in and thus you can use it right away on any PC. There is also a feature for it in RDE, but rn I'm just using it from termux on my phone...
<cmmm>lechner: I might look into adding a package for soju as well, but pounce seem ok to me.
<pat_n>zamfofex: looks like groovy, not scala. you're probably right about bootstrapping though. "Each version of Groovy is built and tested using a specific version of Gradle." So Gradle is written in groovy and groovy requires gradle to build. Sounds a bit circular
<mekeor[m]>hi guix. does anybody have a couch to offer in brussels on 2-5 february, for fosdem and guix days?
<mekeor[m]>i'm really excited to go there. it'll be my first time conference since a long time. my first fosdem. and my first time being apart from my baby for some days :D really excited to meet some of y'all irl :)
<ndaniel>nckx I actually took a look at it, but I don't think I quite understand the "pipeline"
<zamfofex>ndaniel: You may try to use ‘--with-source’ and pass the tarball URL to the latest version. But I’ve hear Anki specifically has become difficult to package (in general, also for other distros) because of a change in its build system approach.
<ndaniel>zamfofex Oh yeah, for sure - it gave me a stroke on my arch system 30 minutes ago as well :p
<ndaniel>Actually, I am still confused on what *exactly* Guix is. I can install it as a system, but also on top of an existing distro? And the packages are part of the distro itself?
<ndaniel>In the past, I only "used" Linux distros - contributing is quite new to me
<elevenkb>ndaniel: guix is a distro but also a package manager.
<elevenkb>the packages and the source code for the distro are in one source code tree.
<elevenkb>but you can choose whether to switch to the distro (named Guix System).
<zamfofex>The distro features the package manager, and also some other niceties for managing the system.
<zamfofex>You can use the packages from Guix in Guix System, *and also* in a foreign distribution when using Guix as a package manager.
<ndaniel>I see. Why are the packages and the source code in one source code tree though?
<zamfofex>ndaniel: I don’t think there is any reason to not do that. Sometimes packages may use specific features from Guix, and it’s nice to know whether those features are going to be available appropriately. The converse is also true, so packages become available to be used in inbuilt Guix features. There is no risk of “the packages are meant for a different commit revision” or “the feature expects a different package version”.
<ndaniel>Ah, I've been looking at manual all the time. Thanks for the pointer
<zamfofex>ndaniel: I think a simple way to explain is that ‘cons’ takes a head and a tail, whereas ‘cons*’ takes multiple heads and a tail at the end. (Though of course, ‘cons’ doesn’t need to be viewed as creating a list, but rather an arbitrary pair.)
<zamfofex>It’s just conventional to use ‘car’ as “head” and ‘cdr’ as “tail”, but there’s nothing requiring them to be viewed that way specifically. (And I’m pretty sure certain data structures such as alists don’t.)
<zamfofex>Another way to view it (if you’re familiar with Haskell) is that in Haskell, you have to make the tail a list (because of its static types), but in Scheme, you can set it to anything, even though it’s common to set it to a list anyway.
<cmmm>mekeor[m]: Hi, I'm back. So... I've slept on the idea and figured out that it's not necessary to create auxiliary profiles for each containerized shepherd service, in place of those profiles simple compositions to extend the system profile could be used.
<cmmm>So right now I really need help only with making veths, macvlans/ipvlans and vxlans.
<unmatched-paren>for instance, for an alist, which is like a Scheme version of newtype Alist T = [(String, T)]
<zamfofex>Though as I said, you can have something like ‘("hello" . '("world"))’ actually be an entry in an association list (“alist”) instead (even though you can use it as a list).
<cmmm>mekeor[m]: Though, not having a profile also means that you have to push paths to everything that you use from the store through env/args, which might actually be preferable. And even though the container will run in mntns, it will see and be able to read everything in the store, which seems unnecessary, and maybe even insecure. It would be cool to make the mapped /gnu/store dir unlistable
<cmmm>mekeor[m]: Going back to your proposition on being able to containerize any shepherd-service. This could be done, to some extent, with a function that takes shepherd-service and alters it's start gexp to use make-forkexec-constructor/container, passing it the extra ns args. But this isn't really enough for me, I want to be able to declaratively specify my whole infrastructure and then guix deploy it (think docker swarm or even just