<mekeor[m]>i don't know much about the go-importer. but to me, it sounds worth a bug-report, what you're telling :) <ngz>mekeor[m]: You may be right. I'll send a bug report tomorrow. For now, sleep time. <KarlJoad->Does GuixSD have a way to query the running system to determine that GuixSD is running? I want Emacs to be aware that it is running on GuixSD. On NixOS, I cat /etc/os-release, which does not exist on my Guix VM. <anjan>nckx: that sounds like the exact issue I was having and will prolly fix it for me <anjan>is there anyway I can test this? <nckx>Trust aside I could build you an image but then you'd still be deploying the unpatched kernel to /mnt, so I'd have to set up a channel, and… ugh. Unless I'm missing a more obvious path it's not pretty. <nckx>Now, you can add custom CONFIG_ lines to your system .scm, anjan, and the installer lets you edit it before deployment. Although its error handling is… not known to be great, so I can't even vouch for it handling a typo gracefully without immediately crashing. But it's an option, and probably the easiest. <nckx>It's ‘explained’ in the Guix cookbook but it's not drop-in simple, I think, and worse, I've never used that method so I'm useless to help. <podiki[m]>KarlJoad-: in shell scripts I've been using `if [[ -s /run/current-system/profile ]]; then` <podiki[m]>as that's pretty guix system specific; maybe there's something more emacs specific you can try (or you can always use host name, I use that too but less general) <KarlJoad->podiki[m]: I guess that works. I am slowly trying to switch from NixOS to GuixSD, and my Emacs config will have to reflect that. NixOS does not have that `profile` file, so that _should_ work. <KarlJoad->I can't use hostname, because my computers always get the same hostname, regardless of OS. <podiki[m]>KarlJoad-: there was another option that came up here (if you search the irc logs), but that's what I use for my simple cases <KarlJoad->podiki[m]: I feel like there would be a way for Guix to query the running system, to determine the version of the running OS. Obviously on NixOS this would error out, as no guix is installed there. <nckx>KarlJoad-: Apart from distro sniffing being bad practice (but this is for your own config so I won't bore you with my 27-slide lecture), I'd second podiki[m]'s answer as the probably least worst one. Maybe /var/run/shepherd existing, but that could in theory be left over from a previous boot. <podiki[m]>well you can have guix as a package manager too (like nix), so you need to test for guix system stuff <podiki[m]>(i.e. not just a 'guix' command or some output it can give that works on foreign distro too) <KarlJoad->nckx: I'm already committed to NixOS/GuixSD, so not real worries. I occasionally port the config for VMs, but I know that those do not use Guix/Nix. Although a slide deck with reasoning would be interesting. <nckx>The running OS doesn't have a version. There's guix system describe. I wonder what that does if the System isn't running. Probably something weird. <podiki[m]>i have a guix on foreign distro handy, let's see... <podiki[m]>backtrace, with 'no system generation, nothing to describe' message <nckx>OK, ‘guix system describe’ looks at /var/guix/profiles/system, so it would just report that, even if you hadn't booted Guix System per se. I *think*. <nckx>podiki[m]: Thanks! But that's because there never was a system, right? <nckx>I don't know if ‘dual-booting’ NixOS & Guix System on the same file system works in practice (should! probably!) but that directory would still exist if you'd booted NixOS. <nckx>(Not GuixSD by the way ☺ Old legacy name.) <podiki[m]>and then same with /run/current-system? or is that created by booting? <KarlJoad->The /run directory should be created at run-time. On NixOS, /run is a tmpfs. <KarlJoad->nckx: I would wipe the disk once I finally make the switch. Just getting used to Guile, Guix, Gexps, etc. before I make a switch. Need to test my desktop hardware next. <nckx>KarlJoad-: Yes, but it's not on Guix. <nckx>Of course that wouldn't matter in your case but it's a bit, hm ☺ <KarlJoad->Interesting... Is there any particular reason it is not? <nckx>That's not really a question I can answer. <nckx>For one, we don't run systemd, which started doing that (probably not uniquely, but it's the most common example). <nckx>I suspect that's the main reason that NixOS ‘does’ that. <drakonis>nckx: i'd say that trying to dualboot both on the same filesystem might get messy <drakonis>you can have something like subvolumes instead <drakonis>so they don't interfere with each other's presence <drakonis>speaking of which, maybe i should go and set guix up as a subvolume instead <podiki[m]>simple question for working on a package def, if I do guix build -f thefile.scm, how come that won't find functions from an srfi module (which I did use-module with it) <singpolyma>podiki[m]: probably you are trying to use the module in a build step <singpolyma>Build steps run in their own isolated interpreter, not in your module <podiki[m]>how do I do that properly then for debugging? <podiki[m]>and that's just for how guix build works when loading a file, because of how that loading and running works rigth? <singpolyma>That's always how build steps work because they run in a different process <podiki[m]>but different when you are defining say a whole build-system, then it forms its own module (sorry, little loose with the guile terminology still) <nckx>drakonis: Yeah, we were (somewhat unplannedly on my part) discussing that in PM. <nckx>Like, I'm pretty sure dual-booting Guix and NixOS will give you a NixOS /etc/os-release under Guix and other super fun things that nobody actually wants. <nckx>I kind of rely on mutable /etc now but I could work around it (and would probably be grateful in the end). <drakonis>i don't think it'd even work if you installed guix on top of nixos <breathe>Hello - I'm running Guix SD, and I'm having trouble executing binaries which are not installed in /gnu/store/. I am able to run the binary when I'm inside the directory which contains it by running `name-of-binary`, but then when I attempt to run `./name-of-binary` I get the error "bash: ./node-local: No such file or directory <breathe>If I attempt to run the binary from anywhere outside that directory, I get the same issue. <breathe>I've also tried adding the binary-containing dir to my $PATH and I get the same error <breathe>Ah I see from some IRC logs that I may need to set up a special file service so the binary can see the dynamic linker <M6piz7wk[m]>Is there any way to interact with the emacs configuration from guix? <M6piz7wk[m]>or preferably ask the user what do they prefer on startup.. but babysteps <jgart>What do people think of the suckless packages in guix upstream being extended with arguments so that they can take patches? So, dwm would be a variadic function that could take any number of patches as args, allowing a user to create their own dwm fork that way. I'm thinking of dwm-flexipatch here but built on guile instead: https://github.com/bakkeby/dwm-flexipatch *M6piz7wk[m] decided to use projectile-like project instead <M6piz7wk[m]>better implementation then using guix for this probably <jgart>M6piz7wk[m], I think there might be some guix home configs out in the wild for configuring emacs <M6piz7wk[m]>would probably make that into a separate channel so that it allows orienting the work more.. i dislike guix being all one huge channel that does everything <jgart>might be best to first get comfortable with guix in general then dive into guix home <jgart>I haven't really started using it yet <jgart>But I think I would like to have a hybrid setup <M6piz7wk[m]>but i prefer the project file tbh.. i already have the file hierarchy adapted for it and i don't want to force contributors to use guile to handle emacs <jgart>I would like guix home to only manage some things but not everything <jgart>curated suckless patches as guile variables might be fun <jgart>the above link is just a proof of concept <M6piz7wk[m]>i like the build-way of doing those though.. like defining all of this functionality at build time <jgart>how would you get the functionality of the patches into your software? <M6piz7wk[m]>like linux where you just have a config file that decides what is built <M6piz7wk[m]>just define a boolean value and then make the build system to read it <jgart>What I was thinking was to curate patches that are know to work well <jgart>and then, the combinatorial explosion from those give you a nice assembly kit for creating a fork declaratively <M6piz7wk[m]>yep seems as good idea just feels like a ticking bomb to me which parts break after each update O.o <jgart>you can mix and match as you please <jgart>We'd have to maintain it like all the other software that might have bugs <M6piz7wk[m]>hmm i prefer QA to handle those instead of constant fixing tbh <jgart>might be good to have unit tests :) <M6piz7wk[m]>like you know something integrated that would throw out a test failure that has to be fixed before merging <jgart>property based testing for combining suckless patches in myriad ways ha <jgart>M6piz7wk[m], what window manager do you currently use? <jgart>have you tried using stumpwm with the common lisp libraries packaged in guix? <jgart>might be a cool way to hack on your own config with guix and sbcl libs <M6piz7wk[m]>jgart: nope didn't get to that part yet.. i want to first finish working on my system management <M6piz7wk[m]>and making guix more user-friendly to get my team there to work instead of me on my things :p <jgart>kitnil is a guix and stumpwm user <M6piz7wk[m]>jgart: ye was looking at it.. but would just prefer doing like toggle switches that enable me to have functionality on a standardized layout <jgart>I think one way that guix can be better fit for production use is if libraries are up to date. That requires a lot of volunteers and working together. <M6piz7wk[m]>but then i hate having a menu etc.. on my desktop i want everything keybinded and integrated in the wallpaper <M6piz7wk[m]>jgart: and that requires guix to be more use-friendly and efficient :p <jgart>Maintaining rust libs in guix is a lot of work, for example. Even python libs are a lot of work. <jgart>We currently don't have a solution to manage poetry.toml builds, for example <M6piz7wk[m]>python is always too much work so i wouldn't even bother <jgart>That's one way guix can improve with python *M6piz7wk[m] never used poetry in his rust <jgart>What do you mostly use for work? <M6piz7wk[m]>i don't have hard preference for a programming language it depends on what the spec demands <M6piz7wk[m]>but in general i prefer standardized and spected project that allows me to build the project parts in different langs independently with a multiple methods to do bridge to frontend and backend <M6piz7wk[m]>since i take personal pride in my software working everywhere :p <KarlJoad->If I use guix-home to install some software, do I need to manually edit my PATH myself? Right now, I know the software is present (.guix-home/bin/mu works), but it is not being resolved on the command line. <M6piz7wk[m]>KarlJoad-: Probably better question for the person who maintains guix-home O.o <KarlJoad->M6piz7wk[m]: Makes sense. It's also pretty new, so I am not surprised if there are issues. <libry>New user here. Is it possible to install a newer version of gnome-shell than what comes in the default repo? <libry>building it sounds like a headache and the gnome devs suggest against it from what I've read. <excalamus>libry, you'd need to build it yourself most likely. Probably not a good idea for a first attempt at packaging. <M6piz7wk[m]>libry: you can apparently specify the version using e.g. `guix install vim@8.2.3487` <M6piz7wk[m]>would be cool if we could do `guix install vim@jjsjkaghfhfd5h4s65dfh4` to install the commit though <excalamus>using version, I think, will only work if there's a definition. You can check that with `guix edit your-package` <excalamus>you might be able to copy a definition from there and get it to build with an updated commit hash, etc. <libry>It appears as though all these definitions in gnome.scm are 3.34.2 <KarlJoad->I cannot seem to find documentation about this, but can Guix System accept a password to use for a user? Not an initial password, but their normal password. NixOS has this option as hashedPassword. <excalamus>but I doubt that would work for gnome. But, great thing on Guix is you can try in guix shell <libry>pop-os shell needs a couple versions greater than 3.34 <libry>I like gnome and tiling and it was what I was using on fedora. i'm making my way over to guix and wanted to copy a bit of my setup <M6piz7wk[m]>KarlJoad-: there is an example to use `(crypt)` which afaik does that but i didn't have time to mess with it yet <M6piz7wk[m]>libry: I see.. then i would file a bump request or tried to change the version manually <podiki[m]>newer gnome is in core-updates-frozen (or -batched-changes) so it is coming <podiki[m]>you can install different versions often with package transformations <podiki[m]>I do that for some to have a current git or other version <libry>Pokiki can you point me in the right direction in the manual? <podiki[m]>they are quite awesome (and you can use them in package manifests too) <libry>Much appreciated. I'll take a look at that and see how far I can get after I'm finished with my initial setup here. Really enjoying this distro <podiki[m]>package transformations won't do much for something like gnome, but for individual packages can be easy way to get different versions or branches <KarlJoad->This seems to imply that you should only use it for your initial password, as (crypt) takes in the plaintext to encrypt as well. <M6piz7wk[m]>dunno x.x but if you figure it out then let me know i also need way to handle user passwords <KarlJoad->M6piz7wk[m]: Don't wait on me. I am only working on this now because I am avoiding my homework. I would like to be able to declaratively manage my user's password, just like on NixOS, because I am lazy and do not want to have to remember to change my password. <M6piz7wk[m]>but that was my excuse to avoid the school you stealer!~ <excalamus>Guix is so cool. For blogging about it, I realized that I should give the guix describe so that people could do a time-machine and follow along at any point in the future. <libry>That's a great idea. Also TIL guix time-machine <libry>I'd use that functionality for a tutorial, or for trying out others configurations. <podiki[m]>and you can pin your channels to specific commits to make everything snapshotted <libry>too much to learn, too little time D: <excalamus>podiki, I'll keep that in mind. I've been building using the bare-bones first example that the docs give. I really need to start using a channel! <excalamus>...and I need to start using a manifest. So much to learn, one step at a time <libry>Ah, so similar to a Puppet manifest, in that it describes the state of a configuration <libry>Does it normally take a bit of time to build the profile when installing packages? <libry>or should I be doing something more effeciently for new packages? <libry>i'm just using guix install packagename atm <libry>seems to take at least a minute for that profile to build for X amount of packages. <excalamus>I'm just using guix install my-package, too and I've not had issues with long builds. occasionally the spaceship blasts off <libry>hm, maybe it's just my computer then <anjan>keep in mind, I need those modules to even boot into my computer <anjan>which file do I edit so that guix compiles linux-libre with those modules enabled during the install <excalamus> I'm on a dell xps-15 9550. The sticker says i7 <jgart>Has anyone run into something like this before? <jgart>"st.info", line 236, terminal 'st-bs-256color': /homeless-shelter/.terminfo: permission denied (errno 2) <excalamus>I need to head to bed, but simon on the mailing list was super cool and helped me figure out how to clean up guix command output in emacs org, so I'm ready to start blogging again. Also looks like org mode has an async babel since may. Exciting times. <jgart>The current st package in guix is broken since the terminfo entry was never compiled and just disabled <libry>anjan it looks like you can feed the make-linux-libre function a configuration file, or specify configurations directly in the function? <anjan>libry: so Im at the install. I have partitioned and I chose edit the config <anjan>which file do I edit and put that info in? <libry>do you have access to the guix utilites? <libry>that should get you to the configuration file you need to edit. <anjan>but when it goes to install, will it compile with that config and install linux libre with that config? li <jgart>Oh I see why. That tries to write to $HOME <jgart>and it should go in the store/ in /share/ instead <libry>hmm, i'm not entirely sure anjan <anjan>;_; Ive been trying to install guix for like 2 days now <libry>i don't have any first hand experience with this unfortuantely <anjan>I just wanna use this distro lol <libry>i totally understand, it sucks to not be able to use something due to something out of your control like coreboot/libreboot incompatability <libry>i wonder if i'll run into any issues with my T400 that's librebooted <libry>anjan you might try the mailing lists as well <anjan>libry: so the boot image boots up fine <anjan>it's just after I install, it doesnt boot <anjan>Im wondering if thats cause I encrypted everything <anjan>libry: do you know if it's possible to encrypt after the install? on GUI li <apteryx>anjan: *whole* disk encryption is supported; but don't try to put your /boot on a second unencrypted partition <anjan>cause I dont have a seperate boot partition <anjan>I press enter on the boot into linux libre <anjan>and then all I see is the grub background <apteryx>perhaps a GPU driver issue; what graphic card do you use? <apteryx>so grub prompts for your LUKS password; then the linux-libre kernel prompts for a second time, right? <anjan>apteryx: coreboot prompts me for my luks password <anjan>once for home and once for / Im assuming <nckx>anjan: What if you type your passphrase twice, again, blindly, once the kernel boots? <apteryx>you have different encryption for / and home? <anjan>sigh, I already nuked debian. nothing to lose I guess <anjan>apteryx: ya, theyre on different partitions <libry>it seems like adding the appropriate modules to the make-linux-libre configuration on installation is your best bet if the issue is the coreboot/libreboot LUKS/grub handoff <nckx>I thought you'd already installed Guix. <libry>anjan if you can spin up a VM i'd try that first, see if you can manipulate the make-linux-libre functions to enable kernel modules. <anjan>I set the luks password to 12 <anjan>the docs for guix are pretty good <anjan>but I dont think I can grok it <anjan>if this doesnt work, Im waiting till that patch is merged <jackhill>jgart: ok, yes, I built the newer janet using prefix instead of destdir and indeed it improves, at least, the pkg-config file <jackhill>by improve, I mean they have the full store path rather than just /include/… and /lib/… <nckx>I'm working on a v2 that I think can be merged ever more easily (it won't conflict with the SIMPLEDRM driver, even though that's just been added and nothing uses it, it's still cleaner). <anjan>Ive always wanted to use a fully free distro <anjan>but they were never as polished as other ones....I guess cause people like me never took the effort lol <nckx>That's ‘easier to upstream’, not easier for you to apply locally, I'm afraid. <jgart>terminfo entry wasn't compiled in the package definition and would cause any programs with colors to fail to open <libry>nckx do you know where anjan would put the extra kernel modules in make-linux-libre definition? <anjan>well, that and how do I get the installer to compile the kernel with my config <jgart>jackhill, cool! send a patch for it <nckx>But no, sorry, I find the dox unclear myself and don't use make-linux-libre myself. <jgart>jackhill, what should we do about jpm? <libry>sorry maybe modules is the wrong terminology <libry>anjan it looks like if you provide that definiton with the extra confgiurations you need, it should build the kernel with those definitions. <nckx>Oh, you mean the CONFIG_ items? It's in the cookbook if you can get that example to work. <libry>so no building on your end will be nessecary <libry>but you will have to grok that mess ahah <anjan>is there anything like arch-chroot for guix <anjan>that would be so much easier than getting the installer to do what I want <nckx>There's no chroot helper for Guix if that's what you mean. Why do you need to chroot? <libry>if guix works as i think it does, using a chroot wouldn't do anything for you as guix uses that function to build the kernel on install <anjan>so Im thinking, I boot into the live iso <anjan>chroot in to my installed guix <anjan>change and compile linux-libre with the modules I want <nckx>Mount /mnt, edit your system configuration in /etc/mnt, run guix system init /mnt/etc/your.scm /mnt, unmount /mnt, reboot. <anjan>the "just type in your luks password even tho you dont see anything" worked <anjan>OK nckx how do I apply and test your patch <nckx>Good, now you can help improve Guix, because I giggled when you said ‘polished’ ☺ <anjan>on an installed guix image!!!! <libry>i need to figure out how to contribute.. <libry>time to learn scheme i guess <libry>if nckx goes afk, that patch will show you exactly what files nckx removed, and which ones he added <nckx>anjan: Sorry, I'm really tired and was actually off to bed (it's 06:40 here and I need to get up at 09:00). <libry>So you could always manually add and remove <anjan>no worries nckx, Ill grok the docs <anjan>I dont think I can fully communicate how happy I am to use guix <libry>:) glad i could be of help. hope you get it working in its entirety <nckx>I'll be rebuilding 5 kernels whilst I sleep (I'm amazing), and if that goes well I'll send a slightly different v2 patch. <nckx>But this one will be more future-proof. <libry>well i'll buy you a coffee when i don't run into any issues on my librebooted t400 <jgart>this patch got delayed because we couldn't decide <anjan>ya thanks nckx Ill send feedback if this fixed my bug tonight probably. Im so excited I might pull an allnighter playing with guix <jgart>there's a new version out but I'd like to figure out where people would like to see sc-im land. what module should it be in? <jgart>libry, I host a guix packaging meetup at the end of the month. We usually work on packaging or upgrading something and then send a patch to upstream at the end of the meetup. Feel free to join. Last meetup we worked on the guix cookbook. <jgart>I usually announce the meetups on guix-devel mailing list <libry>I'm signed up to that so hopefully i get that e-mail <libry>Is there any pre-requisites I should touch up on? <jgart>we usually pair program on a Guix System server <jgart>so everything is installed there <libry>okay cool, i'll read the documentation and see if I can join that at the end of this month <jgart>but if you'd like to try things locally then you could try preparing a guix checkout for building stuff <libry>excellent, i will clone and tinker with that this weekend a bit hopefully <jgart>to modify a guix check out and tests things you need to use ./pre-inst-env in a guix shell <jgart>The above script will probably be updated soon to use `guix shell` instead of `guix environment` <jgart>but `guix environment still works as intended for now <libry>can guix shell do the same containerization? <jgart>the new thing is the -D or --development option <libry>thanks for all of thise information jgart, its much appreciated <libry>i've bookmarked this for tomorrow <jgart>but not the default is what used to be --ad-hoc <libry>i still need to get a basic stable setup coming before i dive too deep right now <jgart>and there's a few new goodies added too in `guix shell` <libry>i only recently was able to install this distro with a new a9k wifi card <jgart>I mostly use Guix System on servers and guix on my main foreign distro machine, void linux <libry>oh right on do you find it easy to use with your servers? <jgart>might hack on Guix System desktop more at some point again <libry>i actually run a k8s cluster at home and i've thought about using guix or Nix to replace a lot of functionality of my ansible init scripts <jgart>that's a WIP lib project I had started having fun with <jgart>We use the library on one of our servers <jgart>It's just syntax for fun at the moment <jgart>alternative ways to specify ssh keys, user accounts, collections of packages, etc... <libry>a bit unrelated, is this a self-hosted git solution? <libry>jgart how did you learn guile/scheme? <jgart>It's not self-hosted but it can be <jgart>If you want to self host something like sourcehut and just need a git forge I think you're better off with smithy <jgart>You'll have less headaches and it looks better <libry>I found it it so difficult to make gitea look as simple as I needed it to be <libry>and gitlab is monstrous so that's a great solution <jgart>regarding scheme, I would say #scheme, #chicken communities are pretty active with talking about functional programming stuff and learning <jgart>Scheme probably has the best learning resources that are free <jgart>you can even install it with guix <jgart>But it is a difficult read for beginner I would say. The first three chapters are approachable for a beginner <jgart>just translate the stuff as best you can to guile <jgart>don't worry about learning macros in the beginning <libry>okay, i will do that then. i've picked up the little schemer, so perhaps i'll switch to one of these suggestions <jgart>just concentrate on how to write functions and compose them <jgart>you'll learn some recursive ideas from the little schemer amongst other things <libry>ah! okay then i'll keep on going with that one then, and hit sicp afterwards if it ends up being a good intermediate book <jgart>little schemer -> scheme the programming language -> htdp -> sicp <jgart>that might be a better progression <libry>excellent, i will start making my way through then. thanks for the suggestions <jgart>learning stuff from other functional programming languages can also help <libry>i use python and ruby at work, so I sort of get functional stuff from ruby but i've never been able to replicate anything i can make in ruby in lisps yet <libry>it seems as though the `map` functionality in ruby provides a bit of functional programming syntax <jgart>everybody will choose their own path through learning so you'll have to decide what to spend your time on and what to ignore <libry>i'll start with lisp because i really want to be able to grok things like this kernel code and help people a bit more <libry>that produces a list of every atom 0-12 with 1 added to it? <libry>that's actually quite nice to look at <anjan>in my bash_profile, should I have GUIX_PROFILE="$HOME/.config/guix/current" or GUIX_PROFILE="$HOME/.guix-profile" <libry>is the (define (func x) (+ x 1)) <jgart>It's how you define a function in scheme <jgart>You can rewrite it to be explicit and use a lambda form <libry>right and kind of unncessecary <libry>dude im digging that all of these are free <jgart>If I'm not mistaken define is a macro that writes the lambda for you so you don't have to <libry>just full textbooks on the internet <jgart>(map (lambda (x) (+ x 1)) (iota 12)) <libry>(lamda (x) (x + 1 ) (iota 12))? <jgart>I was just showing it in the context of using it with map <libry>its a function that returns all numbers from 0 to the atom that you give it <libry>iota 12 => 1 2 3 4 5 6 7 ... and so on <libry>i just picked that up from the docs <libry>i didn't know what it was either <libry>alright well i am off for the night. thanks for the help jgart i will be around and i'll keep an eye out for the meet-up e-mail. <jgart>(map (lambda (x) (string-append "hello " x)) '("libry" "jgart" "anjan" "raghav")) <anjan>ok my system.scm has (use-service-modules desktop networking ssh xorg) <anjan>but when I ran "guix install dwm" <anjan>as my user, (anjan) and tried startx, I get startx complaining No such file or directory: /gnu/store..." <tissevert>anjan: thanks for the link ! I would've expected something along those lines, user environment vs. system environment, but it's good to find an explicit tutorial <tissevert>out of curiosity, what was the other end of the "No such file…" error message ? ".../bin/dwm" I suppose ? <liam0>I was sitting in the guile repl the other day, hitting tab, and wondered if guile has better tab-suggestions? I imagine the REPL quite powerful if every CLI library refined what arguments were likely based on the user's session and current input. <jgart>does st currently work for people with color terminal programs like alsamixer? <tissevert>jgart: isn't that the default terminal for i3 ? I think I got it installed by chance giving i3 a spin in a VM <nckx>jgart: Yes, ‘$(guix build st)/bin/st -e htop’ shows all the colours. <tissevert>don't have a sound device in the VM apparently but htop is coloured too (thanks for the idea nckx) <nckx>I played with TERM but its value (including unset, nonsense) makes no difference. <kittyblam>yknow, just a showerthought, has there ever been much of an attempt to port a BSD to guix? <tissevert>hmmm what do you mean ? run guix with a BSD kernel ? <nckx>kittyblam: Not as far as we know. <tissevert>(I would've though : porting guix the package manager to BSD, but since you specified "Guix System", I'm at a loss) <kittyblam>Like how Guix System currently uses Linux-Libre or experimentally Hurd <kittyblam>nckx: ah, hopefully someday that changes, or Hurd gets more development lol <kittyblam>but, I imagine if someone someday tried making GuixSystem with, say, a deblobbed OpenBSD or something I imagine it would be more rapidly useable than if Hurd ever is a daily driver lol <kittyblam>well thanks for the response, imma slip away lol <lilyp>I think there was talk about using the BSD kernel (like some version of Debian) some while ago. <lilyp>Obviously it'd still be a GNU system on top, which kinda defeats parts of BSD (particularly the userland thingy) <lilyp>I'm not sure whether it was IRC or the ML <nckx>My thoughts too. Either you rip out the kernel (in which case your using it in a rather unsupported way) or you're interfacing with an entire OS area instead of a kernel notorious for not changing its interface. <lilyp>Why walky walk when you can talky talk :) <nckx>Not that there's anything wrong with that. That's why this window exists. *nckx talks into the window. <nckx>But I'm not convinced there's a git repo on earth with more than a copy of Guix and a ‘TODO: BSD’ commit on top of that. <lilyp>Psh, it's obviously "Update README" <nckx>mv README{,.old}; echo TODO >README <nckx>I've seen repos like that. There's something creepy about them. <florhizome[m]><lilyp> "I think there was talk about..." <- There was something called kfreebsd i think. <lilyp>yep, that's what people in the past were talking about <lilyp>You'd have a Guix GNU userland ontop of the FreeBSD kernel <tissevert>reading this channel I was under the impression that people generally used manifests to install their preferred software (text editor, version control systems, browser, music player…) in user profile instead of system-wide <tissevert>can these be used to prepare a live USB too ? <lilyp>But you can absolutely guix pack your manifest and have it ready on the go on your USB stick^Wdrive <tissevert>hmm, I was more thinking about guix system to generate an iso image, then dd that to the device, wouldn't that work ? <liam0>I got the impression that the Live USB download was built with Guix <nckx>Some people define ‘live’ as bootable core + persistent storage and Guix doesn't do the second part. <nckx>But yes, absolutely liam0. <nckx>The official installer is just a ‘guix system image <installer operating-system definition>’ away from anyone. <nckx>You can always manually create a second partition, of course, and it wil probably work if you don't step on the GPT/ISO hack's toes. <jgart>trying to change default search engine from google to ddg <nckx>And . → \\. just for correctness. <jgart>tissevert, iirc i3 doesn't come with a default terminal.. <nckx>Both only in the google string. <jgart>or where can I read about them? <tissevert>jgart: ok, I got it installed somehow from the installer selection i3 as "desktop environment" ^^ <nckx>? is meaningful in these regexps, it means optional; a? means ‘match "a" or ""’. <nckx>Writing \\? in a Guile string translates to \? in the regexp which simply removes the magic. <jgart>I'm familiar with ? for single character <florhizome[m]>I think i should contribute wayfire and related packages as soon as i can. Maybe some fixes will be still needed. So far it doesn't install it's .desktop file f.e. <nckx>So the regexp "search?q" will NOT match the string "search?q" but it would match "searcq". <jgart>should that regex have modified something nonetheless? <nckx>No, that's what my previous line implies. <jgart>that's why it didn't change anything in the lua files then <jgart>what regex standard does guile use? <nckx>It's unlikely that upstream would change the URL, but if they'd (say) add a ‘www.’ to that your substitution would silently have no effect. <florhizome[m]>i'd kinda be fine delegating the official contributing process^^ <nckx>There is no pre-first-patch process. You don't need to assign copyright to Guix/GNU. <nckx>Your copyright line (you can't opt out of copyright) can even be pseudonymous, dubious as that sounds and probably is. <jgart>can you also opt out of copyright? <jgart>Oh, I mean not putting you name at the top of the file <nckx>Is the super simplified answer anyway. <jgart>when adding more than 10 lines or whatever <nckx>The ‘10 lines’ thing is just a very sloppy Guix heuristic for ‘this is likely copyrightable and this probably isn't’. You could contribute 1000 lines of uncopyrightable code or (one can dream) 3 lines of copyrightable genius. <jgart>I just feel it gets a bit messy. What happens when you have 500 different contributors to a single file? Then you have to read all these copyright statements before you see code <liam0>Credits at the bottom? Not a lawyer... <nckx>I just C-s to the code I need and it seldom matters whether I skip 530 lines or 500 but I agree. <jgart>Could the copyright statements go in a separate file or is that against GNU policy? <nckx>Per-file, at the top, is generally considered ‘best practice’. Then it depends on which lawyer you ask. Most will tell you bottom is probably fine (…‘but if you want to be as safe as possible…’). <nckx>So, with an answer like that, most people/businesses put it at the top 😉 <avalenn>And more, you can have copyright lines in the header for code that was removed long ago <jgart>lawyers will need to look at the git blame <nckx>And a hypothetical court case will look at the history anyw—exactly jgart. <nckx>If Jedbob contributed code the court deems copyrightable, it doesn't matter one bit whether he added © Jedbob at the top or the file. Likewise if all his code was removed and the statement intact. <avalenn>Yes. As git is becoming the preferred form of source code distribution I think that copyright notice in source files is each day less relevant. <nckx>Don't think too much. It can be severely misleading. <lilyp>watch me do 10k lines of uncopyrightable code: guix import crate ... <jgart>I sent a patch for luke's fork of st. I thought about it again and I don't think I want to/have the time to maintain a fork of luke's fork. The home page for the package is his github project page. Is that still an issue? <lilyp>I'll take a peek, but I promise nothing <jgart>I was having issues with st before and xterm256 colors without the terminfo files in place <lilyp>The xst one LGTM but the description needs some work <jgart>the two forks of st inherit from the st package <jgart>both of the st forks are packaged by nixpkgs upstream <lilyp>yeah, plus a bunch of links to suckless.org <jgart>I can remove all the bullet points and just put a description if that's better <lilyp>For the luke smith one, I don't particularly endorse packaging upstream stuff that has no release <jgart>Raghav had written the bullet points for xst <lilyp>especially when it's a fork of something we already have <lilyp>ad xst the description also lacks a mention of Xresources although the synopsis has it <lilyp>like that'd be one of the first things to mention <jgart>It's very different from what we current have in that it adds a ton of very useful patches <jgart>st is quite bare compared to those forks <lilyp>true, but it's trivial to apply those standard patches on your own <lilyp>we even have a transformation that does exactly that <lilyp>though suckmore still sucks for requiring patches for every little thing in the first place <jgart>sure, but it's convenient to just have a package that someone can install <lilyp>sure, plus from the looks of it xst at least put in the effort to make a release <jgart>there's many packages in guix though that don't have releases and many are good too <jgart>it's hard to get everyone to make a release if they don't want to for some reason <jgart>I can open an issue I guess for upstream... <jgart>lilyp, thanks for reviewing! <tissevert>jgart: you were absolutely right, it's just the way /etc/config.scm is generated by the installer, it manually adds the st package to i3-wm <florhizome[m]><lilyp> "true, but it's trivial to..." <- this is where more decentralized distribution would come in I guess? <florhizome[m]>there’s also sway-borders, rofi-wayland (in general wayland compatibility forks)... <florhizome[m]>What’s the most convenient way of developing system services? Can I do that from the user level repl? So I can test something before I put it into the system config and reconfigure ***xgqtd_ is now known as xgqt
<florhizome[m]><nckx> "There is no pre-first-patch..." <- well, that’s a relieve^^ I also thought about style (comments, etc?). but I wanted to look at the referring section in the man too. <lilyp>florhizome[m]: you can already do whatever you want in your own channel <lilyp>not every package needs to be maintained by guix <lilyp>ad system services, typically you'd spawn a VM or in very dire circumstances reconfigure your system from pre-inst-env ***smartin1 is now known as smartin
***Guest3449 is now known as roptat
<roptat>finally got my armhf system updated ***vlorentz1 is now known as vlorentz
*roptat just updated translations <roptat>I don't think so, the VM creates virtual hardware <smartin>Hello is there libuuid / uuid-dev in guix? <roptat>smartin, I think it's part of util-linux <smartin>roptat: I need dev headers to compile some sources and with util-linux I've got fatal error: uuid/uuid.h: No such file or directory <roptat>it's the same package, but another output <apteryx>hi! I'm trying to git bisect mrustc on the cufbc branch; and not having luck it seems. I have git cloned mrustc the mrustc soucres at /home/maxim/src/mrustc, and tried things such as: guix build -e (@@ (gnu packages rust) rust-1.39) --with-git-url=mrustc-source=file:///home/maxim/src/mrustc --with-branch=mrustc-source=HEAD (reuses cached version) <apteryx>or guix build -e '(@@ (gnu packages rust) rust-1.39)' --with-source=mrustc-source=file:///home/maxim/src/mrustc --> guix build: warning: transformation 'with-source' had no effect on rust@1.39.0 <apteryx>the "mrustc-source" input is an origin, not a package; that may be why <lilyp>--with-source transforms the source field of a package, you might need --with-input, but then you'd have to build the package... <lilyp>I don't think we have transformations for origin inputs <vivien>Hi, it seems that commit d82fd7c2dd542693988f61fb15c020e3209ac7ec broke webkitgtk again on i686 <KE0VVT>I love how there is an installer for foreign distros these days. <tissevert>ok, I have no idea how I managed this but I built a system that more or less works in tty but I can't seem to spawn anything in Xorg <tissevert>I generated an iso from a system config, then dd'ed it to a USB device <florhizome[m]><roptat> "I don't think so, the VM creates..." <- so any hardware-level service would have to be developed in cycles of system reconfigures? that kind of explains why there are so few. <tissevert>I don't really know how to troubleshoot anything since I can't even start a terminal to run the other programs for them and look at stderr <jgart>tissevert, can you share the config that you built the iso from? <jgart>and the command you ran to dd the image to the usb? <jgart>It would be much appreciated <jgart> ask because I ran into some issues last time I tried to do this <KE0VVT>guix install: error: failed to connect to `/var/guix/daemon-socket/socket': No such file or directory <jgart>KE0VVT, did you try logging out and in after installing guix? <tissevert>oh, so you've done something similar ? that's great ! I'll send you those data as soon as I manage to take them out of the VM (I'm working from within qemu, my host system is garbage) <KE0VVT>jgart: Logged in and out of GNOME session. <jgart>It sounds like your daemon might not be running <KE0VVT>jgart: Does it not enable itself when you use the installer? <jgart>sudo guix-daemon --build-users-group=guixbuild <jgart>and then in a different terminal try to install something with guix <KE0VVT>jgart: What on earth?! sudo: guix-daemon: command not found <jgart>maybe try running the installer again <jgart>do you have that direcctory? <jgart>do any of those commands work? <jgart>another possibilty is that your PATH variables are not set in your bashrc <jgart>did you add them after install <KE0VVT>/home/caleb/.config/guix/current/bin:/home/caleb/.local/bin:/home/caleb/bin:/home/caleb/.config/guix/current/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin <KE0VVT>jgart: Guix stuff seems to be in place. <tissevert>jgart: I generated the system with the following command <tissevert>and the content of config.scm can be found at marvid.fr/~tissevert/config.scm <tissevert>sorry, I don't know why firefox didn't copy it with the Ctrl-L <jgart>how did you dd it to the usb? by giving the store path to the iso? <tissevert>sudo dd if=/gnu/store/px9p…48i-image.iso of=/dev/sdb <jgart>I recently got a guix system container running <jgart>Arun Isaac had shared a config with me <jgart>guix system container test-base.scm <tissevert>ok, I think I had managed to start guix-generated qemu VMs without thinking too much about it <tissevert>are there particular packages to include or stuff ? <tissevert>ok, so probably my empty file-systems are a problem <tissevert>but I just can't understand how you can fill them when you're generating an iso image <tissevert>you don't even know what device it's going to end up on : / <jgart>then you can enter the container with something like the above command <jgart>13153 is the PID of the container <tissevert>you suggest to make a container out of the config I shared <jgart>I had tried running a container before some months ago but ran into some nasty bug and forgot what it was <jgart>It worked fine yesterday for the first time though <jgart>not from the config you shared <tissevert>so what exactly can one fill instead of /dev/sdX ? <tissevert>or could that be the cause of my weird issue ? <jgart>then you have to run the guile script the is produced in the store as root <tissevert>the container is launched, it has taken the prompt <tissevert>so I guess I can enter it from another shell <jgart>It'd be nice if we could run those system containers with root <jgart>the prompt says what to do next <jgart>I ran that container on a foreign distro <tissevert>here I'm running it from guix within a qemu VM so, I was pretty much ready to place a bet on it working, or else I'd have been very disappointed <KE0VVT>jgart: [caleb@bender ~]$ guix install haunt <KE0VVT>guix install: error: failed to connect to `/var/guix/daemon-socket/socket': No such file or directory <KE0VVT>jgart: Could this be a SELinux issue? <efraim>`systemctl status guix-daemon.service` <mbakke>KE0VVT: you need to relabel /gnu/store after running 'guix pull' as root with SELinux <KE0VVT>mbakke: I don't know how to do that. Why doesn't the installer do that? <KE0VVT>guix pull: error: failed to connect to `/var/guix/daemon-socket/socket': No such file or directory <mbakke>KE0VVT: try 'restorecon -R /gnu /var/guix /etc/guix' <mbakke>KE0VVT: see also the SELinux section of the manual *mbakke has to go, good luck! <mbakke>KE0VVT: that's the one, you'll also need to do the 'semodule -i' step whenever there are changes to the policy <KE0VVT>Hm. I don't know where etc/ is supposed to be. /etc/guix/ contains no “cil” file. <davidl>anyone who is running Guix on ARM to host things, or to virtualize x86 and host things? <davidl>I basically want to know how I can host things on Guix on a foreign distribution on ARM. <kozo[m]>davidl Hey, if you can run cuirass on a foreign distro, you could tell it to build packages for ARM. I do that using guix system so I'm not sure how it works on a FD <anjan>Hi, I installed guix but now the laptop wont suspend when I close the lid. I found out that I need to change a "elogind-service-type config =>" in config.scm. I did that but elogind is not installed <anjan>I do have use-service-modules desktop so Im wondering why thats the case <roptat>elogind doesn't need to be installed for the service to run <florhizome[m]>so I'm trying to build "wayfire extra plugins" now. the install phase fails trying to install stuff into wayfires store file directory. so i guess it would just need write permissions for that in that phase. or is this the wrong directory anyways since this is later installed by guix anyways in the right system directories and i would need to correct the installation path? <anjan>roptat: ok, so what do I need to do to fix suspend on lid close <roptat>florhizome[m], wayfire extra plugins is a separate package from wayfire, so it can't install to its store item. Never use write permissions on the store directly <roptat>a store item is the result of building a package, other packages shouldn't try to influence that, so you'll have to find another way to install the files and make them work on your system <roptat>anjan, I don't know, maybe your change doesn't have any effect on the service list? Can you share your config? <roptat>also, you need to reconfigure the system once you changed the config, and you might have to reboot or reload some services for the new config to take effect (probably restart at least elogind) <ekaitz>hi guix I have a question about guix shell, how does the cache work? <ekaitz>more specifically, how do I clear the downloaded packages from my system? <ekaitz>I tried guix gc but I'm not sure if it worked as expected <florhizome[m]>roptat: i kind of thought that. i guess overwriting the to the output path will suffice, that should not be the problem. more so asking myself, what is the place in a meson project to do that.. <roptat>no idea, maybe there's an env var you can set, or you'll have to modify the meson script <Olivetree>Anyway I can use nouveau in guix packages while using nvidia in my main system? <jgart>ekaitz, they only thing I know related to the cache with `guix shell` command so far is the `--rebuild-cache` option <jgart>I'm unclear also how `guix gc` can interact/be used with `guix shell` from a user's perspective <lilyp>Olivetree: probably yes, but do report bugs (that is real breakages, not "performance is awful because I can't use the blob") should they occur <lilyp>there's also discussions w.r.t. using the nvidia approved "i can't believe it's not a blob loader" blob loader, but we'll have to see about that <lilyp>found the American Guixer :P <oriansj>lilyp: well there are a good few of those; also a half dozen timezones covering us <lilyp>sure, but if it's late evening in central europe, eastern europeans would call that night and western ones perhaps just evening :) <Olivetree>lilyp: I meant to ask how. Because just installing mesa/nouveau doesn't make glxinfo work <lilyp>lemme check which package has glxinfo <lilyp>also, you don't want to install mesa or nouveau in your profile, you typically only want it linked to the applications you use <lilyp>so 'guix shell mesa-utils -- glxinfo' ought to work on its own <lilyp>'guix shell mesa-utils --pure -E DISPLAY -- glxgears' <Olivetree>Not for me.. just fails when trying to load dwrast <lilyp>hum, do you always use the blob driver or do you have a setup where you have to manually use it with stuff like optirun? <Olivetree>Always use. X11 is loaded with it and never switches, Intel's GPU has another X11 running in it <lilyp>and glxgears runs fine on the intel gpu? <podiki[m]>anyone here do common lisp stuff on guix? curious how to properly use the sbcl- packages (i'm used to quicklisp for loading) <lilyp>assuming you have all the dependencies in the environment "sbcl your-script.lisp" ought to work <podiki[m]>I mean where do sbcl-whatever packages live and how do you load them? <podiki[m]>(sorry it is a basic question, just not sure how it works here) <tissevert>ok I've finally managed to get some log for st <tissevert>it says: "openpty failed: No such file or directory" <davidl>kozo[m]: last time I tried that cuirass was failing to remount /gnu/store or something and I couldn't make it work :-/ though I could probably tell cuirass on my x86 computer to build for ARM. That's still quite a few steps away from knowing you can get anything setup and working on ARM :-) <davidl>kozo[m]: I probably mainly need to learn more about user services. <Olivetree>lilyp: Intel GPU has no OpenGL because the libs are from Nvidia. glxinfo doesn't even try to load swrast, it just says "no RGB GLX Visual or fbconfig". But I think that's irrelevant, it never worked and I can understand why <tissevert>did the same for chromium, apparently /dev/shm is missing from my system ?! <lilyp>yeah, I don't think Guix will attempt to use your blobby driver <lilyp>which tbf sucks if you're forced to use hardware that requires one <Olivetree>at the current prices, yeah, I'm forced to it use it xD <Olivetree>I thought about using packages from nonguix, but they don't have nvidia390. Adapting the nvidia-drivers package will require quite a lot of learning from my part <lilyp>podiki[m]: so the full details are in asdf-build-system, but basically {etc,lib,share}/common-lisp <lilyp>I'm pretty sure CL implementations find the lisp sources simply by looking at XDG_DATA_DIRS or XDG_CONFIG_DIRS (perhaps both) <podiki[m]>yes figured it out now, just hadn't used asdf manually in forever (or ever?) <lilyp>so you'd start your `guix shell sbcl sbcl-foo sbcl-bar...' *tissevert didn't say anything <podiki[m]>had to do a (require "asdf") first and then use asdf to load packages, does find them if installed in the profile <smartin>Hello, I have some python script that require python-pexpect and it works great in 'guix environment --ad-hoc python python-pexpect make'... <smartin>but when a Makefile is trying to call that script I get 'ModuleNotFoundError: No module named 'pexpect'' <lilyp>does that Makefile perhaps set PYTHONPATH in an unintended way? <tissevert>lilyp: worse ! on that USB system I generated, it never existed… ^^ <robin>podiki[m], i just use quicklisp :p but ty lilyp for explaining how easy it is to do it the proper guixy way! <lilyp>Does it use a wrong python? (E.g. hardcoding /usr/bin/python, which is taken from a foreign distro) <lilyp>tissevert: that's what you get for deleting your darling :P <smartin>lilyp: yes PYTHONPATH is used to get a location for other modules <podiki[m]>yup, guix shell pretty nice, though my lisp scripts tended to have a quickload instead <podiki[m]>so I'll have to change a few statements, but seems easy to have a one line guix shell command to run something in a temporary profile <lilyp>We don't judge you for using quicklisp, but please be nice and make things packagable with asdf-build-system :) <lilyp>though I suppose the CL situation is not nearly as bad as Rust or Go <podiki[m]>just some personal scripts, but this is quicker than quicklisp to just run something without doing a full setup, I like it! <podiki[m]>the CL situation seems quite nice so far; I saw a WIP for a quicklisp importer, that could be handy <lilyp>smartin: try to rewrite the makefile, so that it extends PYTHONPATH, still using what the system has <Olivetree>Speaking of Rust, why are there so many rust packages if then cargo still fetches them to compile projects? What use do they serve? <mekeor[m]>Olivetree: you mean when compiling local, self-developed projects? <lilyp>We can't have cargo fetch the Internet during build <Olivetree>Whatever case you may find. I can't see rust packages being used in guix. For instance, why does rust-alacritty-config-derive exist? <Olivetree>You can't use it as a binary/lib, it's only useful in a build. <lilyp>Probably to satisfy a bunch of dependencies down the line. <lilyp>Rust packages typically are a big bunch of nothing. <lilyp>Honestly most would be better served with origins. <Olivetree>But building is done with cargo, which fetches the packages. Or you have your own special cargo that only uses packages in the profile? <Olivetree>And also, would it have any use with self-developed projects, like mekeor mentioned? <mekeor[m]>Olivetree: the only problem that i see is that there's no way to run "guix import crate" on a local file. it only works for remote crates. thus, you can't really use guix to develop local projects AFAICS <mekeor[m]>6piz7wk, what do you mean by "guix card"? i don't understand you <vivien>So, I made myself a guix home service to start dring on login, and it works perfectly. This is a workaround to dbus activation not working on guix home. <Olivetree>mekeor: to understand your answer I'd need to know how guix's crate/cargo system works <mekeor[m]>Olivetree: i don't know. i can just tell what's my experience from the perspective of a wanna-be-rust-developer <mekeor[m]>Olivetree: but i'd bet that guix's cargo-build-system does not entirely let cargo install the crate, but instead, guix still manage the dependencies <Olivetree>sometimes I forget substitutes are facilitators, not the basis <Olivetree>and since rust binaries are static they don't need dependencies, except if you're building them <mekeor[m]>KE0VVT: i don't know but i found that "guix-daemon.cil" at /run/current-system/profile/share/selinux/guix-daemon.cil <KE0VVT>mekeor[m]: Would that be on a foreign distro installation? <florhizome[m]><vivien> "So, I made myself a guix home..." <- Could you specify? :) does this correlate to the dbus-activation-environment command that you run after launching a wm like sway? <podiki[m]>curios also, as having to run my session with an explicit "dbus-run-session" (which I think worked around the dbus issues I had) <vivien>florhizome[m], I extended the home-shepherd-service-type to run the program in (file-append libring "/lib/ring/dring") <lilyp>Olivetree, mekeor[m]: The proper way of writing Rust is to go back to C++ and do everything with RAII anyway. <excalamus>is there a way to use guix time-machine in a shell? I thought that's how it worked, but it seems not. I'm blogging about how to use Guix and want to have the steps be reproducible.