IRC channel logs

2023-03-19.log

back to list of logs

<old>do we have support for GCC gofrontend?
<mirai>any ideas on how to reword this to make it less “circular”?
<mirai>@var{sanitizer} is the name of a procedure which takes one argument,
<mirai>a user-supplied value, and returns a ``sanitized'' value for the field.
<dansa>I loved mcron. However, I'm wondering --- if it doesn't support @reboot in the crontab, how could regular users run a program at start-up?
<mirai>dansa: one-shot shepherd services?
<dansa>Alright. I'll read about shepherd. Let's see what it can do.
<dansa>Thank you!
<minima>is there any browser add-on for keyboard-navigation that's packaged under guix? i wasn't able to find anything
<dcunit3d>if i'm walking through "direct checkout hacking" section on a guix system, do i need to worry about the --localstatedir or --with-store-dir? i went through this before and I used ./test-tmp for the store path, but i can't recall why
<dcunit3d>minima there is module to build chromium extensions in ./gnu/build/chromium-extension.scm, but only play-to-kodi and ublock-origin are packaged (in ./gnu/packages/browser-extensions.scm)
<minima>dcunit3d oh that's useful, thanks
<minima>i'll first try and figure out what's a good keyboard-navigation add-on - then i'll see whether i can package it
<lechner>dcunit3d / hi, i believe that --localstatedir=/var is required
<jpoiret>dcunit3d: a different store dir will mean that all your store references will be different, so you won't be able to get substitutes
<jpoiret>who would've guessed that working on making Hurd work on core-updates would lead to me also messing with riscv firmware packages
<jpoiret>qemu really is a complex beast
<dust47>Hello. How to properly setup conda ? I run conda in guix shell. When install a package like python. It shows me bash: /home/dust/.conda/envs/test/bin/python: No such file or directory.
<lilyp>the proper way to set up conda is not
<dust47>Does'nt support yet ?
<sarg>jpoiret have you seen https://issues.guix.gnu.org/62223 ? It'll be great to have it merged
<helpful-friend>"[PATCH] image: Prefer gpt partition table for efi disk images" https://issues.guix.gnu.org/62223
<dcunit3d>jpoiret lechner thanks! it's built but i'm still working on emacs before i get back to guix/guile
<rekado>dust47: this sounds like this python expects the linker loader to be at a location where it’s not
<rekado>dust47: are you using conda on top of Guix System? Or some other distro?
<dust47>rekado On Guix system.
<jpoiret>sarg: no unfortunately, I've been quite focused on core-updates for now
<jpoiret>i could probably have a look later. I filter my mail depending on whether I'm a direct recipient or not, so if you cc'd the core team it would've ended up in my inbox :)
<sarg>minima: it turned out pretty simple to add a home env to the image, see this patch to guix http://ix.io/4rfY/diff and then the image definition http://ix.io/4rg1/scheme. When you log in for the first time under your user, you need to run `/gnu/store/*-home/activate`
<helpful-friend>"" http://ix.io/4rfY/diff
<helpful-friend>"" http://ix.io/4rg1/scheme
<sarg>guix patch might be not needed if I manage to make a wrapper for `initialize-root-partition`, smth like `(with-home-profile initialize-root-partition %my-home-conf)`
<jpoiret>sarg: to make patch review smoother when I get to it later, could you also describe how you tested that your patch worked?
<jpoiret>although I can imagine just booting via qemu and checking the partition table would be enough :)
<jpoiret>but in general it is good practice to include that information for reviewers, since you usually have it and reviewers don't wanna piece it back together
<sarg>actually I have installed the resulting image to my laptop
<sarg>minima: but getting rid of the manual home activation is not that easy. The code should run after the user is logged in, so it's either that the user's SHELL should be set to some wrapping script or a line should be added to `.bashrc`
<minima>sarg this is brilliant, thanks for sharing it
<sarg>minima are you good with gexps? I can't make the wrapper for `initialize-root-partition` work
<minima>sarg hm, i can more or less follow what a gexps does - but it might take me some time to put a decent one together
<sarg>lilyp: do you know if X-Debbugs-Cc needs to be added to each email sent to `<nnnn>@debbugs.gnu.org` ?
<minima>sarg i'm looking at `initialize-root-partition` in the codebase, what's the idea? to create a version of (or "wrap" around) that so that at some point the home configuration is applied?
<sarg>I think the only important part is `#:profile #$profile` argument to `initialize-root-partition`. It lowers the derivation of `home-configuration` putting it to the store. So the wrapper should just add this argument
<minima>would that avoid the need for the patch above?
<sarg>yes
<kraai>unmatched-paren: I searched for 'java-eclipse-aether-Api` on the master branch of a guix repository and didn't find anything; is there somewhere else I should look?
<lilyp>sarg it doesn't, regular cc should be used after you have the bug number
<guixfren>hi, is there a way to do a dry-run of guix gc? I'd like to see how much storage it would free up
<sarg>guixfren maybe `guix gc --list-dead` ?
<guixfren>that doesn't show the freed storage unfortunately
<guixfren>maybe I should combine it with du in a bash script then
<sarg>you need to exclude hardlinks as well
<Maya[m]12>i have a “package” that contains a php website, and i dont know how to best write a service that “deploys it” (puts it in /var/www/<website>)
<Maya[m]12>because if i have an activation that has copy-files-recursively, it is not happy when directory isn’t empty…
<Maya[m]12>should I do delete->copy?
<sarg>maybe just a symlink would do? check `switch-symlinks`
<mirai>Maya[m]12: you don't want to use activation-service-type
<mirai>use special-files-service-type instead
<mirai>or a herd one shot
<Maya[m]12>ohh!
<Maya[m]12>if i wanted to modify the content with some config files and then deplot it would it be possible
<ichernyshovvv[m]><sarg> "ichernyshovvv here is the code..." <- thank you a lot, the code still works
<mirai>Maya[m]12: sure
<mirai>the procedures computed-file, mixed-text-file, etc. can be used for that
<unmatched-paren>hello guix!
<unmatched-paren> https://paste.sr.ht/~unmatched-paren/0e34270c7f6a4f3a9379a586768ec9eb91a16b41 <- can anyone figure out what's wrong with this?
<helpful-friend>"script-directory.scm — paste.sr.ht" https://paste.sr.ht/~unmatched-paren/0e34270c7f6a4f3a9379a586768ec9eb91a16b41
<unmatched-paren>it produces the error "While reading expression: In procedure length: Wrong type argument in position 1: lambda
<unmatched-paren>"
<lilyp>unmatched-paren: pro tip I got from debugging yesterday, try "guild compile" rather than what you where trying to od
<unmatched-paren>lilyp: okay, i'll try (i was doing it in ``guix repl'' previously)
<unmatched-paren>at least i get a backtrace this time...
<unmatched-paren>no idea what the backtrace is trying to say though.
<mirai>:))))
<unmatched-paren> https://paste.sr.ht/~unmatched-paren/1e5c410f5d8f9bbd7133f799f76a8260d66b7f9a <- "something something read something something lambda"
<mirai>unmatched-paren: sure you intended to write #o555 ?
<helpful-friend>"1e5c410 — paste.sr.ht" https://paste.sr.ht/~unmatched-paren/1e5c410f5d8f9bbd7133f799f76a8260d66b7f9a
<unmatched-paren>mirai: ahh!
<unmatched-paren>it works now! thanks mirai!
<mirai>;)
<mirai>do guix channels tolerate history rewriting / rebases, dropping commits ?
<mirai>or will that horribly break things
<jpoiret>wdym by that? will guix pull complain? surely, but you can `--allow-downgrades`
<jpoiret>for system provenance there might be some bugs
<mirai>does --allow-downgrades apply for everything or can it be set per channel
<mirai>and does that mean --allow-downgrades apply for rebases as well (its not quite a downgrade)
<jpoiret>for everything, and yes
<jpoiret>basically --allow-downgrades bypasses the check for relatedness of commits iirc
<ellysone[m]>hi guix
<andi89gi>hey
<ellysone[m]>anyone managed to run guix encrypted on the cloud?
<ellysone[m]>I managed to install Guix on kimsufi, https://paste.debian.net/1274585/ but it would be nice to have that aswell
<helpful-friend>"debian Pastezone" https://paste.debian.net/1274585
<mirai>how does guix choose which 'raise' procedure to use?
<mirai>there's one that raises a process signal and one that raises exceptions (rnrs exceptions)
<sarg>ellysone[m]: but doesn't encryption require to enter password at boot? How would that work in cloud?
<ellysone[m]>sarg: https://mth.st/blog/nixos-initrd-ssh/
<helpful-friend>"Early boot remote decryption on NixOS" https://mth.st/blog/nixos-initrd-ssh
<ellysone[m]>it's possible but I did not find any example for guix and I never did that myself on a remote machine
<sarg>wow, cool
<sarg>but then, can't an attacker run a process from initrd that we'll reside after the boot ends ?
<sarg>minima: gexps are not required. Here are the updated patches: http://ix.io/4rgY/diff, http://ix.io/4rgZ
<helpful-friend>"" http://ix.io/4rgY/diff
<Guest74>How can I define a package that needs git submodules? (recursive? #t) isn't working
<jpoiret>mirai: since raise is a built-in, when you use-module srfi-34 it just overwrites the definition
<helpful-friend>"SRFI 34: Exception Handling for Programs" https://srfi.schemers.org/srfi-34/srfi-34.html
<jpoiret>😳 now that is a helpful bot
<jpoiret>srfi-643
<jpoiret>heh, was wondering whether that was gonna error out
<jpoiret>i'm quite close to finally starting the updated Hurd with qemu 🤞
<jpoiret>sarg: wdym run a process from the initrd?
<sarg>well, it mounts root and starts PID 1. Why not start something else as well?
<lechner>Hi, in case any reviewers are around: #62156 passes on x86_64 and aarch64, but has presumably been de-prioritized for the other arches. it adds a new package, and now it's just bit rotting, like so much else
<helpful-friend>"[PATCH 0/1] gnu: Add atftp." https://issues.guix.gnu.org/62156
<sarg>where is `and=>` defined?
<mirai>sarg: I think it's built in
<mirai>search for 'High order functions guile'
<jpoiret>lechner: any reason you're running autoreconf from a distributed tarball?
<lechner>also, i worked for half a year on the new service presented in #41180, which i use in production. unfortunately, the issue is too old to be eligible for a CI job set, but like the previous package it's an addition that cannot break anything (except, perhaps documentation)
<helpful-friend>"[PATCH] Add cachefilesd service." https://issues.guix.gnu.org/41180
<lechner>mirai / because Makefile.am is missing
<jpoiret>tbh if you do have to manually autoreconf you're better off fetching the source from git
<lechner>jpoiret ^
<lechner>jpoiret / i have previously been told we prefer tarballs.
<lechner>personally, i also think that versions alone are for dinosaurs. all our packages should include a commit reference
<jpoiret>ah, well I don't have a particularily strong opinion. I personally prefer git sources. The only place where tarballs matter is bootstrapping
<mirai>tarballs when git is available? no
<mirai>I think it's a bad idea
<jpoiret>we do need them for bootstrapping
<mirai>it depends on how the tarballs are stored, some are generated on-demand, like github
<mirai>which is bad if they change how they generate it since you're hashing the tarball
<jpoiret>oh no, not autogenerated one, actual upstream releases made by real people who know why releases matter
<lechner>jpoiret / do you have commit privileges? without a committer present, this whole conversation is pointless. besides we are filing the edges of a cabinet that works. this project has come to complete halt
<jpoiret>lechner: I have a couple more remarks though
<jpoiret>I was gonna answer them by mail mostly
<lechner>i'll take them here
<jpoiret>the homepage is 404, and the license looks like gplv2+
<lechner>(and am done ranting for today)
<mirai>the native-inputs or inputs are mis-indented?
<jpoiret>also you can probably fix the spacing with inputs if you have to do other changes
<jpoiret>also, guix needs more reviewers, not necessarily committers
<lechner>mirai / my emacs does not automatically replace tabs with spaces in scheme. i did not use scheme before switching to guix but it replaces spaces in other languages. i use .dir-locals.el in all my Guile projects
<lechner>jpoiret / actually, i disagree. there is no need to be perfect. we have to keep moving
<jpoiret>I have (setq-default indent-tabs-mode nil) on to avoid that, but it might be overkill if you actually need tabs anywhere else
<lechner>actually, i don't. thanks for that hint!
<jpoiret>also whitespace mode configured to highlight tab characters and EOL whitespace
<lechner>will you share that too, please? i currently only see that in Git diffs, and sometimes miss it
<jpoiret> https://paste.debian.net/1274592/
<helpful-friend>"debian Pastezone" https://paste.debian.net/1274592
<lechner>i use the .dir-locals.el from the Guix source tree is what i meant, btw. should that be fixed?
<jpoiret>maybe we could include a (setq indent-tabs-mode nil) there, yeah
<jpoiret>besides, i don't think it's nice to call pointless someone taking some time to look over your patches
<lechner>hi, why did these two folks leave the project, please? https://debbugs.gnu.org/cgi/bugreport.cgi?bug=61989#77
<helpful-friend>"#61989 - [PATCH 00/11] Adding Gocryptfs (feature branch) - GNU bug report logs" https://debbugs.gnu.org/cgi/bugreport.cgi?bug=61989#77
<lechner>sorry, it was this one https://debbugs.gnu.org/cgi/bugreport.cgi?bug=61989#92
<helpful-friend>"#61989 - [PATCH 00/11] Adding Gocryptfs (feature branch) - GNU bug report logs" https://debbugs.gnu.org/cgi/bugreport.cgi?bug=61989#92
<ArneBab>Can I somehow make my system use --tune with guix system reconfigure?
<jpoiret>I don't think that option has reached `guix system` yet
<jpoiret>it's probably doable though, but you'll have to build everything locally probably
<lechner>jpoiret / sorry that you were offended. i appreciate your review. it is in the nature of technical projects that most suggestions regard small and often cosmetic changes, which i am personally unlikely to complain about elsewhere
<jpoiret>I disagree though, I think it is natural for a distribution to care a lot about the details of packaging, because in the end that's what it's supposed to do
<ArneBab>jpoiret: I would not mind local building of tunable packages — my system is finally fast enough. I’d just like to see those AVX512-instructions be used: https://www.phoronix.com/review/amd-zen4-avx512/6
<helpful-friend>"AMD Zen 4 AVX-512 Performance Analysis On The Ryzen 9 7950X Review - Phoronix" https://www.phoronix.com/review/amd-zen4-avx512/6
<jpoiret>esp. regarding licenses
<lechner>jpoiret / we are falling behind
<jpoiret>behind what?
<lechner>upstreams
<jpoiret>yeah, and upstream is often less concerned about compatibility, licenses, security updates, software freedom, etc. than we are
<lechner>jpoiret / i am looking into the license. debian also has it as gpl2+. i could not find the "or later" language in the document i was looking at but am examining
<ArneBab>jpoiret: regarding tarballs: I prefer tarballs over git sources when both are availabe, because tarballs can be cached and provided from other places much more robustly. Also a tarball is usually something where the upstream ran make distcheck — so the tests are verified to have worked on the packaged version.
<lechner>jpoiret / we should be not be behind by eight years or so
<jpoiret>GPL2+ means that the file can be licensed under GPL2 or later, so usually the included license file is GPL2's
<jpoiret>you have to look at file headers to see the "or later" part
<jpoiret>ArneBab: but that means that we are in some way not building from source :)
<jpoiret>it also means that if you want to hack on the project yourself, `guix shell` is not enough, you need to also include all the tools that aren't needed for the tarball build
<ArneBab>if you can see a "or later", in the readme, that’s usually the safest bet. Otherwise you may have to check every file header whether there’s at least one without the "or later" clause …
<ArneBab>jpoiret: whether it’s the source depends on how the tarball is built. Guix shell is an argument against that, though … if you use tarballs, hacking on the project means to unpack the tarball and hack on that.
<lechner>ArneBab / do you have commit privileges>
<jpoiret>lechner: wdym by eight years? are you referring to something in particular?
<ArneBab>lechner: I don’t think so, no
<lechner>Cabal 3.2 for one, until recently
<jpoiret>ArneBab: but what if you want to hack on upstream's HEAD?
<jpoiret>it's happened a few times to me (guile included :p)
<ArneBab>lechner: I recently got push-privs for Guile to help the lilypond folks, but not for Guix
<jpoiret>packaging for Guix is hard work, and especially with languages and their package managers. It is unfortunate that we were behind, but it's more a problem of personpower than just committers at this point
<ArneBab>jpoiret: I think the hack on HEAD isn’t such a strong argument, because then you’re hacking on unstable code. But checking whether what’s not yet released would fix a problem would be a strong usecase.
<lechner>jpoiret / i believe the matter of git vs tarballs is unsettled inside the project. there is plenty of precedent for tarballs in the source code. i am well aware of the arguments on both sides. it is in that larger perspective that i struggle with the debate here
<lechner>jpoiret / in other projects, i have been admonished for not ending the header line in commit messages with a period
<lechner>i have also been told by groups (in writing!) not to use please or thank you
<ArneBab>lechner: for many packages I’ve had a really good experience with updating the version (I currently run from my local Guix checkout).
<lechner>in any messages whatsoever
<jpoiret>ArneBab: wdym? if you want to contribute to upstream, you should work on HEAD, not on the last release
<ArneBab>jpoiret: that strongly depends on the project. In some projects, HEAD has known bugs, so they prefer patches against the last release where they can more easily verify correctness, while other projects want you to work on head.
<ArneBab>that depends on whether the git HEAD is used as release-tool or as communication tool.
<jpoiret>ah, I've never interacted with such projects then.
<lechner>ArneBab / that's got to be a really large project, though, plus for it to matter you have to work in a buggy area
<ArneBab>github with the rebase-PR-until-tests-pass is pushing strongly towards using HEAD for releases.
<ArneBab>But I think this is currently not making the depate easier (sorry for that).
<jpoiret>unless you're a huge project, i don't think it's a good idea to have patches on the latest release, otherwise as a maintainer you're going to spend much more time rebasing patches for the next release
<jpoiret>better let contributors write proper code in the first place
<ArneBab>There are many cases where that can fail. For example if my current HEAD is using an unstable API, it might not be that simple.
<jpoiret>i can't believe how long the guix package takes to build
<jpoiret>ah, but the main branch shouldn't contain drafts, only things that are accepted and will be included in the next release
<jpoiret>if you have projects that use unstable APIs or things that are subject to change, you shouldn't add them to the main branch. But then again, projects might have different sizes and requirements
<ArneBab>"the main branch shouldn’t" — that depends on project philosophy and branching model.
<ArneBab>There’s the idea that the "next" branch should always be releasable and that "main" should just be the latest release. In that case you’re right.
<lechner>ArneBab / i think most 'release' branches are buggy, too :)
<ArneBab>lechner: … though you don’t need a release-branch if you have actual releases
<lechner>those are buggy too
<ArneBab>:-)
<ArneBab>In my case, I’ve already caught quite a few bugs in the process of creating releases. Though for Freenet that includes actually running the release and using it to upload the updated sources with the actual new code, so it adds a quite powerful smoke test :-)
<lechner>mirai / what is your preference for the indentation of inputs. mine is inconsistent in atftp. should the list be part of the "inputs" line, or not?
<ArneBab>lechner: what do you think would upstream prefer? Using the tarball or using a commit?
<lechner>i think that we should all be using commits and switch all hash sums over over Git, or generated tarballs, or distributed tarballs to hash sums over ordered manifests, so that the packaging format alone (or the compression) has no relevance whatsoever. it would also help with this https://github.blog/2023-02-21-update-on-the-future-stability-of-source-code-archives-and-hashes/
<lechner>ArneBab ^
<lechner>that would be ordered manifests with fingerprints
<ArneBab>lechner: what do you do with old releases if a project changes to a different version tracking system?
<ArneBab>I remember the horror when Bitbucket removed Mercurial support.
<lechner>i believe this is completely immune, but have not yet rewritten it in Guile http://paste.debian.net/1274600
<helpful-friend>"debian Pastezone" http://paste.debian.net/1274600
<lechner>ArneBab / our hash would be a hash over the output of that program. the version i sent does not actually walk the file tree. i have one in Perl but cannot find it right now
<ArneBab>lechner: that looks like a very complex implementation of find . -exec sha256sum '{}' ";" > MANIFEST
<ArneBab>(you’ll need to exclude .git …)
<ArneBab>⇒ fd --exec sha256sum '{}' ";" > MANIFEST
<lechner>ArneBab / the intent is to track the chain of custody so that changed tarballs can be redistributed via amended manifests, while relying on earlier signatures of the same
<ArneBab>That’s like a version tracking system that does not hold the actual data?
<lechner>maybe
<ArneBab>… I feel like we’re getting sidetracked … again: sorry for that. I just wanted to ask for being careful with assumptions.
<lechner>isn't that what we do, track versions without contents?
<lechner>jpoiret / thanks for the whitespace hints earlier. they are very helpful indeed (although i have to read up on whitespace, as it does strange things to this circe buffer). also, i had accidentally disabled my indent-mode nil in init.el, but i think my indentation issues were not actually related to whitespace
<ArneBab>Somehow yes. But we do track the content of changes we do to those versions (via patches)
<lechner>we have control over those. the issue are changes we do not control
<lechner>it does not matter in a monorepo
<ArneBab>… just remembered: what happens when git switches away from sha1? If repos get replaced by new versions without support for sha1?
<lechner>it's an issue in debian https://perl-team.pages.debian.net/howto/repacking.html
<helpful-friend>"repacking" https://perl-team.pages.debian.net/howto/repacking.html
<lechner>ArneBab / none of those questions will matter if we switch to indexing and hashing our own manifests
<lechner>does it not seem like a future-proof way to track what's in the bag?
<lechner>jpoiret / ArneBab / also thank you for the gplv2 "or later" hint. i never noticed it since i worked mostly on original software and most packages I remember included the file snippet with "Ty Coon" in COPYING. i wonder if relegating it to each file is a bad idea because folks often forget to add that header, especially for Makefiles or tests. the gnu project also seems to acknowledge that those are different licenses
<lechner> https://www.gnu.org/licenses/identify-licenses-clearly.html
<helpful-friend>"Don't Say Licensed under GNU GPL 2 !
<lechner>jpoiret / ArneBab / actually, the GPLv2 include an "or later" clause in section 9. i just searched for the wrong string https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
<lechner>i any event, i changed it for atftp
<lechner>jpoiret / also, sorry if i was off-putting earlier. i do appreciate your review and was shocked to read last week somewhere that you do not have commit access. it is a grave error
<jpoiret>but with great power comes great responsibilities, and so I have not asked for any commit access yet
<lechner>clouds and mirrors
<lechner>you have what it takes
<stfnbms>I noticed that the font-sil-gentium package is very outdated: verson 5.00 (October 2014) – the current version is 6.200 (February 2023). The same seems to be th case with the other SIL fonts in Guix.
<stfnbms>I could try to learn how to update the Guix package, but that might take a long time, and presumably somebody else is in charge?
<lechner>stfnbms / Hi, we need to change the package definition here. i would be happy to help you with all aspects of authoring and submitting git commit, if needed https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/fonts.scm#n2072
<helpful-friend>"fonts.scm\packages\gnu - guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/fonts.scm#n2072
<ArneBab>lechner: I do not see an inherent advantage of having a manifest with hashes of all files over having a hash of a tarball with all files. Though the latter takes much less space.
<lechner>ArneBab / the hashes take the same space. the question is what they were made over. it is not advantageous in my view to also enshrine the compression format or any other part of the delivery scheme into it, but that is what everyone is currently doing
<stfnbms>lechner: That would be wonderful, thank you! How can I be in touch with you outside IRC? I will start by collecting the URLs for the up-to-date font files on the SIL website.
<ArneBab>lechner: at the moment we only verify that upstream did not tamper with the data we download. We do not identify the data with the hash, we just verify to make it tamper-proof.
<lechner>right. too tamper-proof, perhaps, as the recent github issue showed
<ArneBab>lechner: you’d use the hash for identification — which is a different usecase with different requirements.
<ArneBab>lechner: that was recent? I remember such a github issues a few years ago …
<ArneBab>(so I did nto click …)
<ArneBab>ah … should have noted the year …
<ArneBab>"On January 30, 2023, GitHub deployed a change which slightly altered the compression settings on source code downloads." ← not the first time they did that. Do not use autogenerated tarballs from github …
<mirai>is there a way to retrieve the record-type from a record?
<lechner>my point is that all those delivery formats should come out as equivalent for our fingerprinting
<stfnbms>lechner: Here are the URLs for the three SIL fonts currently in Guix that have new versions:
<stfnbms> https://software.sil.org/downloads/r/andika/Andika-6.200.zip
<stfnbms> https://software.sil.org/downloads/r/charis/CharisSIL-6.200.zip
<stfnbms> https://software.sil.org/downloads/r/gentium/GentiumPlus-6.200.zip
<ArneBab>But we’re not fingerprinting. We’re verifying the source. Github broke that so this should give an error. They could have done more tampering — like changing timestamps of files which could change which files get rebuilt on running make.
<lechner>mirai / not sure about the record-type, but "introspection facilities are available" https://www.gnu.org/software/guile/manual/html_node/Record-Overview.html
<helpful-friend>"Record Overview (Guile Reference Manual)" https://www.gnu.org/software/guile/manual/html_node/Record-Overview.html
<lechner>ArneBab / i believe every hash is a fingerprint
<lechner>ArneBab / also it matters even more when upstream signs. for mdadm, they provide three signatures!
<mirai>gotcha
<mirai>(record-type-name (record-type-descriptor ...))
<stfnbms>lechner: The new versions include web fonts. It would be nice of those were installed on Guix as well.
<lechner>stfnbms / do you know how to use with Git
<lechner>stfnbms / no problem
<stfnbms>Yes, I can use git.
<lechner>okay, do you currently use Guix?
<stfnbms>Yes.
<lechner>do you have enough disk space to clone our repo
<ArneBab>lechner: you may be right on the usage of the word fingerprint. Sorry for my confusion — I was still in the identification vs. verification part.
<lechner>ArneBab / no need to be apologetic. i need a partner because i have too many ideas, and too little time
<lechner>maybe one day
<stfnbms>lechner: I have 1.5 TB on an external drive that I would use.
<lechner>stfnbms / and finally, how is your Guile?
<ArneBab>that’s the problem we all have I think :-) — when I had enough time, I did not have enough skills, now that I have the skills, I no longer have enough time :-) → https://www.draketo.de/english/users-fans-supporters
<helpful-friend>"“If you like what I do, why don’t you help me?” | Zwillingssterns Weltenwald | 1w6" https://www.draketo.de/english/users-fans-supporters
<lechner>ArneBab / thanks :)
<stfnbms>Non-existent, I am afraid. I have only olooked at it in my system.scm, copying other peoples code snippets...
<lechner>stfnbms / okay, let's do it together. it's 10 AM where i am, and i'll walk you through
<lechner>if you want
<stfnbms>That would be very nice. I have approximately an hour now.
<lechner>stfnbms / okay, great! let's see how far we get.
<stfnbms>And can dip into the process later in the day (1 pm here).
<ArneBab>lechner: for your verification scheme one thing you’ll need to track is the executable bit. If that changes, many build tools can fail to work.
<lechner>first, please have a look here https://guix.gnu.org/manual/en/html_node/Building-from-Git.html
<helpful-friend>"Building from Git (GNU Guix Reference Manual)" https://guix.gnu.org/manual/en/html_node/Building-from-Git.html
<lechner>but you can skip a lot of stuff
<lechner>git clone https://git.savannah.gnu.org/git/guix.git
<lechner>guix shell -D guix --pure
<lechner>./bootstrap
<lechner>./configure --localstatedir=/var
<lechner>make -j
<lechner>unless you have a threadripper, that will give me enough time for breakfast with my family right now
<stfnbms>Do I change into the guix repository before running the other commands?
<stfnbms>Cloning complete.
<lechner>yes, please
<lechner>well, the 'shell' does not matter
<stfnbms>Did the shell and bootstrap. Get “bash: hostname: command not found”. Installed inetutils and have hostname in normal shell now, but still not in guix shell. Should I skip “guix shell -D guix --pure”?
<stfnbms>Ah, “guix shell -D guix inetutils --pure” did it.
<lechner>what is your host distro, please?
<ArneBab>lechner: fd --type f --exec bash -c 'stat --format "%A" "{}" | grep -qi x && echo -n "x " || echo -n "- "; sha256sum "{}"' ";"
<ArneBab>lechner: that should build the manifest you seek.
<lechner>ArneBab / have a tattoo that reads #!/usr/bin/env guile :)
<stfnbms>lechner: Running make now. No threadripper here, so will be a while, I guess.
<ArneBab>lechner: :-)
<lechner>stfnbms / it would be better to remove 'inetutils' after the ./bootstrap step
<lechner>are you on guix system?
<stfnbms>Yes.
<stfnbms>Make is running fine though and at 11% now.
<lechner>i would ^c, make clean-go, get the pure shell, and run make again
<stfnbms>Okay, running “make -j” in pure shell now.
<lechner>stfnbms / you are doing great!
<lechner>and i have more time for breakfast, i think
<lechner>ACTION sees no 'hostname' here https://git.savannah.gnu.org/cgit/guix.git/tree/bootstrap
<helpful-friend>"bootstrap - guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/tree/bootstrap
<lechner>stfnbms / what's in your bashrc?
<stfnbms>Enjoy breakfast! At 21% now, but no hurry. I will be in front of the computer doing something else in the meantime.
<lechner>do you have a hostname in your prompt?
<stfnbms>vterm_prompt_end(){
<stfnbms> vterm_printf "51;A$(whoami)@$(hostname):$(pwd)"
<stfnbms>Yep.
<lechner>i am back. a quick egg croissant. in california!
<stfnbms>In New Jersey. Had eggs earlier.
<lechner>that bash part also ought to be isolated. i believe we need --noprofile --norc in that hash-pling
<lechner>i never liked the other names for it
<lechner>that will be your other patch!
<lechner>jpoiret / for the record, i believe you are one of the most humble and helpful folks here. thank you so much for being around
<lechner>also, i wish someone would tell me what happened to nckx
<stfnbms>lechner: Okay, make completed.
<lechner>in an adjacent room, my wife just commented on my nine-year old's playing on an ancient PS2 (the only thing I allow): "I think you have to turn earlier"
<lechner>stfnbms great! do you use emacs (Magit) or straight git
<stfnbms>I had a look at the 5.000 and 6.200 zip files of Gentium. The font file names have changed, and there are some new ones.
<stfnbms>I was using straight git.
<lechner>git checkout -b update-gentium-font (or to your liking)
<stfnbms>In the guix directory inside guix shell? “bash: git: command not found”
<stfnbms>“guix install git” in guix shell?
<stfnbms>Or should I leave the guix shell now that make is complete?
<lechner>i usually have a second window opwn
<lechner>you have to jump back and forth, because we will be building and linting the modified packages inside the pure shell
<stfnbms>Okay. Created that branch.
<lechner>great, now please fire up your favorite editor (outside the pure shell)
<lechner>and navigate to gnu/packages/fonts.scm
<stfnbms>I am in EXWM. :-)
<lechner>okay, mr. beginner!
<lechner>why am i doing all the talking?
<lechner>i am also on EXWM
<stfnbms>Great.
<lechner>or mrs beginner, whatever
<lechner>we have to be neutral here. my apologies
<stfnbms>Mr Beginner. Not as an Emacs user though.
<stfnbms>Okay, navigated to the Gentium line.
<lechner>you just leapfrogged ninety percent of the newbies
<stfnbms>Changed the version number.
<stfnbms>Base URI is unchanged.
<stfnbms>Now I need to change the sha256/base32 bit somehow, yes?
<lechner>given the extraordinary passage of time, i'd have a quick look at the license
<lechner>yeah, just change one digit in the hash for now, please
<stfnbms>Still the OFL from 2007.
<lechner>there are cases when it pulls up the old download (although probably not in your case)
<stfnbms>Change “k” to “l” in “0m7189870hha217n1vgpmf89mwggrxkh679ffi1lxpnjggqi2n9k”?
<lechner>then ./pre-inst-env guix build font-sil-gentium
<stfnbms>Back to guix shell for the pre-inst-env?
<lechner>yes, please
<lechner>also, as an emacs user i would like to encourage you to have a look at Magit. i started using it this year (after several decades of skepticism). you can accept changes by marking them, i.e. no more git add -i
<lechner>guix should present you with the correct hash, which you can then copy (perhaps with embark) and insert into fonts.scm
<stfnbms>It downloaded the right zip file, but then the build failed with a complaint about the hash. Copy the “actual hash” that it gives me into fonts.scm?
<lechner>yes, please
<stfnbms>Yes, I do occasionall use Magit, and would like to more.
<stfnbms>Can’t figure out how to copy from vterm... Typing it manually.
<lechner>you can also replace the 'build' with 'lint' for some additional insights
<stfnbms>Reran pre-inst-env and succeeded.
<lechner>i think you have to use M-x commands to copy in vterm, please have a look at the brand-new Eat https://codeberg.org/akib/emacs-eat
<helpful-friend>"akib/emacs-eat: Emulate A Terminal, in a region, in a buffer and in Eshell - emacs-eat - Codeberg.org" https://codeberg.org/akib/emacs-eat
<lechner>pure elisp, too
<lechner>how about lint?
<stfnbms>EAT sound great. Will check it out.
<stfnbms>Linting. Can I ignore the “note: source file ... fonts.scm newer than compiled ... fonts.go” bit?
<lechner>stfnbms / people use it automatically and selectively in Eshell for commands that expect a terminal. people are raving
<lechner>just run make again, please
<stfnbms>I switched to vterm because guix shell’s prompt with escape sequences was garbled in eshell.
<lechner>i know
<stfnbms>Lint says “updater 'generic-html' failed to find upstream releases” and “urce not archived on Software Heritage ... ”. Otherwise fin.
<hwpplayer1>lechner: do you have enough disk space to clone our repo / how much do I need to clone Guix repository ?
<lechner>hwpplayer1 / not sure. it was kind of a rhetorical question in the sense that i would prepared the commit for stfnbms and given him authorship with ---author
<stfnbms>hwpplayer1: Taking ub 844M after everything I just did.
<lechner>it can be substantial though. i think nix is 2 gb plus
<stfnbms>lechner: Okay, so I reran make.
<hwpplayer1>It is very minimal as far as I can see
<lechner>now lint again, please. can you use debpaste.el to paste the output?
<stfnbms>Shall I update the other two SIL fonts while I am at it?
<lechner>yes, but we will eventually send in three separate commits
<lechner>people here like minute and only narrowly related changes
<stfnbms>Okay, will do that now then, yes?
<lechner>yes!
<lechner>did you accept .dir-locals.el as safe?
<stfnbms>Yes.
<lechner>okay, i would change as little as possible right now.
<stfnbms>Just the version numbers and hashes.
<lechner>later, we may try to re-indent with TAB in emacs, which has been described as our "gold standard" of formatting
<lechner>that too will have to be a separate commit
<lechner>we like tiny changes
<lechner>after nine years, there are likely to be some changes
<stfnbms>Yes, font names, new fonts, and new subdirectory with web fonts.
<bjc>sneek: seen muradm?
<sneek>I think I remember muradm in #guix 2 months ago, saying: mirai: there is already basic integration test included see (gnu tests security).
<bjc>oof
<bjc>guess i'll just be working without a net, then ;)
<lechner>stfnbms / are the web fonts being installed into a reasonable place in the /gnu/store locations?
<stfnbms>Where do I look?
<stfnbms>Wait.
<lechner>the build step should print a store location
<lechner>also, as for the importer not finding the source, should we fetch from here instead? https://github.com/silnrsi/font-gentium
<helpful-friend>"GitHub - silnrsi/font-gentium: Fonts for languages and writing systems that use Latin, Cyrillic, and Greek scripts" https://github.com/silnrsi/font-gentium
<lechner>i found it via https://archive.softwareheritage.org/browse/search/?q=gentium&with_visit=true&with_content=true
<helpful-friend>"Search software origins to browse Software Heritage archive" https://archive.softwareheritage.org/browse/search/?q=gentium&with_visit=true&with_content=true
<stfnbms>They do not get installed at all.
<lechner>stfnbms / i'm glad i asked
<stfnbms>The canonical download URL seems to be on the SIL site.
<stfnbms>The web fonts are in a “web” subdirectory of the zip file.
<lechner>yeah, i'm not sure. i saw this in Debian https://tracker.debian.org/media/packages/f/fonts-sil-gentium/copyright-200811261.03-4 but that version appears even older
<lechner>the Source: line in the first stanza
<stfnbms>Then license is okay.
<stfnbms>What about the “source” line?
<lechner>that would be the download location, but that version is even older
<lechner>on software heritage i found the github
<stfnbms>6.200 is the current version for Andika, Charis and Gentium.
<lechner>that's in github
<stfnbms>Right.
<stfnbms>So undo everything and use Github instead?
<lechner>i don't think so, but i am not a reviewer (or have commit access). people here have all kinds of opinion, but being conservative seems to be the most acceptable stance. it's also why i run into trouble a lot
<stfnbms>Okay. Sticking with the SIL zip file as before sounds good.
<lechner>i personally would change it to github. how can you tell that it's not "canonical"?
<stfnbms>Let me run the lint on the other two fonts while you ponder the source and web fonts issue.
<lechner>you now what, for you first submission please keep as is
<stfnbms>Great.
<stfnbms>The font developer is jvgaultney on Github. He works for SIL, which then relases the zip files for each new version on their website.
<lechner>okay, i am not going to argue with you. thank you for doing the research and clarifying
<lechner>you may know more about where the web fonts have to go.
<stfnbms>I don’t, I am afraid. But updating the TTF version on its own would be worth it on its own.
<ellysone[m]>can I launch the certbot command immediately? When I do sudo /gnu/store/bwvd158qy7xyryyds0jlzb7mvsa1h5iq-certbot-command it fails with a fetching .well-known/... connection refused
<stfnbms>Lint is fine for all three fonts.
<lechner>ellysone[m] / i usually do guix shell certbot as root
<lechner>stfnbms / great! now please prepare three different commits (on top of each other in the same branch)
<lechner>please use the first two lines as a template for your commit messages https://git.savannah.gnu.org/cgit/guix.git/commit/gnu/packages/fonts.scm?id=8b817bf46efccdf1cb9d81c55baf6230644600ba
<helpful-friend>"guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/gnu/packages/fonts.scm?id=8b817bf46efccdf1cb9d81c55baf6230644600ba
<lechner>i.e gnu: font-sil-gentium: Update to 6.2.0.
<lechner>followed by an empty line and then * gnu/packages/fonts.scm (font-sil-gentium): Update to 6.2.0.
<lechner>for the overall format of those messages, you have to ask around. i do not understand it and find it largely duplicative and unnecessary given the Git toolset
<patched[m]>Is UPL not part of the available licenses? I can't find it in licenses.scm. https://directory.fsf.org/wiki/License:UPL-1.0
<helpful-friend>"License:UPL-1.0 - Free Software Directory" https://directory.fsf.org/wiki/License:UPL-1.0
<stfnbms>lechner: So “git commit -m '...'” three times, with the message for “...”? How do I get the linebreaks in there?
<lechner>stfnbms / can you send mail locally, i.e mailx or git send-email?
<patched[m]>I am trying to package a piece of software which uses it
<stfnbms>lechner: Ah, apparently I can but them in a file and use “git commit -t”.
<lechner>i do not see it here (and have never heard of it) but you can add it https://git.savannah.gnu.org/cgit/guix.git/tree/guix/licenses.scm
<helpful-friend>"licenses.scm\guix - guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/tree/guix/licenses.scm
<lechner>stfnbms / just git commit should open an editor
<stfnbms>Okay. Will try.
<ellysone[m]>lechner: are you like using a standalone server or an already running nginx instance? with the.well known allowed?
<lechner>ellysone[m] / which certbot command would you like to run, please?
<lechner>stfnbms
<lechner>stfnbms / you may wish to use this as your $EDITOR http://paste.debian.net/1274613
<helpful-friend>"debian Pastezone" http://paste.debian.net/1274613
<ellysone[m]>sudo certbot certonly -n --agree-tos --webroot -w /var/www --cert-name foo.xyz -d foo.xyz --email foo@foo.org --staging , to get new certs it yields a 404 unauthorized
<lechner>i store it in .config/editor/always-emacs
<lechner>stfnbms ^
<lechner>ellysone[m] / i would turn off nginx and use --standonly
<mirai>patched[m]: looks like it's missing
<mirai>you can add it
<sarg>qutebrowser finally merging qt6 support, hope to see it in guix soon
<ellysone[m]>yeah it works
<ellysone[m]>thanks
<stfnbms>lechner: I did one commit for gentium. Trying another one for charis, git tells me: On branch update-gentium-font nothing to commit, working tree clean.
<lechner>stfnbms / did you add the entire diff in the first commit, or only the parts relating to gentium?
<lechner>you have to use git add -i
<stfnbms>All three changes are applied in fonts.scm. Oops.
<lechner>stfnbms / yeah, magit would have presented you with the three hunks
<stfnbms>This is where get lost in a tangle of git commands...
<lechner>git add -i will also offer you the hunks but it's kinda cryptic
<lechner>p for patch, then the number i think
<lechner>s to split hunks
<stfnbms>Yes, but I already committed all three font changes to the “gentium” branch.
<lechner>and then just y or n unless you have to line-edit
<lechner>right
<stfnbms>Can I send you the updated fonts.scm?
<lechner>hang on
<lechner>save the commit hash you see in git show
<lechner>put it somewhere. we will need it in a minute
<lechner>then git reset master
<lechner>(no --hard please)
<stfnbms>Saved.
<stfnbms>Reset.
<lechner>what do you see with git diff please?
<stfnbms>diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm
<stfnbms>index 5d159208dd..88d833d6c4 100644
<stfnbms>--- a/gnu/packages/fonts.scm
<stfnbms>+++ b/gnu/packages/fonts.scm
<stfnbms>and some more lines.
<lechner>that's your diff.
<stfnbms>Okay.
<lechner>we will now commit this as three different parts.
<lechner>please run git add -i
<stfnbms>Yes.
<lechner>hit p
<stfnbms>Yes.
<hwpplayer1>What does git adf -i mean ?
<hwpplayer1>*add
<lechner>stfnbms / do you see the fonts file, maybe with an asterisk and diffstat?
<lechner>type that number, please
<stfnbms>Yes. No asterisk. Staged
<lechner>we don't want to stage the whole thing
<stfnbms>Sorry, unstaged path.
<lechner>is there a number, like 1?
<stfnbms>I type the number 1?
<lechner>yes
<stfnbms>Okay.
<lechner>you see a hunk for one font? we can reorder later
<stfnbms>No. All it did is put an asterisk in front of the 1.
<lechner>hit enter
<lechner>i think i have to read the manual
<stfnbms>(1/6) Stages this hunk?
<stfnbms>I press y?
<lechner>what do you see?
<lechner>just the new version for one font?
<stfnbms>But that is only up to (uri (string-append
<stfnbms>First part of first font.
<lechner>is that gentium?
<rdrg109_>[Q] Is it safe to delete a directory in /var/guix/profiles/per-user with "rm"? I'm asking because I want to delete the directory that was created for a user that I don't use anymore (it is called /var/guix/profiles/per-user/rdrgfoo ) but I don't know if there is a guix tool that would delete that directory and that have side effects in other files.
<stfnbms>Yes
<lechner>rdrg109_ / i have done that before, but beware of numerical user ids, which can and do get reused
<lechner>rdrg109_ / the link in the per-user profile will still carry the old name!
<stfnbms>lechner: Stage hunk 1/6, then hunk 2/6, hoping that that covers Gentium?
<lechner>stfnbms / accept please
<lechner>]\
<lechner>yes
<lechner>then q out of git add -i
<lechner>then commit but reuse your old message https://stackoverflow.com/a/18429221
<stfnbms>Okay
<lechner>you can pick -c or -C
<lechner>but it needs that other hash
<lechner>we saved
<stfnbms>Okay. Worked.
<lechner>git show will show you exactly what's in it
<stfnbms> 1 file changed, 2 insertions(+), 2 deletions(-)
<stfnbms>Sounds right for Gentium.
<lechner>it does not show the diff?
<stfnbms>git commit -C 0cb8adc622cbdfcaed009ea8d69f20fd2cf775e5
<stfnbms>shows
<lechner>i must have something in my config
<stfnbms>[update-gentium-font f8fad5be1f] gnu: font-sil-gentium: Update to 6.2.0.
<stfnbms> Date: Sun Mar 19 14:22:34 2023 -0400
<stfnbms> 1 file changed, 2 insertions(+), 2 deletions(-)
<stfnbms>Okay then. Git add -i again for hunks 3 and 4?
<lechner>yes, but with updated commit messages please
<lechner>do you have --oneline in your config?
<lechner>try git show -p maybe https://git-scm.com/docs/git-show
<helpful-friend>"Git - git-show Documentation" https://git-scm.com/docs/git-show
<stfnbms>Okay, committed all of gentium, andika and charis with three separate messages.
<lechner>great!
<stfnbms>git show -p shows me the last one (charis). Note that all three are on a branch called “update-gentium-font” now, but maybe the branch name does not matter.
<lechner>now please run guix refresh --list-dependent XXX for each
<stfnbms>What is XXX?
<lechner>branch name is only for you
<lechner>it helps you remember to delete it after your patches were accepted
<lechner>we only care about the numbers at the top
<stfnbms>XXX is the package names?
<lechner>point 9 here https://guix.gnu.org/manual/en/html_node/Submitting-Patches.html
<helpful-friend>"Submitting Patches (GNU Guix Reference Manual)" https://guix.gnu.org/manual/en/html_node/Submitting-Patches.html
<lechner>yeah, i would run it separately for now
<lechner>with fonts, we should probably also look at size (point 8)
<stfnbms>For gentium and charis “No dependents other than itself”
<stfnbms>For andika: “Building the following 1 package would ensure 2 dependent packages are rebuilt: tuxmath@2.0.3”
<lechner>love it. they can all go into master
<stfnbms>Super. How now?
<lechner>first, i do NOT recommend running guix style. the recommendations are large bogus
<stfnbms>Okay. Won’t.
<lechner>sorry tryinf to eat cheetos at the same time
<lechner>don't like yellow keyboards
<stfnbms>Also have lunch waiting...
<stfnbms>Upstairs.
<lechner>we are almost done
<stfnbms>Okay. Thank you so much for your help so far!
<lechner>please follow the "multiple patches" instructions here https://guix.gnu.org/manual/en/html_node/Sending-a-Patch-Series.html
<helpful-friend>"Sending a Patch Series (GNU Guix Reference Manual)" https://guix.gnu.org/manual/en/html_node/Sending-a-Patch-Series.html
<stfnbms>git: 'send-email' is not a git command. See 'git --help'.
<lechner>right you need to be in guix shell git:send-email or so
<lechner>it's one of the more annoying steps
<lechner>then you have to wait after the first email to get the bug number. your cover letter can be very short, such as "Hi, this is my first patch"
<stfnbms>Tried the first command in guix shell. “fatal: failed to get upstream”.
<stfnbms>git format-patch -3 -o outgoing --cover-letter --base=auto
<lechner>outside the pure shell, please type guix shell git:send-email
<lechner>--base=master
<stfnbms>I did.
<stfnbms>Okay.
<lechner>base auto does not work well
<lechner>you can look at the four messages in ./outgoing
<stfnbms>Look fine.
<lechner>git send-email outgoing/0000-cover-letter.patch -a --to=guix-patches@debbugs.gnu.org
<lechner>but that will open another editor
<lechner>and inside Emacs sometimes throws me for a loop
<lechner>the subject line
<lechner>should be [PATCH 0/4] Update SIL fonts. or so
<lechner>after you get the bug number in your email, you can rm outgoing/0000-cover-letter.patch
<stfnbms>Oh no. Looks like I cannot send email from git. “Unable to initialize SMTP properly”.
<stfnbms>Can I just paste the four messages into my regular mail client and send from there?
<lechner>i am not sure, but it sure is a good start
<stfnbms>Will try.
<lechner>otherwise you could mail them to me and will send them for you, but i am hoping that your difficulties will illustrate that the convenience of 'git am' is not worth it
<ekaitz>hi! how can i do `cp lib/*/* /lib` in a guix package? looks like invoke does not expand the wildcards :(
<lechner>ekaitz / 'find -execdir' may be able to help
<stfnbms>lechner: I sent out the cover. Does not show up in the online archive yet. Don’t know when that is updated. Will send the actual patches now, then have lunch.
<stfnbms>How can I send the patches to you in case that becomes necessary?
<lechner>what's the bug number?
<lechner>please prefix with #
<ekaitz>lechner: thanks! let me try
<lechner>stfnbms / my address is felix.lechner@lease-up.com
<lechner>stfnbms / maybe your first message is gated
<stfnbms>lechner: Thank you, and thanks again for all your help! Will give it a day for my patches to show up in the debbugs archive.
<lechner>we just have to wake up nckx
<lechner>stfnbms / please enjoy your lunch. you deserve it!
<stfnbms>Alas, the emails did not go through. “<guix-patches@debbugs.gnu.org>: host debbugs.gnu.org[209.51.188.43] said: 550
<stfnbms> Unrouteable address (in reply to RCPT TO command)”
<stfnbms>I will put the four messages into a tar file then and email that as an attachment to you.
<lechner>was your From: address correct?
<stfnbms>Many thanks again! I learned a lot, and hope I will figure this out in the future.
<lechner>otherwise, just send it over
<stfnbms>Well, I am not subscribed to debbugs.
<lechner>stfnbms / i hope you will contribute more, please
<stfnbms>Yes, will send it to you.
<lechner>it responds personally
<stfnbms>Thanks, will try.
<lechner>but i think you message may have to be approved
<lechner>some guidance on that from channel ops or experienced contributors would help me avoid sending a potential duplicate
<hwpplayer1>If Guile is a language that is a programmable programming language then how can we program and modify GNU Guix itself ? And maybe we can fork and make another distribution from itself
<lechner>hwpplayer1 / Scheme can analyze itself (Section 12) https://spritely.institute/static/papers/scheme-primer.html
<helpful-friend>"A Scheme Primer" https://spritely.institute/static/papers/scheme-primer.html
<hwpplayer1>Thanks lechner
<hwpplayer1>Do you have a git account ? lechner
<lechner>i do (as lechner) but i vastly prefer codeberg (also as lechner)
<lechner>sorry over github
<lechner>felix.lechner on gitlab
<lechner>and lechner at sr.ht i think
<hwpplayer1>Do you like sourcehut ?
<lechner>hwpplayer1 / yes, but until recently their repo forking was broken due to go-git. i also find the site harder to navigate than codeberg, but sr.ht is extremely popular with younger folks i think
<lechner>they will start charging at some point
<hwpplayer1>Gitea is very easy to deploy and configure
<hwpplayer1>But I have concerns about Go because of Google patent
<lechner>which patent, please?
<hwpplayer1>Let me show you one moment please
<hwpplayer1> https://en.m.wikipedia.org/wiki/Go_(programming_language)
<ekaitz>in the output of my package there are several libraries and one depends on the other, the validate-runpath phase fails with that, saying one of them is a dependency but it's not in the runpath. Should I just discard the validation or there is a good way to fix it?
<lechner>ekaitz / i think that needs to be fixed. what's the source language, please?
<ekaitz>lechner: C
<lechner>with autotools, including libtool?
<ekaitz>lechner: just an extremely wierd makefile
<lechner>ekaitz / make sure it's not generated from Makefile.am
<ekaitz>nono, really, it's just a makefile
<lechner>bummer, can you post it somewhere?
<ekaitz>sure, gimme a second
<ekaitz> http://paste.debian.net/1274618/ it's the package called `im`
<helpful-friend>"debian Pastezone" http://paste.debian.net/1274618
<ekaitz>warning: it's absolutely horrible how the internal makefile works
<ellysone[m]>man guix eats up so much disk space
<lechner>guix gc --delete-generations=1m
<ellysone[m]>I'm trying to bootstrap from a vps
<ellysone[m]>2,5 gigs available
<ellysone[m]>guix-install.sh eats up 700mb
<lechner>ellysone[m] / can you use btrfs with lzo?
<lechner>hwpplayer1 / i'm not sure what Droogle's intent is with the Golang patent but the license includes a patent grant. probably aimed at Thoracle
<ellysone[m]>no the rescue mode only gives you acces to a debian with regular ext4
<lechner>ellysone[m] / i would ditch the install script and run with guix from debian, and then go system
<ellysone[m]>yeah but I don't like the leftovers : (
<lechner>hmm, i did that without recently
<ellysone[m]>so I just rm -rf /usr/lib/modules and see if I can get by
<lechner>but i can't remember how
<lechner>i would not do that
<ellysone[m]>it's a vps I don't really care that much, I can just reinstall from the webui
<lechner>no, i mean removing the kernel modules (or did you mean /lib/modules)?
<ellysone[m]>I just removed /usr/lib/modules
<lechner>and still typing!
<ellysone[m]>it's working so far
<lechner>ekaitz / are the prerequisites missing from RUNPATH included in any of the package inputs?
<ekaitz>lechner: honestly, i don't even know what the runpath is very well... but the issue it gives is `im` is a dependency of `im_jp2` and both are part of the package
<lechner>ekaitz / RUNPATH is an ELF feature that is used extensively in Guix to ensure that an executable has access to (and only to) it's stated prerequisites (aka "inputs"). i believe the gnu-build-system includes it automatically. otherwise ld.so would not know how to find anything in the store ls -al /usr/lib gives "ls: cannot access '/usr/lib': No such file or directory"
<ekaitz>lechner: but why does the validtion step fail in this package then?
<ekaitz>(thanks for explaining btw <3 )
<lechner>ekaitz / probably because a missing RUNPATH entry will result in a runtime error
<lechner>like this https://stackoverflow.com/q/18547551
<ekaitz>lechner: do I need to set it myself?
<lechner>as a user, no; but as a packager, i think you have to ensure it
<lechner>what is the exact message you see, please?
<lechner>i'd like to correlate the missing shared objects with package names and make sure the build system can find them via appropriate declarations of the inputs
<ekaitz>let me run the build again
<argh>test
<argh>first time irssi use...sorry
<ekaitz>lechner: /gnu/store/d4z5069a5z9nn4wj2ji52cv60ghkm0ip-im-3.15/lib/libim_jp2.so: error: depends on 'libim.so', which cannot be found in RUNPATH ("/gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33/lib" "/gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib" "/gnu/store/p7iq81hxxyk9zy7a9dngbf16zm8d4klx-libpng-1.6.37/lib" "/gnu/store/8qv5kb2fgm4c3bf70zcg9l6hkf3qzpw9-zlib-1.2.11/lib"
<ekaitz>"/gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/../../..")
<lechner>libim.so is likely an unversioned link to a versioned shared library. given guix's reliance on exact identifications, i would find that reference and replace it with the proper versioned path
<lechner>i am assuming it's shipped as part of the im package>
<lechner>>
<lechner>?
<ekaitz>lechner: libim is in the same folder as the others and yes, it's provided by the same package as the others (im)
<minima>sarg: hey, amazing, well done, i'll test it later, thanks!
<ekaitz>it's just libim.so, no versioning
<lechner>ekaitz / i have to go away for fifteen minutes but will be back shortly
<lechner>it should be versioned unless it's a module, i.e. not installed in a store folder that would be part of LD_LIBRARY_PATH on an FHS distribution
<ekaitz>ok, no problem, ping me when you're back please
<lechner>i'm here
<lechner>so, the versioning probably does not matter in Guix because all our paths are separate anyway. i think you are looking at a shortcut upstream made to find its own library that is not obvious to our gnu build system. i am
<lechner>ekaitz / it probably makes no sense to declare package as it's own input, so we have to do something else. i am going to look through the Guix source tree for hints
<lechner>it won't be the first ime
<lechner>time
<ekaitz>maybe I have to split the package steps in different packages?
<ekaitz>this library (IUP) is driving me really mad
<lechner>ekaitz / it will be something like this -Wl,-rpath= (no space after comma) but boost is much more complex than your case https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/boost.scm#n97
<helpful-friend>"boost.scm\packages\gnu - guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/boost.scm#n97
<ekaitz>lechner: ooh let me try! thanks!!
<lechner>ekaitz / or maybe something like this in configure https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/video.scm#n1776
<helpful-friend>"video.scm\packages\gnu - guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/video.scm#n1776
<ekaitz>it doesn't have a configure step
<ekaitz>lechner: what's the proper way to access outputs? is there a gexp way to do it or not?
<lechner>maybe the make step like in boost is better then
<lechner>i think it's #$this-package-output >
<lechner>?
<lechner>ekaitz / or just #$output ?
<ekaitz>idk :)
<ekaitz>o looks like ouput works but I don't know how to choose the correct output from it (maybe it just works!)
<lechner>do you have more than one?
<lechner>ekaitz / please look at this find https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/kde-plasma.scm#n237
<helpful-friend>"kde-plasma.scm\packages\gnu - guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/kde-plasma.scm#n237
<ekaitz>nope in this one
<ekaitz>I just found it's #$output:output when you have several of them
<ekaitz>oh that one is way better
<lechner>or this https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/bootloaders.scm#n586
<helpful-friend>"bootloaders.scm\packages\gnu - guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/bootloaders.scm#n586
<ekaitz>lechner: surprisingly enough it still fails
<ekaitz>i must be doing something wrong
<lechner>the comment in line 585 just above may describe the same issue that you have with a captive library
<lechner>ekaitz / can you please post your latest version?
<ekaitz>i think i messed up, gimme a sec :)
<ekaitz> http://paste.debian.net/1274625/
<helpful-friend>"debian Pastezone" http://paste.debian.net/1274625
<ekaitz>there it goes
<ekaitz>it's like it's ignoring the LDFLAGS I added
<lechner>ekaitz / what if you add it to #:make-flags like here? https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/bootloaders.scm#n583
<helpful-friend>"bootloaders.scm\packages\gnu - guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/bootloaders.scm#n583
<lechner>the separate phase probably does not carry over into the make stage
<ekaitz>lechner: look at the build phase, it doesn't really exist
<ekaitz>i have to build each component one by one
<lechner>please remember that environment variables are not shared with parent processes
<lechner>which phase builds the executable that is missing libim.so?
<ekaitz>the build-im-jp2
<lechner>also, do you really need (invoke "make" "im_process") twice?
<ekaitz>lechner: that's a bad copy-paste :)
<lechner>you need the setenv below the add-before, i think
<lechner>or inside the lambda _ rather
<lechner>maybe i'm wrong about that
<lechner>do this
<lechner>make imjp2 LDFLAG=...
<ekaitz>not bad, let me try
<lechner>make recognizes environment variables are part of its command line
<lechner>not before, via shell
<ekaitz>okay let's try
<ekaitz>nope
<ekaitz>same error
<lechner>LDFLAGS btw
<ekaitz>yeah, with S
<lechner>you can also make 'make' verbose, i think
<ekaitz>that's a good idea
<lechner>are you sure that libim.so is available in /gnu/store/XXXX/lib ?
<ekaitz>that's a very good question
<ekaitz>but I think it is, if you look at the install phase, that's what it does
<ekaitz>it appears, yep, just tested
<lechner>my feeling is you are very close, but i am relatively new here
<ekaitz>yeah... and this package is really a pain in the ass
<ekaitz>it's not helping at all
<ekaitz>i'll give it another go in the future, thank you very much lechner for your help!
<lechner>i am sorry it was unsuccessful
<ekaitz>lechner: don't worry mate it wasn't your fault, this package already took 2 days of my life and it's 1/3 of the full IUP thing
<lechner>ekaitz / someone will eventually appreciate your efforts and your burden on behalf of our codebase
<ekaitz>:)
<bjc>anyone know why guile has its site-dir in the ‘%load-path’ three times?
<bjc>scheme@(guile-user)> %load-path
<bjc>$1 = ("/run/current-system/profile/share/guile/site/3.0" "/gnu/store/kphp5d85rrb3q1rdc2lfqc1mdklwh3qp-guile-3.0.9/share/guile/3.0" "/gnu/store/kphp5d85rrb3q1rdc2lfqc1mdklwh3qp-guile-3.0.9/share/guile/site/3.0" "/gnu/store/kphp5d85rrb3q1rdc2lfqc1mdklwh3qp-guile-3.0.9/share/guile/site" "/gnu/store/kphp5d85rrb3q1rdc2lfqc1mdklwh3qp-guile-3.0.9/share/guile")
<bjc>
<lechner>for good luck?
<lechner>jesting aside, could it be a historical holdover for compatibility>
<bjc>oh, no, i'm dumb. those are separate directories
<lechner>?
<bjc>my eyes glazed over at the hashes, i guess
<lechner>they can be stupefying
<sarg>how to run `./pre-inst-env guix` with custom channels?
<lechner>you can't
<lechner>unless you maintain a checkout of your custom channel, and then use -L
<lechner>i have only been able to do this with wip- feature branches on Savannah (which require a push) and then guix time-machine --branch=wip-XXXX -- deploy machine.scm
<sarg>yes, it's a local channel, but `specification->package+output` can't find my packages
<lechner>which guix command do you seek to run, please?
<sarg>`guix home reconfigure`
<lechner>you'll have to find someone with more experience here
<sarg>nevermind, it works with `-L`. Earlier it was reporting not found packages, but I'm not sure if I had been doing something wrong.
<lechner>Hi, why is https://git.code.sf.net/p/atftp/code listed on sf.net and SH and seems to work, but HTTPS returns 4040
<Guest74>Someone knows whats up with this: https://paste.debian.net/1274637/ because of this I did a memtest and it passed with no issues at all
<helpful-friend>"debian Pastezone" https://paste.debian.net/1274637
<sarg>lechner: git clone works, probs sf.net filter by user-agent or something
<sarg>lechner, that's because only git protocol is supported on that host. git makes this request: `GET /p/atftp/code/info/refs?service=git-upload-pack HTTP/1.1`
<Guest74>How can I use git submodules if I use git-fetch for package definition?
<sarg>Guest74 `recursive?` flag in `git-reference`
<Guest74>sarg I tried that but it doesn't do anything.  The folders are empty.  Going to send whole definition
<Guest74>sarg https://paste.debian.net/1274639/ cm-ryml is the one I need recursive since it has a reference to a cmake script on another git repo. (ignore the copy paste, just wanted it to work for some testing)
<helpful-friend>"debian Pastezone" https://paste.debian.net/1274639
<Guest74>Also I plan to push it upstream once I cleaned it up and wonder if using git sub modules is okay to use.
<sarg>Guest74 you have recursive #f for cm-c4core and the build fails because it looks for `./cmake/c4Project.cmake`
<sarg>also, fix the duplicate `(name "c4-ryml")`
<Guest74>Awesome it works now.  Thanks for helping me out
<lechner>sneek / later tell sarg / Thanks for that research! Unfortunately, that site setup results in a guix lint warning atftp@0.8.0: URI https://git.code.sf.net/p/atftp/code not reachable: 404 ("Not Found")
<sneek>Okay.