<rekado_>options->transformation returns a procedure that takes a package as its argument
<rekado_>in the above snippet that returned procedure is immediately applied to nnn
<kabouik>Thank you very much unmatched-paren, I really appreciate the help. Unfortunately I'm not succeeding with this code. First the patch was not found despite correct file names and .scm and .patch being in the same dir, as if ,(search-patch) needed an absolute path, and then when I provided one, I got "guix build: error: https://github.com/jarun/nnn: invalid Git URL replacement specification"
<ulfvonbelow>sneek: later tell civodul: the only places I can find git-checkout mentioned in the manual are in documenting --with-branch in 'package transformations' and source-file-name in 'invoking guix lint'
<kabouik>There's one issue though: guix download https://github.com/d99kris/nmail doesn't give the same hash as the one `guix build -f nmail.scm` obtains. And same if I guix download https://.../3.74.tar.gz. This is obscure to me, since the commit I indicated in the package is the latest, so guix download on the git url should fetch the same commit I believe
<kabouik>So for now, I manually changed the hash based on what guix build -f nmail.scm showed, but that can't be left as is
<kabouik>In fact I listed in the nmail.scm the latest commit corresponding to v3.74 release tar ball, so the actual hash from guix build should match that from guix download url-to-tarball3.74
<ulfvonbelow>kabouik: you'll find that 'guix download https://github.com/d99kris/nmail' will often give you different hashes and contents between different invocations. If you liik at the contents of the store path it spits out, you'll see why (hint: it starts with '<!DOCTYPE html>')
<trevdev[m]>Is there any reason I should feel compelled to keep all of my guix related configuration in ~/.config/guix, other than "it's the XDG way?" Could I maybe convert my ~/.dotfiles directory into a guix home setup without fear of breaking something?
<wingo>kind guix ppl. i have a laptop running guixsd and gnome. lately when i suspend it, something in gnome-settings-daemon breaks -- e.g. my media hotkeys don't work any more. if i kill gsd-media-keys after resuming, it respawns and things work again. does this ring a bell?
<wingo>same with any other gsd-* daemon afaics, they seem to all be not working after resume
<wingo>i updated it a week ago or so, but the problem has been there for a few months now
<ouroboros86>Is it just my machine or does the current ISO not work?
<ouroboros86>All I get is a grub rescue prompt complaining there is no valid filesystems when I try to boot off a thumb drive.
<rgherdt>unmatched-paren: a while ago you mentioned you would be interested in implementing an LSP client for neovim using scheme-lsp-server. FYI I released a new version of the server yesterday, it should be much easier to create new clients now, since the server works "standalone" and doesn't require a REPL in the LSP client or something like that.
<rgherdt>unfortunately it's not available in guix yet
<bruun>Anyone able to tell me how to run halt/reboot without root privileges? Main motivation is convenience, i.e. run the commands via swaynag, which is unable to prompt for a root password (at least to my knowledge)
<iyzsong[m]>civodul: crazy productivity! i always wonder how you can do so and when i will too ❤️
<dirtcastle>what does guix install no substitutes options do? the manual says it builds packages from source? does it mean compiling? if it's bejng compiled from source,the source code in text files should be very small in size. but I saw 20mb tarballs being downloaded.
<muradm>looking at url-fetch, wandering why not simplify by using guile-curl for instance?
<rekado>is it really simpler to use a third-party library and its bindings instead of just using Guile?
<antipode>muradm: guile-curl does not appear to be integrated with guile-fibers, which makes using fiber-based libraries in (guix download) and friends harder
<antipode>(I intend to add support for downloading gnunet:// things to url-fetch using the (Fibers-based) GNUnet-Scheme library)
<vivien>In my own opinion, it is OK to spawn a full thread to do a request, because you wouldn’t do millions of requests per seconds anyway (unless you are an attacker)
<antipode>Performance-wise, I agree it should be acceptable, but it seems somewhat inconvenient to me.
<kabouik>Thanks ulfvonbelow. I am not at home right now and still haven't solved my SSH issues from WAN (I can ping the device but not ssh into it), but I don't remember seeing the hash showing in your paste
<kabouik>Speaking of, my current daily machine is not running Guix OS but Solus. I'd like to install just the Guix package manager to experiment (I don't have enough free space for a full Guix VM). Is there a way I can restrict it to a given drive and folder? Last time I tried it, I remember there was files not only in /gnu/store but also in other folders for configs, and that made me uneasy.
<kabouik>Plus here the disk I use for / is full, so I'd need to give it another drive if possible.
<kabouik>ulfvonbelow the trick was probably to clone the repository and exclude the versionning subfolder indeed, which you did with guix hash but I thought guix download would work directly after what I read in the manuals
<kabouik>So https://p.teknik.io/Simple/25Owy should work (works for me in a fresh Guix VM), if anyone else wants to check. If it ok, then I guess I could try submitting it for Guix channel, since I think nmail would be a cool addition.
<ulfvonbelow>kabouik: you're welcome, and regarding https://p.teknik.io/Simple/2SOwy, whenever we put #:tests? #f it's courteous to include the reason (e.g. no tests included, tests require network access, tests require complex circular dependencies, etc), so that we can tell whether to try enabling them in future versions.
<ulfvonbelow>also, I've noticed that 'guix package -u ...' leaves all output to my emacs shell buffer bolded and I can't figure out how to reset it from the emacs side
<kabouik>The honest answer to that ulfvonbelow is #:tests? #f was failing with errors I don't remember so I wanted to see if I could go further with no tests, and realized it just compiled and launched as it should (which I didn't expect). In the joy of that moment after one week struggling with the most basic things in Guix, I kinda forgot I disabled tests in the first place.
<kabouik>I'll have to check again why they were failing.
<kabouik>I think there should be tests since the nmail devs provides a make.sh script that takes a `test` subcommand. Looking at the script, make.sh test just seems to run `ctest --output-on-failure`
<apteryx>wingo: I think it was a bug that got fixed. You'll need to workaround to get passed it, but it shouldn't come back at a later point in time
<podiki[m]>apteryx: what is the latest on the qt wrapping bug, is that supposed to be fixed in general? noticed yesterday vorta fails on qt wrap (it is python build and then pulls that phase from qt build system)
<nckx>drakonis: It's been discussed to death already that devel should be default. Berlin is not currently in a state that makes me comfortable enough to apply that patch, though.
<apteryx>podiki[m]: hi! the mass failures for Qt 5 due to the #:qtbase arg were fixed; there's still some possibility of regression because of the use of new style inputs. See aea756ea3312ba7e8229804492ba12001c8de568 for an example of a fix.
<podiki[m]>hmm. vorta just pulls the qt wrap phase from qt-build-system to add to it's python build
<podiki[m]>is this something we see anywhere else? I didn't search, but looks like would be for anything that doesn't use qt-build-system but wants to wrap automatically rather than manually writing a phase?
<apteryx>It'd affect anything that borrows the qt-wrap phase from qt-build-system, which is *not* using the qt-build-system
<unmatched-paren>For the apply thing, I knew there was such a form in guile, so I looked up 'emacs apply function to list' and found that elisp also had apply
<unmatched-paren>and for let, well, binding local variables kind of is what it's for...
<gnucode>unmatched-paren: What do you think about adding that function to the $guix-src/etc/debbugs-helper-functions.el ? Then in the manual, we could tell people, from time to time your old bug reports get forgotten. The guix community invistes you to periodically invoke M-x my-open-bugs and try to close your old bug reports. What do you think ?
<kabouik>I see you've altered the synopsis by the way (I was not comfortable with the Linux/macOS mention either, but it's from the developer's git repo; are we free to change that as packagers or is the usual policy to keep it as is?)
<kabouik>Oh so that mean if I can time my package submission correctly, Guix could be getting two new terminal email clients at the same time OO
<unmatched-paren>Also, there is sometimes pregenerated files and vendoring, but that could happen in any package tbh.
<gnucode>what's the best non-C language that is easy to package in guix? emacs lisp. :)
<unmatched-paren>kabouik: Heh. Expect a bit of a wait; the intersection of the sets "people with commit permissions" and "people who thanklessly traverse the patch list, reviewing each one" is quite small :)
<kabouik>No problem, I'll be happy if the package even makes it one day! But would be cool to have moar choices for terminal email clients, they're just so much more effective.
<unmatched-paren>I guess Guile may sort of avoid that, it doesn't seem to use too many dependencies usually
<gnucode>unmatched-paren: my only issue with guile is that...well it seems hard to write modern (wayland ready) applications in guile.
<gnucode>case in point: guix has no GUI front-end (yet).
<kabouik>(I wouldn't use a GUI front-end for it, but I could like an optional fzf mode for guix search)
<unmatched-paren>Though it uses vim keys, so it won't appeal to people who actually *like* the cursed emacs keys.
<gnucode>hmmm. I've been diving into debbugs. And you can apply patches via that inside emacs. I've only done it once, but it was pretty cool. :)
<kabouik>unmatched-paren, you removed the package name on the last line, but now I'm getting errors when calling guix build -f nmail.scm because of that, the error is pretty specific with a clear solution (for once :P)
<unmatched-paren>Argh, I just saw some replies on a really long thread of packages and thought it was aerc for a moment :)
<kabouik>Ha. What's the correct way to determine the hash of a release then? Git clone, then revert to the said commit? I mean I know how to check the hash of the latest commit (I was just missing -rx when I tried yesterday, because I was trying to get the hash from guix download which doesn't have these options)
<kabouik>(That's a bit confusing, since the manual does recommend guix download and just says that guix hash does kind of the same, as far as I remember, so I was not looking in that direction when I found hash mismatches)
<kabouik>Yeah, but when discovering both commands and seeing their help, I just thought guix download was the same as guix hash, only guix hash allowed checking files or dirs already present (or which may have no url)
<kabouik>But now I understand the difference indeed
<kabouik>s/already present/already present on disk
<gnucode>does anyone have a snippet of emacs code that lets you search for open bugs in "guix" and "guix-patches" ?
<antipode>gnucode: (on: what's the best non-C language that is easy to package in Guix): Lua, when used in a Minetest mod, is pretty straightforward to package
<antipode>unmatched-paren: I believe there was a patch or at least a proposal for extending "guix download" to cover git repositories, though it hasn't gone anywhere yet.
<antipode>unmatched-paren: Each "lua-" package seems to have its own #:builder or phases
<antipode>Though to me it looks like it can mostly be solved with a lua-build-system.
<kabouik>The hash hell is not giving me any rest. If I `git clone REPO && cd REPO && git checkout hash-indicated-in-my-scm-file`, then `guix hash . -rx`, the hash still doesn't match what the .scm file is getting when downloading the sources at that commit
<kabouik>Can I leave it too? Again if a commit comes at some point and fix an important issue, I'd prefer being able to use the same package.scm instead of waiting for a release, and still get the detailed version number with commit
<kabouik>It's young and actively developed, for instance one of the bugfixes around the corner will fix directory names for Greek characters, which currently are completely broken (I'm not greek, just read the issue), and I doubt it'll make a new release immediately because the dev usually bumdles more changes in each release
<kabouik>So for me it's not critical, but for Greek people, the future commits may be important ones
<unmatched-paren>how do you break greek characters, they're just well-behaved unicode chars that don't even render large or go RTL
<kabouik>Phew, after some brain freezes, garbling the whole file to try implementing your advice on using just tag version instead of commit, I finally reconnected my neurons: https://p.teknik.io/Simple/gmXGS
<unmatched-paren>kabouik: `git send-email` just sends commits as patches, `guix shell` creates an isolated environment with packages installed (`-D` installs the dependencies of a package instead; it's short for --development), `./bootstrap && ./configure blah && make` is standard Autotools procedure, and `./pre-inst-env` is a little script to run commands in an environment where the guix command refers to the local checkout rather than your latest pull
<kabouik>I really appreciate your patience unmatched-paren, thanks a lot.
<kabouik>I see that mail.scm is not alphabetically sorted, so I just put mine at the end I assume?
<unmatched-paren>kabouik: If you need to make a new version of the patch, make the changes, do `git commit --amend` (or an interactive rebase `git rebase -i` for multiple commits) and then `git-send-email COMMIT-RANGE^ --to NNNNN@debbugs.gnu.org -v2`
<nckx>kabouik: You have a custom 'check phase (?), which doesn't respect the #:tests? keyword (and hence modifiers such as --without-tests). Write it something like (lambda (#:key tests? #:allow-other-keys) (when tests? (do testing stuffs here))).
<acrow>vagrantc: No, it's ok. Rewriting is good. For everyone.
<unmatched-paren>kabouik: Oh, yes, I forgot about that. You need to use the when tests? thing so that it respects --without-tests i believe
<kabouik>I am failing to convert the test phase you wrote into the format nckx advised above; really I just don't understand what those records/fields do here
<kabouik>And even though I have read about #: and ? and $~ a dozen times, there's so much I'm trying to understand on other fronts while trying Guile
<kabouik>So in the end just placing them in the right order, with the right brackets, and replacing the old snipped with the new without breaking things, is already quite a challenge with a lot of trials/errors
<kabouik>so (lambda* (#:key tests? #:allow-other-keys) (do "ctest" "--output-on-failure")))? Really I don't know what I'm doing with this line, they're all potato to me (I swear I'm trying, but I'm not a programmer, not even in another language)