<nckx>OK, so creating a cpio archive at evaluation time is trivial thanks to (guix cpio). Not really worth writing a helper for that 😛 It's about ~5 lines in your system.scm, the only vaguely tricky part is stripping leading directories from the key file name.
<nckx>opalvaults2: I had never heard of Star Labs! Thank you.
<Aurora_v_kosmose>nckx: Squid's the only other one I've really tried (since it's one of the few FOSS ones), so I can only speak for that one. It's pretty easy for plain HTTP, but http->https reverse proxying requires you to get creative with things its documentation doesn't quite come out and say you can do.
<Aurora_v_kosmose>It was originally made specifically to support the package repositories for Debian-style Apt packages. It also understands their structure so it can do some smarter cache management when things disappear from indexes & so on.
<nckx>Something like that for Guix would be nice to avoid the cached-narinfo-with-missing-upstream-nar problem, which I currently work around by caching narinfos for a relatively short time.
<sozuba>I've spent the past few days reading a lot about Guix and, i not only love it, but for some reason feel proud (may be because i've shunned windows for a while now?). I wanted to move back to source based linux and was looking at different options and in a way guix seems awesome. I love gentoo's use flags and profile settings where i choose to
<sozuba>biuld my systems with only specific functionalities of packages, for example -X.
<nckx>There are package transformation options which are vaguely related, but not parameters like ‘no X please’.
<nckx>You can customise packages, for example by inheriting from Guix's version and modifying #:configure-flags and inputs &c. There just aren't switches where the package authors do all that work for you.
<nckx>And it's a lot of work, so honestly, I think it makes sense.
<nckx>We shouldn't compete with Gentoo on what Gentoo already does best 😉
<sozuba>nckx, i very much understand. My point was not about competing with gentoo or any OS. It was purely based on requirements.
<sam_>no, although I've been wondering about playing with it. Someone posted some interesting bits to lobste.rs and I've been quite tempted. I think the main thing I'm curious about is how to discover 'toggleables' for packages (basically like what you were describing)
<sozuba>zamfofex, yes I agree. But my use case is not much complex. I am not a big developer or programmer, while i do things mostly now and then. The requirements are due to me being paranoid? or extreme case of OCD, being a control freak (i mean in software terms ;))
<sozuba>sam_ cool I will check losste.rc. Yeah that would be a great boon. :)
<sozuba>I do like Guix shell (Guix environment), it's so cool.
<KE0VVT>Is Libreboot just slow, or will my system not boot? :(
<nckx>I'm sorry to say that on average it's faster than proprietary firmware.
<nckx>Plenty of people boot Guix System with it though.
<sozuba>I wish Libreboot would work on my chipset :(
*nckx had to settle for Coreboot which is still very nice.
<KE0VVT>nckx: My system crashed after a memory overflow, and I edited my /etc/config.scm without getting the chance to to do "guix system reconfigure". System will not boot.
<KE0VVT>nckx: Libreboot's payloads are jank. Normal computers have so much many more features in the firmware, and don't have issues booting things.
<nckx>Maybe it's a script that does some autoconfiguration magic in GRUB's shell-like scripting language, which is… not fast. But I'm just guessing here. But no, SeaBIOS boots Guix System just fine (/me waves from one), I think you're on the wrong debugging track.
<KE0VVT>SeaBIOS was booting my system just fine before. Now it won't.
<KE0VVT>That image alone. The GRUB menu is now gone. It just stays there. It's been there for what seems like ten or more minutes.
<nckx>So Linux boots, but then something goes wrong and there's no Linux display driver to print what it was.
<nckx>Try running ‘terminal_output console’ from the GRUB command line before selecting the menu entry to boot. If that alone doesn't help, try also adding ‘nomodeset’ to the kernel command line first.
<nckx>Not that reinstalling isn't allowed. It's up to you.
<nckx>raghavgururajan: The issue isn't ‘booting with Libreboot’, though, that works fine here (through SeaBIOS). There's a bug/regression with how (or if?) Linux detects coreboot's framebuffer, which needs its own driver to work before i915 takes over.
<nckx>5.15 reorganised and renamed all the relevant options :-/
<nckx>(Granted: partly to stop labelling them as ‘Google firmware drivers’, so that's good.)
<nckx>But it makes it hard to (1) port my old patch above and (2) find out if and where a regression slipped in.
<jonsger>nckx: so boot on a coreboot amd64 or a non-coreboot amd64?
<PurpleSym>Is anyone able to successfully install Guix on real hardware™ with cryptsetup? I tried the installer and manual mode, but I end up in a grub rescue shell, which has zero commands available.
<jonsger>PurpleSym: try to boot from an USB stick with a guix image and when the USB-Sticks GRUB starts type 'e'
<PurpleSym>Thanks, jonsger. Gotta figure out how to circumvent fast boot first to get into the BIOS.
<zamfofex>Quick question: Would it be reasonable for channels to be able to be specified from tarballs? (Either from URLs or locally.) Then ‘guix pull’ would simply read from the tarball instead of using Git. Locally, they could even be specified as a directory.
<PurpleSym>`cryptomount` just does nothing in the Grub shell.
<bricewge>Why is there a `postgresql-13` and a `postgresql-13.3` defined?
<bricewge>I'm updating the PostgreSQL packages, and was wondering if they were still needed
<jpoiret>maybe your ISP's IPv6 routing is poor cbaines
<ss2>interesting, but on my server, the connection is not completing.
<cbaines>jpoiret, would have to be my ISP, plus the internet connections of the several international data centres I've tested from
<cbaines>if it's fast for ss2 though, it's possible I guess that performance is degraded for some large fraction of the internet though
<jpoiret>well, looks like ipv6 doesn't even work for me so eh (my own connection that is)
<ss2>My server is timing out with ipv6. It could be routing problems.
<cbaines>In an hour when the download finishes (if it finishes), I'll file a bug...
<lispmacs>Hi, I've been struggling lately trying to replace my failing Nvidia graphics card, because every other graphics card I try (mainly old Radeon cards) causes my graphics system to freeze up during the boot process
<lispmacs>I was wondering if there was some kind of kernel boot parameters or other configuration tricks I need to try
<jpoiret>you could try nomodeset to disable kernel modesetting
<lispmacs>hi, someone was helping me a few minutes ago with trying to run a radeon graphics card. I tried nomodeset. This does prevent the computer from freezing up, but now instead of booting into gdm, I just get a black screen. I'm currently using a virtual terminal
<lispmacs>there is an error in dmesg log: "[drm:radeon_module_init [radeon]] *ERROR* No UMS support in radeon module!"
<nckx>KE0VVT: High-level answer because I don't have one, but I'd say performance & architecture support. Although the ARM substitute situation has improved greatly since I last heard someone talk about the Beaglebone Black, armhf is not as well supported as aarch64. You might be better of cross-compiling from a powerful system <https://othacehe.org/the-guix-system-image-api.html> just so you don't have to wait days before try-debug-fix-retry iterations.
<KE0VVT>nckx: Was thinking of attaching a BBB to a compact keyboard and non-backlit character screen, to run Emacs with few distractions.
<csantosb>I'm thinking about best (if any) strategy to run gitlab ci tests inside a guix container, provided I include a couple of manifest.scm and channels.scm along with the project.
<csantosb>They're both expected to evolve along with code in commits.
<csantosb>Ideally, I'd like to spawn a container with 'guix shell --container' at every commit. No idea how.
<csantosb>Option 1. Docker image with any os and guix installed. Upon every commit, ci opens the image, and runs guix shell ... Not very, efficient, I'd say (lots of downloads). Not clear to me how to handle daemons and the like within the container.
<csantosb>Option2. Produce a docker image out of guix pack -f docker, and use it instead. Here, problem is I'd have to do it manually ... fas from ideal.
<Festerdam>My installation seems to be going excruciatingly slow (the guix pull step), despite my internet not even being that bad. It eventually fails with an early EOF (guix substitute error: TLS error in procedure read_from_session_record_port: Error decoding the received TLS packet. guide system: error: corrupt input while restoring archive from #<closed: file 7ff5514e42a0>). The installation can't recover after that (guix system: error: executing SQLite query:
<Festerdam>database disk image is malformed Command failed with exit code 1). Why does that happen how to fix that? I have the impression that some packages download extremely fast while other extremely slow.
<dhruvin>csantosb: note that you can cut down build times significantly if you have build-caches, which sourcehut currently does not have.
<nckx>ArneBab: IIUC there's an implicit icedtea input through the ant-build-system, but I don't see openjdk. The naming of this stuff always confuses me though. I don't see how propagated-inputs are involved.
<GNUtoo>KE0VVT: the word is badly chosen, but I meant that someone could try to crash and right after try ctrl+c to not have the exit run
<nckx>‘Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
<nckx>At least one of these environment variable is needed to run this program’
<nckx>Maybe it's insufficient wrapping, but if java-tomcat were bringing its own JRE to the party I'd expect that to be set for me.
<nckx>I get that error for each tomcat .sh script I try.
<GNUtoo>ah apparently the definition works for the case I described: "A race condition or race hazard is the condition of an electronic, software, or other system where the systems's substantive behavior is dependent on the sequence or timings of other uncontrollale events" ([[Race condition]]), I was unsure if it could apply to the full system or just within a program
<Festerdam>It seems like initially the guix downloads packages at normal network speeds but then starts slowing down. Is there some kind of mirror I can use? Also, why do python versions take so long to download, despite being only around 10 megabytes?
<nckx><what runs is not actually a function of the inputs> Correct. Imagine if bash had to include every single command you can run from it.
<nckx>ArneBab: If you think every Java package should be wrapped with its build-time (implicit) icedtea, you can open an issue. I think it's a big price to pay for limited (if cool) static analysis but I don't have a dog in this fight ☺
<ArneBab>nckx: I realized that this is missing when I saw how tiny the dependencies of tomcat are :-)
<nckx>(Again… what even are dependencies. I assume you mean references here.)
<nckx>The stuff that ‘guix size’ prints (transitive) or ‘guix gc --references’ (not).
<AwesomeAdam54321>nckx: All Java packages need the JRE to run(unless they're compiled) but since the JDK is for development, that should be discussed
<nckx><what runs is not actually a function of the inputs> By the way, depends on what you mean by ‘what runs’: the .jar and everything else under /gnu/store/java-tomcat is functional and probably bit-reproducible. ‘The programme’ in that sense is a fixed value. How it ‘runs’, interacts with its environment, is not, but that's never the case on Unix. The question is just whether to make the JRE/JDK part of the fixed output, or the environment (as it is now).
<nckx>That's why I think my bash argument was accurate, if rather ridiculous.
<singpolyma>Well you would want a script that runs the jar with the right JRE. Just as we do for python and ruby shebangs, etc
<nckx>AwesomeAdam54321: Right. I wasn't disputing that.
<nckx>singpolyma: It's not similar to shebangs because the jar doesn't embed a reference to the JRE (as if it were an ld.so). It's just a wrapper, with all the disadvantages those have. But it could be made to mostly work with effort.
<ArneBab>singpolyma: yes, that’s what I mean. It might be a viable idea to create run-scripts that depend on the java package and a given JDK. That would keep the dependencies simpler but still allow functional definition of what runs.
<singpolyma>nckx: the missing reference is the problem, yes, so would need to make a script or the program can't be run
<ArneBab>I don’t understand, though, how a jar can be built without the JDK available. Or even be built reliably (if you build something against openjdk@17 it might not actually run with openjdk@9 (I already had a few cases of that — the internal libraries changed, and they are referenced in the built jar)
<nckx>It is built with a JDK, that's what I meant earlier by implicit icedtea input to the ant-build-system. Like how the gnu-build-system implicitly includes GCC et al.
<ArneBab>that implicit input should be in the deps, I think
<singpolyma>ArneBab: "deps" are classified in guix, they're not a blob
<reza[m]>nckx: is this documented somewhere, I ask because I didn't found anything in the manual?
<nckx>Well, coming from my (mostly) C(++) background, ‘compiler’ and ‘run-time’ aren't really that clear as might be the case in Java. So I was clueless.
<nckx>reza[m]: Well, it's not really a Guix question. I don't think so.
<nckx>There is no such thing as a system-wide ‘GPG agent’, it's just an option you can toggle in GNUPG that will make it launch some behind-the-scenes process when you invoke it.
<nckx>Maybe this could go in the cookbook? I never really know what's suitable.
<ArneBab>nckx: for java it actually isn’t completely clear. For example I have to build Freenet with icedtea@8 because if I build with something newer, it will not run on Java 8 — though that’s not really advertised widely.
<nckx>Probably not, since I'm sure it's documented in the gnupg manual.
<ArneBab>But if people run that build with Java 15, they get the benefits of the better gc
<nckx>The icedtea/openjdk/version numbering mess confuses me further.
<Festerdam>What's the difference between a mirror and a substitute server?
<nckx>Well, a substitute server could be both (just a server serving substitutes after all). Bordeaux and berlin are both build farms: they each have multilpe relatively powerful machines that do nothing but build packages independently. A mirror would simply be a copy/cache of packages built elsewhere, for e.g. faster downloads in another part of the world. The Guix project doesn't run one.
<nckx>It's possible for berlin to have a substitute that bordeaux still needs to build, and vice versa.
<nckx>Berlin is generally faster but is having scaling issues.
***jonsger1 is now known as jonsger
<nckx>It also has weird network speed issues which you might be hitting, which nobody's been able to figure out.
<cbaines>I'm close to deploying mirrors for bordeaux.guix.gnu.org, I've been working on it to avoid the space constraints of bayfront, but the approach I'm taking is pretty much mirroring
<Festerdam>So the difference is that one builds them themselves and offers the binaries to be downloaded and the other just offers the binaries? Sounds like mirrors to me except for the building part. Ok, will try Bordeaux.
<nckx>Yes, they are basically mirrors, except for the fact that they aren't.
<unmatched-paren>actually, is there some way to modify the .desktop files in guix by hand? or are they immutable? neovim has a desktop entry which annoys me a little since it's a terminal program and i never launch it from the app menu
<unmatched-paren>i guess modification of the .desktops would also be useful to change the gnome web icon to the new one in later versions of gnome, which hopefully would not be garbled
<unmatched-paren>ok, one last thing (sorry, it's been a while since i've been in #guix, so i have a couple of questions)
<unmatched-paren>is it possible to use guix for build orchestration on local projects? like, you define a package in some file in your project's directory and make it build/install the package from the local source when you run guix package/build -f on it
<unmatched-paren>basically, you declare a package that builds from a local directory instead of a remote git repo or tarball
<unmatched-paren>i think that'd be a really cool functionality, you package your application as you develop it
<civodul>efraim: with the introduction of librsvg-bootstrap, i was wondering whether some apps would find themselves depending on both "librsvg" and "librsvg-bootstrap", but that's apparently not the case
<civodul>at least this shows only one: guix graph -t references emacs |grep 'label = "librsvg'
<Festerdam>jpoiret: guix system unit /mnt/etc/confic.scm /mnt/ --subatitute-urls="https:example.com" from the guix system installed. I'm running it after the installer failed to download some packages. Before, the error would appear, but if tried it again it would suddenly start from the beginning. I'm now trying to do it from the command line because I'm trying to see if the packages fail to install due to the o
<Festerdam>*some problem of the official substitute server
<jpoiret>have you tried to reboot the installer image?
<jpoiret>also, if you do it from the command line, you should remember to run `herd start cow-store /mnt` after mounting the filesystems
<Festerdam>jpoiret: Restarting will probably fix it, but I don't want to lose the settings. I only switched to the command-line on the last step of the graphical install.
<jpoiret>i mean, it is definitely weird, and if it happens again it might just be an installer bug (or faulty usb)
<nckx>Speaking of borked DBs, I still get: guix gc: error: executing SQLite statement: FOREIGN KEY constraint failed
<Festerdam>jpoiret: The database error did occur before after the installation failed. I restarted and tried again, after it failed again I got that error again after restarting the installer, so I restarted and now the installer is running and I have yet to see if the error happens again with the substitute server.
<nckx>Is there a way to make Guix give more information than ‘oops’?
<Festerdam>My installation media ran out of storage during the installation, despite it being 16 a 16G drive. Isn't the data cleared in restart?
<fluffyballoon>Is there a good article anywhere comparing and contrasting Guix and Propellor?
<Festerdam>The partition on the drive that is full however is only 1.9G big.
<nckx>The database dump does not contain any mention of ‘constraint’ :-/
<Festerdam>But why is the drive full? It shouldn't be. I restarted the device and then did the exact same procedure as I did countless times before but with the new substitute server and now the installation medium if full?
<scolobb>images and then configure the hosts. The contents of the disk image depend on some other providers. Guix is a package manager, which allows defining package building and installation recipes. Guix also allows defining the configuration of the entire system. However, Guix itself is not specifically a deployment tool, as far as I understand
<scolobb>A tool which reminds me of Propellor in the Nix ecosystem is krops https://tech.ingolf-wagner.de/nixos/krops/ : it's a deployment tool specialized in deploying Nix hosts. I suppose Guix has something similar, but I'm not knowledgeable enough yet.
<scolobb>Main take-away: Guix is a package manager, which can also manage your system configuration, but doesn't directly handle deployement. Propellor is a deployment tool, which manages the system configuration, but not manage packages
<fluffyballoon>scolobb: Thank you, that's an interesteing summary. I'm not sure I understand /how/ Guix's ability to configure the system differs from the others, but maybe that's nonessential.
<nckx>The installation medium stores all data in RAM. It does not care about the size of the partition on the medium and I'd advise against messing with it. There are some bootable-CD hacks in place that could break.
<nckx>When you start the graphical installation, it mounts the target partition and starts the cow-store service.
<vdv>yeah maybe he wants to install some program with nix-env before starting the cow-store?
<nckx>This service acts as a union file system that transparently stores all new writes to /gnu/store (which is ostensibly a tmpfs in RAM like all of /) on the target partition instead.
<vagrantc>using guix deploy to install guix, or using it to install debian? :)
<robin>i guess i'll try bootstrapping mlton with polyml, although i suspect polyml itself isn't properly bootstrapped (maybe an SML version of camlboot is needed, as the only other bootstrappable sml implementation i could find is in typescript...)
*GNUtoo would like one day to be able to install other FSDG compliant distributions through Guix
<fluffyballoon>Probably to install Guix, because using an overlay system on an existing system is a good way to reproduce the original system.
<fluffyballoon>It's a research paper, so functionally reproducing the original is a goal.
<Festerdam>OK, it happened again. And it completely baffles me why python is a problem if all packages come from the same server. I don't understand why that happens and I don't understand why early EOFs occur (what about users on slow connections?).
<GNUtoo>The big question would be to find ways to also make the other distribution (like Parabola) happy by integrating well with it