IRC channel logs


back to list of logs

<rekado>nixo_: I might be able to take a look at this in ~14 hours or so.
<nixo_>rekado: no hurry at all! Thanks
<rekado>nixo_: would you like to send your progress to in the mean time? It’s easier to keep track of work this way.
<nixo_>It's building but I'm disabling the tests (emacs complaing of no tty) and I'm not sure why emacs during the build cannot find julia-mode. Yes I'll send an email! :D
<rekado>oh, julia is needed now…?
<nixo_>rekado: just julia-mode (like in v17). Btw, if my other patch get applied, now we have julia in guix :D
<kori>rekado: it's pretty unreadable :/
<kori>there's a lot of like
<kori>repeated code
<kori>it's hard to navigaste
<kori>at least a cleanup of the build system is needed
<kori>it also wouldnt make sense to call it "xcb" considering its a guile binding
<kori>not a X C Binding
<rekado>kori: it’s a Guile binding for XCB
<kori>it's a pure guile implementation of the X protocol, rekado
<civodul>hey nixo_, i've applied your Julia patch locally and the build is close to complet (hopefully!)
<civodul>it takes ages
<kori>civodul: i only realized a few days ago you're ludo
<bandali>kori, have you tried reading civodul backwards yet? :)
<kori>tl;dr rekado im really not happy with it at all
<kori>not shit talking mwitmer btw
<rekado>kori: sorry, yes, but it compiles the XCB XML files.
<kori>it does
<rekado>hence the XCB in the name
<kori>i was thinking about implementing the X protocol directly, without such a compilation
<kori>so it's easier to have like
<kori>easier to read code
<kori>and maybe not use autotools for the build, and maybe organize the code differently so its easier to navigate and understand
<civodul>i don't think that's doable nor desirable
<nixo_>civodul: WOW! Thanks! Yes, for the build I have a 24 core librebooted asus KGPE-D16. It takes like 20 minutes there :D
<rvgn>nckx tab-completion?
<kori>civodul: for guile-xcb?
<civodul>nixo_: i'm actually building on one of these (our "bayfront" machine), but restricted to half the cores or something
<rekado>I think compiling the XML is really elegant.
<civodul>nixo_: oh, done!
*rekado uses the same approach for Guile AWS
<nckx>rvgn: For your new nick.
<nckx>I never bothered completing the old one.
<kori>civodul: if that "yes" was directed at me
<kori>i think at least a bit of a cleanup is doable (already got started on it and im like, halfway through) and I definitely do desire it :)
<kori> I want to rewrite Xlambda in pure guile
<rvgn>nckx xD
<civodul>i can't believe Julia stealthily exposes people to generic functions
<nixo_>civodul: yay! However, I love julia the language but I hate the reproducibility problems they have (and the way they aren't even trying addressing it. It's impossible to compile the same module twice, let alone the full julia install)
<kori>doing it with guile-xcb as it is is kinda hard :/ I have trouble understanding how to use it
<civodul>nixo_: yeah the build system, all the things they bundle, that's terrible
<atw>kori: oh, you're the xlambda author! Hello!
<kori>atw: hello!
<civodul>now to apply the 'reconfigure' patches, and then i'm done for today
<kori>atw: development took a bit of a pause because I was distro hopping
<kori>i kinda ignored guix for too long, and I regret it now
<kori>it's awesome!
<kori>ignored i.e. actually using it
<rekado>kori: I don’t like the use of car, cdr, null?, “if” with branches that return #f or #t in guile-xcb, but the general design is pretty neat IMO.
<kori>rekado: at any rate, I'll still take a crack at maybe documenting it a bit :)
<kori>we'll see if my effort was worth it
<kori>after im done
<rekado>sounds good
<nixo_>time to sleep, good bye people
<kori>night nixo_
<rekado>kori: do you have plans regarding wayland?
<kori>yes I do
<kori>someone mentioned wanting to make something similar to Xlambda in wayland
<Dynamicmetaflow>rekado: I think maybe the smartcard isssue is a problem related to qemu
<kori>but maybe that might not happen
<atw>guile-xcb but for wayland is something I've wanted to do for a while
<kori>but I do have a "waylambda" planned :D
<kori>at the end of the day
<Dynamicmetaflow>i love the name waylambda
<kori>i wanna have enough primitives that like... Xlambda and waylambda would be 100% compatible
<kori>Dynamicmetaflow: its neat, huh
<kori>considering the tagline for Xlambda is "Xlambda: the ultimate X window manager" (i.e. lambda the ultimate)
<Dynamicmetaflow>it's amazing
<kori>waylambda would just as easily be "waylambda: the ultimate wayland window manager"
<Dynamicmetaflow>I imagine the lambda symbol with sunglasses
<kori>im stealing your idea :P
<Dynamicmetaflow>go for it!
<Dynamicmetaflow>I give you GPL3 for it
<atw>kori: the last time I looked at guile-xcb, it was sorta "top down", starting with its usages in guile-wm. IIRC I was trying to spelunk in guile-xcb looking for where it turns the PascalCase identifiers into lisp-case. Not sure if I figured it out...
<kori>atw: I got confused really fast
<kori>reading through the code
<kori>someone asked me a while ago why i didnt use guile-xcb
<kori>i couldn't figure it out
<atw>But like rekado I did think the approach seemed really cool and lispy -- the programmatically generated code is as complete as the supplied data about the protocol. It's the same approach taken in, e.g.
<kori>I kinda drank a bit too much of the suckless koolaid
<kori>so whenever i see autotools i kinda shudder
<rekado>atw: oh, that’s a good reference for my Guile AWS library
<rekado>kori: autotools is kinda gross, but it works. Having packaged countless packages for Guix I found packages using autotools much easier to get working than packages using any other build system.
<kori>it does work...
<kori>rekado: I mentioned here a while ago that it would be cool to have a "Guixfile" i.e. guix makefile
<atw>rekado: re AWS, you might also find the talk introducing the library interesting, which I include for completeness:
<kori>rekado: at any rate... it does weird me out that like
<kori>it's not
<Dynamicmetaflow>so possible at all to do some WebRTC and guile together?
<kori>its not really a "first class abstraction" lib
<kori>idk how to describe it
<rekado>atw: in my library I turned the docs into docstrings and instead of (aws/invoke {:op CreateBucket}) “CreateBucket” is a procedure.
<kori>comparing these two, Xlambda's definitions are like, easier to read and understand
<kori>at a first glance
<rekado>atw: I’d like to think it’s a little less verbose this way.
*rekado –> zzZ
<emacsomancer>trying to build a linux-kernel-module, but getting errors about linux-libre-headers as an unbound variable, despite including it in inputs, and native-inputs:
<atw>rekado: yeah...I forget exactly why they made that decision but I think it had to do with making documentation first-class. So there's a function that gives you a description (as a data structure) of what CreateBucket wants
<minall>Hello guix!
<minall>quiliro, Kiel vi Fartas!
<quiliro>minall: bone! ĉu kaj vi?
<quiliro>minall: mi aktualas libreoffice-on
<quiliro>estas tre granda
<minall>Welp, it is a pretty big program
<nckx>emacsomancer: Inputs don't bind variables. Did you forget a module import or an unquote somewhere?
<nckx>(I'm guessing they shouldn't be inputs, although the difference might be irrelevant here; definitely not both.)
*apteryx is running after the rabbit down into mcron's source code
<apteryx>(hoping to get clues as to why mcron chokes on <> from srf-26)
<emacsomancer>nckx: ah, that's what it looks like! cheers!
<raghavgururajan>Hello Guix!
*raghavgururajan was previously known as rvgn :)
<emacsomancer>hello raghavgururajan
<gnutec>emacsomancer: What's up!
<emacsomancer>hi gnutec
<emacsomancer>trying to build linux-kernel-modules in guix....
<gnutec>Yeh, I see.
<gnutec>Did you use Guix OS, or just the package manager?
<emacsomancer>gnutec: this is in Guix System itself
<emacsomancer>(on foreign distros I have the relevant kernel modules available already)
<gnutec>emacsomancer: Well... I think you shouldn't do that cause Hurd is coming (I think). But if you wanna. I guess the guix, because it is real free software, they don't have all the tools for this. Try install a non free kernel linux with "make install". I hope you have a backup.
<gnutec>emacsomancer: I never do that!!!
<emacsomancer>gnutec: this is on my non-main machine. the issue here is not about non-free software/drivers, but about additional kernel-functionality. (& I'm not holding my breath for Hurd).
<emacsomancer>in a package definition, how do I require a certain version of a symbol from module? (here, a certain version of `linux-libre-headers`)
<nckx>emacsomancer: linux-libre-headers-<version>. You can ‘grep linux-libre-headers- gnu/packages/linux.scm’ for a list. Yes, uggo.
<nckx>linux-libre-headers-5.2 linux-libre-headers-4.19 linux-libre-headers-4.14 linux-libre-headers-4.9 linux-libre-headers-4.4 linux-libre-headers-4.14.67 linux-libre-headers
<nckx>That's all of 'em.
<emacsomancer>nckx: right, but how do I specify this in a definition? It's not an input (or should it be?), but obtained via use-module, which seems to default to the latest version.
<emacsomancer>(oh! and no 5.1?)
<nckx>I don't understand…
<nckx>The above are variables, exported by the (gnu packages linux) module.
<emacsomancer>how do I make sure that linux-libre-headers-5.2 isn't used?
<emacsomancer>or can I only do via via (native-)inputs?
<nckx>emacsomancer: No 5.1 since we don't ship that kernel, either. We only provide linux-libre-headers for the linux-libre kernel versions in Guix. You can make your own with (@@ (gnu packages linux) make-linux-libre-headers). Obviously the @@ means it's not officially supported 🙂
<nckx>Used by what?
<nckx>You're writing a package, correct? How is it ‘using’ linux-libre-headers-$wrong, and how is it getting them?
<nckx>Do you mean the module build-system?
<emacsomancer>I'm getting linux-libre-header variable via (gnu packages linux), but it seems to default to rabbing 5.2
<nckx>It takes a ‘#:linux linux-libre-$foo’ keyword.
<nckx>Well yes, because Guix doesn't ship with 5.1.
<emacsomancer>the definition itself?
<emacsomancer>(I don't actually care that it's 5.1, just <5.2)
<nckx>Just curious which kernel you use in your system configuration, then.
<nckx>If it's the default, it won't be 5.1 once you pull & reconfigure ;-)
<emacsomancer>well, right now I'm just defaulting to 5.2, but I assume i don't need to be running the same kernel to get the kernel module itself to build (of course to use it, I would)
<emacsomancer>so should the definition look like: "(define-public blah #:linux linux-libre-headers-4.19 ...." ?
<nckx>(arguments `(#:linux linux-libre-4.19))
<nckx>It takes a full (built!) kernel to build modules, not just the headers.
<nckx>Well, partially built. ‘Buildable.’ 🙂
<emacsomancer>nckx: ah. but I'm in a guix build environment anyway; should I have required a build environment with a specific kernel?
<nckx>emacsomancer: *still utterly confused* Your environment won't affect the result of a package you're writing, and building with Guix, in any way.
<emacsomancer>nckx: ok, that's what I had assumed, so it shouldn't matter.
<emacsomancer> (arguments `(#:linux linux-libre-4.19)) results in a build error: "In procedure struct_vtable: Wrong type argument in position 1 (expecting struct): linux-libre-4.19"
<nckx>I can tell you that building a kernel module for linux-libre version <foo> is as trivial as adding (arguments `(#:linux linux-libre-<foo>)), and we only support the versions in Guix (although it's pretty easy to extend that but let's keep things simple for now…).
<nckx>emacsomancer: My bad, I forgot a ‘,’ since we're inside a quasiquoted list of arguments. Try ,linux-libre-4.19
<emacsomancer>ah! yes, it's happier with that
<nckx>Oh, you'll probably need #:tests? #f, too, since I've yet to meet a kernel module with a test suite.
*nckx uses some linux-module-build-system magic on their own machines so knows that it works.
<emacsomancer>good tip.
<nckx>With that, you should have a loadable module (assuming the versions match). You can add #:phases just like in other build systems if it needs more… convincing.
<emacsomancer>nckx: thanks. I suspect this may require quite a bit of convincing, but I'm happy to make steady progress on it.
<nckx>Best of luck!
*nckx → 😴
<gnutec>emacsomancer: What is not working in your computer?
<emacsomancer>gnutec: zfs
<pkill9>is anyone else getting errors with a .guix-channel dependency file?
<gnutec>emacsomancer: Do you want access the partition, or install the system on it?
<pkill9>i get an error with this Updating channel 'pkill9-nonfree' from Git repository at 'file:///tmp/pkill9-nonfree'...
<pkill9>/gnu/store/zbwqf108h8fqn7vqxm57jwk02ql325j2-pkill9-nonfree-24b01a1/.guix-channel:1:0: error: invalid '.guix-channel' file
<emacsomancer>gnutec: ultimately the second, but I'm starting with the more modest goal of the first
<gnutec>emacsomancer: I always try to follow GNU. Like Btrfs.. Now I use Trisquel with EXT4. I'm just wait a new HDD to install guix system.
<emacsomancer>gnutec: openZFS is free & open source software, under a weak copyleft licence.
<emacsomancer> I'm using btrfs on my guix system right now, but I'm not very comfortable with it, and ext4 I've suffered data loss (bitrot), so I try to use checksumming file-systems, and zfs is the one I'm most comfortable with.
<gnutec>emacsomancer: Ok!
<Dynamicmetaflow>Has anyone packaged a gnome pacakge for guix
<Dynamicmetaflow>been experiencing this problem on and off throughout the day and out of ideas
<gnutec>Dynamicmetaflow: ???
<Gooberpatrol66>how does installing guix packages on a non-guix system work?
<Gooberpatrol66>say i install sl and it's already installed by apt-get. which version of sl gets executed if i run the command?
<Gooberpatrol66>is there a way to choose which version of sl to execute?
<emacsomancer>it would depend on $PATH things
<emacsomancer>yes, you can run either apt's or guix's
<Gooberpatrol66>is there some sort of instruction page for how to do that
<gnutec>Gooberpatrol66: guix.pdf
<emacsomancer>/usr/bin/sl would run apt's ; ~/.guix-profile/bin/sl would run guix's
<emacsomancer>you can probably adjust your PATH to have apt's thing run by default
<emacsomancer>gnutec: did you mean to link to a particular pdf?
<gnutec>emacsomancer: just search in duckduckgo or go to
<emacsomancer>(I presume )
<emacsomancer>( or even: for other langs )
<quiliro>sneek_: what is gwl
<quiliro>sneek_: who is civodul
<sneek_>From what I understand, civodul is a very naughty boy
<quiliro>disruptive, i might say!
<quiliro>sneek_: what is cons
<quiliro>sneek_: what is guile
<sneek_>guile is one hunka hunka burnin hack.
<quiliro>sneek_: where is guile
<quiliro>sneek_: what is scheme
<sneek_>Its been said that Scheme is a small, easy to learn, somewhat despised Lisp dialect.
<quiliro>sneek_: what is lisp
<sneek_>Its been said that Lisp is a powerful, highly expressive, classical, and somewhat despised family of programming languages.
<quiliro>sneek_: what is powerful
<quiliro>sneek_: what is why
<quiliro>sneek_: help
<nothingmuch>for cmake packages, is there a reccomended/idiomatic approach for dealing with externalproject? substitute*/patch to eliminate?
<quiliro>sneek_: who is quiliro
***chipb_ is now known as chipb
<gnutec>quiliro: Guile is the program language of the gnu project. Lisp is the language use by Richard Stallmann before create Emacs Lisp. Guile is a implementatin of Scheme is a implementation of Lisp. Is the most easy to learn programming language.!
<efraim>sneek_: what is cake
<efraim>sneek_: what is the cake
<sneek_>From what I understand, the cake is a lie
<quiliro>sneek_: Guile is the programing language of the GNU project. Lisp is the language used by Richard Stallmann before Emacs Lisp was created. Guile is an implementatin of Scheme, which itself is an implementation of Lisp. It is the most easy to learn programming language!
<quiliro>what is guile
<quiliro>woops...did not work
<quiliro>what is guile
<quiliro>guess it was too long
<quiliro>sneek_: what is guile
<sneek_>Last time I checked guile is a hunka hunka burnin hack.
<quiliro>sneek_: where is guile
<quiliro>sneek_: who is guile
<sneek_>From what I understand, Guile is the programing language of the GNU project. Lisp is the language used by Richard Stallmann before Emacs Lisp was created. Guile is an implementatin of Scheme, which itself is an implementation of Lisp. It is the most easy to learn programming language!
<quiliro>sneek_: Guile is the programing language of the GNU project. Lisp is the language used by Richard Stallmann before Emacs Lisp was created. Guile is an implementation of Scheme, which itself is an implementation of Lisp. It is the most easy to learn programming language!
<quiliro>sneek_: what is guile
<sneek_>From what I understand, guile is a hunka hunka burnin hack.
<quiliro>sneek_: who is guile
<sneek_>I could be wrong, but guile is a hunka hunka burnin hack.
<quiliro>sneek_: who is guile
<sneek_>Last time I checked guile is hunka hunka burnin hack.
<quiliro>sneek_: what is guile
<sneek_>I could be wrong, but guile is hunka hunka burnin hack.
<quiliro>who is guile
<quiliro>what is guile
<quiliro>sneek_: what isguile
<quiliro>sneek_: what is guile
<sneek_>Its been said that guile is one hunka hunka burnin hack.
<quiliro>sneek_: who is guile
<sneek_>I've heard guile is cool
<quiliro>sneek_: why don't you learn?
<quiliro>sneek_: who is guile
<sneek_>Its been said that guile is a hunka hunka burnin hack.
<quiliro>sneek_: what is guile?
<sneek_>Someone once said guile is a hunka hunka burnin hack.
<quiliro>sneek_: who is guile?
<sneek_>Its been said that guile is a hunka hunka burnin hack.
<quiliro>sneek_: I give up until i talk to your parents.
<quiliro>sneek_: When i talk to you in private, you learn. But when i ask you in public, you have forgoten what i had taught you.
<kori>quiliro: teach sneek_ that guile is a street fighter character
<quiliro>kori: i cannot even teach it what guile really is... :-|
<ryanprior>this is the guru's burden
<roptat>hi guix!
<rekado_>hey roptat
<roptat>I've written a quick java parser (for top-level and class-level definitions only) in order to generate the plugin.xml files required to build maven plugins properly
<roptat>the parser is working, but I still need to generate a proper plugin.xml
<roptat>(it's almost working, I just need to parse some comments and make sure I properly translate some type names)
<roptat>so I think I'm getting close to a working maven-build-system now :)
<roptat>I'm not completely sure how I want to integrate all that though... maybe we should have a bootstrap phase that builds maven as soon as possible, dropping as many dependencies as possible, and then use the maven-build-system to rebuild the dependencies
<roptat>or maybe a modification to the ant-build-system is enough for most cases
<roptat>the devel version of the online manual doesn't seem to follow master, the last version is from July 18th
<roptat>is that expected?
<efraim>probably not
<efraim>building a system image on aarch64 fails, time to dev on a slow aarch64 board :/
<efraim>on the other hand it may have been easier to just set up offloading rather than bootstrapping guix
<efraim>s/may have been/might be/
<raghavgururajan>Hello Guix!
<roptat>how do I wrap a perl program so it can find its dependencies?
<roptat>I want to make it a service, so I can't just rely on propagated inputs
<rekado_>roptat: use the PERL5LIB variable
<roptat>do we have a procedure to easily create a wrapper?
<roptat>oh, wrap-program, right?
<rekado_>on core-updates you can use wrap-script
<rekado_>it doesn’t create a separate file; instead it embeds the wrapper in the script
<raghavgururajan>Do anyone knwo who is maintainer of GnuPG in Guix?
<rekado_>raghavgururajan: all of use.
<rekado_>is something wrong with it?
<raghavgururajan>What lol
<rekado_>we have no individual maintainers for packages in Guix.
<raghavgururajan>Dependency "pinentry" is missing.
<raghavgururajan>Ah I see. I did not know that.
<raghavgururajan>Pinentry is critical for generating key pairs
<raghavgururajan>I am not able to create any gpg keys.
<raghavgururajan>I just submitted a bug.I will paste the link shortly. It will have error messages.
<efraim>We don't propagate pinentry so you can have your choice on which pinentry you want
<raghavgururajan>efraim What are the choices? I tried installing package pinentry on both system and user profiles. Still gnupg did not work.
<rekado_>raghavgururajan: you also need to tell gnupg which pinentry it should use.
<rekado_>I wonder if we could set up a sensible default here.
<raghavgururajan>rekado_ How should I do that? Never done it before.
<raghavgururajan>Yes, defaulting something in gnupg would be wise.
<raghavgururajan>Because one of the important function (generating key pairs) is getting affected.
<rekado_>in gpg-agent.conf you’ll need a line like this: pinentry-program /home/rekado/.guix-profile/bin/pinentry-gtk-2
<rekado_>(if that’s the pinentry you installed)
<rekado_>but this should be documented in Application Setup
<raghavgururajan>Hmm. I was reading things at, didn't come across this setup.
<raghavgururajan>I'll re read.
<raghavgururajan>rekado_ Anyway, is it possible default atleat one pinentry to the gnupg in guix?
<rekado_>I don’t know.
<rekado_>would be good if that could be done.
<raghavgururajan>Manually, editing things inside ".guix-profile" is not guix way right?
<raghavgururajan>it is read-only directory
<raghavgururajan>rekado_ I seems it is possible. Check out:
<raghavgururajan>They have pinentry listed as depedency. GnuPG work out-of-box in hyperbola.
<rekado_>raghavgururajan: you are not supposed to edit anything in .guix-profile. I did not suggest doing that.
<raghavgururajan>rekado_ Sorry. I read it in reverse.
<rekado_>raghavgururajan: there are different kinds of pinentry in Guix. We don’t select one for all users. It would be good to have a fallback, though.
<raghavgururajan>You meant editing gpg-agent.conf
<raghavgururajan>rekado_ Where is this gpg-agent.conf file located? I cannot find it in my home directory.
<rekado_>raghavgururajan: it’s in ~/.gnupg (or wherever your GPG home is); if it isn’t you should create it.
<raghavgururajan>I have /home/user/.gnupg. But no "gpg-agent.conf" file inside that. So I will create one?
<raghavgururajan>rekado_ So I should just create gpg-agent.conf inside .gnupg and include the line "pinentry-program /home/user/.guix-profile/bin/pinentry". Correct?
*raghavgururajan suggests pinentry as sane default (fallback), when compared to pinentry-gtk, pinentry-qt and emacs-pinentry
<raghavgururajan>pinentry provides both console and gui
<raghavgururajan>rekado_ I tried what said. Still same error :(
<raghavgururajan>rekaso_ It works :)
<raghavgururajan>rekado_ it works :)
<mbakke>Does anyone remember why 'icu4c' uses --with-data-packaging=archive on mips and arm platforms?
<mbakke>Commit 0d93648bece32ba516812b3a4264dd0a72810dbf added it to get rid of a 'patchelf' hack.
<mbakke>I wonder if it's still relevant.
***byzoni[m] is now known as cyberwolf[m]
***cyberwolf[m] is now known as byzoni[m]
<civodul>Hello Guix!
<danialbehzadi>Hey civodul
<brendyyn>anyone had a play with the qtwebengine patch? it compiled for me amazingly. then i tried to build python-pyqt with it and it failed with error: qprinter.h: No such file or directory
<jonsger>brendyyn: about which patch are you talking
<brendyyn>it needs to find that in the search path i think
<brendyyn>jonsger: do you know how that can be fixed. is it an INCLUDEPATH thing?
<minall>Hello guix!
***chris3 is now known as chrislck
<jonsger>brendyyn: not really :(
***z0d is now known as z00d
***z00d is now known as z0d
<efraim>Does anyone know how to import crates of a specific version? For python I can do package/version and it works
<civodul>thoughts on the Guile-JSON upgrade?
<civodul>rekado_: WDYT?
<JayStrict>Using a foreign distribution (Arch Linux), I whonder why there are two distinct user profiles: one in ~/.config/guix/current and one in ~/.guix-profile
<JayStrict>What are their semantical differences?
<lfam_>JayStrict: The first one is used by `guix pull`, which is the tool used to update the Guix tool itself, and the to update the list of avaiable packages
<lfam_>JayStrict: The second is contains the packages you've actually installed
<lfam_>The second is used by default when you do things like `guix package --install vlc` or `guix install vlc`
<lfam_>You can make `guix package` work on the first one like this: `guix package -p ~/.config/guix/current --list-generations` or `guix package -p ~/.config/guix/current --delete-generations=2m`, which would delete all the generations of that profile older than 2 months
<lfam_>Does that make sense?
<lfam_>I'm sorry I made so many grammatical errors in my answers
<lfam_>Feel free to ask for clarification :)
<jonsger>civodul: I don't have any objections regarding guile-json3, I already prepared the update for openSUSE. Maybe a release of guix 1.0.2 would be an idea, but I don't have a strong opinion...
<JayStrict>lfam_: Ah, I see. That makes sense. :) That is why I used to get a warning about running 'guix pull' when I already did run it. (I mixed up both paths)
<JayStrict>But then why are there two different profiles in the first place? Would one profile not suffice? It's rather confusing to have two.
<lfam_>JayStrict: Basically the two profiles do two different things. I'm not familiar with Arch so I can't suggest an analogy, but if you are familiar with Debian / Ubuntu it's sort of like `apt update` and `apt install`
<lfam_>Does that help?
<lfam_>The first profile is basically just used to keep track of which packages could be installed, or what packages are available. The second profile is used to keep track of what you do have installed
<lfam_>As always it's somewhat more complicated when you really look closely at it but I think that's what you need to know if you just want to use Guix
<nckx>The fact that there are two profiles is already an implementation detail. It shouldn't leak through, but sometimes it does (‘hash guix’ &c.).
<lfam_>We should just put everything in a database so nobody gets confused while poking around on the filesystem 😬
<JayStrict>lfam_: Thanks, that analogy to 'apt update' and 'apt install' helps.
<quiliro>saluton Guix!
<quiliro>minall: ya solamente tienes jueves y viernes
<JayStrict>nckx: Well, it matters for me. I want to install guix on my computer correctly. Currently I am stuck at configuring all the $PATH, $INFOPATH, etc. variables. It's not clear to me what to include and how. I think a deeper understanding of the guix architecture would help me.
<brendyyn>JayStrict: did you follow the manual very carefully? people often miss details like this
<nckx>JayStrict: Oh, I didn't mean to imply that it doesn't matter.
<roptat>i don't think the manual tells you about how to get the proper variables available when you start a new shell, does it?
<lfam_>I feel like the only things that need to be exported are GUIX_LOCPATH and ~/.guix-profile/etc/profile
<lfam_>So one variable and one file that must be sourced
<lfam_>They should be handled for login shells, not interactive shells. For Bash this means either ~/.profile or ~/.bash_profile
<lfam_>For Zsh, ~/.zprofile
<JayStrict>In Section 4.6 the manual states that ~/.config/guix/current/bin must be at the beginning of $PATH
*lfam_ looks
<JayStrict>... and how to set $INFOPATH correctly
<lfam_>INFOPATH is handled in ~/.guix-profile/etc/profile
<tune>can't zsh also read ~/.profile? I've never made a .zprofile and I use zsh
<roptat>I think they're the only two variables you need to set manually, the rest ican be sourced from your profile
<lfam_>tune: Maybe
<roptat>(INFOPATH is for finding the guix manual)
<JayStrict>lfam_: How is $INFOPATH handled in ~/.guix-profile/etc/profile? My version of that file only has one line, and that line sets the $PATH variable.
<lfam_>Turns out I do add '~/.config/guix/current/bin' to my PATH "by hand". We could probably make that easier
<tune>hm actually there's a chance my .profile has just not been read properly haha
<lfam_>JayStrict: I guess that you haven't installed any packages with an info manual. It should be handled automatically when you do
<JayStrict>lfam_: guix is installed
<JayStrict>and guix has an info manual, right?
<lfam_>Okay, in that case follow the instructions in 4.6. I don't use `info` so I never noticed the Guix manual missing :/
<lfam_>Maybe we can fix this to work automagically
<JayStrict>lfam_: That would be nice :)
<roptat>JayStrict, the guix package is installed in a separate profile, not in ~/.guix-profile
<roptat>so effectively, it can't know about INFOPATH :)
<lfam_>tune: The man page zsh(1) is not totally clear on whether or not it respects ~/.profile
<JayStrict>roptat: I installed guix with `guix install guix`
<lfam_>tune: It says that it does but then ~/.profile is not listed in FILES
<civodul>jonsger: re guile-json3, noted!
<JayStrict>so guix is also in the ~/.guix-profile
<JayStrict>so there should be an infopage
<roptat>JayStrict, you should uninstall it, it's really not a good idea
<JayStrict>roptat: oh ok. why is that?
<civodul>jonsger: i agree that a release would be great, but as far as i'm concerned that'll be vacations first :-)
<roptat>you're installing the guix that guix knows, but it can only know about an older guix than itself
<roptat>JayStrict, so whenever you use the guix from your default profile to update the default profile, you actually downgrade it, because you're installing older and older guix versions
<roptat>guix pull takes care of getting the latest guix package and installs it in a separate profile (~/.config/guix/current)
<JayStrict>Ok. Damn. See, I knew I was doing some terrible things. :D
<lfam_>Hm... should we make the Guix package invisible from the UI?
<lispmacs>hi, isn't there some guix command to generate a manfest file from your current profile?
<lispmacs>or did I imagine that?
<tune>lfam_: I've just copied my .profile to a .zprofile just in case. I'll see if anything changes now
<civodul>lfam_: maybe!
<JayStrict>Ok, so ~/.guix-profile is apparently called the "default profile". How do you name ~/.config/guix/current?
<lfam_>civodul: Seems like a common pitfall for new users
<roptat>lispmacs, there is a manifest in your profile, but it's not the right format. You can list installed packages in your profile with "guix package -I", then copy that list to a fresh manifest instead
<civodul>lfam_: i wonder how users come to run that command though, and what for
<roptat>JayStrict, the current profile, or the guix pull profile :)
<lfam_>civodul: Good question...
<nckx>We could ask JayStrict…
<lfam_>Hey JayStrict, just curious how you decided to do `guix install guix`? :)
<lispmacs>roptat: can that be fed to package -m? I was just wondering how you could recreate a profile on another machine
<JayStrict>It was suggested here:
<JayStrict>When I tried to install guix on Arch Linux by AUR
<lfam_>Huh, I never knew there was a 3rd party package of Guix or people discussing Guix on the Arch site
<JayStrict>I since did refrain from AUR and installed guix via the installer script.
<lispmacs>roptat: it must be the actual manifest file that goes to -m
<roptat>lispmacs, yes, you can create the manifest file from the information that guix package -I gives you
<roptat>then you feed that file to guix package -m
<JayStrict>Ok, I get it now. Doing `guix install guix` is a bad idea. However, it still should result in correct infopages, right?
<lispmacs>roptat: but, it would be easier just to give the manifest file that is actually there to package -m, right, rather than coding one from package -I, or am I misunderstanding?
<roptat>lispmacs, the manifest in .guix-profile doesn't have the format expected by -m
<lispmacs>roptat: oh, okay. Is there a quick conversion utility from package -I output to the manifest format?
<roptat>I can't remember the name of the utility used to manipulate data tables
<lfam_>JayStrict: I expect that when you do `guix install guix` a "profile hook" will run that sets up the info stuff for the guix package
<lfam_>JayStrict: You would need to open a new login shell to see the effect (`bash --login`)
<lispmacs>roptat: okay. everything else in Guix seemed so easy, I figured it was some two step command process to get a profile saved on one computer and then loaded on another
<roptat>lispmacs, as long as you don't have packages with a non default output, this should work: echo '(specifications->manifest '; guix package -I | cut -f1 | sed 's|^.*$| "&"|g'; echo ")"
<nckx><roptat> the manifest in .guix-profile doesn't have the format expected by -m
<nckx>Why is that even, anyway?
<lispmacs>roptat: wow, okay, I'll try to save that somewhere
<roptat>but really, you probably don't have that many packages that you can't copy their name by hand? :D
<JayStrict>lfam_: I am not sure what a "profile hook" is. There are info pages in ~/.guix-profile/share/info but in ~/.guix-profile/etc/profile there is no $INFOPATH variable set, even after opening a new login shell as you suggested.
<lispmacs>roptat: well, right now I'm only up to like 20, but I've only been using it for a week
<lispmacs>and it is isn't even my production laptop
<lfam_>JayStrict: What are you trying to accomplish right now? Are you just trying to make the info manual available?
<roptat>JayStrict, I wonder if you need the info reader in the same profile for the variable to be set?
<nckx>wc -l .config/guix/manifest.scm → 229
<nckx>I don't think expecting people to do this by hand is reasonable 😛
<roptat>JayStrict, you will need either emacs or texinfo in the same profile for the variable to be set
<JayStrict>lfam_: Yes, I am trying to make the info manual available for me.
<JayStrict>roptat: Ok, that is interesting.
<lfam_>JayStrict: Okay, did you export INFOPATH as described in section 4.6 of the manual?
<roptat>(that is because each package can define search-paths variables, and only when they are installed do they take effect)
<roptat>(then guix knows about the variable and sets it according to the specification)
<roptat>if you run "guix edit texinfo" you'll see its package definition, and in there, there is a native-search-paths entry that defines what INFOPATH should contain
<ryanprior>lispmacs nckx I found the fact that manifests in profiles aren't the same as manifests passed with "-m" to be a big missed opportunity.
<nckx>I agree, so I wonder what the good reason was to change it, if there was one.
<ryanprior>Even if there were an easy converter utility between the two, it's quite unforutnate that the word "manifest" is used in guix to refer to two non-fungible concepts
<JayStrict>lfam_: No, I didn't yet. You said that I only needed to source ~/.guix-profile/etc/profile . I am trying this approach now.
<JayStrict>roptat: Wow that is more sophisticated than I imagined. Trying to grasp that now.
<lfam_>JayStrict: It's possible I was wrong, especially if it requires you to do `guix install guix`. When in doubt follow the manual :)
<ryanprior>Using npm as an example, if you "npm install --save some-package" it adds that package to your npm manifest. Then you can copy that manifest to another machine (using git perhaps) and "npm install" will grab all the same dependencies.
<ryanprior>I love & rely on that behavior when I use npm. Makes it easy to create portable environments & share them with people.
<ryanprior>I would like to adopt the same kind of workflow with guix, and the fact that profile manifests aren't equal to CLI manifests is a bump in the road where you have to slow down and convert things instead of get on with the task at hand.
<roptat>we could have a guix package --generate-manifest thing maybe
<roptat>but I'm not sure how to do that, there's some information loss between the commands you used to install things and the content of a profile
<nckx>The function of the .guix-profile/manifest is obviously to store information that's entirely redundant at installation time (output store paths, propagated inputs, search-paths), but would be expensive to look up afterwards once Guix has been pulled to a new version.
<nckx>roptat: True, but there's the same level of information loss with ‘guix package --list-installed’ and it's still useful. I have no guarantee that the ‘gnupg 2.2.17’ in my output wasn't installed with some crazy --with-source option that makes it something completely different than Guix's, but I don't really care.
<nckx>And this is just another output format (recutils vs. manifest) for that same info, no?
<nckx>Names + versions = good enough™.
<roptat>I think so
<nckx>I think the only way to implement this would be to spit out manifests that use ‘specifications->manifest’ anyway, so you're already limited to vanilla Guix packages identified only by spec.
<nckx>Which brings us back to the ugly pipeline posted above (which looks *very* familiar ;-) because that's basically the best we can do, only in Guile.
<davidl>just failed building libreoffice, because I couldn't build vigra 1.11.1. Full build log here:
<nckx>(Salient excerpt: c++: internal compiler error: Killed (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <> for instructions.)
<nckx>davidl: Anything in dmesg?
<davidl>nckx: Out of memory: Kill process 961 (cc1plus) score 246 or sacrifice child
<davidl>never thought of looking at dmesg
<davidl>I guess that explains it
<JayStrict>roptat: I found and in the last but second paragraph there, it shows how the profiles are sourced in Guix System. I think I should copy&paste this into my Arch Linux system as /etc/profile.d/ . Thus I don't have to set any PATH variables explicitly.
<davidl>nckx: thanks
<lfam_>david1: How much memory do you have?
<davidl>lfam_: 3.9GB in the VM running the build
<davidl>1.9G used
<davidl>I can try and fix that
<JayStrict>Can I somehow see the contents of the /etc/profile file on a typical Guix System system on my Arch Linux machine?
<nckx>davidl: You can try restricting the number of parallel jobs with ‘-{M,c}1’ on the guix command line, if you haven't yet.
<nckx>Just for this package.
<lfam_>Wow, seems like it should be enough!
<nckx>davidl lfam_ The OOM killer will have written an overview of the processes it considered in dmesg too. The ‘pgtables_bytes’ should tell you which other memory hogs (if any) were around at the time and how much RAM the ill-fated cc1plus was using.
<nckx>…wow, running a Guix build farm for a few weeks is a very good way to find out exactly what every possible user-space-triggered kernel warning looks like…
<davidl>nckx: do you have a link to your build farm config (cuirass I presume)? I was just trying to set one up myself yesterday.
<nckx>davidl: It predates Cuirass.
<nckx>It's erm
<nckx>it's a bash script.
<nckx>A very big one.
<lfam_>It always comes back to shell scripts!
<lfam_>We all have some scripts that we will be stuck with forever
<nckx>(In my defence, it used to call Nix instead of Guix and I'd never heard of Guile 🙂)
<lfam_>That's exactly how it happens
<lfam_>Pluggable package management script
<lfam_>We should have a de-shellify summit where we help each other make our shell scripts redundant
<davidl>the dmesg output from another failed build using -{M,c}1
<nckx>That would take weeks.
<lfam_>We'd need a venue with locking doors
<nckx>And sound-proof padding.
<nckx>Lots of padding.
<davidl>I like bash scripts, mostly.
<lfam_>Padded keyboards
<lfam_>Me too. I have so many
<lfam_>I'm glad I put so much effort into making them work correctly when I wrote them because I have no idea how they work now
<nckx>davexunit: Welp, 4.7 GB for cc1plus alone, it doesn't really matter what the rest of the system's doing at that point.
<lfam_>You mean david1
*lfam_ afk
*nckx wonders if davidl's IRC client got OOM-killed.
<JayStrict>Can someone running a Guix System paste her/his pristine `/etc/profile` file into a pastebin? Much appreciated.
<rekado_>I got rid of almost all of my scripts and just accepted that I’m bad with computers now.
<rekado_>it’s okay.
<nckx>Blindly copy at your peril.
<rekado_>re manifests and manifests: I’m equally confused. One is an output the other is an input. I’d love to see them become one and the same, especially now that we have inferiors and channels, so the state of Guix can be recorded.
<nckx>I'm not confused, exactly. The ‘.guix-profile/manifest’ (OK, it doesn't help that we call the *other* ones ‘profile manifests’ in the manual) solve a problem well but just unfortunately named.
<JayStrict>nckx: Thank you.
<nckx>rekado_: Hm, maybe I am. .guix-profile/manifest isn't also an input when (re)generating profiles?
<nckx>If not then I don't understand its purpose like I thought I did.
<civodul>~/.guix-profile/manifest is used by (guix profiles) in "imperative mode", i.e., when running "guix upgrade", "guix install", etc.
<nckx>OK, that's what I thought.
<niten>hi all
<niten>does anybody have experience with setting up a network bridge in guix?
<niten>specifically macvlan
*nckx does not.
<niten>in ubuntu, I'm doing it with pre-up and post-down hooks in /etc/network/interfaces
<niten>so really, I just need to run a quick one-line command on network up, then regular static net config, then on network down I tear the bridge back down
<niten>is there, say, a network-up hook, like in systemd?
<efraim>wow, rust dependencies just go down a rabbit hole
<davidl>nckx: giving the VM 8GB solved the vigra build.
<nckx>davidl: Glad to hear that it's fixed, not glad to hear that 8 GiB is a reasonable requirement to compile/link a single library now.
<efraim>Does the crate importer have a recursive function?
<kori>goooooooooooooood morning #guix
<ArneBab>efraim: I wrote a skript which repeatedly checks for missing dependencies and runs the crate importer with those.
<ArneBab>for i in $(for i in $(grep -o ',[^ ()][^ ()]*' more/packages/gnuzilla.scm | sed s.,.. | xargs); do grep -q "name \"$i\"" more/packages/gnuzilla.scm || echo $i; done | sort -u | grep rust | sed s/^rust-// | xargs) ; do guix import crate $i >> more/packages/gnuzilla.scm || (sleep 30 && guix import crate $i >> more/packages/gnuzilla.scm) ; done
<ArneBab>efraim: ^ this considerably eases the pain
<efraim>ArneBab: thanks!
<ArneBab>glad to help :-)
<nckx>Anyone using non-default DNS resolvers from Guix's default NetworkManager-spawned dnsmasq? (…phew.)
<nixo_>Hi, stupid question, but how do I reply to an old email in the help-guix list? I wanted to know if anybody was able to get full disk encryption with single-password boot (
<nixo_>the "reply" button replices to ludovic only .-. I think I'm missing something
<Marlin1113>hi guix
<Marlin1113>i'm getting an error with git
<Marlin1113>i can't clone anything, it returns fatal: unable to find remote helper for 'https'
<nckx>nixo_: I don't think there's anything more you can do than to CC the list manually.
<nckx>If we're lucky, that button does set In-Reply-To correctly.
<nckx>Marlin1113: So when you say ‘anything’, you mean ‘anything https:’, right? git: works?
<Marlin1113>oh, yeah, https
<Marlin1113>i'll try git://
<nckx>I had that error once but it was years ago. I haven't the faintest idea how I fixed it then. Hm.
*nckx searxes.
<Marlin1113>yeah, git works
<nckx>I'm afraid I've been preempted by the arrival of some tasty 'za, but I'll keep looking when I return victorious.
<minall>Hello guix!
<pkill9>how do i debug errors with channel dependency specifications?
<rekado_>pkill9: depends on the error.
<pkill9>it just says "invalid '.guix-channel' file
<rekado_>what does the .guix-channel file look like?
<rekado_>hmm, I don’t know, this looks correct to me. At least that’s what I used to do in the past.
<rekado_>There have been some changes to this file’s format, though, so perhaps that’s no longer valid.
<rekado_>let’s check the manual
<rekado_>looks fine.
<nckx>Marlin1113: What changed since you last successfully cloned over HTTPS?
<str1ngs>Marlin1113 you need to set the git path exec bash varible
<str1ngs>Marlin1113 GIT_EXEC_PATH see ~/.guix-profile/etc/profile
<Dynamicmetaflow>Hello Guix!
<rekado_>Marlin1113: simply source’ing the etc/profile file should be enough to set all variables.
<davidl>pkill9: shouldn't pkill9-free-channel-dependency be 'pkill9-free-channel-dependency ?
<davidl>with the apostrophe '
<davidl>pretty sure it should be
<Dynamicmetaflow>Has anyone been able to get cups working?
<Dynamicmetaflow>I was able to get the ppd for my printer, when I print a test page from the cups interface the state of the printer is stopped "filter failed"
<nckx>s/bash variable/environment variable/
<str1ngs>bash variables are environment variables. must you always be so pandemic nckx I find it quite irritating
<pkill9>davidl: nah the manual snippet doesn't have it
<pkill9>it seems to work now
<pkill9>not sure what i changed
<pkill9>might have forgotten to commit changes to the repo so it wasn't changing maybe
<rekado_>str1ngs: the Bash manual uses “bash variables” for environment variables that are set or used by Bash. Can be confusing to use that term.
<nckx>str1ngs: :D
<Marlin1113>does guix have libva/vaapi, but no vainfo?
<str1ngs>and probably the OP uses bash. and it has no baring on the OP original issue. I should easily have said shell variable .
*nckx reminds themselves never to correct str1ngs again. 🙄
<str1ngs>not that i don't mind. but everytime I help some one you have to correct something that has no baring on the OP's issue. I makes this channel rather discouraging for me.
<str1ngs>it makes*
***krusnus_ is now known as krusnus
<nckx>I don't remember you at all, we don't have ‘major beef’, and I'm not going to pretend otherwise. But I'm sorry I hit a nerve. Shall we continue trying to help people instead?
*nckx goes back to packaging libva-utils.
<str1ngs>I don't have a beef either, I'm simply pointing out that you have a tendency to be pandemic and I find it annoying and it kinda puts me off helping people and this channel in general.
<nckx>Look, I'm sure I had my reasons, and I'm sorry I hurt you.