<roptat>I wonder if we could have an editor that would guide with the syntax <podiki[m]>sorry to repeat: what do we do when programs want to call ldconfig for libraries, we just disable that? (I see package defs that replace it with e.g. 'echo') <nckx>Just nuke it from orbit. ***LispyLights is now known as Aurora_v_kosmose
<podiki[m]>although maybe I'll have to understand what this python is doing, using ldconfig to get each library path it needs (probably need to patch that whole thing to just look in the store dirs of inputs) <florhizome[m]><roptat> "I wonder if we could have an..." <- Emacs guix could use some improvements <florhizome[m]>I think my emacs Just froze BC im installing noto font in the bg <nckx>podiki[m]: Sounds plausible. Even if the original didn't strictly need absolute file names, the Guix package might need them. <rekado_>civodul: the CRAN importer has changed over the years and the packages we have were created with different versions of it. <rekado_>when upgrading the importer suggests changes to inputs, but not to the description or synopsis (or license). <rekado_>but in any case: CRAN descriptions are usually stylistically unacceptable for Guix, so thereâs always some editing there. <jgart>nckx, I think that was a hypothetical bug. I don't think he ever tried it with python-lxml <jgart>civodul, said that guix shell works as I hoped/described I wanted <jgart>I'll test it to be sure/experience it soon :) <nckx>So all this was based on conjecture? <jgart>I think Ryan ran into a bug regarding what was said but I don't have the context to reproduce it <jgart>I'll get back to you if that comes about again <nckx>florhizome[m]: Can you share your full package definition before you go? <podiki[m]>how can you specify a patch in a package definition for a local file (e.g. not in a channel)? can set search-patches somehow? <jgart>first question to answer would probably be how does `search-patches` find files? <podiki[m]>i know it is specified per channel and guix; at least I can do a --with-patch i just never investigated how to do it properly <jgart>podiki[m], It looks like it finds the files by looking at %PATCH-PATH <jgart>that's what search-patches is doing <jgart>it put's the paths in a list <podiki[m]>so I could probably just let shadow it in a package definition for testing? <jgart>so it sounds like it is tied to finding things in relation to guile's module path <jgart>maybe there's a way to modify the arg or some other way to hack it to find patches relative to the current working directory <podiki[m]>guix build --with-patch works though, so maybe that is easier for the one offs <podiki[m]>(or see what it does exactly to figure it out) <nckx>podiki[m]: Why use search-patches? <nckx>podiki[m], jgart: I think you're massively overthinking things. (patches (list "one.patch" "/another.patch")) <podiki[m]>nckx: oh. maybe I never tried it as a list...? that would be dumb (on my part) <podiki[m]>indeed that works, with a handy warning of guix resolving the path relative to current directory <podiki[m]>(but for a final package def I guess we want the search-patches) <jgart>nckx, very cool. Thanks for sharing that *M6piz7wk[m] feels really stupid for him to took this long to find the manual <nckx>Why's everyone calling themselves stupid today. Be kind to yourselves, people. <podiki[m]>(i've gotten spoiled with things like slime and seeing the definitions as I'm writing, and haven't fully setup my geiser/guix/scheme setup) <mahmooz>has anyone managed to setup guix on vultr? does it work well? <nckx>M6piz7wk[m]: If you haven't found it yet: define-once. <jgart>saved me from shaving yak further <drakonis>mahmooz: i've done it on linode and its fine <jgart>mahmooz, guix works great on capsul <nckx>(Scheme has a preference for âclear namingâ â at least most of the time.) <nckx>call-with-current-continuation being an extreme example. <jgart>I upgrade it to the latest iso <jgart>they're an interesting group <jgart>I'll use one tomorrow for a guix packaging meetup <jgart>all the code for their services are free/open source <nckx>jgart: Interesting! (I feel like I've said that a lot today, which is good.) <jgart>It'd be cool if they had one-click installs. Paste config.scm into form and submit type of deal. <jgart>But overall they are a better user experience for Guix System than vultr <mahmooz>is there anyway to get a flutter dev environment on guix <mahmooz>its the only reason i have to dualboot guix with nixos is that i dont have flutter on guix <jgart>M6piz7wk[m], It just means that your mutating the variable <nckx>M6piz7wk[m]: â!â generally means stateful operation. <mahmooz>but i have to use nixos because i cant get everything to work on guix <mahmooz>i cant get startx/bluetooth/flutter/proper-spotify-client on guix <M6piz7wk[m]>so `(set variable "value")` is not mutable -> i can't do `(set variable "different value")` without error? <nckx>Well, set doesn't exist. <M6piz7wk[m]>i will most likely never want to see JSON ever again after i am done with NixOS <nckx>! is just a character in Scheme; you can name your variable Guix!is!neat! without issue. It's just a convention to indicate that something mutates state. <mahmooz>maybe when i get enough free time one day ill become a guix contributor <M6piz7wk[m]>nckx: ah i see.. i though it's a special functionality like in rustlang <nckx>Very few magic characters in Scheme. ( ) ' ` , and sometimes . â I might be forgetting one or two but the set is very small. <nckx>And whitespace of course. <nckx>Is not allowed, I mean, and hence âspecialâ, but then whitespace is not meaningful in any sane language :) <singpolyma>I though scheme could also use [] in syntax, maybe that's just racket? <M6piz7wk[m]>nckx: thanks for saying that python is not sane lang i hate the syntax in that thing with those whitespaces <jgart>but it's not common practice <nckx>M6piz7wk[m]: And ; for comments, and #; for (possibly Guile-specific) block comments; and # for escaping things, and \ for escaping things. So the list is growing but it's still extremely small compared to other languages. <jgart>nckx, what can I use for subvector in guile? <nckx>Can't do that in JavaScript! <jgart>There's an srfi that has something close to it *M6piz7wk[m] is confused about the non-lexical vs. lexical scoping (elisp vs guile scheme) *M6piz7wk[m] is reading 3.4.4 section in the manual <jgart>M6piz7wk[m], lexical scoping is what most languages use <nckx>Just a note that Guile discussion is always welcome here but there's also a #guile channel for the language proper, for those times where you really need to dial a guru. <M6piz7wk[m]>jgart: first time hearing it in 14 years of my experience in CS O.o <nckx>I find non-lexical scoping confusing as hell. Powerful, sometimes, but often just weird. <jgart>probably the most popular dynamically scoped language still used today <nckx>But good point, it didn't occur to me as the most popular example. *nckx writes bash all the time. <nckx>I'm intrigued by your comments, which tool are they for? <nckx>M6piz7wk[m]: That's not a question with an answer, there is no POSIX Scheme. <nckx>So it's not ânotâ either âș <singpolyma>In posix sh everything is global, so there's barely a scope to speak of <M6piz7wk[m]>what's the difference in between `set!` and `let` in guile? let is immutable and deduces the data type from input? <jgart>let defines variables/expressions in a scope <jgart>then you can use the variables/expressions in that scope <jgart>those are all different things that you just mentioned <nckx>jgart: I don't get âGuile implementationâ. Whose? How comes what? Guile is right: you give it a macro that takes 2 arguments, then you pass it 3. <nckx>I don't know what Janet is so I can't read what it's supposed to do. <jgart>I thought I wrote something that was variadic? *M6piz7wk[m] never used elm lang, but he recognizes the nix syntax <jgart>M6piz7wk[m], nix let is like guile let <M6piz7wk[m]>oh elm is that cool javascript replacement i should take a look at it more often <jgart>the parens can sometimes confuse things at first <M6piz7wk[m]>i should stop referencing rustlang components with lisp when i know clisp and elisp heh <nckx>jgart: Is that what &rest is supposed to be? Whence &? <M6piz7wk[m]>Can i do `(set! ...)` and have the value available in the sourced file as well? *M6piz7wk[m] didn't yet figure out how to source files in guile like `. path/to/shell/file` <jgart>M6piz7wk[m], can you show some code to contextualize what you're trying to do? <jgart>like in a paste bin or something <nckx>M6piz7wk[m]: You probably want 6.18.11 Local Inclusion <jgart>M6piz7wk[m], you can use load <nckx>Well, yes and no. The manual puts it aptly: âIf you are a C programmer, if 'load' in Scheme is like 'dlopen' in C, consider 'include' to be like the C preprocessor's '#include'.â <nckx>But load is more idiomatic. Using âincludeâ in Scheme smells very much like âa shell programmer wrote thisâ. <nckx>âloadâ won't do what you want if you want â.â. <nckx>Why are you using set! over define? <M6piz7wk[m]>because i don't understand the difference in between `set!` and `define` probably x.x <M6piz7wk[m]>though `set!` is the general way to define variables <jgart>M6piz7wk[m], you'll use define 95% of the time <nckx>No, define is. set! is used to modify variables, which is considered poor style by most programmers, but has its uses. <jgart>Because set! is not functional <nckx>M6piz7wk[m]: <but if I do> Yes, that works fine. <calnombl>is there a package for kernel userspaceapi/header manpages? <nckx>M6piz7wk[m]: Because you can usually write programmes without changing any existing variables, and these programmes often end up better-designed. *M6piz7wk[m] is looking at the 3.4.9 example <nckx>M6piz7wk[m]: This is a matter of style, of course, and Scheme supports almost any style (it's sometimes called âmulti-paradigmâ for this reason), but really, honestly, all styles aren't equal and functional is one of the better ones. <M6piz7wk[m]>is there any standardization for the style that i can follow? *M6piz7wk[m] prefers to follow standard since he's writting mission critical software <nckx>M6piz7wk[m]: Yes. Functions are just a kind of value that you assign to a variable. Functions aren't magical things that live in a separate namespace, as is the case in elisp for example. <nckx>(Hence why elisp is a âlisp-2â and Scheme a âlisp-1â, if you care about such background.) *nckx â away another while. *M6piz7wk[m] is looking at 4.5 <calnombl>nckx: thanks! though is there anything that includes man9 as well? <singpolyma>M6piz7wk[m]: there is a fork if emacs that uses the guile interpreter to run the elisp, which should then also support extending emacs with guile <jgart>M6piz7wk[m], there was a pipe dream to use guile to compile elisp <singpolyma>It is packaged for Guix but for some reason despite emacs being literally the inspiration for guile to exist, their merger is not of interest to the emacs PTB <singpolyma>(guile is the name of both a scheme dialect and the compiler for that dialect, this compiler also supports emacs lisp, some of JavaScript, and there is a module to make it support python as well) <singpolyma>So with some effort it should be possible to configure guix in emacs lisp actually, but I haven't tried that direction yet <jgart>but doesn't use docker at all <singpolyma>jgart: I'm not sure if I'm the right person for that, I've never used jupyter or guix containers (or containers much at all) <jgart>I was thinking more of the web app aspect of it <jgart>I can pm you if you'd like to chat some time about it <jgart>Binderlite is currently a WIP and under rapid development and testing <jgart>But it currently is able to launch jupyter notebooks from git repositories and sources the manifest file in the repo <jgart>I'm thinking about possibly supporting ipfs for storage/sharing of notebooks <jgart>I've been able to run/test python, R, and guile notebooks so far with the above app in a guix container <jgart>I'll be pushing a commit soon that will add information to the user while they're waiting for the guix container to build before being redirected to it <jgart>It's a lighter solution than using something like xtermjs ***bqv is now known as Guest5443
<M6piz7wk[m]>is `host-name` a defined thing that returns the system hostname? <roptat>all the fields of an operating-system record are accessible with operating-system-<field-name>, so it's operating-system-host-name <M6piz7wk[m]>roptat: is the `operating-system-<field-name>` documented anywhere? i can't find it in the manual <jgart>M6piz7wk[m], I'd get comfortable with records in scheme by doing some exercises <jgart>learn how to use records in scheme and then apply that knowledge to records that guix defines <mahmooz>how come top's output on guix is different from other distros <mahmooz>its all in red and its different its more like htop <mahmooz>i like it but i wanna know why its different lol <mahmooz>im talking about the monitoring tool top <M6piz7wk[m]>i am using guile for like 20 min and about to switch on guix so just guessing it's different because of distro-branding as that seems to be the case everywhere else x.x <mahmooz>what does branding have to do with it <M6piz7wk[m]>usually distros do branding for packaged software to represent the colors and branding of the distro O.o <M6piz7wk[m]>e.g. Gentoo does configuration changes to XFCE4 to display gentoo wallpaper and stuff <mahmooz>ye but its all different its not just the color <mahmooz>i mean its better but dunno why its different <mahmooz>i need to reboot into guix to check whats up with it lol <nckx>mahmooz: Most distributions customise top because they don't like the way it looks by default. Guix doesn't. <nckx>Old procps's versions weren't, then that changed, some distro[ user]s went nuts. <potatoalienof13>gentoo doesnt seem to do any configuration, yet still has a white top? <mahmooz>ye exactly and it shows all cores each in its own row <M6piz7wk[m]>potatoalienof13: gentoo does branding whenever possible last time i checked? see `branding` USE flag <jgart>crowd sourced guile/guix examples <nckx>Right there in the ebuild: âmodern-topâ is off by default. <jgart>maybe without the github oauth <M6piz7wk[m]>mahmooz: if it doesn't already it will once i get my hands on it probably :p i like to brand my systems <nckx>mahmooz: Very little, I can't think of any, but maybe some graphical packages (display managers, perhaps?) have a Guix background added. We add a GRUB background but that's not really branding in the sense that we don't modify the package, just add a line to grub.cfg. <nckx>And we build xorg-server with "--with-os-vendor=Guix" âbecause it looks niceâ (quoth the comment), but it's also nice for bug reports, I guess đ Also not really branding if nobody ever sees it. <nckx>mahmooz: I help maintain the distro but everyone who contributes is a âdevâ. We have very little hierarchy. *M6piz7wk[m] goes to check if there is a docker image defined for guix <nckx>Oh, I don't know about that. <jgart>nckx, has `guix system container ...` worked for you last time you tried? <jgart>From what I remember it produces a guile script that then needs to be run as root <nckx>jgart: That would be never. <jgart>Oh ok. so it's currently broken? <nckx>Sticking to the theme of things that exist but which I've never used: guix system docker-image is a thing, M6piz7wk[m], maybe it even works. <nckx>jgart: I mean I've never tried it. <nckx>I'm not into containers or dockings. <nckx>M6piz7wk[m]: I don't know what a that is, but Guix produces a file, which is for docker, so⊠probably! The dockerfile's called guix-docker-image.tar.gz. *M6piz7wk[m] is not sure if docker can do from scratch to ADD remote tarball <M6piz7wk[m]>i don't have GUIX running yet.. i want to develop a scheme that just switches me from nixos tbh <jgart>M6piz7wk[m], have you used guix shell yet? <M6piz7wk[m]>jgart: nope, dismissed it before bcs i didn't know it can do per-package configuration thinking parametrized packages are needed for it <nckx>jgart: Thanks for hosting another meetup! (Which again I can't attend, but I love the idea.) <mahmooz>i dont understand why guix doesnt have more users <singpolyma>Well, most people have never heard of either nix or guix, and those that have heard of both often think of guix as "off brand nix" <jgart>nckx, Thanks! Hope to see you at one in the future <mahmooz>guix is so far the best distro i've tried <M6piz7wk[m]>mahmooz: bcs of terrible marketing! I though it sucked this whole time while suffering on NixOS! <libry>I have an X1 Carbon Gen 9, and have ordered a wifi USB for dodging iwlwifi firmware issues, is there anything else someone should be looking out for with really new hardware and guix? <libry>also i found guix before i found Nix OS. I thought NixOS was the off-brand distro ;P <mahmooz>well i wanted reproduciblity thats why i moved from arch to nixos to try it out i used to reinstall arch very very very often (for various reasons..) and it was exhausting going through the same commands every time to install arch and setup the AUR and all these tasks that took me hours to finally get a usable system <mahmooz>so i found nixos to be great but the nix language was so confusing to me i didnt like it at all <mahmooz>so i heard about guix and moved to it and found scheme to be much more sane than nix and way better <jgart>libry, you'll probably be fine with the wifi dongle <mahmooz>i prefer guix to nixos cuz i feel like guix is way tidier <mahmooz>the docs are great and the commandline interface is too easy to learn <jgart>but I don't have experience first hand using an X1, so take that with a grain salt <libry>Thanks jgart! I'm excited to try it out on something other than an older Thinkpad. <M6piz7wk[m]>Is it a sane setup to deploy an Alpine with Guix package manager for testing guile scheme? <jgart>I wish guile docs were better *M6piz7wk[m] likes the docs <M6piz7wk[m]>mdbook might be a better integration for those though <jgart>It'd be cool to have a guile-specific book instead of referring people to always check out SICP <libry>Is the reference manual the best resource? I haven't seen much on the guile website.. <jgart>something like "How to design programs" but for guile <jgart>The manual is not good for learning scheme <jgart>If that's what you're thinking it might do <libry>I will add that I think if you learn any implementation of scheme, even those such as Racket you'll be in a decent place to learn Guile. <jgart>as a manual it is pretty featureful <nckx>jgart: You probably will, some day. <libry>The documentation on Guile, and Guix are pretty stellar. I was surprised to learn that they are both 5+ years old. <mahmooz>i hate that many low-effort linux distros get more traffic than guix <libry>yeah I was completely unaware <mahmooz>most distros are forked from arch/debian, they slap some preinstalled software on top of that and call it a distro <nckx>Whatever this guix-docker-image.tar.gz is, it's taking its sweet time to build. <singpolyma>mahmooz: well, most distros are more if the same, which people think they want. Guix is a whole new thing <nckx>Oh, it's building inside a VM. <nckx>âDistroâ means Ubuntu with a different them and background people. <singpolyma>I try to never say distro anymore, better to just say "OS" <singpolyma>M6piz7wk[m]: sure, but why not just guix system if that's your goal? <singpolyma>I use guix in Debian, but I have different goals <M6piz7wk[m]>singpolyma: Because guix doesn't have official docker image defined and i can't do FROM scratch image that fetches tarball without getting it locally first <M6piz7wk[m]>oh and because i want to do smooth migrating since both are reproducible to enable it <jgart>singpolyma, do you mean you use guix system to run your CI? <nckx>M6piz7wk[m]: I forgot to ask earlier after mentioning âguix system vmâ: why does it have to be Docker? <libry>I nearly forgot the reason I came into this IRC room, is it normal behavior for the guided installer to not allow manual IP/Mask/GW/NameServ information? <singpolyma>jgart: I'm using sr.ht CI and they have a guix system image <libry>It seemed to try DHCP, did not connect, and then I was unable to do anything but reboot. <jgart>yeah, I saw that they added that <M6piz7wk[m]>mahmooz: The thing that separates an average dev from competent dev :p <M6piz7wk[m]>Continuous Integration -> Checks the commit for you prior to merge to the branch <singpolyma>jgart: was great timing for us, I was just using guix pack to get a new enough guix on Debian before that image landed <jgart>for the sake of experimenting/hacking <nckx>mahmooz: Note how it's just a component of a wider methodology. <nckx>jgart: I haven't tried, but I thought Guix (because Guile) files could be written in Wisp today? <jgart>has anyone tried using clojurisms in their Guix System configs? <jgart>threading macros, etc... I mean <mahmooz>if a build server is such a good practice why am i hearing about it for the first time lol <jgart>nckx, haven't tested wisp with Guix System <mahmooz>is there anything i should hear about thats supposed make me a better dev? đđ <jgart>maybe I should try packaging something with wisp instead of guile to see if it works as intended <nckx>mahmooz: Have you heard of something called Stack Overflow? If you have, you're done, you're a dev, congrats, go dev stuff. <nckx>Well, yeah, because I told you about it. Duh. <mahmooz>im just hearing about a CI for the first time and still doing my research on it cuz i still dont get the point <roptat>mh, does (specification->package "git:send-email") work for anyone? I am doing this wrong? <mahmooz>ive been coding for 3 years and i only got 1 project done... mfw <nckx>mahmooz: The point is that you find bugs sooner, and that all code in a large system is âintegratedâ and tested together, frequently (ideally for each commit, so it's obvious what broke what and you don't waste more time hunting down bugs). To be useful it implies having a nice big test suite, because âit compilesâ is good but not enough. <dissent>how to use the starship prompt? the commands given on the github page don't work <nckx>roptat: specification->package+output <nckx>What is a starship prompt, how is it in Guix, etc. <jgart>roptat, what nckx said worked for me <jgart>scheme@(guix-user)> (specification->package "git:send-email") <jgart>guix repl: error: git:send-email: unknown package <nckx>dissent: That is not the same package. <nckx>It just has âstarshipâ in the name, probably because the starship authors maintain it for use in starship. <mahmooz>well its always good to learn something new i guess <mahmooz>i better get working on my 2nd project lol cya guys <nckx>dissent: You (sorry, but you knew this was coming) are very welcome to contribute a proper starship package, if you feel up to the task. đ <dissent>Crap... I did know it was coming haha. <dissent>Okay... how difficult would it be (on a scale from 1-10), how much time would it take, and will I find instructions in the documentation? <jgart>You won't find instructions for packaging a rust package from start to finish <jgart>but you'll find general instructions for packaging and everything you need to know for submitting a patch, testing, etc... <nckx>dissent: I honestly don't know. Look at the output of âguix import crate --recursive starshipâ, which is what you'd start from. <jgart>It's not comprehensive though. Ever package will present it's own problems to solve <jgart>dissent, check out the source code for previously packaged rust programs <jgart>dissent, have you packaged anything before for guix? <jgart>I'd start with a simpler package with less dependencies <M6piz7wk[m]>-> PATH="PATH /root/.guix-profile/bin:$PATH" important? <jgart>Maybe something written in c instead of rust <dissent>I haven't packaged anything for any distro. <nckx>It all depends on how ready-to-go the importer's output is, and that's impossible to tell beforehand (esp. because I avoid packaging Rust like the plague). <nckx>M6piz7wk[m]: The âguixâ command should be run as the current user, not another. The daemon must always run as root. <jgart>The rust importer's output in my experience has never been ready-to-go. But I've only tried with large rust packages mostly and hence my dissapointment <jgart>maybe a small lib would be closer to "ready-to-go" <nckx>PATH="PATH /root/.guix-profile/bin:$PATH" dunno where you got that from but apart from the fact that "PATH âŠ" is broken, it doesn't look right to me. <jgart>dissent, I'd start with a small c program or a python library <jgart>Or try first just updating a hash and version and testing <nckx>Guix is meant to be updated using âguix pullâ, which will create a per-user guix command in ~/.config/guix/current/bin/guix. If you set the above PATH, that new guix won't be used, but always root's instead. <jgart>See previous commits of people upgrading just the hash and version <jgart>take a patch and send to guix-patches@gnu.org <jgart>that would be a quicker way to get started <nckx>M6piz7wk[m]: If you already have, it should modify /etc/profile.something and (perhaps after logging out & in) PATH should be set correctly and you can just âguix pullâ and start guixing <jgart>then you can build yourself up from there to packaging a whole program <nckx>M6piz7wk[m]: It's certainly possible to install from source but it's making the learning curve needlessly hardcore. <nckx>Because you'd have to know Guix before ever having used it. Not ideal! <M6piz7wk[m]>nckx: I need it reproducible can you pin a commit on savannah? <jgart>Is it possible to explicitly associate packages with channels in a manifest currently? <nckx>(@ (my module name) variable) should work in Guix as elsewhere, jgart. As do e.g. #:select & #:hide when importing etc. <dissent>so sounds like the difficulty is about an 8 and time spent is several hours. <nckx>dissent: That's probably not way off. <jgart>for that package, I'd say yes <jgart>nckx, It'd be nice if there was some sugar to go with that <nckx>Alpine is that hipster thing that hates GNU, right? Just an extra challenge. đ <nckx>It is just and right that it will soon run GNU. <M6piz7wk[m]>is there a supported OS for the non-GUIX guix installation using the guix-install.sh <nckx>I'm sure Alpine can be made sane by e.g. installing bash somehow. *M6piz7wk[m] is not aware of any sane GNU/Linux distro <nckx>Hehe. Maybe glibc as well, I don't know if that's missing too. *nckx is proudly sleepy and â đŽđ€, good night and good luck everybudz. <jgart>nckx, What is a reason you prefer glibc to musl? <jgart>guix implemented on top of musl *M6piz7wk[m] just destroyed his almost-configured docker environment to try that *M6piz7wk[m] doesn't know what hermes is <jgart>hermes is yet another package manager <jgart>but it's not being worked on anymore <jgart>author moved to p2pkgs which is written in shell and friends <jgart>I think p2pkgs has some nice ideas <jgart>They wanted mainstream success so they went with bash instead of lisp... <roptat>mh, I just switched to guix home; I don't have a ~/.guix-profile anymore, is that expected? <apteryx>I'll be interested to know your experience, I haven't taken the plunge myself yet! <roptat>I'm having some troubles now because I'm switching from my own home-manager <roptat>getting in trouble with git: bash: /home/tyreunom/.guix-home/profile/bin/git: Trop de niveaux de liens symboliques <roptat>what? `/home/tyreunom/.guix-home -> /home/tyreunom/.guix-home` <roptat>I think I messed something up by calling the scripts manually from .guix-home <dissent>pardon all the questions... moving to gnu guix and a lot of the stuff that was working on arch simply doesn't anymore. <M6piz7wk[m]>How do i use the tarball? It has only `gnu var` directories <roptat>M6piz7wk[m], the easiest way is to use the installer script instead of the tarball <roptat>(note the tarball is for the binary installation on a foreign distribution) <M6piz7wk[m]>GNU project that doesn't follow FHS? O.o i got always screamed at for using wrong dir in #fsf <dissent>users of ranger, when attempting to view view a txt file in PAGER or pressing 'r' to ask what to do it simply reads "Errno 2] No such file or directory: 'file'". Any idea how to fix? I thought xdg-utils was it but it won't. <roptat>dissent, is "file" the name of the utility? maybe you need to install the package "file" <roptat>looks like I got to a usable state again relatively painlessly, nice :) <roptat>I noticed two small contribs I could make, will send patches tomorrow ^^ <dissent>when you never have to do these things you don't know whats missing. it's definitely helping me understand what is under the hood so to speak. *M6piz7wk[m] had to install `ca-certificates` on debian for it to work <M6piz7wk[m]>... i can't do the guix-install.sh bcs it requires interactive shell -w- *M6piz7wk[m] made a hotfix <raghavgururajan>apteryx: I'll try moving it to separate output or separate package as gtk-with-gst-backend. <M6piz7wk[m]>How annoying it is to go through the manual installation <M6piz7wk[m]>(load (string-concatenate ("domains" system-domain "default.scm"))) <Noisytoot>M6piz7wk[m], you should quote ("domains" system-domain "default.scm") *M6piz7wk[m] is looking in guile manual 7.5.3.4 and is confused <Noisytoot>no, it's trying to call "domains", which won't work because it isn't a lambda <M6piz7wk[m]>(load (string-concatenate '("domains" system-domain "default.scm"))) <apteryx>meson 0.60 is riddled with regressions, it seems *M6piz7wk[m] tried to use `slot-unbound?` but that is not defined even when `slot-bound?` is <M6piz7wk[m]>ah seems that (when (string=? (getenv "DOMAIN") "") works *M6piz7wk[m] is failing to figure out how to concate that <jgart>This code will probably not run (string-append '("domains/" system-domain "/default.scm")) *M6piz7wk[m] continues to read 6.6.5.10 <jgart>string-append takes strings as arguments <jgart>(string-append "domains/" system-domain "/default.scm") <jgart>given that system-domain is also a variable that is a string <jgart>M6piz7wk[m], (string-append '("domains/" system-domain "/default.scm")) will still fail <jgart>because system-domain is a boolean <M6piz7wk[m]>but the `(load (string-append "domains/" system-domain "/default.scm"))` works? <jgart>and you can't string-append a string and a boolean <M6piz7wk[m]>but system-domain is variable expanding in string no? <jgart>I see now in the when function what you did *M6piz7wk[m] tried with (display) <jgart>What is your code trying to do or how does it fit into the bigger picture of what you're doing with it? <M6piz7wk[m]>it does that through separating the configuration by HOSTNAME and DOMAIN and then does distributed build and push-based deployment <M6piz7wk[m]>(the public version is outdated.. i didn't yet publish the new one bcs i got aneurism from working with nixlang) <M6piz7wk[m]>and based on hostname and domain it sources files with logic <jgart>are you trying to switch it over to use guix? <jgart>what services do you provide? <M6piz7wk[m]>for myself i need a separete git handling since the project i am working on is monorepo with 2.2GB of pure source code and 120+ git repositories <jgart>M6piz7wk[m], have you heard of smithy? <M6piz7wk[m]>the guy from my elementary school with which i played football? <brendyn>For some reason (operating-system (inherit OS)) and (operating-system (inherit OS) (services (operating-system-services OS))) are different <brendyn>the second one gives me an error more than one service of type shepherd-root <M6piz7wk[m]>jgart: What exactly is it doing? just allowing me to define a lot of repositories to then publish them all? <M6piz7wk[m]>Looks like solution to my problems though will check it thanks! <jgart>haven't seen a forge yet in rust <jgart>there's probably one out there <jgart>brendyn, how did you check that they were different? <M6piz7wk[m]>jgart: Btw. do you have OpenShift on clean energy infrastracture yet? (say that u work on openshift and took the opportunity to ask) *M6piz7wk[m] wrote 200 lines of untested guile and goes to headbut coach since he can feel his brain not working <jgart>It was not a great experience on a phone last time I tried with mobian <M6piz7wk[m]>Just knowing that it can work on those is enough for me to develop handling for it <jgart>Everything took way to long to install (with substitutes enabled) <jgart>Yup, it would be cool to start packaging sxmo suite <M6piz7wk[m]>like is it the same like NixOS where i will suffer with systemd with no way to change it? <jgart>Shepherd feels "baked in"/deeply integrated. It would definitely be a rabbit hole to go down to try to decouple it and put some other init in its place <jgart>there might be some hacker out there that would love to do that and has all the time in the world <M6piz7wk[m]>but none will prevent me from contributing code that makes it GNU Shepard independent right? <jgart>not sure what you mean. can you unpack that a bit <M6piz7wk[m]>On NixOS i get threatened in various way for daring to submit anything that makes the derivation independent from systemd.. is that same here with the Init? <jgart>I remember seeing a guix package for systemd somewhere <jgart>how was the thing you submitted "independent from systemd"? <jgart>do you mean like not using systemd's native chrooting features and using an app's own chrooting features? <M6piz7wk[m]>NIxOS upstream blocking any kind of work on such feature <M6piz7wk[m]><jgart> "do you mean like not using..." <- +- i hate implementation dependent definitions <M6piz7wk[m]>Agree that it's more demanding on NixOS as it's too dependent on systemd for it's functionality <M6piz7wk[m]>but distros like Gentoo and Devuan the maintanance overhead is almost non-existant <M6piz7wk[m]>and i just don't want to be prevented on working on something alike tbh O.o <jgart>What would you like to see instead of shepherd? <M6piz7wk[m]>In general anything that is not systemd is fine with me, but i would like to experiment with configuration for optimization so ruint, OpenRC, s6, etc.. <jgart>You could probably create a fork to experiment with that <mahmooz>is it possible to run reconfigure on an external drive? <M6piz7wk[m]>i would want to avoid doing fork.. rather define a method in guix that makes it to apply logic depending on chosen init <jgart>how would runit integrate with Guix System? <M6piz7wk[m]>if shepard then do shepart things else if runit then do shepard things or fatal <M6piz7wk[m]>*if shepard then do shepart things else if runit then do runit things or fatal <M6piz7wk[m]>so that it can be an ongoing effort that can be submitted in the upstream <M6piz7wk[m]>since doing forks is what killed NixNG and some users (like me) are more then happy to define e.g. runin compatibility for packages that they use <jgart>but there are other crons like scron already packaged <jgart>I'm not sure what the policy is on accepting init systems as packages <M6piz7wk[m]>ye i know there are packages for it, but it doesn't work well with nixos <M6piz7wk[m]>and NixOS doesn't seem to mind the package definition.. just touching other packages to make them work with it <jgart>M6piz7wk[m], start by grepping for shepherd in guix/guix/ <M6piz7wk[m]>ye :p like i don't mind the work.. i mind obstruction of work *M6piz7wk[m] goes to sleep <mahmooz>i just ended up with a broken guix system and with no choice but to reinstall it lol <mahmooz>my pc turned off in the middle of a `guix system reconfigure` lol <mahmooz>does `guix system init` override the /home directory? <rekado>no, guix system init does not touch /home <rekado>canât you select an old generation in Grub? <mahmooz>said something about errors in filesystem <mahmooz>my pc literally turned off while a `guix system reconfigure` was building so.. <rekado>have you tried fsck on the filesystem? <rekado>if the computer turned off suddenly your file system may very well have been corrupted. So running fsck (either by plugging in the disk on another computer or prior to booting from it) seems like a reasonable course of action. <mahmooz>guix: clean, 501931/17006592 files, 6012555/68010321 blocks <mahmooz>```[~]$ guix system init workspace/guix/config.scm /mnt <mahmooz>guix system: error: failed to load 'workspace/guix/config.scm': <mahmooz>ice-9/boot-9.scm:3300:6: In procedure resolve-interface: <mahmooz>no code for module (<some-package> packages linux)``` any idea why im getting this? <brendyn>jgart, I think i discovered the issue. I had used `operating-system-services' instead of `operating-system-user-services'. It seems these procedure names break the usual record accessor patterns <shegeley>Hello there. I am a last year student of Math in Russian university currently. At the end of bachelor we have diploma project and I'm looking for a topic. Is there anything connected with guix/guile that could be one? (Assuming the standarts are quite liberal: so not only pure-math goes, some code will to). <lilyp>I think there's some complexity theory stuff that you could at least implement in Guile (particularly anything to do with graphs) if you're into that. <lilyp>Though typically university will want you to do one of two things: 1) take one of their suggested projects, 2) suggest one of your own and get a professor to sign it off. <shegeley>Any good papers connected with guile/guix and math someone could reccomend? <shegeley>I mean: I'm in good relationships with my curator. But the deadline for chosing topic is close. <bost>Hi. Can somebody tell me how to find out from which package a binary comes from? E.g. how to see that `npm` comes from the `node` package? <bost>`guix package --show=node | grep npm` shows nothing. <bost>florhizome[m]: I mean npm - the Node Package Manager. <jpoiret>i don't think there's a bult-in function to do that <bost>florhizome[m]: Yeah, I guessed that it's the output. But I have no clue how to discover that. Hmm <jpoiret>but maybe it would be possible to add an indexing job to the CI that has substitutes <bost>jpoiret: If you remember I had a similar problem a day or two ago: I was searching for a package which contains pdflatex <jpoiret>oh yes I remember. Most of the time it's pretty easy to find the package a binary belongs to though (texlive-bin is a bit harder i suppose) <florhizome[m]>Though I maybe have a similar problem from a different perspective, a package (plank) wants to find âglibâcompileâSchemasâ <florhizome[m]>i think that comes with glib or glibc, but putting that into inputs or native inputs hasnât worked. I think I will need to try specifying âbinâ in the inputs... <bost>jpoiret: It's pretty easy to find a package with a specific binary? Hmm. I personally, I'm struggling with it. <jpoiret>most of the time, you can look up the name of the binary online and you'll have a pretty good idea of what the package should be <florhizome[m]>Itâs a general Linux problem though, even more since every distro names their packages differently <bost>jpoiret: yeah but that's just a guess work. <jpoiret>but I agree that it would be nice to have a command to do that, that leverages the CI's substitutes <jpoiret>maybe a new option of `guix weather`? <bost>jpoiret: BTW why is that command called "weather"? Is that some kind of a pun? <florhizome[m]>Maybe guix build could tell you ... these binarys have been installed and when you commit a package you include it in a new field like outputs or so <jpoiret>i don't think so, just that it's akin to checking the weather i guess <jpoiret>florhizome[m]: that would be way too annoying to manage by hand <jpoiret>think of packages with many binaries <florhizome[m]>Not much more work then getting the checksum and description etc <jpoiret>I think that substitute servers having an index of their substituted files would be better, although I don't know what CPU/disk usage that would add <jpoiret>yes but those are "necessary" for the package <florhizome[m]>I would want it to be available in guix search. That means it would need to be in the package definition. I wouldnât leave it up to maintainers to do that. Probably could be done automatically. <florhizome[m]><singpolyma> "mahmooz: CI just means "build..." <- So if I would offload building locally in my network I would have a CI already ? :O <sarg>hey guix, how to add a file-like object to an inherited package? Namely I have xf86-video-intel and I want the package to have also a xorg.conf.d entry <sarg>or maybe there is another way to put some file into user's profile? <florhizome[m]><nckx> "florhizome: Can you share your..." <- Doing garden work for mum today, but Iâll continue this evening. :) <florhizome[m]>The desktop stuff I used on manjaro is not available so stuff to be done^^ <brendyn>sarg, are you sure you need to add such a file to the package its self? <lilyp>florhizome[m]: in case you haven't figured out yet, glib-compile-schemas is in glib:bin, and yes, it's a native-input ***atw`` is now known as atw
<shegeley>roptat, yep, I saw that ones. more about reproducibility and proof-concept. I'd say some language (guile) stuff would also be good for a final project. <roptat>shegeley, then you should ask on #guile :) <M6piz7wk[m]>(yes i just woke up and went straight to writting guile without even having breakfast or anything to drink, help me) <M6piz7wk[m]>ehh i didn't provide patch for the 51506, but most likely will if such change is desired <nckx>florhizome[m]: <So if I would offload building locally in my network I would have a CI already> No, that's just offloading. A CI system continuously builds (âintegratesâ) software in some automated, proactive fashion. <roptat>I'm not sure what you're trying to achieve <roptat>your operating-system records are incomplete, but I'll assume it's just an example you're giving, so the real thing is complete <roptat>I think in your case I would use inheritance: polo.scm will include marco.scm. marco.scm needs to put the operating-system value in a variable, like (define-public marco-os (operating-system ...)), then polo.scm can load this module and inherit from it: (operating-system (inherit marco-os) (timezone "Europe/Paris")) <M6piz7wk[m]>roptat: Yep example the idea is to be able to overwrite the value after it has been set <M6piz7wk[m]>can't easily do the inherit since this may include 12+ files <roptat>you can change a value after it's set <M6piz7wk[m]>or how should i do it assuming that this whole system works by overwriting values in (operating-system) <M6piz7wk[m]>.. well projected to work that way since that is what it does in nixlang <roptat>yes, you can have this in maco.scm: (define-public marco-timezone "Europe/Prague") and then in polo.scm you can choose whether you want (timezone "Europe/Paris") or (timezone marco-timezone) *M6piz7wk[m] goes to do experiments <roptat>depends if people are awake, think they can help... <roptat>sometimes it can be very fast and sometimes it can last for years... *M6piz7wk[m] goes to make Linux From Scratch script to get the guix libraries on then <roptat>no, guix is a package, not an operating system <roptat>you can build an os with guix using guix system <roptat>and one of its default services is the guix daemon <roptat>so the resulting os would have guix inside <M6piz7wk[m]>ehh like can i make a `tools/minimal.scm` that can then guix build into a file hierarchy with GUIX that i can chroot into ? <roptat>mh... maybe, but you'd be better off using, say, "guix system docker-image" <M6piz7wk[m]>once the scheme file is defined that i can be a docker-image on demand right? <M6piz7wk[m]>so how do i define it? just declaring `operating-system` ? <roptat>you can build a VM, docker image, or install a system on bare metal from a file that defines an operating-system record <davidl>Hello guix! I have some 4 easy python patches to review and apply in bug #51432 - anyone who feels up to it? <dissent>hey guys where is the clear command located? <dissent>or rather what packaged is it installed with <jgart>I found that out here too some time ago <jgart>might be a convenience to mention it in the manual since it is a bit arcane for new users to know that clear command is in ncurses package <jgart>and most distros just provide that command out of the box <dissent>hey thanks yeah. there needs to be a guix wiki for stuff like this. I'm really missing the ease provided by the arch wiki. <singpolyma>dissent: you can submit edits to the manual or cookbook <singpolyma>There is also a guix area on the libreplanet wiki IIRC, but probably better to submit to official docs <dissent>the question that comes up for me is, is it better to bury this small detail in the large manual or dedicate something that could be more easily found? <singpolyma>What would make it easier to find in a wiki than in the manual? These seem the same to me except the manual has no web editor of course <nckx>The manual's not really a good fit (âclearâ has nothing to do with Guix, after all, it's just one of the thousands of binaries Guix packages) but the cookbook sounds good. Until we have a proper package-not-found/guix package contents search, a âcommon binaries and their packageâ might be a pragmatic workaronud. <singpolyma>Package content search would be great. Basically just need to run `find` over store items produced in CI and put them somewhere I guess <nckx>If $someone wants to maintain it, of course âș That's always the bottleneck. âSomeone else should make a wikiâ, not âhere's a wiki I madeâ. <nckx>singpolyma: Well, the somewhere *is* the hard part. <dissent>Yeah not meaning to pass the buck. Just... my skills are rather limited. But perhaps I will start taking note of these little things so that they might evntually be integrated into something like a wiki. <singpolyma>nckx: is it? There's already an unserachable package list on the website, could go wherever that is? <nckx>I don't see how that's related. <singpolyma>dissent: could make the notes on the libreplanet wiki at least if a cookbook submission is too much <jgart>dissent, If you send a patch for the cookbook that might be a good place <nckx>Building a list of packages is relatively easy: it's fixed as soon as the commit is fetched, but a list of contents is asynchronous. It gets populated slowly whilst the CI builds all changes. <jgart>or if you send me the changes I can commit them for you an add your authorship <singpolyma>nckx: oh sure, so is the issue getting auth from CI to publish I guess? <jgart>I'll submit the patch for you I mean <jgart>just send it in a pastebin here <nckx>singpolyma: I think distribution and versioning is harder than you imply, but I don't see the obvious solution either. <jgart>also share how you'd like to commit as with email in the paste <jgart>If you'd like I can show to send patches yourself also eventually or come to the guix packaging meetup today and I can demonstrate after we package something <singpolyma>nckx: I guess CI has to put the substitutes somewhere already, so maybe content listing could go next to that? Wouldn't need auth for a new location then <nckx>What's the auth issue you see, singpolyma? <nckx>I don't see it but then I wasn't thinking about auth(orisation?). <singpolyma>If we wanted to put it on the website something has to have permission to get it from the CI job to there <nckx>I don't think that's an issue, but if it were, I think this belongs on ci.guix anyway. <nckx>You'd use the same substitute servers after all. <nckx>Let's call the command âguix whichâ for now: then it would query each substitute server in turn like we do for substitutes, I think. <singpolyma>Sure, could even have it all work locally that way which would be neat <nckx>I would *love* that. I'd love for this to be something that is delivered alongside Guix, somehow, so you always have accurate information for your particular commit, but that might be $too_hard :-/ <nckx>I'd love to be proven wrong though. <nckx>Dinner's about to be served; TTYL, but interested in your thoughts :) <singpolyma>Is the CI runner code etc in the guix repo or elsewhere? I'd love to understand more how the current parts work so I can think about this from an informed PoV <jgart>singpolyma, I think it's in a different repo <jgart>are you referring to cuirass? <kozo[m]>singpolyma I'm not a very advanced user but setting up Cuirass 1.1 was great and it worked as described <dissent>jgart: yes show me to how to send patches and I'd love to join the meetup. <singpolyma>jgart: I don't know, but if that's what powers the main guix CI then probably. I will look at it <florhizome[m]>yup I figured it out, though the magic that made it start work was including pkgâconfig in native inputs. <florhizome[m]>I have now progressed to failing to build another dependency, âbamfâ^^ <jgart>dissent, sure that'll be easy <jgart>atleast that's the main program that does ci for guix <jgart>singpolyma, then you'll want to see the cuirass service that's in the guix repo <jgart>the shepherd service for it, I mean <jgart>The guix package definition for it is in gnu/packages/ci.scm <pranavats>Hello. I'm trying to install guix on LVM on LUKS setup. And I'm unable to get it to boot to grub. I need some help figuring out what I'm missing. <pranavats>I have 2 unencrypted partitions with mount points /boot and /boot/efi in the config. /boot contains Grub, and so needs to be unencrypted, and so does /boot/efi. <pranavats>There's a single encrypted partition which is a physical volume for 3 logical volumes, /, /home, and swap partition. <pranavats>The above is the output of `lsblk -f` command. <pranavats>And the above is part of my configuration of mapped-devices and file-systems from config.scm. <pranavats>The physical volume and the volume group are both named "system". <pranavats>I'm sorry. I mean, the decrypted luks partition is available at /dev/mapper/system and the volume group is named "system". So root partition is available at /dev/mapper/system-guixsd, and home partition at /dev/mapper/system-home. <civodul>i'm glad yoctocell followed up and would happily apply it all :-) <civodul>(or let you take care of it, as you prefer) <lilyp>I think it'd be easier to patch right now than going back and edit it later (including changes to the ui) <jpoiret>pranavats: hi! is there any way we could get the file-systems and mapped-devices part of your config? is there any GRUB error? are they LUKS1 or LUKS2 devices? <jpoiret>disregard the first question, i missed the image <pranavats>jpoiret: It is LUKS1 (but I'd like to use LUKS2 if possible). There's no Grub error, it just doesn't boot. As if the partition isn't bootable, but I have set the boot,esp flag on EFI partition. <jpoiret>as for the /boot vs /boot/efi, you don't need two partitions for those: personally, I have my EFI partition on /esp, and /esp/EFI/Guix/ bind mounted to /boot <jpoiret>do you see the Welcome to GRUB prompt? <pranavats>Would you like me to try that configuration. Is there anything else that you see amiss? <jpoiret>what about the bootloader-configuration part of the system? <pranavats>jpoiret: Where is grub.cfg stored in your system? <jpoiret>as for LUKS2 support, I sent a patch an hour ago to add support, so we'll have to wait for a bit <jpoiret>pranavats: it ends up at /EFI/Guix/grub/grub.cfg on my EFI partition <pranavats>jpoiret: It's the usual grub-efi-bootloader config with /boot/efi as the target. Nothing special. <jpoiret>or alternatively /boot/grub/grub.cfg <pranavats>jpoiret: Do you mean /esp/EFI/Guix/grub/grub.cfg? <jpoiret>when it's mounted at /esp/, that's also where it ends up <jpoiret>did you mount everything before `guix system init`? <jpoiret>you could try checking where the grub.cfg file ended up <pranavats>jpoiret: yes, including swap, which isn't active in the image. <jpoiret>grub-install does a lot of magic which is a bit annoying <pranavats>I don't understand. For my install /boot/efi is the ESP and the only thing /boot/efi/EFI/Guix/ contains is grubx64.efi. <jpoiret>yes, that's because grub installs its config and themes and whatnot to /boot <pranavats>That's why I kept /boot on a separate unencrypted partition, so it can find grub.cfg. <jpoiret>although grub should be able to find its .cfg itself usually <jpoiret>are you on EFI? if so, are you booting using the right boot option? <pranavats>I don't use the subvol option, as you have used. <pranavats>I have boot,esp flags set on the EFI partition. <jpoiret>subvol is brtfs-only things, dw about them. Your file-systems look good to me <jpoiret>those flags aren't really important EFI-wise <jpoiret>do you know if you can enter your computer's UEFI Setup menu, where you can see eg boot order? <pranavats>jpoiret: I have a menu to choose which disk to boot from, but not of boot order. <jpoiret>only which disk to boot from? can you add new boot options? is this really an EFI system? <jpoiret>if you can't add boot options from within the Setup menu, you could try using efibootmgr from a live image <pranavats>jpoiret: It's a macbook. And I replaced the NVME SSD. I'm trying to install Guix on this new SSD. <pranavats>I used to be able to run Guix just fine with the preinstalled NVME SSD. <jpoiret>if you run efibootmgr from within the live image (from the efibootmgr package), do you see the boot option that is supposed to boot Guix's GRUB? <pranavats>But, I don't see that boot option in the boot menu. (Whereas I do see a boot option for the live installation disk). <pranavats>jpoiret: I don't know how to interpret the output of efibootmgr. I see entries for my old systems on the previous disk. Let me show you the output though. <jpoiret>oh, sorry, you should do efibootmgr -v <pranavats>jpoiret: No. I see a different UUID than any partitions on my disk. <pranavats>This probably shows entries from my previous disk which isn't connected anymore. How can I update this configuration? <jpoiret>you can use efibootmgr to manage them: `-b BOOTNUM -B` to delete one of them, and `-c -d /dev/nvme0n1p3 -l \EFI\Guix\grubx64.efi -L Guix` to add the right one (please double check the given options though) <pranavats>Thank you. I'll look into how to use efibootmgr. <civodul>lilyp: so i think i misunderstood your comment: was it just about the commit log mentioning "destination directory", or was it something deeper? <civodul>now i'm guessing the latter, sorry the the silly question <lilyp>It's about the variable "destination-directory" in both function arguments and elsewhere <lilyp>I wrote it in response to the commit message because that's where the words were first used. <pranavats>jpoiret: I'm unable to boot even after creating boot options using efibootmgr. <civodul>lilyp: you're talking about the name of the formal argument, right? <jpoiret>pranavats: hmmm, did you check that they are in the right order? <lilyp>now that I read it again, I don't think the name itself is ever "exposed" to the outside, so it'd probably be a simple sed <lilyp>oh, right, there appears to be a (destination ...) block now <pranavats>Apparently, there already existed a boot option from `guix system init` perhaps, that is identical to the options I created. So this doesn't seem to be the issue. <jpoiret>so you simply get a black screen then? <pranavats>jpoiret: I get a folder icon with a question mark. Which probably means no boot device found. It's a Macbook Air. <civodul>lilyp: right, if it's just the formal parameter, aesthetic shouldn't block the whole series (i agree on the aesthetics you propose, but still :-)) <civodul>lilyp: you seemed to be hinting at something more fundamental though, which is to add a --skeleton=DIRECTORY option, no? <lilyp>Again, I was under the impression that this would somehow be exposed to the CLI, which it is not <pranavats>jpoiret: I think there might be something specific to my laptop that I need to do. Reset NVRAM that is. <jpoiret>maybe, but i'm not sure it's what's preventing you to boot grub right now <lilyp>I have no strong opinion on destination vs. prefix for the field name, but for the variable name we might want to s/-directory// as we apply it <lilyp>Making the entire thing and using /etc/skel can be done in a separate patch if needed <lilyp>s/the entire thing/the entire thing optional/ <roptat>how can I add aliases in my bashrc/profile with guix home? <roptat>do I add them in a file-like object? <lilyp>roptat: post the patchset we're discussing, you'd write it as a mixed-text-file I guess <pranavats>jpoiret: I could try to install Guix without LUKS to see if luks really is the problem. <jpoiret>you should at least see a grub prompt <roptat>ah plain-file is enough for my needs right now, looks like it worked <roptat>I converted the openbox service from my old home-manager to guix home, it's great :) <roptat>I configured the menu with software that are not present in my profile ; I can start my gui apps from the openbox menu, but they're not cluttering my shell, it's great :) <roptat>the only downside to guix home is that it doesn't separate the user profile from itself, so I can't update my config separately from my packages, which was something I had to do a few times for lack of space during updates <roptat>I'll figure something, probably by moving some of my big files to another disk <civodul>lilyp: alright, all sounds good to me <civodul>i can apply the patches, changing the variable name as i go <lilyp>roptat: the insistence on the guix home profile is a pet peeve of mine as well â I do want to extend it so that any number of profiles (also possibly 0) can be managed using guix home <roptat>minikN, you can add this definition to your config.scm, and add something like this in your services field: (simple-service 'iptsd shepherd-root-service-type iptsd-shepherd-service) <minikN>Thanks roptat. I'll try it now. However, is it also possible to somehow bake this into my package definition? So that when I install the package I automatically have a service for it running? <roptat>the other way around is possble though: you can have a service extend the package profile <minikN>Meaning I'd set up the service and it would set up the package? <roptat>note that you didn't define a guix service, but only a shepherd service <roptat>that's why here you can use simple-service, but if you want to also extend the package profile, you'll need a guix service <jgart>Hi, how can I test documentation? <roptat>I have this syntax object: #<syntax:test.scm:1:0 ()>, and I'd like to extract the location. How can I do this? <jgart>or, what's the quickest way to build the cookbook, for example <jgart>If I just want to make a change and see the html <jgart>make: *** No rule to make target 'doc/cookbook.html'. Stop. <jgart>Hi roptat do you happen to know if the command should be something else? <mahmooz>is there no way to check the stdout of a herd service? like with systemd we do the following `journalctl -u <service>` <jgart>doc/cookbook.html rule does not exist <jgart>atleast according to that error msg <mahmooz>how am i supposed to run a webserver properly on a system if it doesnt have service logs đ€ <mahmooz>i would never know why something went wrong whenever it does *jgart searches the manual <mahmooz>also anyone know what /var/log/messages is? <jgart>It looks like the manual does not describe how to build the docs <jgart>unless I'm failing bad at grepping for it <jgart>Or, it's something that you should just know from using texinfo? *jgart knows very little texinfo and has mostly just used it for guix <vivien>mahmooz, do you have nginx or apache? <mahmooz>i know nginx probably has logs of its own <mahmooz>but what if a service wanted to run doesnt do its own logging but outputs to stdout instead idk i mean is there no equivalent to journalctl? <vivien>No, there arenât, unfortunately *jgart reads texinfo manual <vivien>However, if you have a program that does its own logging, and you want to create a service out of it, itâs not too difficult to run a bash script that invokes the daemon program with > bash redirections. <vivien>Anyway, nginx logs under /var/log/nginx/{access,error}.log <minikN>roptat: Actually cut that. Do you have an example on how to create a guix service that sets up a package and start/stops it? <ss2>minikN: start reading through the available service definitions. <ss2>That's what I did, and eventually successfully managed to write my own definition. <ss2>Some are very simple and basically just have the bare minimum necessary to get running. *jgart was able to compile the docs with texi2html <florhizome[m]>What I havenât grasped well is under which circumstances you would or would not default to the forkexec and the default kill process described in the manual <minikN>ss2: That's what I've been doing. Can't seem to find an example that does what I want or I don't recognize it as such. <mahmooz>exitim trying to run bluetooth but when i put `scan on` it just never finishes scanning <ss2>florhizome[m]: I think I was in that situation too. If I don't get it wrong then you end up writing your own instruction if you wan't it to have behave differently. The âmake-kill-instructorâ is just a default instruction. <florhizome[m]><mahmooz> "but what if a service wanted..." <- Guix uses syslogd right, would one not just extend that? <florhizome[m]>Well I just donât really understand process forking and pids etc and so Iâm kinda unsure but seems like a default <mahmooz>how come bluetooth doesnt detect my headset lol <mahmooz>it detects my phone and connects to it and all <florhizome[m]>f.e. why not just run âthink fanâ, but do this forking thing ^^ <mahmooz>wait should i stop bluetoothd beforehand? <Jeremy[m]>that will reset bluetoothd including all devices and configurations <mahmooz>oh the service is called bluetooth not bluetoothd lol <mahmooz>i can see the headset from my phone so i know its not the headset acting up <florhizome[m]>how do I mention someone in matrix? Is it just @? wanted to post the package definition from yesterday evening since nsck had asked :) <singpolyma>florhizome[m]: by typing a name and then a colon <singpolyma>Most clients have tab completion or similar, not sure what matrix has <singpolyma>It caused a mention in my client when you did that just now <dstolfa>florhizome[m]: if they're on matrix, use @. if they're on irc, you probably want to just type the name and add a :, as both irssi and weechat ping with that <nckx>The : isn't needed. Just write the name. <ss2>I think mentioning the name alone is enough. <nckx>How you doin', nckx? nckx: not bad. All works. <nckx>Time to upgrade to HexChat. <nckx>dstolfa: See? HexChat doesn't. HexChat is the Unix philosophy writ large. <nckx>Hey dstolfa you gettin' pinged yet. <singpolyma>dstolfa: really? I thought nick went on the irssi ping list by default. You can add other words to the list too <nckx>/set hilight_nick_matches on ***jonsger1 is now known as jonsger
<lilyp>what does Unix compliance mean in this context? <nckx>Is Guile a certified UNIXÂź? It's error messages are shit. I think we stand a good chance. <nckx>Have you ever seen Unix do one thing well? Yeah. <singpolyma>Guile and Guix are part of GNU, which we all know is Not Unix. Right in the name <lilyp>I don't think programming languages are subject to that. <lilyp>No, it does static and dynamic linking, that's two things. <lilyp>Hence why Go and Rust are the only Unix programming languages. <nckx>But Scheme does do one thing well: everything. <lilyp>buuuuuut they're also package managers and build chains, so there is actually no Unix programming language. It's back to assembly. <lilyp>florhizome[m]: not so clear either <jpoiret>just had a stroke of genius (or you could just call that Reading The Docâą). I'll add swap support to the hurd by using let-system inside the swap shepherd service to discriminate at eval time which api i should use for the system <lilyp>you can use Guile to extend programs or to write your own <florhizome[m]>although the actually most used extension language for Unix is probably python <nckx>(It's really not Python.) *M6piz7wk[m] is on NIx and it doesn't have /usr/share/zoneinfo <jpoiret>although now I have a problem: how do I refer to the system's chosen kernel package (since the 'swapon' binary will be in there) from inside the g-exp? surely there's something more elegant than just carrying it all the way down there <lilyp>The most popular extension language is Javascript. <lilyp>Gnome folks would like to have a word with you :P <jpoiret>side note: UTC's etymology is something incredibly stupid, in english it should be UCT, and in french TUC, so people thought naming it UTC would be a good compromise <nckx>florhizome[m]: If you're defining âextension languageâ in such a way that anything that's more common than Python doesn't count somehow, well, I can't argue with you, mainly because I can't. <rekado>will the raw image for the pinebook pro that I can download from ci.guix.gnu.org work for the Honeycomb board? <rekado>I donât know whatâs the best way to install Guix System on these things. <lilyp>Vala is for writing applications <rekado>start with a default Ubuntu image and then use âguix system init /â perhaps? <nckx>jpoiret: s/stupid/genius/ although opinions are pretty cheap on #guix right now đ <lilyp>I'm pretty sure Vala predates Rust <lilyp>And it's sad to see it lose out thanks to the latter. <lilyp>At least Vala has dynamic linking. <jpoiret>if you factor in rust's bootstrap size then that's pretty easy <nckx>Or dependency graph size. <lilyp>Also Vala has actually sane syntax for most things. <nckx>Jeremy[m]: That was Mono. <lilyp>As sane a syntax you can get without becoming Lisp at least. <Jeremy[m]>Vala has a reference counting GC, Rust doesn't have a GC <lilyp>nckx: No they're right, Vala is inspired by C#. <nckx>I literally have no idea what Vala code looks like. Why did Mono get so. much. flak. compared to Vala then? <nckx>lilyp: JavaScript was inspired by Java. That went well. <florhizome[m]>I would prefer gnome just using guile tbh so the bindings are readily available but I registered although a gnu project they donât use gnuâs extension language :O <singpolyma>It's basically heavy macros on C if you just want to use gobject and gtk for everything <lilyp>JavaScript was also inspired by Scheme. <nckx>They don't use much of GNU's anything. <lilyp>I don't know how, but it's a fun thing to quote. <singpolyma>Is GNOME actually a GNU project? Maybe technically <florhizome[m]>Anything was probably at one time inspired by lisp or scheme <Jeremy[m]>> Is GNOME actually a GNU project? Maybe technically <singpolyma>But even emacs doesn't use GNU's extension language, so heh <dstolfa>Jeremy[m]: sometimes not having a GC is a curse. source: i've implemented a GC for things in C numerous times :P <Jeremy[m]>ok well historically, the FSF funded the development of GNOME and listed it as a GNU project, but nowadays the GNOME Foundation operates independently of the FSF, and the GNOME folks don't consider themselves to be part of GNU (even though GNU considers GNOME to be part of them ;D) <lilyp>tbf the reference counting in GLib is really good tho <singpolyma>Not having a *default* GC is great because you can always use one if you want it <Jeremy[m]>> Jeremy: sometimes not having a GC is a curse. source: i've implemented a GC for things in C numerous times :P <dstolfa>singpolyma: i didn't know you could turn on a GC in rust <nckx>I know that JS was supposed to be a Scheme, but I didn't know the mutilated mutt that replaced it was still meaningfully inspired by Scheme. Cool if true. <florhizome[m]>And many people will say that GNOME is the real Linux desktop bc they are part of GNU <singpolyma>dstolfa: there are a couple of rust gc libraries around <Jeremy[m]>> And many people will say that GNOME is the real Linux desktop bc they are part of GNU <Jeremy[m]>Note that the main GNU distro, Trisquel, ships MATE instead of GNOME 3. <nckx>> Calling the main GNU distro Trisquel in #guix <dstolfa>singpolyma: i never really used a gc library, i usually just implement a gc for the thing i need <singpolyma>Jeremy[m]: pretty sure Guix is the *only* GNU distro <Jeremy[m]>> > Calling the main GNU distro Trisquel in #guix <Jeremy[m]>maybe we should convince him to install Guix <nckx>A Debian fork/derivative, no offence intended. <lilyp>RMS also uses credit cards when booking flight tickets, so clearly he is fallible :) <M6piz7wk[m]>Why is GNU Guile using `.scm` (SCheMe) as extension? Is that a dialect of scheme? <singpolyma>M6piz7wk[m]: yes, guile is a standards compliant scheme plus extensions <jgart>M6piz7wk[m], yeah that is common for schemes <lilyp>Many schemes use "scm" as prefix/suffix internally, Guile being one of them <nckx>Yes. I'd say it's just âa Schemeâ and call e.g. Racket a âdialectâ. <nckx>I don't know if that's absolutely technically correct but Guile is pretty compliant everywhere it matters. <jgart>racket seems like it's just a dialect of scheme also <jgart>I would consider guile to also be a dialect of scheme <nckx>florhizome[m]: Scheme is an Esperanto of Lisp, but butter. <singpolyma>nckx: pretty sure guile is at least r5rs compliant <nckx>That was a typo but I like how it turns it into a flippin' Zen koan. <lilyp>the manual would like to have a word with you <nckx>I think that's even how it self-identifies. <lilyp>oh, wait, incompatibilities only count for R6RS and R7RS <nckx>Yes. And then things get weird with R7RS. <singpolyma>M6piz7wk[m]: racket likes to think it is special <singpolyma>Racket is leaving s expressions for default syntax IIRC <nckx>I think Racket almost prides itself at not being wed to Scheme. In practice it is one but it likes to remind everyone it could leave at any time. At least that's my honest impression as a Guiler. <lilyp>Writing bindings to something as big as GTK still isn't trivial, though. <lilyp>In particular while keeping GC vs. reference counting in mind. <lilyp>There's three attempts I know of, one of them ancient. <lilyp>You can install Guix anywhere. <jpoiret>lilyp: there's a whole cemetery out there of unmaintained GTK bindings <florhizome[m]>would guile like ppl to stay with c for âbackendâ stuff, and not rust or go, or whatever? <lilyp>For Guile it doesn't matter, at least Rust has an "extern C" <lilyp>M6piz7wk[m]: Guix and Nix use different stores, so you'll just duplicate things <jgart>Do you have a trick to automate it or make it less painful than just downloading them one by one <jgart>I tried wget scraping them before <M6piz7wk[m]>Can i cleanly remove guix once i install it on NixOS? <jpoiret>lilyp: not duplicate, since the stores have different prefixes, their outputs will be different :) <jgart>maybe I should finish that script <lilyp>jgart you can use /issue/NNNN/patch-set <lilyp>if there's more than one, add /R <jgart>lilyp, do you mean to wget that? <lilyp>probably, it's a simple GET request and the API does magic in the background <jgart>does the emacs debugs mode help with this at all? <M6piz7wk[m]>How is GUIX not FHS3.0 complaying? It is that it uses /gnu and otherwise FHS is respected or? <Noisytoot>M6piz7wk[m], Using /gnu means that FHS isn't respected <jgart>> racket likes to think it is special <Noisytoot>/home and /dev are used, but /lib, /usr, and /bin aren't <jpoiret>FHS isn't respected mostly because it doesn't need to. But I'd say in this case that it's the FHS that doesn't respect Guix: ie programs have to be patched to be Guix-compliant <Noisytoot>/etc is used, but lots of stuff there is generated from config.scm and a symlink to a file in /gnu/store <M6piz7wk[m]>i meant mostly for when i am working outside of the store like being forced to put optional files in /usr <Noisytoot>In / I have: bin boot dev etc gnu home media mnt opt proc root run sys tmp usr var, but some of those directories are just full of symlinks to files in /gnu/store <jpoiret>when using guix on a foreign distro, Guix doesn't interact with the FHS at all <M6piz7wk[m]>jpoiret: i meant for secrets and files that are changing on runtime since store is read-only and world readable? <jgart>lilyp, could you give an example of the GET request with the syntax you mentioned above <jgart>It would be much appreciated <lilyp>/dev/stdin is not part of /gnu/store <jpoiret>is 'parametrized' a guix or guile thing? <lilyp>parameterize is guile syntax *M6piz7wk[m] goes to relog to get guix on NixOS, if it breaks he will cry in a corner <jgart>great that downloaded the patch set as one file called "5" <jpoiret>lilyp: I can't find it anywhere in the guile manual <jgart>florhizome[m], what do you mean that they are available? <M6piz7wk[m]>... it would help if i installed guix outside of nix-shell <jpoiret>M6piz7wk[m]: don't forget to source the guix profile too <jgart>M6piz7wk[m], someone packaged guix for nix <jgart>not sure if you've seen that yet <jpoiret>well, in your bash_profile for example <jgart>It's not an accepted package in nixpkgs though *M6piz7wk[m] C^ the installation <jpoiret>lilyp: Oh, that's because it's spelled parameterized, my bad <jgart>> Kinda more a code dump than for actual use <singpolyma>Is there a nix package for Guix? Recursive installations! <jgart>mutual recursive installations... <jpoiret>can you use guix on nix on guix though? <M6piz7wk[m]>singpolyma: won't help since i need smooth migration from NixOS :p <M6piz7wk[m]>and mainly i want to run the guix command to test the configuration since defining dockerfile is too much pain to do <florhizome[m]>can nix do containers and system deployment like guix? Then you can do inceptioning *M6piz7wk[m] doesn't know what inceptioning is in this context <jgart>florhizome[m], have you worked on any pantheon desktop components? <florhizome[m]>You need plank for that and for that you need sth called bamf <jgart>are you planning to submit it <jgart>what's the issue you last ran into? <jgart>I think Ryan has packaged the pantheon terminal <florhizome[m]>and bamf actually gets to install and then a lot of stuff happens