<podiki[m]>okay, well a few packages I'm doing will probably need some helpful review, as they have optional dependencies, but are also plugins for e.g. rofi, so I'm a little confused where to put everything. right now getting it all working first
<roptat>whenever you use a different guix (usually after a guix pull), or when you change something in the os declaration
<roptat>mh.. also if you've never run guix pull, it's possible every time you reconfigure, you install an older guix as the system package, and that might be what you're using to reconfigure the next time, so downgrading all the time
<Fare>... and building free software that runs on top of proprietary toolchain is not acceptable for guix?
<dstolfa>Fare: from GNU FSDG: A free system distribution should be self-hosting. This means that you must be able to develop and build the system with tools that the system provides you. As a result, a free system distribution cannot include free software that can only be built by using nonfree software.
<Fare>dstolfa, I understand that for GuixSD, but I was hoping that Guix, like Nix, could somehow packages to help the transition out of macOS.
<Fare>But yeah, I see that it's out of scope here.
<Fare>I suppose I can deliver docker images for those users who haven't yet seen the light.
<dstolfa>i'm not sure... guix itself is a GNU project, and if it can't be built on macOS without proprietary tools then it can't follow FSDG if i understand it correctly?
<dstolfa>Fare: yeah, that's basically what i do for most things that i use guix for and need others to use
<Fare>plenty of free software can be run on macOS---they just don't constitute a complete free software operating system, that's all.
<dstolfa>yeah, but if a proprietary toolchain is needed to build said free software, it doesn't follow FSDG
<Fare>I'm pretty sure it's still free software as long as the source code is under the GPL or such and can be recompiled.
<dstolfa>free software is different from a project following FSDG FWIW
<dstolfa>i'm not so sure about that... i don't think nix considers firefox to contain non-free software, whereas guix does
<dstolfa>namely, it is extremely easy to accidentally install non-free software in firefox through the webstore, which goes against the grain of FSDG
<dstolfa>as a result, guix doesn't have firefox, and instead has icecat
<dstolfa>Fare: FWIW, nobody in guix will judge you for using non-free software, it simply an ethical stance that guix is taking. i think you'll find that everyone here supports freedom 0 quite strongly, namely that you should be able to use your computer as you wish, it's just that only fully free software can be included in upstream guix as to not promote or support non-free software
<dstolfa>IMO, macOS and Windows support would be most welcome, if it can follow FSDG
<roptat>mh... missing a header that's from libandroid_headers, but I don't understand how they're supposed to be added
<roptat>it's not mentionned in the build tool, and it's not part of any blueprint file except the one that defines it
<Fare>macOS and Windows cannot be the basis for FSDG distribution, but a free software package manager could still run on them, and I was hoping that guix understood in the latter sense would.
<Fare>maybe it's a discussion for #nonguix though.
<dstolfa>Fare: well, keep in mind that i simply contributed some code to guix, i'm not a part of the project. those that are will probably be able to give a better answer :)
<iskarian>What does "cannot build missing derivation" on cuirass mean?
<roptat>that something's wrong with offloading, probably
<iskarian>Ah, and that's an issue with the setup of cuirass rather than the actual packages, yes?
<roptat>oh found it! It's part of the build tool, just after a comment "Everything in these lists is a crime against abstraction and dependency tracking.", and I fully agree
<breathein>lfam, bricewge: thanks for your help. I tried booting off a live ubuntu iso and there were still some reliability issues with networking. I reseated the caps (idk what they're called) on the wifi card, and maybe it's working better now. I suspect that there's a hardware issue, but I'm not sure.
<ryanprior[m]>error: libssl.so: cannot open shared object file: No such file or directory
<kimjetwav>iskarian: My tendency is to keep a version in /root that I edit and reconfigure from.
<ryanprior[m]>This ring a bell to anybody? I have python-pyopenssl in my requirements, and just for good measure I put openssl in there too explicitly but this did not fix anything
<kimjetwav>iskarian: That way the one in /etc reflects the current state of the system.
<breathein>iskarian: thank you! I like the idea of putting under version control
<iskarian>kimjetwav, ah, does /etc/config.scm automatically get updated when you reconfigure?
<kimjetwav>iskarian: Yes it does. Guix has a subsystem for provenance tracking which does this.
<kimjetwav>iskarian: All prior versions of the system profile (every time you ran guix system init/reconfigure) store the config used to generate them, plus other details like the guix version (which guix pull you used) and package channels, etc.
<iskarian>How do you feel about guix's progress since then?
<kimjetwav>The provenance tracking feature for keeping versioned config.scm copies was added because it used to be common practice to use the use `special-file` to have the config you init-ed from monadically embed itself in the installed system.
<kimjetwav>Huge progress. Very impressed. It was always cool but now it's cool and easy to use! lol
<the_tubular>I wouldn't consider Guix "easy to use" But I agree with the cool part
<kimjetwav>It definitely takes some getting used to but when I look back on it after having done that, I'm blown away by how crappy a lot of other package managers feel in comparison.
<iskarian>Haha! Definitely agree, it's only "easy to use" until you get past the surface
<the_tubular>I would definitely focus on the rough edges than a GUI to be honest
<kimjetwav>I've never been a fan of graphical package management. I feel like aptitude is the one graphical front-end to a package manager I've ever used, and I only like it because it enables instant dependency feedback.
<KittyOwO[m]>Has anyone here gotten `Kmonad` to work? Trying to figure it out currently hmm
<KittyOwO[m]>A graphical manager for Guix System would be great, I think someone was working on something like that for Nixos, long term I think Guix System can become a very user friendly (provided the person has the correct hardware)
<the_tubular>It literally just received an installer a few weeks ago
<iskarian>The Layperson usually doesn't *want* to read a manual before using a distro
<KittyOwO[m]>user friendliness is very important, user-friendly doesn't always mean the type of garbage corporations are shoving into proprietary software, it can just be having repetitive intuitive ideas and good documentation
<the_tubular>We're going to go back to my original point. I had no problem with Gentoo's handbook for example. But it isn't the same scope as Guix's Cookbook
<kimjetwav>iskarian: Definitely. I defer the final on user-friendliness to anyone other than myself. The manual used to be a lot "worse" as well, there was a big fat section on conceptual stuff - monads and gexpressions, right up front.
<KittyOwO[m]>on this topic aaa I have no idea what I am doing, I have never touched kmonad before let along on guix system xD
<kimjetwav>KittyOwO[m]: I gave kmonad a try a while back but set it aside for the future. I'd love to get it set up properly one of these days.
<iskarian>kimjetwav, oof. I've read through the section and I still don't "get" gexpressions except on an abstract level
<KittyOwO[m]>kimjetwav: Aw, while setting that up too far front might not be good, I am quite curious what they had written lol
<kimjetwav>iskarian: Yeah, like I said, I defer user-friendliness decisions to others. Mr stumpwm/guix/emacs+gnus over here. "But first, we need to talk about parallel universes."
<KittyOwO[m]>I would actually ironically use blender as a good example of good user experience, despite still needing some work
<KittyOwO[m]>the shortcuts all work on 2d mode or 3d mode, there is just a good amount of repitition in
<KittyOwO[m]>you don't have to relearn the entire program to do something slightly different
<KittyOwO[m]>its not "oh, well I am using this new tool now I have to remember these different buttons to do this same thing!" its just the same things over and over again regardless of context lol
<KittyOwO[m]>the same button will always bring up a menu to spawn things, the same button will always delete things, ect.
<iskarian>self-consistency is important, yes. (Currently why I'm considering abandoning evil-mode and just consigning my pinky to oblivion: too many plugins don't support evil-mode and the inconsistency is killing me.)
<iskarian>kimjetwav, one of these days, I will try a tiling wm... one of these days...
<KittyOwO[m]>so, consistency and really just good documentation are important
<KittyOwO[m]>arch despite being kinda bad is probably so popular because they have really good documentations, wiki, ect.
<iskarian>I wouldn't underplay the importance of having an intuitive presentation, though. There's a reason skeuomorphic controls were so good when phones were new-ish and people weren't familiar yet
<kimjetwav>Guix's command line experience is actually quite tremendous, the way sub-commands have parallel options, things which are semantically the same have identical options, etc.
<KittyOwO[m]>iskarian: seriously tho I don't understand default emacs config, it literally hurts my hand to use its insane. I need to figure out more of emacs but I will probably mostly just use it like vim anyways lol
<the_tubular>Cynic part of me would tell you arch is only popular because it's a meme
<kimjetwav>What you don't want to use a text editor designed on a keyboard with 200% of the keys your current board has? lol
<podiki[m]>what was that earlier about /etc/config.scm updating? I've been using a file elsewhere for reconfigure (that will go in version control, likely generated from an org file). but /etc/config.scm is just the original. though I know you can get any generation's config through guix system
<KittyOwO[m]>imagine something based on emacs emacs but with a more sane default configuration, and modernized with something that isn't necessarily vim-like but something that isn't physically painful like it currently is (perhaps something new, gasp!) and the express support for Guile Scheme instead of Elisp, while giving more modernized terms to things like frames/buffers/ect.
<KittyOwO[m]>I don't know how I ended up with two emacs in a row, but ok then lol
<kimjetwav>podiki[m]: Hang on I'm looking it up to make sure I don't mislead you.
<the_tubular>I feel Emacs is only tailored to devs though. Maybe I'm wrong
<iskarian>KittyOwO[m], ah, I use doom-emacs, but I use its built-in package manager; I'm new to it, so I didn't want to try and mix-and-match with Guix right off the bat
<kimjetwav>podiki[m]: Ahh, it's not config.scm, it's `configuration.scm` by default.
<iskarian>Though I still need to get in a good hour of manual reading just so I can move windows around...
<kimjetwav>The base-services set has a provenance service which stores the config used to generate the current system profile and availableises it in /etc.
<KittyOwO[m]>when I type `emacs /whatever/yeet` for example, it loads up emacs in gui GUI and the GUI allows me to `Evil-mode`, but, when I `Sudo emacs /whatever/yeet` it goes into terminal mode, and from there it doesn't have the option of `Evil-mode`?
<KittyOwO[m]>when I type `emacs /whatever/yeet` for example, it loads up emacs in gui and the GUI allows me to `Evil-mode`, but, when I `Sudo emacs /whatever/yeet` it goes into terminal mode, and from there it doesn't have the option of `Evil-mode`?
<podiki[m]>kimjetwav: not seeing what you mean (other than through guix system you mean maybe?)
<KittyOwO[m]>kimjetwav: I am pretty sure its config.scm by default?
<KittyOwO[m]>as in, get Evil-mode to be recognised in terminal mode.
<kimjetwav>KittyOwO[m]: Maybe, I'm on the debian box I use for work stuff right now. Can't look.
<kimjetwav>KittyOwO[m]: I can help with the emacs stuff but I'm hesitant to continue derailing #guix.
<KittyOwO[m]>thats fair, if you want we can talk in some other room, would quite like to figure out how to be able to use emacs in evil-mode for editing my config.scm XD
<podiki[m]>so just to summarize, I see in guix system list-generations the info about system reconfigurations, and it gives the store path where you can see the configuration.scm used to generate it (which is all very cool)
<iskarian>Am I missing something, or does `guix refresh -u <package>` not work for packages with a git source?
<podiki[m]>Kitty OwO: really briefly, I think what you are seeing is because running under root is a different environment, and usually not set to connect to X server without modifying authentication. you can open files with sudo access from within emacs of course, look at tramp (same used for ssh editing)
<seachala[m]>I was hoping to ask if there's anything I can do if I'm having a hard time getting Guix SD to boot. Currently, it's on a USB drive.
<sioonhho>recently started messing with guix, and I'm curious as to what's going on behind the scenes when use-modules is called, but I couldn't seem to find it in the source. anyone know where I could find it?
<kimjetwav>sioonhho: `use-modules` is guile's syntax for loading modules. It's not guix-specific.
<sioonhho>new to guile too if that wasn't obvious, makes sense now why I found `use-package-modules` and `use-service-modules`, but not `use-modules`. appreciate it! thx
<kimjetwav>seachala[m]: What's going wrong? What are you seeing when it doesn't boot?
<the_tubular>I forogt the name of the command, I'm trying to pass a config.scm and create a kvm virtual disk with it
<seachala[m]>kimjetwav: I'm getting thrown to a black screen with blinking underline for a cursor.
<kimjetwav>seachala[m]: Does it boot at all, like does it look like it's loading the OS after GRUB goes away? Do you get GRUB?
<seachala[m]>Right now I'm trying a USB boot, to run the install. In the past I had trouble at the last steps of the install script.
<kimjetwav>seachala[m]: Yes, but when you say it throws you to a screen with a blinking cursor, is this... before you reached the install script, or after? How early is this failure happening, is what I was wondering.
<seachala[m]>Is there also a nightly? I'm hoping to learn Guix inside and out.
<kimjetwav>No, there's no nightly. There's "stable" which is just, when they stick a pin in it and call it a new version, and there's latest, which is the CI system pumping out a new iso from the latest commit.
<ArneBab>KittyOwO[m]: keep in mind that the namespace /gnu of the *packages* is of the packages and the derivations created with them.
<ArneBab>KittyOwO[m]: you don’t want to use Emacs without CTRL mapped to capslock. Luckily most desktops provide a checkbox in the keyboard settings for that.
<ArneBab>the_tubular: there are also more and more writers who discover their love for Emacs.
<KittyOwO[m]>ArneBab: Yeah, I know how to use emacs for editing root files now by just opening emacs without root lol , also yeah maybe emacs will be less insane if I remap my keyboard for it. I am planning on reconfiguring my keyboard using Kmonad but I can't figure out how to get it to work lol
<the_tubular>True, but most writers are probably using Microsoft Word ...
<ArneBab>… which shows that the quality of the tool isn’t the main issue for most :-)
<the_tubular>I just finished a University literature class saw only Macs and Windows :/
<ArneBab>Emacs could be running there and injecting some sanity :-)
<KittyOwO[m]>hey, that's not fair, I think I have heard of a small number of writers still using typewrighters :P
<ArneBab>(that’s one main reason why I use Emacs: It is the program that’s most likely to accompany me wherever I’ll go in the future)
<the_tubular>There was a guy who got some mean eyes because he had a mechanical keyboard
<KittyOwO[m]>ArneBab: Maybe, but, emacs really needs to do some bandaid tearing on the default configs. For a community like this thats not that big of a deal, we are all willing to configure stuff to our liking in great detail, but, for someone just wanting to write having more sane default configs is more important
<vivien>Hello, I’d like to depend on guile 3.0.7 in my program because I’d like to use the new and shiny (system foreign-library), but I don’t know how to put that in my package definition. I have ("guile" ,guile-3.0-latest), but it still finds guile 3.0.2
<selvodka>noob here how wold i install youtube-dl om Nix-on-Droid ?
<kajurea>noob here , how i would i install yt-dlp on nix-on-droid ? Please
<MysteriousSilver>Hello! this is the channel for the Guix distribution, you might've confused it for nix :D
<vivien>Solved: I had guile 3.0.2 in native-inputs too
<sioonhho>I've seen in people's configs a package passed to `use-package-modules` and also to `packages` in `operating-system`, looked around but I can't figure out if there's a difference between the two or if they're two ways to do the same thing
<podiki[m]>hi guix, some questions on mcron services. where does output go by default, to the system log? (e.g. running a command that would output to stdout normally) or do you have to redirect explicitly
*bricewge wiped his disk by resuming with mounted filesystem
<sneek>iskarian, yoctocell says: re `guix refresh -u', I have exprienced the same issue lately, so you're not alone :)
<iskarian>sneek, later tell yoctocell: As far as I can tell, `guix refresh -u` never had support for git-reference; there are 2K packages with git-reference now, so we should probably have support. I'll seeing if I can write a quick PoC...
<yoctocell>iskarian: it doesn't have an updater for git-fetch, but it doesn have one for github urls. I was getting a weird error messasge when trying it on a package hosted on github. If the source type was unsupported it would display a warning saying "warning: no updater for PACKAGE".
<sneek>yoctocell, iskarian says: As far as I can tell, `guix refresh -u` never had support for git-reference; there are 2K packages with git-reference now, so we should probably have support. I'll seeing if I can write a quick PoC...
<iskarian>Where would we get the pgp keys to verify against for some random git repo?
<yoctocell>download it from a keyserver, I guess, that's what guix refresh -u does with tarballs anyway
<yoctocell>it does mean that if a key cannot be found on a keyserver, you cannot update the package with guix refresh
<lfam>With Guix, there are humans who decide which keys are valid. For 3rd party Git repos, that crucial piece is missing, making the signatures basically worthless
<lfam>Now, each package could include some metadata about which keys are allowed to sign tags
<yoctocell>which is the case for guix refresh -u on packages using url-fetch
<lfam>If nobody is deciding which keys are valid, then security is reduced to the github's own "who can push" authentication system, which is equivalent to what we have now
<lfam>It's definitely worth exploring how to implement this for `guix refresh`
<aadcg>this would be super useful, I thought about it the other day too
<lfam>Even for signed tarballs, aside from GNU and Linux and a handful of other projects, there's very little value to the practice since the question of "which key is allowed to sign tarballs" is not answered meaningfully
<iskarian>So, yeah, I think there would be no harm in implementing a git-fetch updater without verification, and later add it if/when we figure out a meaningful way to do it
<iskarian>One thorn in a git-fetch updater is that guile-git doesn't support shallow checkouts
<lfam>And as Guix demonstrates, a real codesigning system based on PGP requires a large amount of 3rd-party code, not provided by the PGP implementation
<clone>Has there been any work towards packaging gtk4? I looked at making a definition for it and I think it needs an updated glib. In glib definition there are comments about 'core update cycles', is one of those coming up?
<ruffni>muradm: not sure if your question is really understandable. what are you trying to do? if you package it, you'll be able to install it to a guix profile (and use the guile library as you normally would -- with a (use-modules) block)
<muradm>ruffni: in my guix system configuration i want to have a script which will use inotify facility to wait for file changes, so i can make that script with (gexp->script or (program-file, when i start writing it, there is no inotify by default in guile, if i package it, can i reference that package in (use-modules some how? for instance if i want to run let's say bash in my gexp->script, i do #$(file-append bash "/bin/bash") i don't
<muradm>install bash anywhere, it gets handled by guix to make bash package available
<muradm>suppose i made guile-inotify package, i want to do something (gexp->script "scr1" #~(begin (use-modules #$(guile-inotify-whatever)) .. of course this is wrong example
<muradm>str1ngs: inotify is api in the end of the day like popen or stat, of course you can use programs like inotify-tools, but it is a) not very efficient starting additional program b) not very clean to parse output of some program, if code is going to be written in scheme, would be more correct to have a binding for that
<leoprikler>and if there's no scheme code, you can still use FFI :P