<nckxmas>I honestly recommend the manual installation. It's all I ever use, and I'm not alone. Do not take this out of context to claim ‘the installer's so bad the devs don't even use it’ 😉 I'd install manually even if the installer were bug-free and played my favourite album in the background. The manual installation just *isn't that hard*. I managed to install Guix without ever having understood a line of Lisp. I don't recommend it, but it was a fun 15 hours.
<Kabouik>15 hours looks fun, but now now! Honestly I just wanted to install it to a pendrive to experiment with it and see if it will be my new distribution (no free SSD right now and not ready to erase before I know). Then the ability of Guix to clone a configuration would have been convenient because I could have re-used my experiments/customizations on the thumb drive if I decided to install it on a computer.
***cwebber`` is now known as cwebber
<Kabouik>But I'll try, my partitions are already created so it should ease the manual process a bit
<nckxmas>You want ‘Linux file system’ — or ‘Linux root (x86-64)’ if you want to get fancy but Guix doesn't care.
<nckxmas>File system is determined by how you format it with mkfs.foo.
<Kabouik>Oh, I thought cfdisk would handle it, thanks
<nckxmas>Nope. Partition types are totally separate from file systems.
<nckxmas>I also recommend adding the bare minimum of file systems (if you can get away with it: only /) to the list of file-systems in your first system configuration. Guix doesn't handle failed mounts as gracefully as it could, so add those later, when you have a first generation to roll back to.
<podiki[m]>and for a bootable usb don't have to worry about the filesystem details (guix system image will ignore)
<Kabouik>But where would I use the command podiki[m]? I have no Guix machine yet, so I flashed the installer to a usb drive, booted from it into the installer, and tried to complete the installation with another usb drive as destination.
<Kabouik>But this would fail in all cases. I haven't tried on a real disk/ssd, couldn't afford to overwrite one.
<podiki[m]>You can do this from a foreign distro, you don't need guix system
<Kabouik>Now I tried manual installation but am stuck at the config.scm (I took the desktop example in /etc/configuration) because it asks for a mapped device which is for LUKS or LVM, but I set none of that in the partitions of my destination drive.
<podiki[m]>perhaps look at other examples to see the different filesystem possibilities, or peek in the manual
<Kabouik>From a foreign distro onto which I installed guix package manager, I can `guix system image` and make a bootable drive with Guix *System*? Wow
<podiki[m]>....I really need to write up a little cookbook entry for this, but really it just boils down to using "guix system image"
<Kabouik>That'd be super useful anyway, at least for people who don't know about it
<podiki[m]>as I mentioned, that will also sidestep needing to set up filesystems, as I think that all (mostly?) gets ignored for the image command
<podiki[m]>yeah, i don't remember how explicitly it say this in guix system reference, but that's what it can do
<podiki[m]>or try out a VM image, and then use that to figure out your config file
<Kabouik>See I arrived in this channel earlier today asking exactly that, because I saw `guix system image` could make bootable images of existing installations, and asked if I could install on a usb thumb to play with guix, and once I like it, install it with my custom changes and packages onto real computers
<Kabouik>And I didn't understand I could do that from the installer shell until now
<podiki[m]>guix system or binary on another distro can make system images just the same
<podiki[m]>see, i take a day off from lurking on the channel and I miss my chance :-)
<Kabouik>So let's say I have a pristine Guix system just booted, then I `guix install whateverpackage`, will whateverpackage get appended to my config.scm?
<podiki[m]>no, the configure file is only ever edited manually (I guess besides the installer)
<podiki[m]>but you can export whatever you have installed to manifest files, or even explicitly have the exact guix commit you are using to fully reproduce your installed package versions
<Kabouik>And system-images makes a dd image of the running system, so it doesn't really reproduce the system based on the config.scm I guess.
<podiki[m]>guix system image uses a config.scm you give it to make a system
<Kabouik>In other words, I could have an outdated config.scm because I don't know lisp and never updated it, but I used guix package manager a lot, `guix system image` will clone what I did even if I didn't declare it in my config (?)
<podiki[m]>a running guix system does have it's configure file accessible (every system generation saves the file used to make it, so you can always reproduce it)
<podiki[m]>no, guix package install doesn't touch config.scm, it has to be manually edited (as far as I know)
<Kabouik>Oh, our messages went out at the same time
<podiki[m]>but guix does record everything you do, ifyou want to go backwards/forwards to what packages you installed or export this to reproduce the system
<Kabouik>Yup I know about rollbacks, but was pretty excited about `guix system image` because I thought it was a cloning feature that made bootable clones
<podiki[m]>roughly it could, if you want to install all packages at a system level, but I would reserve that for what you want to really be available everywhere
<Kabouik>In fact it rebuilds the system based on the config, which may be outdated for someone who doesn't know much in build and just iterated with `guix commands` and other things
<podiki[m]>you can combine that with package manifests and quickly set up the user profile
<podiki[m]>you want to think of a system versus user level; system level is for that config.scm and system reconfigure (the only thing you need sudo for); user is for packages a user wants avialable to them
<podiki[m]>put it this way: once you have your system configured (partitions, maybe a display manager, kernel options, etc.), you probably won't touch the system configure much
<podiki[m]>mostly you live in the user level of installing/removing packages and all that
<Kabouik>In fact I was thinking if I perfectly set up a guix system on a computer, let's say for several months, learning a bit every day, installking packages, fiddling with software config files (not only Guix config), I could eventually make a bootable clone of that with `guix system image` and replicate on my other computers. But not that simple in the end
<Kabouik>Yeah I was thinking about replicating the user level actually
<Kabouik>But if guix system image is based on config.scm, then I have to be pretty serious about updating it every time I guix install something and realize that something is worth entering the declarative config for future replication. Or I should investigate how maniphests work, as you mentioned. That would still not copy my dotfiles though.
<podiki[m]>I've got to run for now, but do ask here (or on the help mailing list), people are happy to help
<podiki[m]>and guix has a lot of tools for what you are asking
<Kabouik>I am short on space, can't fit a VM on my ssd. Same with the guix package manager as it's a bit space hungry (and however good it is, its file hierarchy is new and of course different with that of mainstream distros package managers, so I dislike that the Guix package manager doesn't have an uninstall script that removes all dirs)
<jpoiret>if it's still needed well you'd have to add the required dependencies of aiocontextvars (pytest-runner here)
<nckxmas>‘guix import’ just follows what the Python package claims to need (here in requires.txt), but it doesn't (yet? :) do anything clever with the [:python_version < "3.7"] preceding it. It would make the definition dependent on the version of the python package the importer had at import time (and that's assuming there aren't multiple), which is a bit of a grey area, but maybe it's acceptable here.
<nckxmas>Hm, I used ‘python package’ ambiguously but I hope it's clear what both mean.
<Guest7455>Hello. Trying to link against ncurses-with-gpm, I get "$HOME/.guix-profile/lib/libncursesw.so: undefined reference to `stat@GLIBC_2.33'" Any ideas? Which gcc-toolchain version should I be using?
<rekado_>(that’s the latest glibc you can get with Guix)
<Guest25>i was creating audio group which already exists in %base-groups lol
<Guest25>honestly guix has the best manual ever lol
<rekado_>I think the manual is pretty sweet. But I think the cookbook deserves a little more love.
<Guest7455>No, I am on guix. I am actually running gcc with -lncursesw. I guess it tries to link with whatever is in $LIBRARY_PATH, which is why I am suspecting that glibc is propagated by gcc-toolchain
<rekado_>the reference manual is a bit short on examples.
<rekado_>Guest7455: is glibc somewhere on the $LIBRARY_PATH+
<Guest7455>I can find: libc-2.31.so. So that is my problem right there.
<Guest7455>No idea on why it is trying to link against 2.33 though, most likely this is what ncurses was built with
<sneek>notmaximed, attila_lendvai says: sorry, i had to go AFK. Proof of Stake is very roughly mining 2.0. and of course go-isatty most probably won't influence the consensus related behavior, but my point is that i don't want to be the one who making that decision. i'd like to leave it to the upstream developers. Swarm is the equivalent of IPFS, but done differently.
<attila_lendvai>i see: [cups-driverd] Unable to open driver directory \"/gnu/store/vw3nlvgj1crp89qhgsfbcgxar61nf38d-cups-server-bin/lib/cups/driver\": No such file or directory. the parent dir exists.
<memyselfandi123>Does guix support different versions in its repos? What I'm looking for is emacs from git. On gentoo I would just emerge =app-editors/emacs-9999
<stikonas>memyselfandi123: different versions are just different packages
<stikonas>although, there are fewer of those than in gentoo
<stikonas>but e.g. there are multiple versions of openjdk or rust
<stikonas>but unlike in gentoo, they are always coinstallable (on Gentoo only if they are slotted and without file conflicts)
<attila_lendvai>and: simple-scan: common/utils.c 245: unable to load library libm.so: /gnu/store/2fk1gz2s7ppdicynscra9b19byrrr866-glibc-2.33/lib/libm.so: invalid ELF header (it's a text file)
<memyselfandi123>So... what about emacs-git in particular? Do i have to install it manually from source?
<Kabouik>jpoiret, nckxmas Thanks! In my opinion it would be nice to add a clean uninstall command in guix or a separate script that would remove those directories if a user decides to uninstall and clean guix. That's between 4 and 6 directories and they are in different places and I don't think the list is not easily found in the help (except from asking the community of course!).
<Kabouik>Now, let's try what podiki[m] recommended me yesterday to install Guix System on a usb thumb drive! My attempts with the manual install failed.
<podiki[m]>lilyp: (on python-web ordering) seems to be no rhyme or reason; like python-flask-* spread everywhere, python-azure-* at the very end, python-zope* in the middle
<podiki[m]>do I just pick a random place to put in a new package? seems haphazard
<lilyp>the best bet is "somewhere in the middle, where it fits"
<podiki[m]>haha where no one will notice what is where?
<ulfvonbelow>'guix shell' seems to fail to honor --preserve when the variable is one that the environment being created also sets. For example, `export DUMMYVAR=1234; guix shell --pure --preserve='^DUMMYVAR$' --preserve='^INFOPATH$' --preserve='^EMACSLOADPATH$' emacs -- /usr/bin/env` causes DUMMYVAR to show up unmodified, but neither INFOPATH nor EMACSLOADPATH retain any portion of their original value.
<AIM[m]>podiki: So, I got errors and in log it is asking me for ghc 8.10 as dependency for ghc-xmonad-contrib 0.15 I think but xmonad 0.15 uses ghc 8.6.5? How do I fix this?
<AIM[m]>Do you know whicb version of ghc-xmonad-contrib is required for xmonad 0.15?
<podiki[m]>I remember a message somewhere about needing to explicitly say which ghc version you install with xmonad, somewhere on the mailing list
<podiki[m]>so you might need email@example.com installed? but may have changed with all the big updates recently
<podiki[m]>I've been using cabal directly so maybe someone else can chime in on this