IRC channel logs

2023-11-01.log

back to list of logs

<rekado>done
<futurile>Morning Guixers!
<Lumine>Good morning
<apteryx>if you open etc/teams.scm in emacs, is the scheme-mode loaded or not?
<apteryx>for me it seems to use sh-mode; I'll add a file-local variable prop line
<gabber>same here
<apteryx>thanks. I'll push a fix shortly
<gabber>thank YOU (:
<apteryx>:-)
<gabber>i'm trying to package some local python module (it shan't be published to a public repo) and i'm running into this error message: https://termbin.com/lx41
<gabber>so now i have questions: 1) isn't PYTHONPATH set directly (via/through GUIX_PYTHONPATH)? and 2) why doesn't this FAILED actually stop the build?
<apteryx>jpoiret: which public inbox service do you use to work with b4?
<apteryx>i.e., what's your midmask config option?
<apteryx>I guess https://yhetil.org/guix/%s
<jackhill>sneek later tell cbaines: congrats on the blog post (and the grant)!! A typo: "switching between the C++ implementation and Guile implementation which any issues" → "without any issues"
<sneek>Got it.
<drakonis>oh shit fucking what
<drakonis>its happening?
<drakonis>oh shit it is
<drakonis>i need an adequate gif for this
<drakonis> https://guix.gnu.org/en/blog/2023/a-build-daemon-in-guile/
<drakonis>lovely
<theruran>drakonis: :)
<Guest41>man, I love guix so much, thank you so much to all the maintainers
<nckhexen>gabber: Are you overriding python-build-system's 'install phase, or does the package try to do a lot itself? If you could share your package anyway, that really could help.
<jpoiret>sneek, later tell apteryx: Yes I use yhetil, but I clone it locally. Also you can use b4 directly with mbox, so I often use it from notmuch as well
<sneek>Will do.
<parnikkapore>Hi Guix! I'm thinking about using Cuirass to do devops for my channel. Can I make a specification that uses a remote branch that will be rebased and force-pushed (i.e. the branch's tip won't be a descendant of the last evaluation)
<parnikkapore>?
<parnikkapore>Or would that break things?
<apteryx>jpoiret: any idea what the b4.searchmask option is useful for?
<sneek>apteryx, you have 1 message!
<sneek>apteryx, jpoiret says: Yes I use yhetil, but I clone it locally. Also you can use b4 directly with mbox, so I often use it from notmuch as well
<apteryx>documented at https://b4.docs.kernel.org/en/latest/config.html
<peanuts>"Configuration options B4 end-user docs documentation" https://b4.docs.kernel.org/en/latest/config.html
<nckhexen>gabber: Or the full build log, since it's not said in which phase/context this error occurs, and why the build continues.
<jpoiret>apteryx: no idea really
<jpoiret>i could look into the source
<singpolyma>Daemon in guile mostly sounds great.  One thing I don't see any mention of in the post is performance, which would be a big concern no?
<jpoiret>apteryx: seems like it's for the `b4 trailers` command to auto-update trailers
<jpoiret>it needs to know where to fetch the new trailers
<jpoiret>i don't like the overlap between lei and b4
<jpoiret>some of it is also too hardwired for lore.kernel.org
<nckhexen>singpolyma: Why's that? Is hashing in Guile a bottleneck? (Or am I missing an area in which the daemon's performance matters?)
<nckhexen>(Fibers make me a bit nervous, but not for performance reasons...)
<jpoiret>nckhexen: hashing could be a problem yeah now that you're talking about
<jpoiret>it *
<nckhexen>Yeah. It's the only thing that comes to my mind where humans would notice the daemon working.
<drakonis>singpolyma: its fibers and what exactly do you need performance in a build daemon for?
<apteryx>jpoiret: any idea about this BADSIG when using 'b4 am': BADSIG: DKIM/disroot.org
<jpoiret>b4 can verify patch signatures if you have lists of keys for each mail domain
<jpoiret>you can just ignore those
<apteryx>ah, this disroot.org was the email domain of the commit author
<jpoiret>we'd need some extra stuff to be able to do that
<singpolyma>drakonis: it's a pretty core component of an already slow system? Maybe it's not actually worrying, maybe this part doesn't do much work despite being important
<apteryx>I'd expect to see bad signatures on commits, but not bad signature from the email provider?
<apteryx>since for signatures on commits b4 relies on 'patatt'
<jpoiret>i don't remember how b4 checks signatures
<apteryx>that's b4.attestation-check-dkim
<drakonis>it doesnt do as much work as you think it does
<apteryx>perhaps during 'gc', but that's IO-bound, so probably wouldn't affect much
<gabber> https://termbin.com/ow3rm this is the whole build log. i did not fiddle around with the phases except for the check which i altered to invoke python's unittest facility in a specific way
<gabber>i guess my problem lies in the python side of packaging the code tho
<apteryx>jpoiret: the b4 code hints at Lore-specific checks; given Lore is a public mailbox instance, perhaps it's config-specific.
<apteryx>will disable it for now (I'm adding a b4 section)
<nckhexen>'Core' doesn't mean speed matters much.
<nckhexen>gabber: Try something like (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")), or something like (getcwd) if that doesn't work.
<nckhexen>Why the earlier PYTHONPATH warning isn't fatal, no idea, but that's surely a good thing.
<gabber>how surely are you?
<gabber>and add it where? before the build phase (where the "TEST FAILED:" message emerged)?
<nckhexen>27% of packaging is having to disable upstream 'tests' that make asses out of both themselves and you, and it's 27% too much.
<nckhexen>gabber: No, the phase that fails.
<nckhexen>ACTION looks.
<nckhexen>'check.
<gabber>that is quite a lot
<gabber>can i - instead of replacing a phase - just prepend a stement of two?
<nckhexen>I can make up even higher numbers if needed.
<gabber>you almost had me there! would be interesting to know how high they really are
<nckhexen>Do you mean (add-before 'check 'do-stuff (lambda _ ...)) or do you mean something else?
<gabber>i interpreted your previous answer (No, the phase that fails) as an instruction to me to add the lines (setenv "PYTHONPATH" (getenv ..)) into the *same phase* as where the failure happens.
<nckhexen>Ah, it was in reply to ßbefore the build phase.
<nckhexen>* '
<nckhexen>(Is ß an eszett or did I draw another mistake in my font?)
<lilyp>ß is an eszett, but Germans typo it for ?
<nckhexen>I coincidentally have a Germain keyboard (but not layout). Here it's a typo for, well, something I can't type, because I'm in an initrd and for some reason alt doesn't work the way it should here.
<nckhexen>Honestly. Computers.
<gabber>not even once
<batalie>hi, guix. i'm trying to write a manifest that will work on all of my machines. the problem is that i need to pull in a patch, but my username is slightly different on my different machines, which messes up giving with-patch a filename. could someone take a look at this? note i'm pretty bad at scheme :) https://paste.debian.net/hidden/ab943af9/
<peanuts>"Debian Pastezone" https://paste.debian.net/hidden/ab943af9
<batalie>currently it fails with "invalid package path specification", but the path it gives is correct
<nckhexen>I think with-patch is like the other transformation options and expects a "PACKAGE-NAME=FILE-NAME" format.
<nckhexen>In this case (string-append "emacs-next=" ...).
<batalie>nckhexen: yep, that was it. adding emacs-next= did the trick
<batalie>what a silly mistake. d'oh
<batalie>thanks!
<pastor>Good evening. Is there any way to get the transitive dependencies of a package which uses `#:cargo-inputs`?
<sneek>Welcome back pastor, you have 1 message!
<sneek>pastor, nckhexen says: Sometimes. Depends on the exact requirements & how hacky a result you can get away with.
<pastor>`#:cargo-inputs` dependencies are not listed with `guix refresh -T ...`
<nckhexen>I have accidentally written the most generic fortune-cookie answer ever, and don't even remember the question.
<nckhexen>pastor: You'd have to 'manually' traverse the graph by writing your own code snippet.
<nckhexen>I assume they'd also show up in the 'bag', which is something that guix graph knows.
<pastor>nckhexen: I would use guix graph but xdot and company are supper slow with my package...
<pastor>Does anyone know of a faster tool?
<pastor>nckhexen: anyways for what I see in the output on `rust-anyhow` guix graph does not provide `#:cargo-inputs`
<pastor>nckhexen: This does not have `rust-backtrace': ./pre-inst-env guix graph --type=bag-emerged rust-anyhow
<nckhexen>bag-with-origins has it.
<pastor>nckhexen: True. My bad. Thanks!
<alxsim>How are rust apps containing several rust crates in a crates/ folder usually packaged? Does each one need to be packaged independently or do you let cargo deal with everything?
<pastor>alxsim: I have the same question. What should we do with something like https://github.com/servo/pathfinder.git?
<alxsim>yeah I'm thinking of things like https://github.com/typst/typst and https://github.com/helix-editor/helix
<peanuts>"GitHub - typst/typst: A new markup-based typesetting system that is powerful and easy to learn." https://github.com/typst/typst
<peanuts>"GitHub - helix-editor/helix: A post-modern modal text editor." https://github.com/helix-editor/helix
<gabber>is peanuts picky about URLs ending in ? like https://gnu.org?
<gabber>smells like a bug considering ? being the correct delimiter between a URL and GET args
<gabber> https://gnu.org
<nckhexen> https://github.com/helix-editor/helix?
<peanuts>"GitHub - helix-editor/helix: A post-modern modal text editor." https://github.com/helix-editor/helix
<gabber>peanuts don't like me
<nckhexen>Would have been a very odd bug,
<gabber>probably because i usually feed them to muh crows
<nckhexen>gabber: Do you like peanuts?
<gabber>i do!
<gabber>and my crows go nuts for them!
<zamfofex>Does it support URLs without a path part?
<zamfofex> https://gnu.org/
<nckhexen>Well how would you feel if I ate all your friends >:(
<nckhexen> https://tobias.gr
<gabber>getting prepared for the meaning of life?
<nckhexen> https://tobias.gr/
<nckhexen>Hm.
<acrow>I've been told that you shouldn't give crows any salted nuts (plain is ok).
<gabber>like seconds before ascension to the heavens? idk
<gabber>acrow: i know (and i would never!)
<acrow>:)
<nckhexen>Crows and peanuts chatting about feeding peanuts to crows, this is getting too meta.
<gabber> https://guix.gnu.org/blog
<gabber>i think i am ok with peanuts not liking me - i get the hint
<zamfofex> https://guix.gnu.org/blog/
<zamfofex>Hm. 🤔
<zamfofex>The bot is janky, I shall assess. 😅
<nckhexen>pastor: I the pathfinder case, we fetch the individual crates: (crate-uri "pathfinder_geometry" version)
<pastor>nckhexen: This is not possible anymore since those crates date from version 0.5.0 and has not been updated in 3 years
<pastor>Some packages rely on newer versions of pathfinder modules
<nckhexen>And you can't just chdir?
<nckhexen>No, that wouldn't work with the current system.
<pastor>nckhexen: I don't see how to make it work if you chdir. The build system picks the toplevel `Cargo.toml`
<pastor>nckhexen: I was traying to figure out how to circumvent the issue but I did not find a way
<pastor>I also thought of stripping all the folders but the submodule crate I need. This cannot work since the submodule crates depend on eachother
<nckhexen>I don't think you can.
<pastor>Another idea I has it to just build the toplevel crate but then I don't know how the output should look like. And I don't really know how to define the diferent outputs of the package like that
<nckhexen>Where does the build system 'pick the top-level Cargo.toml'? Or do you mean cargo proper?
<nckhexen>I didn't find that.
<pastor>I don't remember now. It may have been cargo proper
<pastor>yeah. I think guix was simply invoking cargo which went up looking for the parent toml when it knows is a module. But don't take my word for it
<zamfofex>You should be able to ‘chdir’ after the ‘unpack’ phase, and it should work, I think.
<pastor>zamfofex: It did not work on my testings
<pastor>I can try to replicate
<nckhexen>zamfofex: How does your custom phase get run in the dependent packages though.
<old>I have a package written in C that has Python bindings. However, during the installation, setup.py install a .egg file instead of the python files
<old>I suspect that this is handle by python-build-system, however I need to use gnu-build-system for the project since it is a C project that generate shared libraries and binaries?
<pastor>old: you can add an extra phase that installs the files that `make install` is not deploying
<nckhexen>This is not a serious suggestion, but you could rewrite the top-level Cargo.toml in a snippet and something something profit but probably not.
<nckhexen>That would stand a chance of making it into dependents, at least.
<zamfofex>nckhexen: Ah, good point. Rust builds all dependencies from source, right? Kinda like Haskell, I think. Perhaps a simple solution would be to have a custom source for the packages. I.e. clone the Git repo, and then create a tarball with only one of the directories from it, and use that as the source for the package.
<nckhexen>Isn't reinventing static linking but even worse GRAND?
<old>pastor: right. That would be a painful thing to do but if no other choice ..
<pastor>zamfofex: This is not possible. They depend on eachother
<pastor>old: You can reuse the python install phase
<zamfofex>pastor: Like, mutually depend on each other?
<nckhexen>If so, there's no point in 'packaging' them separately, they are not separate packages.
<pastor>zamfofex: like this
<pastor>[dependencies.pathfinder_color]
<pastor>path = "../color"
<pastor>version = "0.5"
<zamfofex>Ah.
<Kolev>Can someone package `micro`?
<pastor>zamfofex: this would be the dependency for the module `canvas`
<zamfofex>Kolev: I use micro often, note that it’s official build is a static binary which works transparently on Guix.
<Kolev>zamfofex, I had difficulties adding ~/.local/bin/ to my $PATH.
<zamfofex>nckhexen: As much as I kinda hate it, I can understand the reasoning behind source‐only builds. I feel like programming languages don’t want to have to implement headers like in C nor a custom binary format like Java.
<zamfofex>Kolev: A simple solution (one that I use) is setting a Bash alias to it. It has been working well for me for a while now!
<zamfofex>Though I have taken the alias away somewhat recently in order to encourage myself to use Lite XL more often, so now I just start micro with ‘~/bin/micro’.
<Kolev>Lite XL?
<zamfofex>Yes! https://lite-xl.com
<peanuts>"Lite XL" https://lite-xl.com
<Kolev>zamfofex, hey, there's a lite-xl package! 😀
<zamfofex>Kolev: Yeah, I heard whoever packaged it is an idiot, though.
<zamfofex> https://issues.guix.gnu.org/58018
<peanuts>"[PATCH] gnu: Add lite-xl." https://issues.guix.gnu.org/58018
<Kolev>zamfofex, is the package bad?
<zamfofex>If you ever hear me call someone an idiot, that someone is probably me. 😄
<Guest41>how do i add a channel to guix. Should I just create a channels.scm in /home/me/.config/channels.scm and then reconfigure:
<Guest41>?
<Guest41>sorry , I meant guix pull
<zamfofex>I think ‘.config/guix/channels.scm’
<zamfofex>See: https://guix.gnu.org/manual/devel/en/html_node/Specifying-Additional-Channels.html
<peanuts>"Specifying Additional Channels (GNU Guix Reference Manual)" https://guix.gnu.org/manual/devel/en/html_node/Specifying-Additional-Channels.html
<Guest41>zamfofex ah, thanks I accidently called it contfig.scm
<jackhill>lilyp: remember I complained about the new epiphany and file upload not working? I can't reproduce that today, it works! Yay. Don't know if I was hallucinating or if things were just in a wierd state and restarted helpd.
<lilyp>jackhill good to hear, I guess?
<lilyp>If you do manage to reproduce it, don't forget to report it properly with all relevant info :)
<jackhill>lilyp: yep :) I was trying to collect just that sort of information as it turns out
<futurile>hmm if I do `guix shell --container --nesting` and then in the shell do `guix describe` I only get the guix channel - not my other channels. Is that a change of behaviour or am I now hallucinating
<futurile>ack nope - I got it - I must have run my original tests in my home directory so ~/.config/guix/channels.scm was available - and blew up `guix time-machine`.
<apteryx>lilyp: I'll delete the wip-gnome* branches, unless you see a point
<lilyp>apteryx: IIUC they're ancient gnome anyway, so go ahead; current dev work is on gnome-team
<PotentialUser-93>I messed up. I put something in .xsession, now I cannot start into i3. How can just boot into the shell in Guix ? Gel please
<liberdade>hello humans out there in the universe \o/
<futurile>o/ hello liberdade
<liberdade>:)
<liberdade>I want to give uix system a try
<liberdade>I like the concepts
<liberdade>I would love to have a lua interface.
<liberdade>Does Guix come with a firewall?
<liberdade>I was looking at connman, but I saw that it creates tcp sockets to a internet address...maybe it was my version..I am in a diferent os now
<liberdade>I saw the website about parameterized packages, to build them...I like that Idea too, as a option
<liberdade>I came also because I like Enlightnment DE, and for what I see you pack the last version :)
<liberdade>Have you tought about the Idea of adding GrSecurity patchs to the kernel, and above that AppArmor?
<liberdade>I want to develop for Enlightment DE
<liberdade>I think is the best option right now on par with Mate Desktop
<liberdade>but it lackas a lot of things..
<liberdade>network applet is one of them
<liberdade>so maybe I will start from there
<rekado>liberdade: you can customize your kernel. In Guix it’s just another package, so you can apply patches as you see fit.
<liberdade>rekado, tanks
<liberdade>how do you manage permissions for /gnu{,/store} ?
<liberdade>I read that its read only, and turns writable only on managment, that is a very good thing, if you can control, who can run the packet manager, that is very good
<Altadil>liberdade: for the firewall, Guix provides several services, at least for iptables and netfilter
<rekado>liberdade: only the guix-daemon process can write to /gnu/store
<liberdade>does it provides firewalld or ufw?
<futurile>liberdade: a possible way to start experimenting is you can run Guix in VM. That way you can experiment but stay on your current familiar Linux distribution
<liberdade>something like that
<rekado>no user will ever write directly to /gnu/store, only by talking to guix-daemon
<liberdade>nice!!
<liberdade>guix incorporate very good ideas.
<apteryx>lilyp: done, thank you
<apteryx>now we "only" have 79 branches
<futurile>Q: if I do `guix shell --container --nesting git`, and then in the shell I do `guix package --list-installed` it doesn't show that git is installed. It is there - it's in $PATH. Why doesn't it show up as being installed?
<Guest41>I had I3 not starting. After installing alacritty again i3 started properly again . very strange
<Guest41>Does anybody have any idea, why this is
<jackhill>hmmm, python-tox seems to be captured in the wraper of chirp even though it's a native-input
<snape>futurile, maybe add -p $GUIX_ENVIRONMENT?
<liberdade>there are 2 download options... standard and latest..
<liberdade>what standard means?
<futurile>snape: ah that works - hmm sort of knew about that but slightly not expecting that
<snape>well it's just that the default profile is the one used by 'guix package' commands
<snape>you can also specify the guix home profile (~/.guix-home/profile) or the container profile
<snape>or whichever I guess
<futurile>snape: yeah I think it's one of those things you know, but you still expect `guix package <blah>` to show you whats happening in the current env. I find profiles simultaneously useful and complicated :-)
<snape>yeah
<liberdade>what is a moned?
<liberdade>monad
<rekado>liberdade: it’s an abstraction that turns out to be useful for sequencing code within a context
<liberdade>sequencing code?what is that.. :)
<zamfofex>Sometimes people ask “what’s an example of useful usage of monads” (in the context of stateful programming languages unlike Haskell). I think a simple example is promises/futures/tasks in programming languages like JavaScript/Scala/C#.
<rekado>I liked http://www.learnyouahaskell.com/a-fistful-of-monads, but that chapter is not a good starting point as it refers to previous definitions of other abstractions with longer names
<peanuts>"A Fistful of Monads - Learn You a Haskell for Great Good!" http://www.learnyouahaskell.com/a-fistful-of-monads
<rekado>“we'll learn about monads, which are just beefed up applicative functors, much like applicative functors are only beefed up functors.”
<futurile>turtles all the way down
<vagrantc>my favorite kind of turtle