IRC channel logs


back to list of logs

<jonsger>hm cmark fails on core-updates
<vagrantc>mbakke: all the same fonts installed...
<vagrantc>mbakke: font-inconsolata is the only font i have installed ... works fine on master ... so are you saying there are some fonts that were pulled in from some other package on master, that are not on core-updates?
<vagrantc>also, soem things seem to have weird fixed-width issues ... big gaps between characters
<vagrantc>the only other font in my store is font-dejavu ...
<vagrantc>mbakke: ok, installing font-dejavu and running "fc-cache -rv" seems to have fixed the UTF-8 boxes :)
<vagrantc>and the fixed-width issues as well
<anadon>Hello all
*vagrantc waves
<mbakke>vagrantc: can you run 'guix gc --references /gnu/store/.....font-dejavu' and see what pulled it in? Presumably that's from your "master" system generations, right?
<anadon>So I'm going to spend today just getting better at guile. I want to get less dependent on others for debugging my packages @_@
<mbakke>anadon: sounds useful :-)
<vagrantc>mbakke: on each occurrance of font-dejavu ?
<mbakke>vagrantc: hopefully one is enough
<vagrantc>mbakke: i have two of them, neither show any references
<mbakke>jonsger: looks like one can do s/cgi/html/ in, can you give it a try?
<vagrantc>mbakke: i'm running sway, fwiw
<jonsger>mbakke: dont have a core-updates git worktree :(
<mbakke>vagrantc: errh, I meant --referrers, not --references
<vagrantc>mbakke: will try again :)
<vagrantc>mbakke: i'm going to guess cups-filters, based on the output
<vagrantc>mbakke: only other is a font-dir and a profile
<vagrantc>mbakke: ah, one of them *only* "referrers" to cups-filters
<mbakke>vagrantc: thanks, weird; there are no changes to cups-filters according to git log master..core-updates .
<vagrantc>they both have font-dejavu as an input
<mbakke>jonsger: fixed!
<Misha_B>How do I get stumpwm to appear as a choice in gdm?
<Misha_B>turns out I just had to restart to get gdm to update the desktop files to be able to use stumpwm
<lafrenierejm>How would one go about getting a specific keyword from the result of (package-arguments <package>)?
<lafrenierejm>Particularly, I'm wantin to get #:configure-flags.
<apteryx>mbakke: I've opened an issue about fakeroot failing on core-updates
<apteryx>due to test failures
<pkill9>hello guix
<anadon>Is guile 3 still a specific installable target separate from from `guile`?
<anadon>Huh, even with recent guix pull's, guile3.0 itself isn't showing up.
<mroh>hello pkill9
<mroh>anadon: guile-next
<anadon>mroh: Thanks
<KE0VVT>Testing out Jami right now.
<KE0VVT>Need to get a webcam at some point.
<ryanprior>How can I see the files that a package will install (or did install)?
<ryanprior>KE0VVT: are you testing Guix Jami?
<atw>ryanprior: the best answer I know is to guix build it and see what's in the store item that's created
<mroh>ryanprior: try something like `tree $(guix build tree)`
<atw>yup, and if you already have it installed, then guix build will be a no-op
<KE0VVT>ryanprior: yeah
<KE0VVT>ryanprior: oh, no.
<KE0VVT>ryanprior: i installed with jami trisquel repo
<ryanprior>Oh yeah that's how I have it installed too, it wasn't stable when I tried the guix package.
<ryanprior>But I understand they've been working on improving their guix package quality :)
<ryanprior>I'm stuck on a packaging issue: my package build succeeds, but the files it installs during the build do not appear in the store O.O
<ryanprior>I modified the install phase to run `make -n install` so I can see what it's doing, and I can see that it's running eg
<ryanprior>install -D obj/linux/bin/ecc /gnu/store/348vrc9rzb51rxr9l9yzq0nknqipz4dh-ecere-sdk-0.44.15/bin/ecc
<ryanprior>which succeeds, nothing is erroring, the build does not fail
<ryanprior>but then I look in /gnu/store/348vrc9rzb51rxr9l9yzq0nknqipz4dh-ecere-sdk-0.44.15/ and there is no bin/ directory
<ryanprior>so I'm really like (own head turned sideways meme)
<mroh>remove the '-n' from `make install`
<ryanprior>well I put the -n in there so I could see what it was doing and ensure it wasn't running something boneheaded. it was already failing before I added -n
<ryanprior>but on your suggestion I will absolutely try that now
<ryanprior>I removed -n and now I'm getting errors in validate-runpath
<ryanprior>derp realizing now that -n is "dry run" and not "verbose"
<FennecCode>Hey, so I had a couple of questions... I'm trying to install Zoom in some sort of a container so I can leave my other OS's behind. Is Docker the right tool for the job?
<FennecCode>And if Docker is the right tool, how do I go about using it? Docker-cli is asking for docker to create a socket at "unix:///var/run/docker.sock", but I'm not really sure how to go about doing that unless Docker is some kind of a system-wide service... 🤔
<ryanprior>FennecCode: You can install graphical applications in Docker, but it is not primarily intended for that use-case, so no not the right tool for the job.
<ryanprior>In this channel we don't recommend using software like Zoom that spies on your machine and sells your data to advertisers, or provide support for them, but if you must use Zoom you can search in mainstream containerized desktop app repositories (like Snapcraft or Flathub) and find it there.
<lafrenierejm>FennecCode: Look into exposing the X11 socket to the container if you're interested in running a graphical application.
<FennecCode>I hadn't considered snaps or flatpacks... Is there some way to run them on Guix?
<lafrenierejm>I didn't see a way to get a specific argument from a `package-arguments' result, so I added a getkw function in guix/utils.scm. How would I use that function in a package definition? Should I have defined it somehwere else? Right now I'm getting "Unbound variable".
<FennecCode>lafrenierejm: I think the apps I'm trying to run have instructions for that, but what I'm wondering is how do I go about starting a docker daemon in the first place?
<lafrenierejm>FennecCode: You should be able to start the Docker daemon with herd. Haven't personally run Dockero on Guix System yet though, so I don't have a working config on-hand.
<ryanprior>FennecCode: you can install flatpak in Guix with `guix install flatpak`
<FennecCode>lafrenierejm: I have all sorts of lingering confusion on how to run daemons using herd in general, honestly. I'm kinda new to guix 😅
<FennecCode>ryanprior: No way... Huh. Thank you 🙂
<ryanprior>Oh you're using herd? I don't know if containers will work at all for you, they rely on Linux isolation system calls. I'm interested to hear how it goes though!
<FennecCode>Oh, sorry, no
<FennecCode>Shepherd. I get them confused 😅
<lafrenierejm>Oops. Shepherd is what I meant, too.
<ryanprior>lmao I was like "suddenly this line of questioning is much more interesting! o.O"
<ryanprior>rekado: I just read that you're stepping down as a co-maintainer of Guix, thank you so much for all your work and for welcoming me into the community =D
<FennecCode>Thank you. That totally worked. 🙂 I'm able to run the two apps I'm still unfortunately stuck with for now due to coursework.
<efraim>lispmacs: I'm working on 32-bit powerpc, I have 2 ibook G4s. I don't see it being more than a 'best effort' support. There's actual support planned for power8, not sure if big or little endian
<bdju>efraim: somewhat related, do you know how I can get an idea of what software works on other architectures like powerpc? I'm more interested in modern stuff like POWER9, though.
<bdju>like can I filter packages for debian or guix or any distro by architecture?
<efraim>debian has this page which does help a bunch
<efraim>in general almost everything can be made to work, the real difficulty is the initial hurdle of bootstrapping languages, especially go and ghc
<bdju>cool, thank you.
<bdju>is there a way to view a text list of them all or do I have to just use the search at the top? I see "installed" says too many to display, but not how to see them all
<bdju>I found alpine has a way to view packages and filter by architecture as well, so that's nice
<efraim>I haven't found a way. I normally search for packages on debian here
***rekado_ is now known as rekado
***raghavgururajan is now known as Guest87864
***xMopx- is now known as xMopx
<wxie>How could I install ibus-rime input method for guix?
<wxie>I have done: guix package -i ibus ibus-rime, what should I do next?
<jeko>Hello Guixters!
***Guest87864 is now known as raghavgururajan
***raghavgururajan is now known as Guest50946
<brendyyn>wxie: I believe their are 3 environment variables that should be set
<brendyyn>export GTK_IM_MODULE=ibus, export XMODIFIERS=@im=ibus,export QT_IM_MODULE=ibus
<brendyyn>in .bash_profile
<usney>hi everyone!
<usney>guix rocks!
<gf>OK, Is base32 (printHash32) from libutil/ a one way hash ? Is there a reverse function somewhere?
<gf>Ive searched but was left with knowledge that the hash avoids creating swear words, but not much about the function itself
<civodul>Hello Guix!
<lprndn>Hello guix!
<dutchie>gf: hashes are almost always irreversible, if only because the input is large and the output is small
<gf>dutchie: the base32 hash that guix uses, I mean,
<dutchie>i don't think it's any exception
<gf>they encode the sha256, the lenght gets to 32byte->52 byte
<dutchie>oh, i thought you meant to go from the hash to the input file
<gf>no, not the file, just talking about the algorithm itself
<gf>the base32 hash guix uses is special, and implimentation is found in F#, javascript, and such, but they are all data->base32 and not the other way around
<gf>youd expect that for base32, there is the reverse operation
<dutchie>i'm not sure about that, but maybe someone else here knows
<rekado>sha256 returns data, then base32 turns it into a base32-encoded string
<gf>but there appears to be no function that reverts that
<rekado>gf: where did you look?
<rekado>gf: in (guix base32) you find both bytevector->nix-base32-string and nix-base32-string->bytevector
<gf>in /master/src/libutil/
<gf>was it the wrong place?
<rekado>see my message above
<brendyyn>(guix base32) means the file guix/base32.scm in the Guix git repo.
<gf>HA! found it /guix/blob/master/guix/base32.scm
<gf>many thanks
<gf>will read implimentation...
***Guest50946 is now known as raghavgururajan
<wxie>brendyyn: Thanks. How should I activate the IM then?
***raghavgururajan is now known as Guest434
<wxie>ibus-rime is still not work? How should I install it?
***Guest434 is now known as raghavgururajan
***raghavgururajan is now known as Guest19754
***modula2 is now known as defaultxr
<happycorsair>Hello! Has anyone ever succeeded in building external gcc in Guix? I've registered this (bug???) Thanks!
<raghavgururajan>Hello Guix!
<guix-vits>`sudo nft add rule TABLE CHAIN ip daddr accept` fails for me: "No such file or directory". I've 5.4.38-gnu Linux. Is that OK?
<Krusnus>Hi everyone! I've been using guix for a few weeks now, using the configuration that was generated by the graphical installer, and for some reason today almost every guix command returns "error: setting synchronous mode: unable to open database file" I have no idea of what i could have done to cause this and no idea how to fix it. any help would be
<Krusnus>appreciated :)
<Krusnus>guix upgrade on the other hand returns "guix upgrade: error: opening lock file `/var/guix/temproots/3054': No space left on device"
<rekado>Krusnus: that’s your error right there
<rekado>‘unable to open database file’ is probably a result of having run out of space.
<Krusnus>rekado: oh ok but I've checked my disk and half of it is free
<guix-vits>Krusnus, `df -h`: Is it half-free for every partition?
<Krusnus>i have all exept boot and swap in the same partition
<guix-vits>Krusnus: is that btrfs? ( `btrfs fi us MOUNT_POINT` )
<Krusnus>guix-vits: I'm using ext4 (not sure if i'm understanding your question correctly)
<Krusnus>here's a paste of what "df -h" returned, if that's of any interest:
<ruffni>hitting backspace results in a space-like input in my `guix environment guix --pure`, even though $TERM is set.. what should i do?
<guix-vits>ruffni: emacs, M-x shell
<guix-vits>i have those trouble too
<guix-vits>with kitty terminal emulator, at least
<ruffni>i use rxvt-unicode.. so i need to install emacs to the dev-env?
<guix-vits>ruffni: idk; just inside of M-x shell there is no this trouble.
<guix-vits>there is also emacs-minimal
<mmdev>I use st terminal emulator and it seems there is no such problem
<Krusnus>Thanks for the help @guix-vits! I found the problem. I didn't have any free inodes because my email trash had so many files! Sorry for wasting your time with an apparently non-guix problem :p
<guix-vits>mmdev: cool, we need to check it out.
<guix-vits>Krusnus: cool. aside: inodes are dynamically created in btrfs, if you want to check it out somewhere. Maybe it's "production ready" already?
<Misha_B>hmm, numbers aren't appearing in icecat in some cases
<ruffni>i was just wondering, since we invoke `guix environment --pure` to have a "pure" environment.... guix-vits: have you invested much time in debugging the issue?
<rekado>ruffni: I can’t reproduce this in my terminals. (I use M-x shell mostly, but also the GNOME terminal.)
<Misha_B>rekado: Thanks! installing those font packages then running fc-cache fixed the issue.
<mothacehe>Misha_B: did you manage to install Guix System?
<Misha_B>yes, and it works well
<mothacehe>Super! By passing nomodeset?
<ruffni>rekado: since it doesn't happen in st and gnome-terminal it might be an rxvt specific issue
<Misha_B>mothacehe: no, unfortunetly I had to switch to the integrated gpu to get it to work
<mothacehe>ok, at least you have a workaround. Don't hesitate to comment you bug report to indicate that nomodeset didn't help.
<happycorsair>Sorry for a stupid question, I'm a newbie here. What's the proper way to extend XDG_DATA_DIRS with flatpak global installation directory?
<rekado>ruffni: it’s possible that a termcap file for rxvt cannot be found
<rekado>I remember having a similar problem long ago
<rekado>this was caused by a mismatch in the name the terminal emulator used (a different name for the 256 colour variant)
<Misha_B>ok so nomodeset did let me boot into the system, but X and the framebuffer didn't work
<ruffni>guix-vits: setting TERM=xterm solves this for me
<mothacehe>Misha_B: ok, interesting. Some people could have insights about it on the ML.
<ruffni>`make authenticate` (in the guix repo) raises an error: "reference 'refs/heads/keyring' not found". do i have to pull this manually from somewhere?
<nixo_>hello guix! I just saw the new inkscape is released, tried to upgrade it but I realize guix build on both my machines isn't able to build gtk+. after ~10minutes with no output I got 'Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS'
<sneek>nixo_, you have 4 messages!
<sneek>nixo_, nckx says: Bad news and good news. I finally got access to the P8400 and its Xorg.0.log looks much more similar to yours than I expected <> (I use an X230 myself). But! It runs xubuntu too, and glxgears at… ~1270 FPS. So it can be done.
<sneek>nixo_, nckx says: I hope that's enough motivation for you to compare our respective logs in more detail. I'm too tired myself.
<sneek>nixo_, raghavgururajan says: Now sure you if you received my DMs as I am using XMPP-IRC bridge. I have sent the revision patches with suggested changes. :-)
<sneek>nixo_, raghav-gururajan says: Thanks for pushing udevil :-)
<nixo_>nckx: Thanks for the log, I'll inspect it :)
<guix-vits>ruffni: for me too, thanks.
<rekado>ruffni: have you tried ‘git fetch’?
<ruffni>rekado: i have. do i have to checkout a specific branch?
<ruffni>or commit?
<ruffni>guix-vits: no problem.. do you have any idea, how we could fix that programmatically? was your $TERM before 'rxvt-unicode' as it was in my setup?
<guix-vits>ruffni: my was xterm-kitty. Maybe place TERM=xterm in ~/.bash_profile or ~/.bashrc (idk what is proper place)?
<nixo_>could anybody try ./pre-inst-env guix build gxmessage (or any gtk+ program really)
<montxero>To all the GUIX maintainers, thank you. Thank you for your hardwork, for this incredible tool, and impeccable support. Your craftsmanship is bar none
<NieDzejkob>So remember that one segfault-during-grafting bug?
<rekado>mbakke: we should now have SSH access to the new ARM servers.
<ecbrown>pinoaffe: congrats on the autossh service!
<pinoaffe>ecbrow: thanks!
<lprndn>Is there any maintainer with some time and motivation on their hands to review #35305 (lightdm service)?
<mbakke>rekado: great, thanks :)
<ecbrown>efraim: i'm trying the zfs package, thank you for creating it. when i go to create a vm, it hangs on the DEPMOD part, returning #f for kmod variable
<ecbrown>efraim: i threw in ("kmod" ,kmod) into the inputs, and it builds
<ecbrown>(followup on your question as to whether i have tried the guix zfs package :-)
<ryanprior>I'm looking into what it would take to create a bootstrap package for the Crystal compiler. Helpfully, they have a bootstrap build system already- and it involves building 160 versions of the Crystal compiler in succession, some with patches, each feeding into the next.
<ryanprior>If I can build some helper functions around that logic in Guile, and get 160 versions of the Crystal compiler packaged in Guix, is that helpful or is that ridiculous?
<NieDzejkob>We've got 20 versions of Rust, so it's fine if Crystal is 8 times as good ;)
<rekado>lprndn: let me take a look
<NieDzejkob>more seriously, how long does one of the builds take, roughly?
<janneke>hi! to build guile from git, i start with something like: guix environment guile-next --ad-hoc autoconf automake bison flex gettext texinfo libtool libffi pkg-config
<janneke>is there an easy way that i'm missing to get more of those "extras-for-git-build" automagically filled-in?
<rekado>only by cheating and using guile-for-guile-emacs instead of guile-next
<rekado>because guile-for-guile-emacs is built from git as well
<rekado>there’s no generic way to do this
<lprndn>rekado: thanks for this (and for the rest)
<janneke>rekado: that's a "nice" cheat
<janneke>but iwb"even greater" if we had something more generic -- not sure if that's at all possible?
<rekado>janneke: I don’t see how. We could perhaps add environment inputs that are only considered when ‘guix environment’ is used. The properties field might be used for that.
<rekado>but I can’t think of a way to infer this.
<jackhill>Is this because autoconf stuff is considered source in the release tarballs even though it is generated from other sources in the git repositories?
<bavier>hello guix
<janneke>rekado: hmm, yes -- so we could then maybe (not at all sure if it's a good idea) have some "themes" for that: gnu-from-git (+ autoconf, automake, libtool, pkg-config, texinfo) that a package could specify, maybe derive from the build system -- but it gets quickly into questionable heuristics
<janneke>jackhill: when building from a released tarball, guix does not redo the autotools bootstrapping that a maintainer does when they prepare the release
<jackhill>janneke: ah, I see, thanks! Do you know why we don't do that? I guess my question is why autotools is different than other things that the maintainer my prepare?
<jackhill>s/my prepare/may prepare/
<janneke>jackhill: dunno, we do it like that because we do it like that ;-)
<janneke>i would love to see progress in that area, but making sensible changes is difficult and a lot of work
<janneke>and most changes are really not pure progress, but also regression in other areas (imho -- cmake, meson, etc)
<janneke>a declarative configure and build system that is standards complient, performs well, can be bootstrapped and is written in guile and actually replaces all other options instead of adding yet another half-baken solution -- something like that would be nice
<jackhill>heh, indeed :) well, perhaps someday
<janneke>we'll save that for when we get really bored
*civodul pushed a draft post about grafts
<civodul>draft, graft, hmm
<sirmacik>anybody knows if guix will work on pinebook pro?
<sirmacik>(meaning guix system)
<pkill9>hello guix
*pkill9 would like an mnt reform running guix, but is not going to pay 700 euros
<bavier>sirmacik: we have bootloaders for both the pinebook and pinebook pro, so I assume the rest of Guix System is functional
<rekado>civodul: stroke –> struck?
<sirmacik>bavier: nice, thanks for the info (:
<butterypancake>how many people here actually run guix system? I can't seem to install it for the life of me. The installer seems really really buggy
<rekado>civodul: what’s the ‘contamination problem’ of monads? Do you mean that in order to use a monadic procedure the caller would have to use monads as well?
<leoprikler>butterypancake: I do, in several forms
<leoprikler>What bug do you encounter specifically?
<janneke>civodul: a delightful read
<civodul>thanks, i'm not sure it's very understandable at this point but i need to take a break
<civodul>thanks for the typo, rekado!
<civodul>rekado: the "contamination problem" is that once you start moving part of your API to be monadic, everything around it needs to become monadic as well
<janneke>it helps me to understand your patch series "a lot better"
<janneke>civodul: maybe towards the end, a(nother) small summary of what comes could help
<civodul>janneke: good idea, it looks like i kinda stopped halfway there
<mbakke>butterypancake: what problems are you facing with the installer?
<tho1efx>Reading nix pills, is there an equivalent to for guix?
<butterypancake>well the graphical installer is a complete bust. first off the wifi setup is broken is 1.1.0 (known bug that has since been fixed). but even with ethernet, the installer jumps back to step 1 after the partition step so I'm in an endless loop. After making my own custom iso from the latest source, I'm not sure if it loops anymore because the partitioner step crashes. I'm now trying the manual installer
<tho1efx>It sets up environment variables for foreign distros.
<leoprikler>tho1efx: there is a setup script for guix on foreign distros, do you mean that?
<leoprikler>butterypancake: seems like you have trouble partitioning. IIRC the script is set up, so that it restarts if some step fails, though you should also be able to manually abort and go back to an earlier step
<tho1efx>leoprikler: I guess, unless you mean the installer script from the website. It failed to run.
<butterypancake>after I started doing the installer manually, I noticed the manual says to have the boot partition be fat32, yet the installer tries to make the boot partition fat16. I wonder if that's the issue I had
<tho1efx>So I went through the manual install instructions, I think they are missing some pieces but I don't know where the source for the docs is.
<butterypancake>it's in doc/guix.texi in the guix repo
<leoprikler>butterypancake: IIRC that's different for EFI vs. non-EFI. For EFI, the boot partition needs to be FAT32, non-EFI with MBR doesn't care.
<butterypancake>yep. it tries to make a fat16 on an efi system. sounds like a bug to me
<leoprikler>indeed it does
<leoprikler>tho1efx: how exactly does the install script fail?
<butterypancake>ok, these are all my gripes with guix right now. Should I open bug reports or something?
<butterypancake> guix users need access to qemu but that's not documented =sudo usermod -aG kvm guixbuilder01=
<butterypancake> guix AUR package doesn't work
<butterypancake> doesn't build without guile-ssh
<butterypancake> running =sudo make install= right after =make= recompiles everything
<butterypancake> tries to make boot partition fat16 on efi systems when it should be fat32
<leoprikler>boot partition is definitely a bug
<leoprikler>qemu may be a bug, but I'm not quite sure about that
<butterypancake>the backtrace for that was stupid though. It had me thinking it couldn't pull the UUID's properly. I'll have to retry it later to make sure it's only the partition type and no UUID madness
<leoprikler>the AUR package is not managed by us, also Arch Wiki recommends the script
<rekado>we don’t maintain the AUR package.
<rekado>why would the guixbuilder users need to be members of kvm?
<butterypancake>I might dive into that. It's the automated tests that fail so it might be on you guys. To be confirmed though
<butterypancake>idk. I installed guix manually on my laptop and it was throwing random error till someone on this irc told me to add the builders to that group and then everything magically worked
<leoprikler>They are part of kvm on guix system
<butterypancake>but I disabled checks for the AUR package and installed it on my desktop and those builders don't need to be part of the kvm group
<leoprikler>Probably because you need qemu for `guix system`, I don't know how that transcends to packages
<butterypancake>this was for building the new iso so I was using guix system
<butterypancake>I've never used guix for installing packages :P
<leoprikler>Okay, so you used `guix system` while on Arch?
<butterypancake>ya, guix system disk-image. no guix system admin stuff, just building the iso
<rekado>FWIW on my Fedora system the build users are not in the kvm group
<leoprikler>Okay, that's probably on us, since we expect `guix system` to be invoked from a Guix system.
<rekado>so I guess you only need that for a subset of features
<rekado>leoprikler: we do?
<leoprikler>rekado: yep, for the `guix system` family
<butterypancake>is there a supported way of producing guix images on not guix?
<butterypancake>seems like a chicken and egg game that I've been having fun with
<rekado>what do you mean by ‘guix images’?
<butterypancake>guix system images
<leoprikler>You can build it on other machines, once you figure out the kvm stuff that we haven't documented
<butterypancake>so it should be added to 3.9 building the installion image and not the guix installion pages?
<leoprikler>So yes, adding documentation stating "in order to use the `guix system` family of commands, the guixbuilders need to be in the kvm group" is probably a good thing.
<butterypancake>except one of my computers can build the image without the kvm group and one can't so I think there is more to this than just that
<leoprikler>I'm not quite sure.
<leoprikler>Theoretically, qemu should work without kvm, but it'll be slow.
<butterypancake>I also accidentally had virtualization in my bios disabled. Would that affect anything?
<leoprikler>probably some things in some ways, but that depends on what exactly is virtualized
<leoprikler>and how
<butterypancake>aight, I'll put it in my backlog to try and figure that out too
<rekado>butterypancake: that would slow things down
<butterypancake>ya, espeiaclly since I didn't do the substitution thing :P
<rekado>this will affect only qemu, i.e. only those parts of Guix that build disk images or run VMs
<leoprikler>I too switched to Guix because Gentoo wasn't compiling stuff often enough ;)
<butterypancake>who compiles stuff more often, arch or guix?
<leoprikler>isn't arch a binary distro?
<butterypancake>well, ya. But so is everything right? arch defaults to binaryies but you can compile everything if you want
<butterypancake>the AUR is identical to the main repos except they don't provide binaries so you have to compile. If you want you can install everything like that
<leoprikler>Not really. Debian and Arch usually push binaries, whereas source-based distros, such as Gentoo etc. primarily push sources.
<leoprikler>Guix is source-based with substitutes. By default, you build from source, but if you get lucky someone you trust already has.
<butterypancake>guix + substitutes sound exactly like arch + AUR where you trust the stuff in the default repos
<leoprikler>But apart from substitutes, Nix/Guix rebuild stuff more often than anyone else, because all the dependencies are rebuilt whenever something changes (unless you graft them).
<leoprikler>Guix + substitutes is AUR + Arch. Guix - substitutes is AUR without Arch, which makes no sense.
<butterypancake>AUR without arch is just using all the makepkg scripts for the default stuff which people don't usually do cuz that's weird
<leoprikler>And AUR is really just a shorthand for "I have this collection of git repos,that I keep up to date and build from now and then".
<butterypancake>they also break a lot... guix is supposed to be super repeatable so stuff doesn't break right?
<leoprikler>Which is how you do stuff in Debian-based distros.
<leoprikler>Well, sometimes stuff breaks, but it breaks in a reproducible manner ;)
<leoprikler>You can verify the breakage via guix time-machine.
<drakonis>if it breaks, it breaks for everyone.
<drakonis>unless there's a significant deviation from the average in the local config
<butterypancake>ugh, can someone fix the nss-certs substitution? It's slowing down my iso building
<butterypancake>I can compile, but the subsitution has some locale issue
<leoprikler>nss-certs appear to build fine on CI, so that's a local locale issue ;)
<drakonis>y'all should really work on your convincing game
<drakonis>y'all focus too uch on the terms
<drakonis>too much
<butterypancake>BuT YoU'Re uSiNg tHe wOrD FrEe wRoNg
<leoprikler>It's free as in free beer, not free lunch!
<drakonis>guix and nix are hybrid, you only build when it isnt available
<butterypancake>I thought we just went over that it's not hybrid by default?
<ryanprior>How many Guix packages is too many to create a bootstrap chain for a commpiler?
<ryanprior>The official bootstrap system for the Crystal compiler has a chain with 160 links. (Apologies if I already posted this, but I think my client was bugging.)
<leoprikler>ryanprior: no amount of packages is too many
<ryanprior>I'm interested in building Crystal programs for Guix but I feel like it might just be unacceptable to introduce 160 packages for a build system?
<leoprikler>in fact, the smaller you can make your bootstrap seed, the better
<leoprikler>(making the seed smaller implies needing more packages along the way to build stuff)
<bavier>I'd agree that a bootstrap chain is preferable, no matter the size
<ryanprior>So I'm picturing writing a Guile function that takes a few arguments and returns a package, then another function that takes a row of data and calls the package function, then a big data structure with the values for all 160 stages.
<ryanprior>That would not bear much resemblance to a normal Guix package definition, but it would lend itself to compact representation.
<ryanprior>Another approach would be to have the output of that be generated code instead of package objects, and then check the generated code into the Guix source tree. Then we'd have 160 packages that individually resemble normal Guix packages.
<ryanprior>Thoughts? Strong preference for one strategy over the other, or a third option?
<leoprikler>depends on what exactly you want to achieve
<leoprikler>your "function that makes a package" thing is already used for packages like gcc, linux etc.
<ryanprior>My goal is a crystal-build-system in Guix that's bootstrappable from source.
<leoprikler>would those 160 stages each be a different version of the crystal compiler?
<drakonis>butterypancake: did we?
<leoprikler>In that case, yes, go for it and write that function.
<leoprikler>Btw. have you tried less than 160 hops?
<leoprikler>e.g. only build each major release with the last?
<ryanprior>I have not. My 160 number is based on the upstream's official supported bootstrap build system, which builds 160 versions of the Crystal compiler, each one building the next.
<ryanprior>I could experiment with skipping hops
<drakonis>that seems untenable to rebuild 160 versions every time
<rekado>2.8T free on
<rekado>and that’s with daily manual GC
<rekado>it’ll be a while before I know whether my application for doubling the storage will be accepted, and even longer before we actually have the new hardware
<apteryx>rekado: Seems we're in an untenable position w.r.t. free space. Do you have ideas of more drastic options we have to reduce space usage? Any gc roots being kept without pressing reasons?
<Kimapr>I probably found a nonfree game in guix. There could be more (namely the ones run under ScummVM) but this one shows an explicit copyright notice when started
<bavier>Kimapr: which?
<Kimapr>what is the preferred way to send screenshots here? (The Flight of the Amazon Queen, package `queen`)
<cyclopsian>iirc that one is from the list of "freeware" games downloadable on the scummvm site
<Kimapr>could be that copyright expired already
<cyclopsian>I doubt it, and the licenses all seem to have some nonfree terms
<cyclopsian>well, IANAL
<leoprikler>for me that appears to be a pretty free license
<bavier>IANAL, but the "You may not charge a feww for the game itself" may make it fall in the nonfree category
<leoprikler>you have something similar in the non-commercial CC licenses
<rekado>yeah, that makes the NC variants non-free.
<bavier>leoprikler: yeah, we can't package those
<leoprikler>hmm, okay
<bavier>Kimapr: could you send a bug to
<janneke>it's in debian
<rekado>apteryx: there are 281k gc roots recorded by Cuirass
<janneke>so it may be helpful to have a look for discussions there
<janneke>debian has been known to make mistakes in this area
<janneke>...from time to time
<janneke>but is usually pretty good :-)
<bavier>good point, would be useful to reference
<janneke>Kimapr; i hope you're aware that a displaying copyright notice by itself is unrelated to the license
<cyclopsian>does anyone know of any window managers that are written in guile/scheme? the closet thing i can find is sawfish which uses a CL variant
<leoprikler>there is guile-wm iirc
<Kimapr>yes, the notice itself is not a license
<janneke>and there is exwm
<cyclopsian>thank you, I will check those out
<rekado>apteryx: there are no very old roots, though. The oldest are from March 21.
<rekado>guile-wm is not in a usable state from what I hear
<leoprikler>At the risk of sounding stupid, how is a restriction of the amount of money you may charge for something against software freedom?
<butterypancake>how do you charge money for something that your customers can distribute freely? There is nothing against chargin for software, but once one of your customers posts it online, you just gotta pray that people still pay you for the software
<leoprikler>that's a tangential issue
<mbakke>cyclopsian: there is also StumpWM
<janneke>leoprikler: i'm sure you read
<leoprikler>my point is, that enforcing an upper limit on the fee you charge does not limit you in the four essential freedoms
<apteryx>rekado: how are these roots cleaned up / how long is Cuirass configured to keep old roots?
*apteryx is pretty ignorant w.r.t. Cuirass
<jetomit>leoprikler: "not for commercial purposes" can get kind of muddy … can you charge for support, or put ads on the website with the download?
<jetomit>though in this case it seems OK, since it only prevents you from charging a fee for the game
<leoprikler>yes, so as long as guix people don't go around charging fees for scummvm support, it should be fine
<leoprikler>There is also the "reasonable copying fee", which probably refers to the cost of e.g. burning that thing to disc etc.
<leoprikler>of course, any non-commercial license will still be GPL-incompatible, because the GPL allows you to charge any fee.
<leoprikler>but I'd argue, that "free" != "GPL-compatible"
<jetomit>I suppose this is a copyleft license, so it is incompatible with GPL
<jetomit>the second clause actually allows commercial distribution, not sure how widely it is applicable though
<leoprikler>you mean non-copyleft, right?
<janneke>leoprikler: ah, i missed that perspective; yeah i guess that many things could be said to be free, for a certain definition of free ;-)
<jetomit>it says that derivative works must be distributed under the same terms
<jetomit>as I understand it, all copyleft licenses are mutually incompatible (unless explicitly stated otherwise)
<leoprikler>Ahh, okay, that makes sense.
<butterypancake>I finally successfully installed a guix system! This took far too long... but I have it!
<jetomit>so if you want copyleft better use GPL :)
<leoprikler>janneke: Sure, but using the four essential freedoms from, I see no contradiction when requiring no/at best a small fee be charged.
<bavier>butterypancake: \o/
<leoprikler>butterypancake: the first installation is always the hardest
<butterypancake>I mean once I gave up on the graphical installer it took me like 2 minutes (maybe more because there isn't a good catch if you put down a time zone that doesn't exist). I spent way to long trying to get the graphical installer to work :P
<bavier>this discussion may just be philosophical, but many of the licenses on that are marked as non-free are those that prohibit commercial distribution
<leoprikler>with that being listed as the explicit reason why as well
<leoprikler>I know
<ryanprior>You can charge any fee for free software. A penny or a million bucks. If it's free, you have total freedom to make your own commerical decisions around selling it.
<leoprikler>and I disagree with that sentiment
<leoprikler>Yes, but in the developed world minus the US, you'd be charged for extortion if you require a million bucks be paid before distributing free software.
<butterypancake>what? no. that would make crowd funding anything illegal
<janneke>leoprikler: hmm, if you are "free" to [re]distribute (to help others), but it is forbidden to be paid for that, isn't that a pretty severe restriction?
<ryanprior>The GPL has a clause stipulating that you must offer somebody a copy upon request, charging at most a reasonable copying fee. That only applies to non-owners who redistribute the software, however. If you own the GPL'd software, or use it but don't redistribute it, you're under no obligation to give people copies.
<ryanprior>If you're free to give software away grait, but not free to sell copies at a price of your choosing, then that's not freedom, in the sense of "free as in freedom" software.
<butterypancake>how does guix react to doing multiple things at once? I thought it would be mad at me for trying to install somethine while doing a guix pull but it was actually quite happy
<drakonis>there's locking
<leoprikler>So if I say "you may charge money for this software, but it must be less than 10^99 US dollars", that would be a restriction of your freedom?
<butterypancake>yep. now it has distribution terms limiting my freedom
<jetomit>butterypancake: guix pull will install a new version of guix (the program), your existing processes will not be affected
<butterypancake>so I can't do multiple installs at once?
<ryanprior>Only in an absolute sense, not in a practical sense. However, you can imagine a scenario where it could become practical: suppose US dollars hyper-inflate and now 10^99 US dollars is about enough to buy a shirt. That license restriction now becomes onerous.
<mbakke>butterypancake: you can't do concurrent installs to the same profile, but 'guix pull' and 'guix package' use different profiles
<leoprikler>Sure, but going the other way round, what if I limit you to only the price of buying a shirt, but now shirts are severely more expensive than burning something to disk?
<butterypancake>look, a limit on freedom is still a limit regardless of how silly. If I provide you with a copy of "ls" but say you can't use it to commit mass genocide, then that copy of "ls" isn't free
<jetomit>I see copyleft licenses as binding the right-to-thing to thing itself, and GPL as encoding this idea for software
<leoprikler>The world would be a better place if all software required you can't use it to commit mass genocide.
<jetomit>piggybacking any other clauses onto that mechanism is questionable at best
<ryanprior>That sort of thing has happened, and it sucks. For example, music has mandatory licensing to radio stations- music rights owners are required to charge no more than a reaonable fee for radio play.
<butterypancake>leoprikler: you're not wrong
<ryanprior>However, courts in the US held that "internet radio" doesn't count as radio for the purposes of those licenses. So what seemed like a reasonable restriction in the public interest before has failed to deliver freedom to share your music with your community using modern platforms.
<leoprikler>ryanprior: sounds like a problem of *not* applying the clause instead of the opposite.
<ryanprior>Agreed, that's what it reminded me of though. Changing circumstances can drastically change how a license arrangement affects communities.
<ryanprior>Which helps explain why many free software proponents take pretty absolutist attitudes about how licensing impacts freedom.
<leoprikler>Yeah, but those absolutist stances sound like ancap rhetoric to me.
<leoprikler>"You restricted my freedom to charge any price for my software, thereby violating the NAP. Now I'm free to use my recreational McNukes in retaliation."
<ryanprior>There is definitely strain of that in free software activism.
<ryanprior>Groups like the FSF and Software Conservancy have developed frameworks like community enforcement to push back against that.
<ryanprior>They advocate that retaliatory action should only be taken as a last and most extreme measure, and only with broad community support.
<ryanprior>You might be interested to look up Copyleft Conf which is not only about copyleft, but covers many issues adjancent to this convo
<leoprikler>"They advocate ..." Sounds like a joke, but without a winking emoji I feel forced to take that serious.
<ryanprior>If you don't believe FSF or Conservancy do any advocacy I don't know what to tell you.
<ryanprior>A couple relevant videos: copyleft in commercial contexts
<leoprikler>no no no, I mean the end of that sentence
<ryanprior>Copyleft and software ethics
<leoprikler>just didn't want to copy all of it
<ryanprior>Thanks for humoring my long digression into licensing discourse, guix =D
<butterypancake>am I the only one that really wants to pronounce guix as gwicks?
<ryanprior>I pronounced it that way for over a year until I was corrected, and still prefer it :X
<janneke>eeek! -- i mean uwick!
<butterypancake>what operating system do you run? Geeks! ok sorry for asking
<janneke>"GNU Guix" works better
<butterypancake>but GNU geeks are actual people...
<janneke>"gnu geeks is made of people"
<butterypancake>it's actually geeks/people
<butterypancake>ok, what the hell. Do you guys get errors and exceptions everytime you try download a good number of packages? This is getting annoying :/
<leoprikler>I don't
<leoprikler>there are times, when git errors with some 50X, but that happens rarely.
<butterypancake>it's always scheme errors
<butterypancake>unrecognized keyword: #:file-creation-mask
<leoprikler>could you debpaste the full trace?
<butterypancake>where is the trace?
<leoprikler>it should be at the bottom of your log
<butterypancake>where is my log?
<butterypancake>this is a guix system operation
<leoprikler>are you still installing?
<leoprikler>or is this on reconfigure?
<butterypancake>I guess maybe? It's a post install guix system reconfigure
<NieDzejkob>Oh, #:file-creation-mask sounds familiar
<NieDzejkob>try rebooting. I think the running shepherd is too old
<butterypancake>do I do reboots after guix pulls?
<NieDzejkob>it shouldn't be necessary
<NieDzejkob>for guix pulls
<butterypancake>this is right after install, so it's the first guix pull
<NieDzejkob>but a "big" reconfigure might need it
<leoprikler>you can reboot whenever you want, sometimes you want to after reconfigure
<cbaines>It's necessary to update PID 1 (the shepherd), but it isn't necessary for most system re-configuration
<leoprikler>yep, the first guix pull is big
<butterypancake>so that should be added to the post install manual
<butterypancake>added to my list of complaints
<butterypancake>wait, so should I have rebooted after the pull or only when the reconfigure fails?
<leoprikler>paste the reconfigure + output first
<cbaines>guix pull just updates guix as in the software, plus the package definitions
<leoprikler>if the reconfigure didn't change anything, then rebooting won't do anything
<butterypancake>well, I rebooted and never figured out where the logs where
<cbaines>I think there's already a bug around somewhere for the #:file-creation-mask issue
<leoprikler>If a package build fails, you'll get some /var/log/guix/.../...bz2
<butterypancake>except usually it tells me where the log is. It didn't this time
<leoprikler>If something else fails, you'll have to go with the output of the command.
<butterypancake>well there was like one line of error which I wrote out. I don't know which package it failed on though...
<butterypancake>it wasn't descriptive I'll tell you that
<leoprikler>well, yeah, but one line by itself rarely is
<leoprikler>you need at least the last N lines for context, but command + output is rarely a bad idea
<butterypancake>how come I have to give my password the decrypt my drive to both grub and the early guile environment? It's silly to type it twice
<butterypancake>ya, sorry. I should have grabbed it
<cbaines>butterypancake, it's silly, but it's also more secure than most other distros where you just enter it once
<NieDzejkob>When I switched to Guix, I was like "I know how to fix this, this will be one of my first contributions to Guix!"
<NieDzejkob>...and then you reboot less and less and priorities change :P
<cbaines>the extra security isn't particularly intentional, it's just a bit simpler to encrypt everything
<cbaines>rather than not encrypting /boot, which is what most other distros do
<butterypancake>ok, that's cool, but like cache my password or something please
<cbaines>I'd like that too, as far as I'm aware, it hasn't been figured out how to pass the passphrase through from grub to linux
<cbaines>I don't know much about the issue though, maybe there's an known way that we could use
<NieDzejkob>You'd need a way to pass an extra initrd that's not stored in the store
<NieDzejkob>(as the store can't store any secrets)
<leoprikler>Well, it can, but then they're public ;)
<butterypancake>aight, you've conviced me it's tricky to do. I'll accept the double password entry for now
<NieDzejkob>There'll come a day where that's not necessary! :P
<butterypancake>fix the graphical installer first though!
<butterypancake>I'll bitch for days but my bitching will have priorities
<cbaines>*improve the graphical installer
<butterypancake>no, fix. it doesn't work
<cbaines>It does at least work in some scenarios
<cbaines>It has been used successfully
<butterypancake>not for efi scenarios
<NieDzejkob>did you choose the size of the efi partition by hand?
<cbaines>yeah, I think I might have run in to that
<butterypancake>it decided the boot partition should be fat16 even though the manual makes it clear it should be fat32
***TZander_ is now known as TZander
<butterypancake>also all the sizes it was reporting for the partitions where wrong
<butterypancake>and even if I got past the partition step, it would fail to mount the drives
<NieDzejkob>(I'm asking because, as I've learned during my cursedfs episode, the fat type of the partition depends only on the size of the partition)
<butterypancake>what? how? what? really?
<butterypancake>but mkfs.fat -F32 and mkfs.fat -F16 do different things right?
<NieDzejkob>you can sometimes fudge the cluster size to skew the comparison in the right range
<NieDzejkob> -> ^F "The FAT type of this file system"
<cbaines>back when I installed Guix, there was just the USB installer, and you had a terminal, and had to type out all the required commands.
<NieDzejkob>... so this might be crucial: <butterypancake> also all the sizes it was reporting for the partitions where wrong
<cbaines>I'm particularly grateful for it working as an ISO image now, and for the interactive installer interface, it's no small feat to have the current working functionality
<butterypancake>ya, I didn't even notice at first. I'll boot it up from the stick sometime and grab a screenshot I guess
<NieDzejkob>cbaines: Since you're around - I get an "guix pull: error: mkdir: Permission denied" error when I try to guix pull on bayfront. Do you happen to know how to fix this? Would "mkdir /var/guix/profiles/per-user/kuba" and a chmod be enough?
<cbaines>NieDzejkob, I'll have a look...
<cbaines>I've created /var/guix/profiles/per-user/kuba now on bayfront, so maybe that'll help?
<cbaines>NieDzejkob, also, if your interested in metrics on Bayfront, there's a dashboard here:
<NieDzejkob>huh, that's weird, I'm still getting that error
<NieDzejkob>oh, sorry for the noise. The issue was something entirely different: ~/.config got created without write permissions after I had to copy it (and everything else) from /etc/skel manually
<cbaines>Ok, great, glad you got it sorted. I was just about to pull out strace...!
<NieDzejkob>I did just that
<NieDzejkob>the error message could be better...
<rekado>NieDzejkob: please send this to
<rekado>NieDzejkob: all bad error messages must go
<civodul>cbaines: i'm looking at and... it's a hard one
<cbaines>civodul, thanks, maybe Guile 2 can be used where (ice-9 threads) is missing from the compute-guix-derivation script?
<cbaines>I did wonder if there was some way of convincing Guile 3 to just load that module, even though it's not loaded by the script...
<civodul>cbaines: it's tricky: there's %quirks in channels.scm, which i thought could be used here, but actually no
<civodul>because the bug is in the trampoline
<civodul>so we could arrange to have the trampoline run on Guile 2.2 (how? when?)
<civodul>or we could have a thingie like %quirks but that would allow us to patch build-self
<civodul>other ideas welcome :-)
<cbaines>it hasn't finished building, but if I hack guile-for-source to return guile-2.2.4, it doesn't immediately fail
<cbaines>I'll let you know if it works when it finishes building guile, which could be a while...
<NieDzejkob>rekado: I'll take the moment to send it to guix-patches@ instead ;)
<mbakke>civodul: ha, I was just looking at the same thing and added a 'ice-9-threads-required?' quirk, but indeed, the quirk is applied too late
<mbakke>then i tried adding a %load-hook for (primitive-load script) that does (use-modules (ice-9 threads)), but that just causes the script to return immediately
<mbakke>admittently I don't really know what I'm doing :P
<cbaines>Right, I see, I guess it fails with primitive-load in build-from-source
<civodul>mbakke: i was doing the same thing :-)
<civodul>but yeah, the problem is that we want to fix the guile passed to gexp->script
<civodul>gexp->script in build-self.scm just uses (default-guile)
<civodul>and we would need to replace that one with guile-2.2
<civodul>maybe we just need to allow quirks to patch stuff
<mbakke>maybe some match shenanigans with a temporary file? :-/
<civodul>but we could "formalize" that
<civodul>(sounds fancy no?)
<mbakke>sounds useful :-)
<civodul>i don't know what it's gonna be like when we're at Guile 6
<civodul>(the last major version before the switch to a JS-like syntax)
<mbakke>the recent talk about JS syntax in Scheme reminded me of
<mbakke>(note the date for those outraged :-P)
<civodul>heheh :-)
<NieDzejkob>Is there a nice command to answer the question "how come X transitively depends on Y"?
<NieDzejkob>So far I've been eyeballing `guix graph', but the questions are the most interesting when the packages are depended upon by many, many packages, and that's where guix graph breaks down...
<NieDzejkob>(I just noticed that w3m has so many dependants it needs to go on staging, if you're wondering... :P)
<mbakke>NieDzejkob: I often do 'git grep ,w3m' to inspect what uses it
<mbakke>well, not w3m in particular, but you get the idea..
<civodul>NieDzejkob: there's a graphviz script floating around to do that
<civodul>by g_bor[m] IIRC
<civodul>we should really add it to the cookbook
<civodul>i think it's this:
<janneke>mbakke: nice; endless possibilities...guile-json, message passing, ecmascript, new hurd servers, oh my
<butterypancake>is there a nice way to search guix packages for something that provides a specific executable?
<butterypancake>(in this case aclocal but a more general answer would be cool)
<pkill9>butterypancake: there was talk about having build servers supply a list of files that are in outputs
<apteryx>butterypancake: not yet, no
<butterypancake>oh ok. Anyone have a specific answer for aclocal then?
<pkill9>for now I use `fd <file> /gnu/store`
<pkill9>i think aclocal is in one of the autoconf/autotools packages
<apteryx>butterypancake: find $(guix build automake) -name aclocal finds something
<apteryx>so, automake ;-)
<butterypancake>sweet! Thanks :D
<raghavgururajan>apteryx Would you be able to review and push #41046?
<mbakke>rekado: I commented out the machines with IP 180 and 186 as they were causing errors in 'guix offload test', will have a closer look tomorrow.
<leoprikler>NieDzejkob: you're looking for Dijkstra's algorithm: The shortest path from Y to X in the number of packages.
<NieDzejkob>leoprikler: I am aware, though this is not a bash oneliner
<leoprikler>oh, for sure not, but it could be implemented e.g. as a scheme script
<leoprikler>we all love scheme around here ;)
<leoprikler>inb4 guix graph --dijkstra
<NieDzejkob>Would it fit into some guix command?
<NieDzejkob>guix graph? guix refresh?
<leoprikler>Well, if anything then the `graph` family of commands.
<leoprikler>But actually, I'd rather implement such things as separate tools working on arbitrary dot graphs
<civodul>yeah it would be nice for 'guix graph' to have the ability to trim nodes like the graphviz script