IRC channel logs
2025-02-27.log
back to list of logs
<ngz>Packaging question: I’m finalizing "stdman" package, which it a tool at version X that generates man pages from HTML documentation at version Y. The output consists of the man pages only. What should be the version of the package: X, Y. X+Y, Y+X…? <vagrantc>meh. first commit in git bisect failed to build some of the dependencies <vagrantc>does not bode well for satisfying my curiosity <vagrantc>the git logs do not make it obvious where the python branch was merged <vagrantc>maybe we should tag merges to make it easier to find a reference point? <vagrantc>this is probably because it was rebased into a fast-forward... <ieure>ngz, Looking at the repo, looks like there are a bunch of generated man pages in the repo. Are you packaging those, or are you running the tool to do the HTML->nroff conversion, then packaging the output? <ngz>The latter. But the HTML is coming from another repo with its own version. <ieure>ngz, I think you should use the version from whatever repo has the HTML input. If you want to get fancy about it, you could package just the stdman tool, using the version of that repo, and then have a separate package which has the HTML repo as its origin, the stdman package as a native-input, and outputs the converted man pages. <ieure>But I think if the only thing you're shipping is derived from some HTML input, that's the most important version for you to care about. I think it'd be weird to put the GCC version in package that has a compiled C program in it, and I see stdman as a similar kind of build tool. Make sense? <ngz>It makes sense. I need to provide both versions in the package anyway, but the one that will appear is Y (in my initial example). <meaty>It seems like cargo tries to retrieve the repository a second time for some reason <divya>meaty: It's trying to fetch from git while being built, and guix builds are sandboxed and offline. <meaty>as I suspected, but how do I remedy it? <divya>meaty: Patch the config.toml to not use git fetching <vhns>Is there no way for wireguard-service-type to use a random port? This is useful for whenever you're just a wireguard client and not a service <vhns>(and you have multiple wireguard connections) <vhns>s/wireguard-service-type/wireguard-configuration <mange>It looks like the config unconditionally sets "ListenPort = $port", which is the port value you provide to the configuration. <vhns>Yeah, if you just don't provide ListenPort, wireguard picks a port at random <vhns>I guess writing a patch to make (port) optional wouldn't hurt? Me submitting one, that is <mange>I can't think of any downside. While you're at it, you could make it possible to define a wireguard network that doesn't auto-start. :P (I'm procrastinating on doing that.) <vhns>That is also on my wishlist <mange>That's a joke, for the record. I'm not actually expecting you to do my work. <ieure>I'm expecting vhns to do mange's work. Don't let me down. <wakyct>is android-tools on Guix? Not sure what the pkg name might be -- that's what it is on Arch <wakyct>android-udev is in its manifest which I also don't see on Guix <wakyct>so I'm guessing no but maybe this is my lucky day? <mange>I can see "android-udev-rules", and a bunch of other android-related packages, but nothing called android-tools. <drewverlee>Can someone point me to a good tutorial on integrating Guile Scheme into emacs? I'm asking here because it's my understanding that Guix is built using Guile Scheme, that Guix extends Guile, and that all valide Guile should work in a .scm file that holds guix logic. Let me know if that sounds off. So, naturally, i want to be able to work with Guile Scheme in Emacs, and right now i can HALF do that. Half because, i can run M-X Geiser and <drewverlee>get a working scheme repl e.g scheme@(guile-user)> (+ 1 2) ... $6 = 3. But if i try to geiser-eval-last expression in a scm file, it just stalls (i get a spinning wheel). So i figure i have something up wrong, Which is why i'm asking about an intro tutorial on setting up guile scheme with emacs (or spacemacs which i'm using). <drewverlee>If it's relevent my Gieser Guile repl, showing in my emacs buffer says this "warning failed to install locale", "warning failed to install locale: invalid argument" <mange>Have you read "(guix) The Perfect Setup" in the manual? I used a setup like that in the past. I used to find that if I didn't pre-compile things (with make) then Guile would take *forever* to load files in Geiser because it would have to compile a lot of things. <drewverlee>should i be able to eval an expression like `(use-modules <drewverlee> ((gnu packages admin) #:select (htop nmap)))` and not have it through an error like "no code for module". Or do i need to call guix from the command line? <PotentialUser-17>Hi, I was wondering about the direction the project was going in regarding supporting aarch64. I've started to migrate to guix due to my love of lisp but it is a tad behind nixos in regards to the aarch64 support for the iso image. This is an important part for users wanting to use the system in vms specifically on macOS as the current systems <PotentialUser-17>don't really support emulation of x86 architecture all that well due to a lack of gpu. <PotentialUser-17>This was fantastic when I was starting to learn nix and nixos in depth building out my config to deploy all of my infra. <meaty>is there a scheme function like 'if' except if the test succeeds, it sends the test, else it sends null or the second argument? <meaty>Essentiall the same as (let ((exp (...)) (if exp exp '()) but more compact <jakef>wonder when we'll see emacs-next -> emacs <Kabouik>Can I change my MAC address permanently in config.scm? I couldn't find anything for that in the manual. Currently I use macchanger manually, but it requires root permissions and has to be run again after waking from hibernation. <jakef>does anyone have more examples? or perhaps keeping a great long list? <jakef>maybe this is one for the mailing list :) <civodul>jakef: yes you should ask on the mailing list, probably on guix-science <jakef>can't see a python-build package <jakef>sorry, just found it under python-pypa-build <efraim>sneek: later tell vagrant it looks like the only dependency for guix on powerpc which fails in debian is guile-git <efraim>sneek: later tell vagrantc it looks like the only dependency for guix on powerpc which fails in debian is guile-git <efraim>is alpha big endian or little endian? <efraim>oriansj: thanks. and wikipedia seems to say it's 64-bit anyway, so it wasn't what I was looking for <oriansj>yeah, basically the only architectures these days that are Big Endian are 68x00, PowerPC (but that also supports little endian), Cray super computers and network processors <oriansj>sadly little endian won for entirely non-technical reasons <efraim>debian's hppa is also big endian IIRC <oriansj>but you can't really buy hppa systems these days <efraim>Time again to try to fix the test failure on guile-git <oriansj>I stand corrected, there is an ebay listing for a working hppa system for only $18K <efraim>sounds like when I tried to but a sparc station <oriansj>well with luck you can find a SPARC system (like a T4 with 128GB of RAM) for under $1K <oriansj>it'll have an Oracle logo but Oracle is still making and selling SPARC servers <oriansj>No HPPA systems have been made since HP went full on crazy to Itanium (dumbest move ever) <oriansj>and thus the supply is slowly shrinking for HPPA but is slowly growing for SPARC <ngz>issues.guix.gnu.org seems down <divya>Anyone knows where to get makeinfo for building emacs from source inside guix shell? I'm forgetting how I did it originally and lost my manifest. <divya>lilyp: Do you have a manifest handy? <cbaines>I've restarted mumi on berlin, I'm not sure why it stopped working <csantosb>Any tip to understand this permission denied thing ? <civodul>csantosb: hi! it’s trying to install its Python file under /gnu/store/…-python, which is read-only <civodul>you need to somehow tell it that Python files need to go under $prefix <civodul>comrades, i’m seeing kernel backtraces with 6.3.13 that start with: “prepare_slab_obj_exts_hook, bio-200: Failed to create slab extension vector!” <acrow>So, how to install a package from an inferior? guix package -f my-inferior-package.scm fails. This seems like it ought not be so. <cbaines>if you're wanting to interact with guix package, I wonder if guix time-machine ... -- package -i would work? <acrow>Yes, that's basically what I did with only the slight improve of ending with (car (lookup-inferior-packages inferior "syncthing")) but guix didn't like that. It will prefer a manifest of one package? I'll give it a try. <acrow>cbaines: That worked perfectly but I will need to manifest up all the other players in my usual profile to join it. I can make that happen. Thanks. <pastor>Hello, could someone tell me whats going on with the `tests/derivations.scm' module? I don't understand why when you load it in the REPL there does not seem to be any basic Guile procedures <pastor>I need to implement a new unit test but I don't know how to develop on that module. This one: <pastor>Additionally, does anyone know where I can find some documentation about `test-equal'? <ieure>Invalid branch: fix-map-derivation-memoization <ieure>pastor, How are you loading it in the REPL? <pastor>I use `./pre-inst-env guix repl --listen=tcp:37146` and connect to it with `connect-to-guile' in Emacs <pastor>then I load the module with `,m test-derivations' <ieure>I'm not sure how Guix gets built, but I doubt the test modules are included in the binary, since that's a very uncommon thing in every language I've ever used. <ieure>What happens if you open the file and hit C-u C-c C-k? <ieure>That should load the contents of the file into the REPL and switch to its module. I think ,m might be creating a new module, since the test stuff doesn't get included in the binary that's built. <pastor>ieure: it opens a REPL that does not seem to be functional, it just hangs when trying to use it <ieure>pastor, Huh. If you start the REPL fresh and run: ,u (test-derivations) <ieure>Does that switch to the module? Or do you get a "no code for module" error? <ieure>The same REPL you're doing, the guix pre-inst-env one. <pastor>but then the repl doesn't even understand basic things such as `define-module' <ieure>I can't check right now, I'm at work and forced to use a crude & inferior OS. <pastor>If you do, for example, `M-x geiser-mode-switch-to-repl-and-enter' in the module? <ieure>I'm not sure about the right workflow here, but if I were doing this, I wouldn't bother with the pre-inst-env stuff, I'd load a normal REPL, hack the code up however I wanted, C-c C-k to get it into the REPL, do the same with tests. <pastor>ieure: I feel your pain. I use Guix on top as a package manager though :) <ieure>pastor, Guix doesn't run on macOS, which is the only thing anyone's allowed to use here. <ieure>I appreciate my well-behaved Linux systems a lot more, at least. Stuff is dire in proprietary software land. <pastor>Doing `C-c C-k' leads to a borked REPL <ieure>I got Guix running in a VM, but the VM doesn't let me remap the mouse/KB pointer capture and the only two options it offers conflict with Emacs keybindings I need. <ieure>And any other VM option needs proprietary guest drivers to work, which, yeah. <amadaluzia>hey! is there any free drivers for amd gpus i could use? <pastor>ieure: I now see that the reason the REPL was broken is because it was executing the tests on the background. So you need to wait for the to finish to start using the REPL when you load the module as you sugested. <amadaluzia>i tried installing guix on my amd rx 580 and it failed to find free drivers? <ieure>amadaluzia, Pretty sure those still need firmware blobs. <podiki>it is not the "driver" that is the issue (those come from mesa) but the binary firmware blobs to do anything beyond basic "nomodeset" <df>is there an option for top (or a different version of top) that works better with guix executable paths? <df>right aligned text would probably be good enough <df>although a guix-aware version that just gave you <package name>/<executable> would be awesome <ieure>df, htop can do this, F2 (Setup) -> Display options -> Show program path <ieure>Not sure if/how it persists that. <ieure>df, Ah, it saves those settings in .config/htop/htoprc. So only have to do it the one. <df>of course, now I'll have to repeat all the effort I spent configuring procps top to look like I wanted... but hopefully it'll be pretty similar (or easier) <ieure>It also looks like it's reasonably possible to make proced do this, if you're an emacs fiend like me. <ieure>At least with proced, you can C-s to find the process you want. <df>hmm, may look into that <df>I use emacs for quite a lot of stuff but I'm quite used to top so it might be a bit of an adjustment <df>(although admittedly, nowhere near as much an adjustment as moving from debian to guix :D) <df>guess I could implement that, though it's written in C :( <ieure>I hacked up a C program recently and it worked the first time! <df>there's also an option called 'shadow distribution path prefixes', I think currently it just removes standard PATH values but it could perhaps be extended <podiki>futurile: ah would have loved to talk tips, tricks, etc. for guix system but cannot make it <x8dcc>Hello, I recently started using 'startx-command-service-type', but now I get an error in some apps: "Authorization required, but no authorization protocol specified" followed by "can't open display" <x8dcc>I assume it's related to $XAUTHORITY, but I have never used that manually so I have no idea <PotentialUser47>Can someone tell me why the --max-layers option doesn't work in this command "guix time-machine -C channels.scm -- pack -f docker --max-layers=100 -S /bin=bin -m manifest.scm"? When I run that I get "guix pack: error: max-layers=100: unrecognized option" <rekado>PotentialUser47: maybe the channels describe a version of Guix that predates the introduction of the "--max-layers" option? <luca>Does anyone know what package provides SDL.h? sdl2 doesn't seem to do the trick at least <PotentialUser47>One other question I had, is there a straightforward way, perhaps with package transformations, to not install man pages when installing a package? I am interested in reducing the size of docker images built with guix pack and notice that documentation can potentially substantially inflate the size of an image <Rutherther>luca: sdl2 contains SDL.h, see output of "cat $(guix build sdl2)/include/SDL2/SDL.h" <meaty>PotentialUser47: write a function that adds a 'remove-man-pages' phase to the end of each package? then put that in your manifest <meaty>otherwise it might be unique to how each package builds <PotentialUser47>That's the issue, I'm not sure if how manpages are installed is consistent across packges <luca>>/gnu/store/7zmkicgnwpb47vyw8q9kbs6p1ampzdb4-sdl2-ttf-2.20.2/include/SDL2/SDL_ttf.h:39:10: fatal error: SDL.h: No such file or directory <luca>kinda looks like sdl2-ttf is borked, but I don't know enough to say for sure <Rutherther>luca: then you don't have the include path correctly, include/SDL2 of SDL2 package has to be in include path <Rutherther>luca: that is for l flag for the linker, you need I flag for include <luca>So what should I use? `pkg-config --cflags` as well? <Rutherther>luca: as you can see, not even -lstdc++ -pthread hardcoded in the ld libs is appended, so you have some kind of an issue with the variable usage <luca>Do you (or anyone else) know by any chance why? It works running plainly (just make) or with void's xbps-src system. <Rutherther>you seem to be running wrong version of makefile. It works for me with the commit you sent, it gets past build phase <luca>oh. Is there a way for me to force it to try again? I tried guix gc but I guess it wasn't enough <Rutherther>probably by not using current dirname in git checkout <Rutherther>getcwd is dangerous, it will take where you are located in the shell. Better to just use what you had before <luca>wow that even fixed a build error somehow <luca>Lastly, can I open a temporary shell with this package from this guix.scm file? <luca>guix shell -f guix.scm it is! <ireallyhateirc>Hello, I'm working on updating Blender to 4.3.2 but I encounter an issue where Blender prints this "Unable to find the Python binary, the multiprocessing module may not be functional!". The problem disappears after I pass "-DWITH_PYTHON_INSTALL=ON" to the build system. The package has a wrapper for python in place that works with blender on the master branch so I guess this should work? <ireallyhateirc>I used python-next in the package as Blender 4.3 needs python 3.12 to work. Could this be the cause? <x8dcc>Now the 'startx' script doesn't even work because it's trying to run some "MK_COOKIE" command that isn't even mentioned on any guix file... <x8dcc>It makes no sense, the 'startx' script in the gnu store has a 'mk_cookie=MK_COOKIE' line, but that doesn't appear in the scheme code for the startx service <x8dcc>(Line 466 of gnu/services/xorg.scm in commit f1810c84f7) <jmes>Hello, is there a way to make a Shepherd service wait until a Wayland display is available to start? I'm wishing for some way to fit it into the requirement system, e.g. (requirement 'wayland) <jmes>(requirement '(wayland)) typo <jmes>I wrote it as a home service of course, otherwise it wouldn't make much sense.