IRC channel logs

2022-08-01.log

back to list of logs

<parakesh>hey there
<apteryx>rekado nckx '/dev/sdk2 100T 129G 100T 1% /' on berlin
*apteryx sighs of satisfactoin
<apteryx>satisfaction
<parakesh>i just wanted to download a build image of Guix on a Hurd basis, but all the build images return a 502 bad gateway error
<parakesh>is that known?
<parakesh>the linux based images work, but not the hurd ones
<unmatched-paren>parakesh: There are some server problems at the moment
<unmatched-paren>I think they might be fixed soon?
<unmatched-paren>The issue tracker's been fixed, so hopefully more will follow.
<parakesh>unmatched-paren: thank you for the hint, at least im not alone :)
<parakesh>does it look like a "could be fixed any minute" thing or a "check again in a few days" thing? because that determines the rest of my day :P
<nckx>parakesh: Si: https://issues.guix.gnu.org/56847
<nckx>parakesh: Days.
<nckx>apteryx: Sah-weet.
<parakesh>Aye. Fair. then i will check again in a bunch.
<parakesh>thanks yall for the help c:
<civodul>apteryx: yay, that's a pleasant thing to see, well done!
*civodul -> zZz
<nckx>sharlatan: Could you check (and fix :) your connection?
<gnucode>well I've got my server installed with guix, but I cannt seem to be able to update it.
<gnucode>reconfigure is failing with invalid cert.
<gnucode>does guix 1.3 have problems updating to the latest version ?
<gnucode>hmm. guix system describe says that I am on generation 2 from Jul 21 2022....
<gnucode>that seems fairly recent
<shcv[m]>I found an "and/l" helper in the web.scm file I was using as a reference for a service I'm working on. It looks like it tests a variable, and if truthy constructs a list with the value bound to '<>. Is there something like that in a utility library, or should I just copy its definition?
<shcv[m]>gnucode: I had cert problems once due to the system clock being too far off
<gnucode>shcv[m]: yeah, I fixed that.
<gnucode>I actually fixed it just now by doing a # guix pull.
<gnucode>seems like I can reconfigure again.
<gnucode>shcv[m] I have just copied definitins before.
<gnucode>I know for a fact that fold is defined in several different places in the guix source code. :)
<gnucode>but it's a 5 line definition. who cares?
<gnucode>reconfiguring now! Woo hoo!
<gnucode>also does guix home manager let you initialize git repos ?
<shcv[m]>No idea. It would be nice to have some helpers for things like that though
<gnucode>it would be.
<shcv[m]>I'm starting to work on moving my configs to guix home, so I'll probably be working on things like that. Doom emacs will need the git checkout feature you're describing I think
<apteryx>sneek: later tell civodul thanks! hats off to rekado for the iDRAC access, which proved its usefulness here, and to nckx, who fixed the bootloader and completed the migration, sparring us a great deal of downtime
<sneek>Got it.
<nckx>We make a grand team.
<nckx>Good night, Guix!
<apteryx>o/
<gnucode>shcv[m]: doom emacs is awesome!
<trevdev[m]>Boop.
<muradm>hello guix
<muradm>congrats with issues.guix.gnu.org is back!
<muradm>however it seems there is some issue with timing? i just sent a reply to 56859 for instance, but issues.guix.gnu.org shows that it happened "40 minutes ago".. may be it is for me only?..
<muradm>ah it uses time of composing, not the time of received
<abrenon>hi guix
***rgherdt_ is now known as rgherdt
<sudognu>hii, I'm trying to install guix on my machine but am having problems with system init
<sudognu>>builder for /gnu/store/
<sudognu>...-lonux-libre-gnu.tar.xz.drv failed to produce output for ...-linux-libre-...-gnu tar.xz
<emacsomancer[m]>Any chance of someone updating the mu(4e) package to the 1.8 version? (I'm using a janky local build, but it's, well, janky.)
<abrenon>sudognu: any useful log message you could paste and share ?
<civodul>Hello Guix!
<sneek>civodul, you have 1 message!
<sneek>civodul, apteryx says: thanks! hats off to rekado for the iDRAC access, which proved its usefulness here, and to nckx, who fixed the bootloader and completed the migration, sparring us a great deal of downtime
<abrenon>hi civodul
<civodul>hey abrenon
<abrenon>sudognu: also, is your system trying to compile linux-libre ? have you disabled substitutes ?
<sudognu>abrenon: seems like it couldn't download the libre kernel
<abrenon>ahhh, so perhaps temporarily no substitutes ?
<sudognu>I did enable substitutes
<sudognu>hmmm
<sudognu>idk
<abrenon>that's too bad, I wanted to update today ! : )
<abrenon>check with guix weather
<sudognu>I erased my artix partition for this "-w-
<abrenon>it's going to be alright : )
<abrenon>long ago I erased an artix to put guix too, and I lived to tell the tale ; )
<sudognu>oh also, it tried to download linux-libre from many places, not just guix ci
<sudognu>I think moving back a few commits could do the trick
<civodul>"guix weather linux-libre" is green for me, with a commit from yesterday
<civodul>s/green/sunny/
<abrenon>mine is a bit old so I'm time-machining my way to check for the latest commit
<civodul>sudognu: what does "guix describe" report?
<abrenon>ahh, perhaps an old install medium for each there are no substitutes anymore
<abrenon>I can confirm that the weather is sunny too with the very latest commit (I git pulled to obtain the commit's hash right before checking)
<sudognu>>perhaps an old medium
<sudognu>i installed from 1.3.0 first but then used the weekly iso
<sudognu>abrenon:
<abrenon>: )
<abrenon>ok, so not that, but what does "guix describe" report ?
<sudognu>might be still better than gentoo x3
<sudognu>abrenon: I'm still checking the weather
<abrenon>Oo is your network bad ? it's not supposed to take very long: "guix weather linux-libre"
<sudognu>I'm checking the entire weather "-w-
<abrenon>ohhh but you don't have to !
<sudognu>lmao
<sudognu>okayyy, I know the issue now
<abrenon>great ! what's going on ?
<sudognu>I redirect guix.gnu.org to tropin's ip, and it doesn't work perfectly
<sudognu>but when I set the url to ci.guix.trop.in it works correctly.
<abrenon>what ? ^△^'
<sudognu>I don't know either
<sudognu>basically I use a ci mirror
<sudognu>aliasing it doesn't work
<abrenon>well that's certainly good to know in any case, thanks for checking this use-case : )
<sudognu>russia tax ig
<abrenon>?
<sudognu>abrenon: do you think it's good enough for a bug report?
<abrenon>I'm not sure a system can be assumed to work in a context where DNS is bypassed to lie about the resolution
<abrenon>I mean, I also think it's a cool trick and I resort to it time and again, but when it doesn't help, I consider it my responsability to understand why it didn't help rather than assuming the service I'm trying to tweak should work
<abrenon>it's still weird that with the redirection, weather is able to find the substitutes, but system install isn't though
<sudognu>abrenon: still, its' inconsistency is weird...
<abrenon>yeah I know
<abrenon>but there are many parameters that could be out of guix: perhaps he simply publishes several sites at the same IP, and, with the wrong hostname, the webserver redirects you to a different virtual host where there are no substitutes ?
<sudognu>hmm, idk
<abrenon>yeah, if you nslookup the URL into an IP and query that, you reach a clone of the guix.gnu.org site
<abrenon>so it could be something like that
<abrenon>in any case, there is a bug in guix, there's quite some work remaining to do to show that despite that dirty hack it's still supposed to work
*civodul posts 'tls-wrap' simplification: https://issues.guix.gnu.org/56867
<civodul>rekado_: it might be of interest to you (i think you were trying to use those ports in a non-blocking context)
<sudognu>civodul: I didn't use tls, just plain html
<sudognu>http*
<rekado_>civodul: thanks, this will come in handy!
<civodul>i wonder why openconnect propagates gnutls & co.
<civodul>efraim: do you happen to remember the rationale for 0d7f282b0295f9b2edcc960d25d53e69c81f08dd ?
<civodul>that was some 3 years ago :-)
<mroh>Love, Peace & Guix! Good morning!
<sudognu>gnood morning
***wielaard is now known as mjw
<Cairn>Guix pull takes a while
<Cairn>Or at least the initial git pulling part.
<Cairn>Ugh. "build of /gnu/store/*-pkill9-free.drv failed"
<civodul>Cairn: hi! that must point to a build log, and it's probably an issue in this specific channel
<sudognu>Linux takes long to build, how do I make get a custom kernel here?
<Cairn>civodul, yeah there
<Cairn>Oops. -there seems to be a small issue in the channel. Just frustrating, since I'm only setting it up to try something out.
<Cairn>Little problems at every step of the process.
<mroh>sudognu: https://guix.gnu.org/cookbook/en/html_node/Customizing-the-Kernel.html
<sudognu>mroh: ty :)
<pkill9_>kabouik: hello, I'm returning to guix so I will fix my repository and fhs compatibility tool, which I actually want to turn itno a script that "installs" it rather than in the system config so you aren't forced to rebuild all the fhs stuff when you reconfigure
<pkill9_>kabouik: I haven't updated that repository in atleast a year so no surprise it doesn't build, also doesn't bu8ildf or me
***pkill9_ is now known as pkill9
<ncbfg36>what is the syntax for setting kernel arguments in config.scm? It's not entirely clear to me from the docs. Something like (operating-system (kernel-arguments "nosmp")) gives me errors
<abrenon>and what does the errors say ? isn't a list expected given the plural form of "arguments" ?
<ncbfg36>wrong type argument in position 1 (expecting empty list): "nosmp"
<mroh>ncbfg36: try (kernel-arguments '("nosmp"))
<ncbfg36>apologies I have no networking on laptop at the moment irc is on my phone
<abrenon>isn't the message suggesting an *empty* list weird though ? why does it say an empty list and not just a list ?
<ncbfg36>abrenon: I found that confusing
<ncbfg36>mroh: that did the trick. It was expecting the preceding "'" before the kernel args in parens
<ncbfg36>mroh: thankyou!
<ncbfg36>I need to learn how to lisp :-/
<abrenon>well congrats ! you've just learn a syntax shortcut to make a list
<apteryx>civodul`: hello! any thoughts on the newly introduced use of *unspecified*? It introduced some breakage because of not being a serializable type.
<apteryx>(in the context of services when using 'define-configuration')
<unmatched-paren>quote isn't really a syntax shortcut for a list
<abrenon>well there's the additional property of stopping evaluation but I was coming to that
<unmatched-paren>such a shortcut is implemented in some other lisps like janet and clojure, but not lisp
<unmatched-paren>[3 4 5] is valid clojure/janet
<mroh>abrenon: maybe it says empty list, because a list is at least an empty list? idk.
<unmatched-paren>I guess a good way to describe a quoted form is an AST literal.
<unmatched-paren>(+ 3 2) => 5, (quote (+ 3 2)) => (list '+ 3 2)
<ncbfg36>I was trying (kernel-arguments (list ("nosmp"))) but that didn't work
<abrenon>no, I mean things generally work for any data of a given type, requiring a particular value is really upsetting
<abrenon>ncbfg36: which is why it is important to understand that quoting / evaluation thing
<abrenon>in guile, arguments to a function are passed directly after the name of the function, within the (…)
<unmatched-paren>ncbfg36: in ("nosmp") you try to call "nosmp" as a procedure :)
<abrenon>list is just a function which returns a list containing all its arguments
<abrenon>by default, when guile sees a list, it will try to evaluate it: its first element is expected to be the function, and the others its arguments
<unmatched-paren>Procedures can be thought of as accepting a single list containing the arguments
<unmatched-paren>(lambda foo (for-each display foo)) is in fact valid
<unmatched-paren>it just binds *all* the arguments to foo
<unmatched-paren>(lambda () ...) takes an empty list
<unmatched-paren>(lambda (x y . z) ...) takes a list of at least two elements
<abrenon>so when you write (a b c d), you're creating a very short-lived list containing a, b, c, and d, but which guile is going to reduce immediately by trying to apply a on the arguments b, c and d
<abrenon>should "a" not be a function, you're doomed : )
<unmatched-paren>the `read` procedure, used on a port, reads a single s-expression from the port and returns its quoted form
<abrenon>this is why a function such as "list" is required, in this environment where pretty much everything is a list
<unmatched-paren>`read` is basically the lisp parser
<ncbfg36>oh okay. So long form would be (kernel-arguments (list "nosmp"))?
<unmatched-paren>`eval` takes a lisp ast like `(+ 3 2) and treats it as code
<abrenon>absolutely !
<abrenon>but it has an additional subtlety ! the long form with (list …) lets guile evaluate the code inside
<abrenon>so if "nosmp" was in a variable named, say, kernel-arg
<unmatched-paren>"everything is a list" is a pretty good design because it's both elegant and allows macros to be implemented very easily
<abrenon>(list kernel-arg) would work
<abrenon>but '(kernel-arg) wouldn't !
<unmatched-paren>classical macros (which are created with define-macro in Guile) are like procedures that return ASTs
<abrenon>because this quote simply stops evaluation
<unmatched-paren>'(kernel-arg) == (list 'kernel-arg)
<unmatched-paren>it's a list containing a single symbol
<abrenon>so '(kernel-arg) is a list, alright, but it doesn't contain "nosmp", it contain a symbol, which is a kind of ultra-cool token-thing in LISP, it's just an abstract named concept 'kernel-arg
<abrenon>it's still different from a string, you can think of it as a kind of infinite on-demand enum type
<ncbfg36>oh i see. so because everything is a list even if i'm using a single argument i need to declare it as a list with a single entity
<unmatched-paren>a symbol kind of is just a string
<unmatched-paren>but it exists to allow ASTs to contain both strings and symbols
<unmatched-paren>s/symbols/identifiers/
<abrenon>ncbfg36: in this case I think it's rather that the type expected at this place in the declaration is a list
<pkill9>does anyone here primarily use guix as a package manager on archlinux/gentoo/slackware? and if so do you have any problems with the applications integrating with the rest of the system?
<abrenon>(despite the tricky message)
<unmatched-paren>(symbol->string "foo bar baz") allows you to create symbols that normally would not be possible
<abrenon>it could handle simple strings, but this has apparently not been implemented
<unmatched-paren>s/symbol->string/string->symbol/
<unmatched-paren>if lisp didn't have symbols:
<unmatched-paren>it'd have to represent them in an AST with strings
<unmatched-paren>but that presents an obvious problem
<unmatched-paren>(display "hello") would be represented by ("display" "hello")
<unmatched-paren>are you trying to use that as a string literal or a variable?
<unmatched-paren>it could be ("display" hello) or (display hello), too
<ncbfg36>as a strange side effect of setting "nosmp" it now shows gnu graphics while booting
<unmatched-paren>nosmp — Run as a single processor machine.
<unmatched-paren>that is strange
<ncbfg36>haha yes that also isn't what i had intended. I just wanted to turn off hyperthreading
<ncbfg36>facepalm
<mroh>maybe worth a bug report.
<ncbfg36>I was under the impression that this is what "nosmp" does. Not disable all but a single core
<muradm>#56872 updates mu to 1.8.7
<muradm>works for me locally, however there are few ancient emacs-xyz packages which probably may break at runtime
<muradm>new mu brings significant performance improvement and responsiveness
<nckx>ncbfg36: Linux displays a Tux (patched to a gnu + Freedo in linux-libre) per on-line CPU, I guess you have too many otherwise :)
<rekado_>muradm: I’ll take a look at the patch.
<nckx>muradm: Oh thanks! Mu's dog slow here.
<rekado_>muradm: do you really need coreupdates as inputs?
<muradm>rekado_: coreutils you mean? yes they '/bin/rm' command into source, and to properly map it, i needed input
<muradm>there is a phase for that
<rekado_>sorry, yes: coreutils
<muradm>if there is better way to depend on /bin/rm that can be changed ofcourse, any suggestion?
<muradm>nckx: keep in mind you need re-init :)
<rekado_>you’ve got two instances of patching /bin/rm
<rekado_>once with (which "rm") and then again with search-input-file
<muradm>rekado_: yes one for tests, ad-hoc (which "rm") as it was before
<muradm>rekado_: actually you may be right, it is used in TempDir destructor only, and it is used in tests only
<muradm>so probably that code will never run at runtime
<muradm>i can switch to (which "rm") i think
<rekado_>I’ll change the tense in the commit message and remove the list at https://issues.guix.gnu.org/56872#0-lineno102
***civodul` is now known as civodul
<rekado_>either way is fine
<nckx>muradm: I do that weekly now, so it can't get worse. Not sure if placebo but that seems to help (for about said week).
<rekado_>not sure you even need coreutils as an input, though.
*nckx says hullo to everyone, then leaves.
<civodul>apteryx: hi! do you have pointers re breakage due to *unspecified*?
<civodul>it feels like that change was made long ago
<two[m]>hi, how to use cmake -GNinja?
<unmatched-paren>two[m]: Add it to #:cmake-flags :)
<apteryx>civodul: it was made 2 months ago
<muradm>rekado_: wait a sec..
*rekado_ builds mu
<apteryx>civodul: the only thing that I've found failing so far is the jami-service-type, whe the jami-account objects have fields taking the *unspecified* value (was not exposed by the jami-provisioning system test). I added coverage for that situation in https://issues.guix.gnu.org/56799#16.
<two[m]>unmatched-paren: sorry, i meant i want to use it in a shell
*civodul looks
*two[m] sent a code block: https://libera.ems.host/_matrix/media/r0/download/libera.chat/e627b2dafa1fc44351b064c4c9a0934b07a7cb59
<unmatched-paren>CC=gcc CXX=g++ cmake -GNinja? This error seems unrelated to -GNinja
<rekado_>muradm: should I still wait?
<muradm>rekado_: updated
<muradm>list on 102 is needed
<rekado_>why?
<unmatched-paren>If you want your Guix package to be reviewed and merged quickly, pretend it's an Emacs plugin ;)
<muradm>rekado_: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=56872#8
<rekado_>substitute* with a string is equivalent to substitute* with a single-atom list
<rekado_>I actually have coreutils in the inputs again and use search-input-file for the run-time reference to /bin/rm
<rekado_>by default the build environment has coreutils – but is it a native input?
<rekado_>when cross-building mu we want to keep a reference to the target architecture’s /bin/rm
<rekado_>so I think it ought to be an input
<muradm>rekado_: last update have no coreutils and two files to patch for /bin/rm (this is why list is needed)
<two[m]>unmatched-paren: getting the same error
<unmatched-paren>two[m]: this looks more like a cmake-related problem than a guix-related
<unmatched-paren>guix-related problem
<two[m]>/gnu/store/cxxn5zy4vfaknlvpfg4k3q4vygrdsik7-profile is not my guix environment
<unmatched-paren>if it isn't recognising the compiler as a compiler, there's probably something wrong
<two[m]>s/guix environment/$GUIX_ENVIRONMENT/
<two[m]>there isn't a compiler there, it's looking in the wrong folder
<unmatched-paren>oh
<muradm>rekado_: you are right at build time rm is there already, however it is not used at runtime, only for tests, so no need to specify it as input
<rekado_>ok
<two[m]>CMAKE_PREFIX_PATH is /gnu/store/cw89h7ibafmyd5gwdfg54mz1zx3g8b7m-profile/ in env
<two[m]>but it's looking somewhere else
<kabouik>Hey pkill9. Thanks for your answer, and sorry for having pinged you a million times in that discussion, I didn't mean to. Great to know that you'll update it. Again, as I said, I don't fully understand what fhs is used for yet (I guess it helps with software that expects the usual GNU/Linux filesystem?). I have already removed it and your channel from my system.scm and reconfigured, but if you make it into a script and it doesn't
<kabouik> need to be into the system.scm anymore, that'll be great.
<civodul>hey! i'm looking for people who've had troubles with sshd since the Shepherd 0.9 is in use: https://issues.guix.gnu.org/56866
<kabouik>Still very interested into making Appimages (at least one appimage) work on Guix, so I'm still following your repository anyway. Appimages are one thing on my Guix to-do.org created yesterday (my first org-mode file. :')).
<gnucode>civodul: looks like a pretty nasty bug!
<PurpleSym>Are there any pointers for fixing Qt applications failing to build during 'qt-wrap?
<muradm>civodul: i don't observe accumulations of sshd on my servers
<unmatched-paren>PurpleSym: bug#56864 reply #2
<unmatched-paren>s/reply/message/
<gnucode>morning unmatched-paren !
<civodul>muradm: and you're running shepherd 0.9, without a firewall protecting port 22?
<unmatched-paren>gnucode: it's the afternoon here :)
<civodul>gnucode: yup, could be!
<rekado_>muradm: applied with commit 7e3234cb709076c8f4514f8b9320a0585dd9c958
<PurpleSym>unmatched-paren: Ah, okay. The traceback is different, but I’ll try to `guix pull`.
<unmatched-paren>Oh, is it qutebrowser then?
<muradm>civodul: it says "i'm 0.9.1, but i don't listen on 22" :)
<unmatched-paren>Because only qutebrowser was fixed; there may be other victims.
<PurpleSym>unmatched-paren: No, I tried twinkle and lyx so far. Both are broken.
<muradm>civodul: we need fail2ban and fail2ban-service-type ;)
<civodul>muradm: heh, not listening on 22 is a good idea, but it means your machine is less likely to be hammered :-)
<civodul>yeah
<muradm>civodul: 56579 and 56608 :D
<unmatched-paren>PurpleSym: You should probably send that information to the issue, rename it, and reopen it
<muradm>rekado_: thanks!
<civodul>muradm: oh, thanks for the heads-up!
<PurpleSym>unmatched-paren: Alright, will do.
<abrenon>unmatched-paren: PurpleSym, yeah it seems nheko is affected too
<abrenon>and so is quaternion
<apteryx>hmm, did I break all qt5 packages inadvertently? ^^'
<apteryx>or just some of them are affected?
<unmatched-paren>i'll try building some
<abrenon>Oo
<apteryx>it seems to be because there are no 'qtbase' argument passed to the wrap phase
<apteryx>so (package-name->name+version (strip-store-file-name qtbase)) fails in qt-utils.scm, line 148
*apteryx looks at twinkle
<unmatched-paren>pinentry-qt is fine
<apteryx>some idea: perhaps affecting packages setting arguments explicitly.
<apteryx>twinkle does
<apteryx>perhaps the default #:qtbase goes away for some reason
<dgcampea>What's the proper way to add an extra 'origin' object to the inputs of a package? If I read the docs correctly,
<dgcampea>'modify-inputs' only concerns about 'package' objects and '10.7 Invoking guix style' only talks about 'package' objects as well.
<dgcampea>Also on the same topic, '9.2.1 package Reference' has a note that the old input style that associates a label to the object is deprecated but,
<dgcampea>supposing I have 2 extra 'origin' git objects 'A' and 'B', both with a 'dir/foo.pp' file, how can I refer to 'A's 'dir/foo.pp' in particular?
<unmatched-paren>kcrash is also affected
<unmatched-paren>which probably affects numerous KDE packages
<unmatched-paren>and those in turn are probably affected
<unmatched-paren>this might help us figure out which apps are affected https://wiki.manjaro.org/index.php/List_of_Qt_Applications
<Cairn>pkill9_: Looking forward to your repo working again. It'll be useful to me.
<apteryx>adding #:qtbase ,qtbase-5 to twinkle build arguments fixes the build... so that confirms the hypothesis: all packages explicitly setting arguments do not have an implicit qtbase argument and hence the wrap fails fails. hm
<kabouik>So if I want to build third-party software from git, like https://github.com/d99kris/nmail, what is the best way in Guix? Ultimately I'd be happy to make a package but that'd be only for a selection of software. For those things I found on reddit.com/r/commandline, I would prefer just trying them and compiling them for myself with less efforts than a scm.
<kabouik>I understood that guix environment --ad-hoc is a good way to build stuff without cluttering my system, but as far as I understand it requires a package name
<muradm>kabouik: guix environment <pgk-name> --ad-hoc will drop you into build environment of <pkg-name>, guix environment --ad-hoc <pkg-name> will drop you into empty environment with <pkg-name> available for user
<kabouik>So I'm a little lost as to how to build something and then using `make install` when this probably requires using /usr/bin or `~/.local/bin`
<gnucode>unmatched-paren the afternoon there? hmm. You must be accross the pond.
<kabouik>But <pkg-name> doesn't have to exist in a channel in the first place?
<unmatched-paren>gnucode: indeed :)
<muradm>kabouik: normally you don't "make install" under guix, what you do is you prepare a package in some or another way, and then you can use it via system profile, some other profile or in default profile or else
<muradm>kabouik: no, it does not, you can create your own locally
<muradm>or you may have your own channel
<unmatched-paren>kabouik: not only you don't "make install", most of the time you *can't*
<muradm>in addition to global
<unmatched-paren>Oh, no, never mind, forget that.
<unmatched-paren>It probably would work, but go against the entire point of Guix.
<muradm>unmatched-paren: sudo make install will :D
<kabouik>Hum, but then if we take the nmail example above, it requires libxapian, libetpan, cyrus-sasl which may or may not be available as prexisting Guix packages, and if they are not, that means I have to build them too. Without appending a `make install` step after their compilation, nmail won't find them, so I guess I would need to make packages for all dependencies in the first place
<unmatched-paren>It'll probably also break if you update a dependency of the `make install`ed package
<unmatched-paren>kabouik: yeah
<unmatched-paren>although we do have xapian
<muradm>kabouik: then you recursively track all dependencies and make packages for them
<unmatched-paren>we have all three of those dependencies actually
<muradm>and then use them as an either inputs/native-inputs/propagated-inputs
<unmatched-paren>all you need to package is nmail
<kabouik>That's what I feared (I mean I understand why it's like that, but with my skill level, it'll make it really hard and engaging to try third-party software; and at the moment I use a lot of them)
<kabouik>Yes the dependencies here are not so unusual
<kabouik>Maybe not the best example
<muradm>kabouik: not so hard, practice with few packages, and you get used to it
<kabouik>But stil having to package things even for just trying them makes it more difficult than I was hoping
<unmatched-paren>you could build without installing
<kabouik>True
<unmatched-paren>and try the binary which is presumably in a build directory
<kabouik>When dependencies are already packaged
<muradm>you have hundreds of examples already to copy paste from :)
<unmatched-paren>and then if you like it, package it
<unmatched-paren>And a very helpful IRC channel :)
<kabouik>I even wrote one myself muradm some months ago but I can't even understand how I came up with it now, months later. :p
<unmatched-paren>put it on paste.debian.net
<unmatched-paren>i'll explain each part
<kabouik>And still, writing a .scm chunk is not exactly trivial even for those who know what they're doing, compared to just executing commands from a readme.md
<unmatched-paren>true
<kabouik> htthttps://git.teknik.io/matf/guix-private-channel/src/branch/master/nnn-ctx8-git.scm unknown
<kabouik>unmatched-paren
<unmatched-paren>this package is slightly outdated
<kabouik>I mean I kind of understand what I did specific to nnn, but what I don't manage to understand/remember is the actual Scheme parts: use-modules, could never remember the inputs and build-system, etc.
<unmatched-paren>what don't you understand about use-modules?
<unmatched-paren>also: (define-module (...)) (use-modules ...) should be replaced with (define-module (...) #:use-module (...) #:use-module (...) ...)
<kabouik>But that is my lack of Lisp knowledge, I don't know what # or ' or : do for instance. In use-modules I don't understand why we sometimes pull gnu and some others guix, and then what is `gnu packages`, and then why we use `gnu packages ncurses` and not just `gnu ncurses`. This is all due to not mastering lisp I believe.
<unmatched-paren>one moment
<kabouik>So I do get that the learning curve for someone like me will be steep, and if I manage to hold on, I will learn a lot; but going through packaging and writing my own .scm file for every git thing I like, with all the trials and errors and long `guix pull` every time will be quite demanding
<podiki[m]>the module naming scheme follows the file structure
<unmatched-paren>you don't really need to guix pull to test a guix channel
<podiki[m]>so (gnu packges ncurses) since in the guix src: gnu/packages/ncurses.scm
<unmatched-paren>use `guix build -L . PACKAGE`
<unmatched-paren>which adds the cwd to the Guile load path and builds PACKAGE
<kabouik>(Can't do it right now, my guix machine is at home and I realized I can't ssh into it from WAN)
<podiki[m]>or just guix build -f file.scm (assuming all you need is in the file and the last line is just the package name to build)
<unmatched-paren>Basically, the gnu/guix split is the split between "guix the program" (guix) and "the default guix channel" (gnu)
<kabouik>Good to know
<unmatched-paren>-L . is far better than -f FILE.scm, because it allows you to modify multiple files without pulling
<podiki[m]>yes, if you need it
<kabouik>Is it permanent (as in adding a private channel in my channels.scm), or temporary and ignored for future guix pulls?
<podiki[m]>but for just a package with new deps in one file, it works (I haven't had to use -L for example, in all the packaging I've done)
<unmatched-paren>kabouik: you can also add a local channel to your channels.scm
<unmatched-paren>replace https://... with file:// :)
<jackhill>why does `make clean-go` report that ./guix/build/po.go is stale, but then it gets rebuilt with another make?
<kabouik>The gnu/guix split is still not clear to me. In the package I linked, I don't understand lines 3 to 7. Are these guix subcommands?
<kabouik>That's what I did unmatched-paren
<efraim>civodul: openconnect probably propagates gnutls & others because they're listed in Requires.private
<kabouik>This is why I'd be curious to know if -L. is temporary, as opposed to the private channel in channels.scm which affects each guix pull
<unmatched-paren>kabouik: guix is the base functionality available in guix
<unmatched-paren>e.g. the build systems, communication with the daemon, "compilation" of packages to derivations
<unmatched-paren>implementation of service functionality
<unmatched-paren>etc
<unmatched-paren>gnu is where the functionality is actually used
<unmatched-paren>e.g. it defines all the packages, services, etc using the stuff from guix
<kabouik>I don't know how one can come up with knowing they'd need a (guix utils) in the package.scm for example
<podiki[m]>you don't have to, you try something, guix will complain about a missing module, you add it :-)
<podiki[m]>same with modules
<podiki[m]>most of the time I let the errors guide me, unless I know for sure where something comes from
<kabouik>I see; that might already be what I did there, plus inspiration from others' packages
<unmatched-paren>kabouik: Oh, also, you shouldn't use a branch name as the version
<podiki[m]>or, you could look up (with seaching, geiser, etc.) where something is defined and then add the module so you have it
<unmatched-paren>you should either use a commit or a tag
<unmatched-paren>something that isn't going to change
<podiki[m]>yup, errors plus lots of searching/copying/pasting is a good way to learn
<unmatched-paren>also, since this is a package derived from nnn, you should use (inherit nnn)
<kabouik>Yeah actually I used the branch there unmatched-paren because I wanted the package to reflect every future commit (hence the -git name of the package). I knew there was a hack to skip the hash verification, so that was the plan, but I got away from my Guix machine before figuring it out
<unmatched-paren>i see
<podiki[m]>don't forget there are package transformations, you can just do e.g. 'guix install nnn --with-git-url=nnn=/path/to/git --with-branch=branchname' if it will just build without modifications, you don't need a new package
<podiki[m]> https://guix.gnu.org/en/manual/devel/en/html_node/Package-Transformation-Options.html#Package-Transformation-Options is awesome stuff
<podiki[m]>err should be --with-branch=nnn=branchname
<kabouik>Well then I need a nmail.scm (might be in reach for me), then a mullvadvpn.scm (much harder as it uses systemd and I already can't master it, much less Shepherd; and it's non-free so I won't discuss it here), then appimages, then .scm files for a million other CLI tools I use here and there. I have a lot on my plate. :>
<kabouik>Thanks for the detailed explanations unmatched-paren by the way
<kabouik>Good to know podiki[m], that seems useful too for things that are already packaged (I could fork them and apply my patches, git push, then guix install from my git url)
<podiki[m]>you can also do --with-patch :-)
<unmatched-paren>kabouik: this nmail? https://github.com/d99kris/nmail
<kabouik>So basically `guix install nnn --with-patch=/path/to/my/no-easy-delete.patch` would do?
<kabouik>Yes unmatched-paren
<unmatched-paren>yeah
<unmatched-paren>that nmail says it's under the expat license
<podiki[m]>if you don't need to actually change a build process but modify sources/patches, guix transformations is really useful
<kabouik>That's cool
<podiki[m]>exactly
<unmatched-paren>nmail is distributed under the MIT license. See LICENSE file.
<kabouik>I don't see any mention of expat?
<kabouik>Is MIT an issue?
<unmatched-paren>technically the MIT license is called "the expat license"
<unmatched-paren>because the X11 license is also the "MIT license"
<unmatched-paren>so to disambiguate, guix uses expat or x11 instead of mit
<podiki[m]>mit/expat are just fine for guix
<apteryx>OK, I have a fix for #:qtbase, but perhaps we could instead keep everything implicit and use search-input-file on inputs/build-inputs.
<apteryx>that'd be better for rewriting business
<podiki[m]> https://git.savannah.gnu.org/cgit/guix.git/tree/guix/licenses.scm licenses guix uses
<kabouik>What happens if I install nnn from the current guix channel with my patch (--with-patch) and then in two months guix pull and guix package -u?
<kabouik>Forgive me if I misunderstood but I didn't get why you mentioned the nmail License in the first place (we were not chatting about the license); it's just a naive question
<unmatched-paren>you said it was non-free didn't you?
<kabouik>No, mullvadvpn is non-free
<unmatched-paren>Oh, right
<kabouik>nmail is fine yep
<unmatched-paren>Oops :)
<kabouik>No problem, at least I understand now :p
<unmatched-paren>There's probably some way you can connect to it with a free application though
<podiki[m]>kabouik: I think it would be replaced with the regular version? I'm not sure, I use manifests (see manual/cookbook) and there you can include the transformation so it will be used when you update with the manifest
<rekado_>FWIW you don’t need to package anything to build it from source when using Guix.
<unmatched-paren>(Also, a nonfree VPN is probably more damaging to your privacy than no VPN, but I digress.)
<rekado_>just use ‘guix shell …’ to enter an environment containing gcc-toolchain, pkg-config, and whatever you need to build the thing, then run ‘make’ as you would elsewhere.
<kabouik>Yes, with openvpn configs most likely, but their client is convenient for server hopping and avoiding georestrictions (more than having 40 different openvpn configs) and for renewing a subscription (it uses a no-account system, so you have a unique code, and without the client I'd have to save it somewhere and copy-paste it in the payment form, while the client eases that up)
<kabouik>(which is convenient since I usually renew my subscription from a phone or from my HTPC which has no keyboard)
<apteryx>jackhill: I've sent some email about fixing the collaterals from introducing #:qtbase
<apteryx>the fix is simple, but I'd like someone to have a quick look to avoid a cascade of fixes :-)
<jackhill>apteryx: ok, I'll be on the lookout. I can confirm the qutebrowser fix works
<apteryx>yep, but there were many others with a different problem (not label related but default argument value related)
<jackhill>ah, ok, I guess I don't have that many Qt applications installed to haven noticed on my own
<kabouik>Oh, so with `guix shell` I could just compile all the binaries I need and then copy them somewhere else? If their function (not compilation) depends on something that is already packaged, I can install those packages out of the guix shell. If those deps are not packaged, I'd need to build them too though, and then I'm not sure how to make them communicate together
<kabouik>My guix machine is not here and I have no space left on my current laptop to install just the guix package manager, so I can't play with it now
<unmatched-paren>Be aware that if the libraries the binary needs are updated, it'll probably break
<jackhill>unmatched-paren: do you use Psi? Last I checked, I was still running into certificate validation issues: https://issues.guix.gnu.org/47331
<unmatched-paren>jackhill: I don't use it
<unmatched-paren>I was just looking through Qt packages and seeing whether they build
<jackhill>ah, ok :)
<gnucode>So I just mounted a usb stick to ~/usb. mount /dev/sdb1 ~/usb. Now it says that ~/usb is owned by root. When I try to chown ~/usb to my regular user, it is NOT letting me. Why? That seems very odd.
<gnucode>It says operation not permitted.
<unmatched-paren>kabouik: https://paste.sr.ht/~unmatched-paren/42dc0737b9c89eba74c4cd1f4ee6b705d432d0b4
<unmatched-paren>heavily annotated and amended version of your package that does not use the latest git master
<unmatched-paren>and reduces the amount of duplication significantly
<unmatched-paren>to turn this into the git version, you could just replace (commit ...) with (commit "HEAD")
<jackhill>apteryx: I don't have a feeling about whether using the explicit #:qtbase arguement is better or not
<apteryx>I guess for now it'll do. If it becomes a problem we can revisit.
<apteryx>any other qt5 packages that were broken to try outside of twinkle?
*apteryx builds lyx
<jackhill>I'm trying to run screen from a relocatably tarball pack on AlmaLinux 9 host, but it error with "getpwuid() can't identify your account!" Ideas?
<apteryx>did you try with -RR É
<apteryx>?
<mroh>apteryx: Im trying some qt apps I use. So far mumble and kiwix-desktop fails in wrap phase, some fix as for qutebrowser seems to work.
<jackhill>apteryx: yes, produced with `guix pack -f tarball -RR -S /bin=bin screen`
<jackhill>NixOS report maybe relivent https://github.com/NixOS/nix/issues/209
<mroh>apteryx: zeal also.
<apteryx>mroh: OK. There are two distinct issues. One is the label change from "qtwebengine-5" to "qtwebengine". The other is Qt packages lacking an implicit #:qtbase when specifying args themselves. For the later, I have a fix at the level of qt-build-system.scm
<efraim>the 'qt-wrap phase failed for me on a custom qt-build-system package
<unmatched-paren>efraim: add #:qtbase qtbase-5
<apteryx>or wait for my commit
<apteryx>I'm testing another package then I'll push it
<efraim>:thumbup:
<apteryx>(this fix: https://paste.debian.net/1249005/)
<apteryx>efraim: pushed (4905b5b83904366d068bde899aae15288cc1adcb)
<efraim>apteryx: thanks. also the #:qtbase thing worked
<mroh>\o/
***Dynom_ is now known as Guest7652
<PurpleSym>apteryx: I didn’t realize you were Maxim. Anyway, thanks for the 'qt-wrap fix!
<yuu[m]>404 https://guix.gnu.org/cuirass/manual/
<apteryx>PurpleSym: eh, no worries. Fixing what I break is the least I can do :-)
<yuu[m]>hey y'all can link me your nice guix configs, ideally those with btrfs filesystem
<efraim> https://git.sr.ht/~efraim/guix-config/tree/master/item/3900XT.scm#L39 I don't do anything special with btrfs
<apteryx>yuu[m]: https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/hydra/berlin.scm
<apteryx>mroh: any remaining Qt packages to fix (of the earlier label problem type) ?
<unmatched-paren>I don't use btrfs but it might be helpful https://git.sr.ht/~unmatched-paren/conf
<apteryx>the rdv-jami-guix rendezvous point is back online, available for anyone in the Guix community to use (it had been down for a rather long while -- post shepherd 0.9 and *unspecified* issues :-)).
<yuu[m]>efraim: apteryx unmatched-paren thanks!!
<minikN>Hi. I'm using mixed-text-file to save a shell script to the store, I then retrieve its path with (file-append my-file). But how can I make it executable?
<unmatched-paren>minikN: Looks like you'd need to use computed-file
<jab>hey guix, so I have my guix server up and running at home. I'll find out in about 8 hours, if I can ssh into it when I am not at home.
<unmatched-paren>which is like mixed-text-file, except the gexp contains instructions to create the file, instead of returning a string
<unmatched-paren>(computed-file "foo.sh" #~(begin (call-with-output-file #$output (lambda (file) ...))))
<unmatched-paren>inside that, you write your text, and then chmod it
<minikN>Hm.. let me try it
<unmatched-paren>(display "..." file) (chmod file #o700) inside that
<unmatched-paren>(also, you don't need the begin wrapper)
<unmatched-paren>#~(call-with-output-file ...) works fine
<unmatched-paren>actually, you might want to use #o744
<unmatched-paren>rwx user, r group, r other
<minikN>So this is similar to what I would use in add-before, add-after when writing package definitions
<unmatched-paren>yeah, kind of
<minikN>Interesting, I'll try it. Sec.
<unmatched-paren> https://git.sr.ht/~unmatched-paren/conf/tree/root/item/home.scm#L163
<unmatched-paren>here's an example
<unmatched-paren>i use this to strip comments from waybar.json before putting it in the store
<unmatched-paren>because, of course, base json doesn't support comments
<unmatched-paren>i used to have one for transpiling my neovim config to lua using `fennel`, but i dropped that in favour of emacs+evil
<unmatched-paren>here it is https://git.sr.ht/~unmatched-paren/conf/tree/aba160b3862dd74e5a6445d2c9e5f62ca336117c/item/home.scm#L161
<minikN>Yeah it actually worked, cool
<minikN>thanks unmatched-paren, although I should feel like this should have been documented better.
<unmatched-paren> https://guix.gnu.org/manual/devel/en/html_node/G_002dExpressions.html#G_002dExpressions
<unmatched-paren>computed-file is there
<minikN>Yeah. It's "there". But that's it ;)
<unmatched-paren>there should be more examples :)
***mark_ is now known as mjw
<jackhill>apteryx: hmmm, is there a qtwayland for qt6, or is the separate package no longer needed?
<apteryx>not every qt6 packages have been added yet, so it's probably something to do
<apteryx>seems to be a thing: https://download.qt.io/archive/qt/6.3/6.3.1/submodules/
<mroh>apteryx: the qt packages I use build with your fix. Thank you very much!
<apteryx>glad it's resolved!
<sudognu>hmm, can I contribute to substitutes somehow?
<unmatched-paren>sudognu: it's possible to set up your own build farm
<sudognu>oohh
<sudognu>and can it contribute to ci.guix.gnu.org?
<unmatched-paren>not sure
<unmatched-paren>e.g. https://guix.tobias.gr/substitutes
<sudognu>ooh
<sudognu>cool that there are substitute servers and repos hidden around the web...
<jab>unmatched-paren: do you have the server code for tobias' substitue server?
<jab>That would be pretty cool to set up a guix service for such a thing to make it really easy for people to set up substitute servers...
<unmatched-paren>jab: wdym substitute code?
<unmatched-paren>I don't have it enabled, fyi
<unmatched-paren>I just know it exists :)
<jab>unmatched-paren: gotcha. :)
<jab>maybe I could write a cookbook entry for how to set up your own substitute server...
<jab>nckx: why does your substitute server say that chromium is malware? What about ungoogled-chromium?
<civodul>sudognu: you cannot contribute to ci.guix (that would be a security issue if anyone could do it), but you can publish your own substitutes and run your own build farm: https://guix.gnu.org/manual/devel/en/html_node/On-Trusting-Binaries.html
<sudognu>civodul: aight x3. someday I'll make a public repo with substitutes...
<blake2b>its actually quite easy, if you have a linode running guix its pretty simple
<jonsger[m]>jab: I could send you the config of my substitution server via private chat if you are interested :)
<jab>jonsger[m]: that would be welcome!
<jab>blake2b: I do have a linode running guix...
***theruran_ is now known as theruran
***kir0ul4 is now known as kir0ul
***f1reflyylmao is now known as f1refly
***alanz_ is now known as alanz
***eichin_ is now known as eichin
***dmj`_ is now known as dmj`
<jab>I guess I didn't realize that there was a guix-publish-service-type....
***clever_ is now known as clever