<MtotheM>Does guix clean up after itself? or is that still something I'd have to do myself? Let's say I install a program that puts config files on the system. but later on decide I don't want it anymore. would those files still longer? or can you have guix clean up after itself fully?
<killmeplease>MtotheM: for package managers in general that's a VERY difficult issue
<killmeplease>The rule usually is "yes if it's in a certain directory [not sure how that maps to guix] has a certain hash and/or modification time"
<nckx>MtotheM: Guix cleans up after itself, but not after the software you install with it. That's not currently in scope.
<killmeplease>So if I don't touch /etc/whatever it'll delete it when the program goes [as that's safe, provided nothing else is installed that may also read it but not fully depend on the project [yep that happens]]
<killmeplease>If I /do/ touch /etc/whatever whether or not you want it "purged" is a different question
<nckx>One approach taken by guix-home-manager (not an official Guix™ feature) is to lock down your entire home directory as read-only, thus ‘solving’ the problem of programmes writing random config files. A bit draconian but very Guixy in its own way.
<killmeplease>Yeah the state-as-version-control thing is powerful, but does not support the idea of deletions very well!
<nckx>That particular sausage factory is still pretty nasty though.
<killmeplease>I don't understand that reference? Is that using sausage factory as some sort of pinnacle of automation or as a low target?
<nckx> /var/hardcodedfoo is part of foo until it isn't and somebody else writes to it. Oh well. Hope it wasn't important. Also hope your packager didn't miss any hard-coded directories. In general, hope many things.
<nckx>killmeplease: As something of which you don't want to know the inner workings.
<killmeplease>...yep. And like version control the idea of deletions is difficult, systems sidestep this by just tracking the file [at best] or removing it from that state and leaving it in derived, guix can't track the effect that had on others :) We get it
<nckx>There is but it's read-only. You can look at it.
<nckx>nly: One doesn't. (url (list …)) only specifies different mirror URIs for the same file. If a package source consists of multiple origins, one can either choose one as ‘primary’ (source …) and add the rest as inputs (inputs can be origins, not just packages), or use a computed-origin-method as done for icecat, linux-libre, and others. The latter's cleaner (guix build --source does the right thing) but more complex.
<nckx>For a more specific answer, give more specifics. 🙂
*apteryx is going through the logs, looking for something suspicious that might have broken 'make check-system TESTS=btrfs-root-os'
<apteryx>MtotheM: this suggests that you are missing environemnt variables in your SSH shell. Look for GUIX_LOCPATH
<apteryx>it should be set to /run/current-system/locale
*apteryx lets 'git bisect run make check-system TESTS=btrfs-root-os' do its magic overnight
<efraim>killmeplease: regarding the sausage factory, I assume it's a cross between sausages generally getting whatever's leftover at the meat packing plant and the description of a meat packing plant from The Jungle by Upton Sinclair
<navik>My `guix system init <config> /mnt` fails on building the keymap; what is the default keymap, which I could try to just get the system floating?
<bricewge>Is there a way to nicely compose configurations, in particular services?
<bricewge>To configure my laptop I have a t430.scm file which should just contain specific hardware config and should inherit from workstation.scm that contains graphicals settings itself expanding on base.scm.
<bricewge>In Nix this kind of setup was painless but in Guix it doesn't look straightforward. Am I missing something to achieve such a setup?
<drainful>Yeah I feel the same pain. I don't know if there's an elegant solution. I've been drafting some macros to merge records like nix sets, but the introspection facilities on records is poor. For now I just have this function to create a composable "os part" that includes a list of packages and services https://pastebin.com/DhLqBgfJ
<drainful>The list of packages/services from your merged os-part can be slotted in to your operating-system like this(operating-system (packages (assoc-ref os-part #:packages)) (services (assoc-ref os-part #:services)))
<RRedcroft>guix is hashed (/run/current-system/profile/bin/guix)
<RRedcroft>ls -l ~/.config/guix/current points to '/var/guix/profiles/per-user/root/current-guix'
<infertux>so I'm packaging my first application for Guix and it's a Golang app - do I need to add all the dependencies in Go.mod as inputs as well as their sub-dependencies? Is there a way to speed up the process because there are probably 100+ dependencies?
<infertux>and none of them are already packaged in gnu/packages/golang.scm
<anadon>The purist way would that guix handles all dependencies. This is to ensure at everything at every step it bit reproducible. When using golang's module and dependency utilities, they don't have the same strong guarantees and so may pollute what you are packaging as not bit reproducible, thus negating one of guix's bigger values.
<anadon>Can you provide the exact dependency list?
<anadon>This sounds like it would end up like a kind of mixed support option.
<infertux>anadon: thanks, this makes sense. However having to package hundreds of Go libraries in order to package a new Go app is gonna take several days of work unless there is a way to pregenerate templates/definitions for all libraries?
<anadon>Global variables are frowned upon. They can't exactly just be gotten rid of. I suspect something similar here.
<infertux>anadon: ok thanks for your help, maybe I should start by packaging a simplier app using gnu-build-system and I'll keep Go apps on Debian for the time being
<RRedcroft>is there a binary build of qt webengine? trying to install qutebrowser isnt possible as my machine doesnt have enough ram to build it
<anadon>infertux: I don't think you quite got guix right. Guix is a tool to manage packages. Packaging and building are separate things. The GNU build system is different and is not a thing for golang. Debian's analog is `apy` which faces you with the exact same tradeoff of tracking in its tool or using golang's.
<anadon>Debian doesn't really change your situation.
<RRedcroft>anadon: lol, i specifically choose it to be cheap, and i don't work on it, desktop rig is a fair bit better
<allana>Hi #guix! Anyone here a docker-service-type user who has experienced the docker service not starting? I reconfigure regularly and it seems that the docker service has not been working for weeks and maybe over a month for me.
<sneek>allana, dftxbs3e says: rpm is also needed to *build* .rpm files, so if you want to distribute a package for an rpm-based distro, that can be useful. Maybe you can even use GNU Guix to build and then get it to output a .rpm file directly.
<anadon>I don't have any meaningful suggestions to make a n4200 faster here.
<NieDzejkob>allana: does it work if you start it manually with (guessing) sudo herd start docker ?
<anadon>This sounds like it should have triggered a test failure somewhere.
<allana>And the failure to start of the docker service has been present on a hosted VM of mine, and confirmed on a new machine where I have just recently installed guixSD.
<efraim>for anyone who was curious about using guix-environment from a guile repl, it looks like it's similar to guix-build, so (guix-environment "guix" "--" "make") in place of 'guix environment guix -- make'
<NieDzejkob>RRedcroft: that should be fine, what does it say before that?
<RRedcroft>https://ci.guix.gnu.org - 85.1% substitutes avilable (8,689 out of 10,205) 28,183.3 MiB of nars (compressed), 77,250.0 MiB on disk (uncompressed), 0.001 seconds per request (12.6 seconds in total), 810.1 requests per second
<allana>Hi, I am trying to create a custom service type, and I am quite the scheme newbie. For me the guix manual is not very clear in this area. What I am hoping to do is find out how to create a service from a g-expression that just runs an executable with baked-in arguments. Does anyone know of an example where this is done? Is this a correct approach?
<NieDzejkob>RRedcroft: try running a new login shell - log out and log in, or restart your terminal if you're in a graphical session
<anadon>Is guix's git master considered stable? I'm getting a few test failures when building. In paricular, the challenge.scm, channels.scm, containers.scm, debug-link.scm, derivations.scm, gexp.scm, grafts.scm, graph.scm, packages.scm tests are failing.
<NieDzejkob>anadon: master is considered stable. Some tests are known to fail, this is tracked by bugs like #34229 and CI.
<dftxbs3e>I have an issue where GDM doesnt start for some reason, it either tries to start and fails, or tries to start and fails then repeat many many times until it stops at around 600th try. It seems to be Xorg that doesnt work. I have a standard configuration with xfce, gnome and i3. Nothing too special.
<jackhill>nckx: it happens right after running `guix system reconfigure /path/to/config.scm`
<nckx>jackhill: I applied your patch, added your service-type snippet to my configuration and reconfigured without error. Even sudo /var/lib/certbot/renew-certificates runs (and luckily for all of us, fails to finish).
<nckx>Try reconfiguring with the pasted changes above. 🤷
<nckx>My bet is still on API mismatches and doing a full clean-&-make.
<jackhill>nckx: yes, it happens with system build as well. Trying your patch currently…
*nckx only now reads ‘fist time with the computer today’…
<nckx>I understand you're frustrated but that's a bit much.
<jackhill>oh, er, text-based communication is hard, I'm not actually that frustrated or annoyed by the mispaste or my real problem, but it is a commen statement in my hosehold. Using a computer while others are watching is difficult :)
<apteryx>how is TERM set in Guix System? Is agetty responsible for this?
<madage>janneke: I saw that you submitted #39738 regarding your build failure on i686. My build attempts are failing on other test (checkasm_audiodsp), do you think I should reply to your report or create a new one?
<nckx>Of course by the time you get to X it's usually your terminal emulator.
<madage>I'm inclined to reply on the same thread since the issue title applies "ffmpeg does not build on i686"
<rekado_>nckx: I’m squeezing in a little maintanence every now and then. With the mumi service at least we have a working issues.* right now. (And I no longer need to restart my custom mumi process every morning…)
<rekado_>so… it’s still bad, but it’s slightly less bad now.
<rekado_>the downtime will probably start around 11am UTC+1
<rekado_>we will then move servers and apply a bunch of upgrades. This may take a while.
<rekado_>it may take a lot longer if things break, of course.
<apteryx>nckx: mine is set to xterm, by xterm, I presume. Should I use something more modern?
<nckx>apteryx: I'm no expert. I have my .bashrc change xterm-termite to xterm-256color because the former upset some delicate programmes (I long forgot which). That sounds marginally more modern. It has 256 colours! Does it matter? Probably not.
<NieDzejkob>"a bunch of upgrades"? wouldn't that be just a reboot with guix?
<nckx>rekado_: I don't think a CDN would buy us meaningful redundancy.
<nckx>The caching's per-region and it's just that, caching. Not worth the work.
<nckx>bayfront uses a different key, right? Pity, or we could just drop it in for a day.
<vagrantc>if we had switched the CDN on a week ago...
<rekado_>big servers have lots of little chips with non-trivial software
<rekado_>yes, bayfront has recently switched to its own key
<rekado_>can we redirect the DNS record to a maintenance page?
<nckx>The simplest option I see is: get a server/VPS with a few 100G free, set up an nginx caching proxy with very long TTL and berlin as back-end, run a Guix weather against it, then fetch all the berlin-signed nars from the gathered narinfos through it.
<rekado_>I don’t have a server with that much free space.
<nckx>rekado_: nginx evicts LRU. You can set max_size=<sane>g, restart/kick nginx and it should start cleaning up the old cruft. 3T is many Guixes, even factoring in many arches. 1T should suffice. 2T to be safe. How much space do you have?
<ArneBab>that also does not provide them, as far as I could tell.
<ArneBab>… need to continue tomorrow, sleep calls … sorry
<nckx>gcc-toolchain doesn't provide them, but it should give you a working C++ compiler. Any reason you can't build with Guix? Installing gcc was deliberately broken because it didn't do what people expected.