<bone-baboon>I am getting this error "guix system: error: failed to load '/path/to/config.scm': No such file or directory" when I try to reconfigure a Guix system using a specific system configuration file. This is odd because ls shows the file and bash completion recognizes the file. I can reconfigure the system fine with another configuration file in the same directory.
<bone-baboon>I can also look at the contents of configuration file in question with less.
<civodul>bone-baboon: could it be that this config file includes another one?
<civodul>or uses 'local-file' to refer to another file?
<bone-baboon>civodul: It does not include another configuration file. Although this would be nice to learn about. What documentation should I look at to learn more about that?
<bone-baboon>civodul: I just searched the configuration file for "local-file" and there was no match.
<civodul>bone-baboon: weird; could you try "strace -o log guix system build /path/to/config.scm"?
<civodul>then you look at the 'log' file, and searching from the end, see which file has ENOENT before the error message
<zzappie>I just realized that services order in os record can take have effect on system. Eg when there is implisit dependency of one sevice on another and the are placed in reverse order config will work
<bone-baboon>Maybe the error message could be inproved by mentioning the file refered to in the configuration file that did not exist instead of the error saying the configuration file does not exist.
<bone-baboon>sneek: later tell civodul Thank you. Your questions and strace suggestion where enough to help me solve the error with reconfiguring. It was user error on my part. A typo in a file path that `with-input-from-file` was looking for.
<merazi>Hello, GUIX noob here. I hope you're all having a nice day/night. I have a question regarding package management, I've been using the Guix System just by calling the guix package command each time I want to install or remove software, and that works like a charm but, is there a way for me to remove some apps I'm not actually using? For example: I installed the GNOME desktop, which included Epiphany as a web browser (I installed icecat) and gedit as the text
<merazi>editor (I'm using Emacs for that), I tried doing 'guix remove gedit' with no luck, sudo was not any better... So I'm a bit stuck here, Any suggestions?
<rekado_>merazi: does “guix describe” tell you that you’re using a recent Guix?
<rekado_>merazi: regarding the removal of packages: the Gnome desktop service in Guix System includes packages by default. You cannot remove them when you use that service unmodified.
<rekado_>to not have them installed you need to override the “gnome” package in gnome-desktop-configuration, the argument to gnome-desktop-service-type.
<rekado_>the default “gnome” package includes the whole suite of Gnome packages, including epiphany.
<sakalli>hi just to check i've understood this right. when i do 'guix pull' the repo gets updated, but the packages and system updates when i run, in my case, 'guix package -m manifestfile'. or is there another more idiomatic workflow?
<Noclip>It seems to be always recommended to download the tor browser bundle from the tor project website instead of compiling it locally or installing it through a repository. Even Nix seems to do that: " `tor-browser-bundle-bin` package is the official version built by torproject.org patched with `patchelf` to work under nix and with bundled scripts adapted to the read-only nature of the `/nix/store`." What's the reason for this?
<brendyyn>Tor Browser has a design goal to remain indistinguishable from other copies of its self for anonymity. if we built it ourselves we could mess that up potentially
<brendyyn>but also Nix devs dont care as much about building everything from source as Guix devs do
<Noclip><brendyyn "Tor Browser has a design goal to"> Ok, that makes sense.
<Noclip><brendyyn "but also Nix devs dont care as m"> Why not split up the guix package repo into two parts?: "main" stays the way the repo currently is and "alpha" allows not-so-clean package definitions to be added. That way guix could provide it's users with optional packages that are not yet bootstrapable.
<merazi>rekado_ thank you for explaining, I just saw the messages
<brendyyn>Noclip: We can create a channel for such things.
<brendyyn>Noclip: I have been thinking of creating it, called "outerguix". It would be different from nonguix in that it would only contain free software, but just software that isn't packaged up to guix standards yet
<Noclip>brendyyn: Yep, that's pretty much what I thought about.
<Noclip>brendyyn: To get more than just 5 packages on such a channel it might help to officially support it and add it to the official guix bulid farm.
<brendyyn>How can a probe in guile the arguments value of tests? for a package. I looked in package-arguments but that just shows some quoted code from the package definition
***iyzsong- is now known as iyzsong
<Frosku>This qtwebengine build is using 22GB RAM on 1 core.
<brendyyn>is your package modified from the default?
<apteryx>Got some offload error from overdrive1 last night (Throw to key `match-error' with args `("match" "no matching pattern" #<eof>)'.). Possibly just my connection reseting around 3 A.M. I'm tuning the po files local.mk a bit and will relaunch shortly.
<civodul>apteryx: great; there have been a few new commits on version-1.3.0, notably the kmscon fix
<civodul>let us know if it's fine or if we should stop committing
<apteryx>alright, I'll pull the branch before relaunching the release target
<bone-baboon>I installed Guix on a computer using the 1.2.0 installer. I have since pulled and reconfigured many times. uname shows the kerenel version is still the version of the 1.2.0 installer. Do I need state the desired kernel verison in the system configurtion?
<tissevert>yeah that's exactly how I feel : creating one's own packages has never been simpler and they are «real» packages with the same status as any other installed package, that feels like the «right» way to do it
<Noclip>Is guix just a package manager or a distro generator ... (This is not a serious question.)
<tissevert>maybe a good package manager should just be a distro generator ?…
<bone-baboon>brendyyn: Good question I am not sure. I will try rebooting the computer.
<brendyyn>bone-baboon: uname -a will show you the linux that is booted. you wont see the new one until you reboot
<tissevert>c. 2010 I was playing a lot with squashed file systems, trying to get a script to generate a ro image to boot on, and never to modify it directly but instead regenerate a new clean image at every change
<andreas-e>bone-baboon: And "uptime" will show you for how long your computer has been running.
<tissevert>I was using an existing package manager to install the software into the target system before squashing, now guix feels like the best implementation I could dream of
<tissevert>it gives me pure system I don't need to mess with but on the other hand I don't need expensive resquashing of all my root fs image each time I add a small utility
<tissevert>yeah, I'd say a marvelous library for creating distros like you say brendyyn
<Noclip><tissevert "c. 2010 I was playing a lot with"> When I got into linux I thought about something like that but had no idea how to do it. Now where I know Guix, Nix and Btrfs that probably won't be needed anymore.
<civodul>tissevert: mothacehe gave a great talk at FOSDEM about using Guix to cross-build images for "embedded" systems
<tissevert>yeah, I'm grateful I gave up long enough ago because that would've made my work completely obsolete ^^ (I still have a big crush for squashfs and unionfs though)
<rekado>when I accidentally let Guix delete part of /gnu/store due to misconfiguration
<bone-baboon>Does that mean that whenever I build a new Linux-libre kernel that to start using it I need to reboot the computer?
<tissevert>I hear about it every now and then, and each time I try to learn about it and wonder if I could be using it this time for this new disc I got it's always «no it's too complicated for you / you don't need it / not the right usecase» : (
<rekado>but here it presents itself as just another NFS.
<Noclip>Btrfs and zfs can replace most lvm features.
<tissevert>oh, but maybe because it is actually served from a network server ?
<brendyyn>how do i actually build a package from the repl?
<tissevert>so is there like a «mkfs.zfs» ? I was looking for it last time I tried to give it a go and never found it and then a clowder of sys admins told me how it was mainly useful for virtualization clusters and it wasn't used like I generally use a file system (format / mount)
<Noclip>tissevert: Also snapshoting is just one of the features btrfs/zfs support. There is also automated checksumming of every stored data and metadata block to prevent silent data corruption, data deduplication on the block level, multi-device support (somewhat like lvm), raid0 raid1 raid5 raid6 raid10 and built in data compression.
<brendyyn>copy on write is nice but it seems you need to use a special tool for it. if i just copy a file in gui file manager it copies very slowly
<Noclip>I think ZFS doesn't make things always the way you would expect doing it on a linux system. Maybe that is because it's not really a linux filesystem in the first place. Btrfs is made specially for linux and does things as you would expect on linux.
<Noclip>Btrfs should be a bit slower than ext4 but you should hardly notice that without benchmarking.
<bone-baboon>I am trying to set up a substitute server. The substitute server is up after running guix publish. When I try to pull from the substitute server I get an authentication error. On the computer that is pulling I have run `guix archive --authorize < <substitute-server-public-key>`.
<brendyyn>seems to copy instantly now in pcmanfm. thats cool
<rekado>our build farm in Berlin is now powered by hydropower.
<Guest3>I'm new to Guix & Guile. How can I create an overridable operating-system declaration? e.g. I have a base config, then config A which adds a few packages, and config B which extends config A and adds some services and mount points
<roptat>I was inspired by the maintenance repo, so it's definitely a good source too :)
<Guest3>Thanks guys! That's exactly what I was looking for
<Guest3>Also, what is required for a proper Guix boot? Can I delete everything other than /gnu and /boot?
<leoprikler>Guest3: I don't think so. I'd leave at least /var untouched and without /home you're going to be quite unlucky (though your home can be reduced to just the skeleton)
<wonko7>so how do I go about storing configuration files for wireguard? where do I put them? I've got a handful of files created by a vpn provider to switch between vpn endpoints, they usually live in /etc/wireguard
<terpri>wonko7, i'd expect them to just go in /etc/wireguard as usual
<terpri>speaking of which, /etc is another directory you'd need for to keep, Guest3
<wonko7>terpri: oh, right, I might have been overthinking things
<Guest3>leoprikler: I'm trying to make my system completely immutable(other than modifications by guix system reconfigure). I guess the way to go here is filesystem snapshots which restore every boot?
<Guest3>terpri: the etc-service-type doesn't run at boot?
<leoprikler>Guest3 look towards guix-home and guix-home-manager and stuff like that
<leoprikler>I might make it May 2nd, since May 1st is Labour Day.
<morgansmith>My patch is to make the emacs-org package reproducible. But I'm actually not entirely certain how to check reproducibility... guix --rounds doesn't do anything if the output is already built. then guix --check --rounds seems to verify against the installed output but I don't want that...
<leoprikler>Hmm, if you're willing to rebase your patch onto 47661-v2, you could send it out now, let it be blocked by 47661 and potentially get some review done early, so that we can merge it quickly then.
<morgansmith>It's a small patch. And it doesn't even really affect the user at all. I'm not super worried about getting it in soon.
<morgansmith>In fact I'm worried it's not needed at all. How the heck can I confirm that emacs-org isn't building reproducibly?
<morgansmith>oh I did it! I got rid of the substitutes using 'guix gc -D /gnu/blah...' then I did 'guix build --no-substitutes --rounds=5 emacs-org'. Now I know that it isn't reproducible!
<morgansmith>is this written out nicely in the manual and/or cookbook? I feel like it's important...
<leoprikler>yep, now just send the output of diffoscope (or at least some subset) to bug-guix
<leoprikler>It is somewhat documented as part of 16.6 Submitting Patches
<morgansmith>oh. I just kinda skipped the analysis step and figured it was likely the autoloads. So I made a patch that throws away the org loaddef stuff and replaced it with out autoload stuff. Now it seems to be reproducible. I was right this time but doing a proper analysis might've been the right thing to do
<morgansmith>nah, the 16.6 documentation isn't good enough for this. It's what I was referencing trying to get this done. We need to mention --no-substitutes and I really think --rounds should have an implied --no-substitutes
<leoprikler>I'm not too sure about that, --no-substitutes is harder than you think
<leoprikler>but I agree, that --rounds should disable substitutes particularly for the packages that were demanded
<leoprikler>(at least rounds after 1, getting 1 substitute is fine)
<morgansmith>rounds currently only downloads it once. meaning with substitutes on it's basically a no-op
<morgansmith>ok, not a no-op but like --rounds doesn't modify anything at all
<morgansmith>It's an argument that has no effect on the output of the command
<morgansmith>oh and if you have the output already built then --rounds also doesn't do anything. So currently the only way to use --rounds as intended is to not have the output built and to have substitutes disabled. I think I take back what I said about the documention. I think the fault lies with how difficult it is to use the --rounds argument
<leoprikler>nah, it stopped at "basically a no-op" for me and I'm currently writing mail on the other end
<morgansmith>I just said this: if you have the output already built then --rounds also doesn't do anything. So currently the only way to use --rounds as intended is to not have the output built and to have substitutes disabled. I think I take back what I said about the documention. I think the fault lies with how difficult it is to use the --rounds argument
<leoprikler>Yep, the weirdness of --rounds is a known issue.
<leoprikler>I think the way people handle it is "guix environment <package> && guix build <package> --no-substitutes --rounds"
<morgansmith>so I'm very confused with the emacs build system. So we run the install phase before the build phase. Meaning the .el files get bytecompiled in the store. However, when a file being compiled queries `load-file-name' it returns a path in /tmp. But it can't find the other files it needs to find from that path so I'm pretty sure that files aren't actually in /tmp
<leoprikler>hmm, could you paste that with a dummy package, that prints load-file-name at compilation time?
<ilmu>how do I set environment variable in the system config?
<morgansmith>oh wait. I'm wrong. All the things do make it into /tmp and apparently that's where we are loading the files from. but the autoloads file doesn't make it into /tmp even though it is built. But when do we put things in /tmp? I'm very confused
<bone-baboon>I am trying to build an i686 package on a x86_64 computer. `guix build --no-substitutes --system=i686-linux go-gopkg-in-yaml-v2` starts building Python-3.8.2 which is not listed as a dependency in the output of `guix search go-gopkg-in-yaml-v2`. Am I doing something wrong?
<roptat>bone-baboon, it could be a dependency of a dependency
<roptat>actually, with --no-substitutes, it's probably one of the core packages, before the final toolchain even
<roptat>--system will build using the given architecture, so it's the same set of derivations as if you were building on i686 directly (it's native i686 compilation because your CPU supports it)
<roptat>so if you've never used --no-substitutes for i686 binaries before, it's expected that you don't get a substitute and start building stuff deep in the dependency graph
<civodul>sneek: later tell samplet yay for Disarchive support! \o/
<zzappie>civodul: haha, im basically trying to reuse (gnu services ...) code. This fails due to the fact that package patches are not copied to the build side. Maxime (don't know the nick here) suggested me to just include guix in with-extensions and use inferior to ensure that I have same guix package as one that im using
<zzappie>but I get incopatible bytecode errors anyways
<zzappie>I also thought of maybe I need to note which guile is used in guix inferior package and pass this inferior guile to #:guile-for-build...
<zzappie>but at this poing it goes beyond level my understanding of guix innerworkings and I feel like im just doing weird stuff
<drakonis>but then i believe i could use a function to generate the hashes maybe?
<cybersyn>i come across a lot of interesting ideas from nixos. does anyone here use it in addition to (not on top of) guix? i have a laptop could run it on, but its obviously simpler to organize as many devices as possible with only guix.
<ryanprior>drakonis: I do not understand which hashes you would want to generate or update *shrug*
<ryanprior>The less I have to think about hashes (as an end-user) the better imho
<ryanprior>drakonis: what prevents you from doing this now (and does it have something to do with hashes)
<apteryx>roptat: weird, once in a blue moon I get some error about a node not found in the italian translation. Clearing the tree and trying again works fine. Do you sometimes have this kind of very rare failure?
<zzappie>yes it has to return operating-system record
<ryanprior>Okay well eventually I will try that, has somebody else already done this and pushed it to dockerhub?
<zzappie>there is actually even a template for that guix/gnu/system/examples/docker-image.tmpl
<ryanprior>okay damn writing all this down, I thought it was more complicated for some reason
<ryanprior>we should put out a canonical minimal Guix image on dockerhub though
<zzappie>yes there are some guix continers on dockerhub. But hey its guix make your own ;)
<ryanprior>less friction if people don't have to do this themselves
<leoprikler>I think the problematic part about that is the bootstrapping process.
<leoprikler>There are some alpine/guix recipes out there, so if you have that + config.scm, you can bootstrap your first real guix in docker in CI hopefully
<bone-baboon>What part of the output of `glxheads` would tell me if a GPU has 3D capabilites? 3D capabilities is part of the h-node reporting for a video card. Looking at video cards listed on h-node it looks like those that have 3d capabilities show the output of `glxheads`.
<zzappie>civodul: Taking guile from guix inferior and building gexp refering to guix inferior package works!