IRC channel logs

2025-01-04.log

back to list of logs

<yarl>hi
<yarl>Someone with closing power? https://issues.guix.gnu.org/70865
<ieure>yarl, Anyone can close issues, mail control@debbugs.gnu.org with "close 70865" in the message body.
<Kolev>Do you use env for Bash shebangs? Or do you make your system have /bin/bash symlink?
<meatus>What do we actually save by replacing source-bundled libraries with native inputs?
<meatus>Does it only help if they are changed to be dynamically loaded?
<meatus>s/loaded/linked/
<meatus>s/native inputs/inputs/
<yarl>ieure: Oh, thank you. Do you think I should?
<yarl>ieure: I am not sure.
<ieure>meatus, The same libraries can be used by multiple packages, instead of only one; and if one of those gets grafted for a security issue, bundled libraries won't get the fix.
<ieure>Same reasons on any other Linux distro.
<meatus>ieure: so switching bundled libs for native inputs would allow for them to get updates; but making them dynamically linked is even better cos that reduces disk usage and compilation time?
<meatus>sorry, am packaging noob
<meatus>is it as simple as removing the deps/include/3rdparty/etc. repo from the source and putting them in "native-inputs"?
<ieure>meatus, native inputs are things needed a build time, and not relevant here.
<ieure>meatus, Dynamic or static linking is a different issue.
<ieure>Related, though.
<meatus>ieure: but statically linked libs are needed at build time and not after, no?
<meatus>and source-bundled libs would be statically linked, esp if their .so files are not in the resulgint store dir
<ieure>meatus, My point is that static/dynamic and input/vendored are orthogonal concerns; you can statically link something from a package input, or dynamically link against a vendored lib.
<meatus>ohh
<meatus>so I'm guessing changing dynamic/static linking is outside of the "writing packages" space and into the "writing patches" space, then
<ieure>Yes, you'd need to change the upstream source if you want to change that.
<meatus>ah, ok. So for package defs it is enough to delete the vendored sources from the incoming tarball/git repo and place them in the "input" entry? or "native-inputs"?
<ieure>meatus, It depends on the project, and how it finds the libs it needs. If it only looks in its vendored libraries, and you delete that, it won't build.
<ieure>meatus, inputs. native-inputs are things needed to build the project, like the compiler.
<meatus>ieure: and static-linked libs no?
<ieure>meatus, No, those should go in inputs.
<meatus>word
<meatus>ok, so I have a package that looks in its 'deps' dir for the compiled libraries' .o files. How can I, in effect, symlink, say /gnu/store/...zlib/ to deps/zlib?
<meatus>ah, nevermind. there are no .o files in that pacage's store dir.
<ieure>meatus, Sorry to keep saying "it depends on the project," but... it does. You generally want to point it to the stuff in the inputs, rather than donk around with symlinks. If it uses pkg-config, putting the dep in the inputs should Just Work. If it uses autoconf, you might need to provide a --with-zlib argument pointing at the input.
<weary-traveler>ieure: #75332 for your reviewing pleasure
<ieure>weary-traveler, Will take a look.
<ieure>weary-traveler, Pushed, thanks. :)
<weary-traveler>ieure: thanks :)
<redacted>I'm getting a "wrong type to apply" error from guix deploy. Looks like it's during the run-guix-command function
<redacted>Is there any way to get more debuggin info? The stack trace doesn't show the function args
<redacted>nevermind, I just realized what the problem is
<redacted>thank you, rubber ducks
<Hamled>on guix system is it possible to get the kconfig that was used when building the currently running linux kernel
<Hamled>nm found it
<weary-traveler>ieure: in my local channel, as a work around for the lack of --without-input i use --with-input "foo=guix-void" where guix-void is a degenerate package that simply creates its store directory. should something like guix-void reside in upstream?
<meatus>How do I reply to a specific email on the mailing list?
<meatus>the "reply to..." button on the message webpage doesn't work
<meatus>and I don't want to reply specifically to that person anyways, I want to reply to the message so that it shows up on the list
<weary-traveler>meatus: if you're subscribed to the mailing list, reply via your mail client. if not, use something like gnus to view the mailing list archives and reply from there
<meatus>weary-traveler: what if I just send the message to the writer of the message and CC "issue number"@debbugs.gnu.org?
<meatus>or do I just cc guix-patches@gnu.org and set the subject to match the message I'm replying to??
<Hamled>weary-traveler: on that topic, i tried to get gnus setup for that at one point (never used gnus before), with gmane.io to access it via NNTP... is that how you use it (if you use gnus) or just via an email connection?
<weary-traveler>meatus: if it's on a specific issue, cc the issue. the headers will be messed up unless you manually add those in your mail client, but the message will get delivered
<weary-traveler>meatus: to clarify, issue-number@debbugs.gnu.org is what you want. for a one-off this may be okay. but if you'll be responding to specific messages it would be worth the investment to figure out how to do it right so in-reply-to header is correctly set
<meatus>weary-traveler: word thanks!
<weary-traveler>Hamled: i use news.gmane.io and news.gnus.org (among others)
<Hamled>okay thanks
<weary-traveler>Hamled: the complicating thing with gnus (for me) was to figure out how best to support multiple email accounts. the nntp part was painless.
<Hamled>I'll give it a shot again... only put a modest amount of effort in before because I didn't have any specific plans for participation at that point
<weary-traveler>for multiple emails, the X-Message-SMTP-Method header and .authinfo.gpg file (and auth-sources variable) were all relevant
<weary-traveler>see (info "(gnus) Posting Styles") as reference
<Hamled>Oh nice, thanks again
<weary-traveler>np
<dajole>If I just want to reproduce dev environments for an app with `guix shell`, are there any advantages of using a `guix.scm` file with a package definition as opposed to a simple `manifest.scm`?
<dthompson>dajole: I like using guix.scm for software projects because then I can also use the same code with 'guix build -f guix.scm' to test out builds
<dthompson>so I did that thing where I didn't 'guix pull' for a long time and now I have regressions I'm trying to track down...
<dthompson>right now my git server is broken because the fcgiwrap service I use to serve the git smart http api is not respecting the group name in the configuration
<dthompson>it starts up with some seemingly random group id instead but the group id is crucial to it having access to the necessary files
<dthompson>the service is just using the regular shepherd #:user/#:group keyword args for make-forkexec-constructor so I don't really understand why this would be happening
<dajole>@dthompson Interesting. As in you also use `guix build -f guix.scm` in CI and when deploying?
<dthompson>yeah I use it like a simple CI to verify that my project builds in a clean environment
<dthompson>example: https://git.dthompson.us/chickadee/tree/guix.scm
<dajole>Neat, thanks, I'll have to read up on that a bit more :)
<Hamled>dthompson: have you done any rust development with this guix build setup
<weary-traveler>was going through my inbox and doing some spring cleaning. one of the feedback comments by ludo stumped me on this https://issues.guix.gnu.org/72925#69 anyone have any ideas?
<dckc>when I try to boot, my Dell OptiPlex goes into some diagnostic mode. I used `guix system init` from another machine to make the boot disk. Any clues on how to diagnose?
<dckc>(the machine was running debian from another disk just fine a minute ago)
<dckc>one possible complication: the disk is connected via a USB SATA adapter
<dckc>but the partition is referred to by label, not /sdb3 or anything like that
<dckc>hm. some EFI stuff is missing, when I compare to a working nixos install
<dckc>right... /EFI/BOOT/BOOTX64.efi from 11.15 Bootloader Configuration ... what did I miss here?
<dckc>(targets '("/boot/efi")) <- I see that in the docs... why am I missing that?
<f5mg>dckc: make sure that your EFI partition is actually mounted when you `guix system init`... that messed me up once
<dckc>yup
<ennoausberlin>Hello. It seems that the python-asgiref package also needs setuptools and maybe wheel as input. How can I fix this locally to build Django?
<dckc>ok! it boots! I get a Gnu 100% freedom thing, but then a blank screen. Have I got it configured to use a serial port or something? let's see...
<ennoausberlin>dckc: You might put nomodeset in your grub config on boot
<dckc>ok... I see that in the docs... I'll give it a try...
<dckc>(boy, this takes me back to running linux in 1995... extremely DIY...)
<ennoausberlin>duck: You will learn a lot on this journey and will have a tailored and rock stable OS at the end
<dckc>I'm not sure how much I really want to learn at this point. I wouldn't mind more of an "It just works" experience.
<dckc>with nomodeset, the 100% freedom stuff stays. no blank screen. but no login prompt either.
<ennoausberlin>dckc: What kind of screen to you see?
<dckc>with nomodeset, the 100% freedom stuff stays. no blank screen. but no login prompt either.
<dckc>(oops; I already said that)
<dckc>most of it is blank, but at the top are the Gnu and penguin logos
<dckc>these things: https://wiki.huihoo.com/images/f/f9/100gnu-freedom-linux-libre.png
<ennoausberlin>Hmm .. it is hard to diagnose remote
<dckc>(kernel-arguments (list "console=ttyS0,115200")) <- maybe that's my problem?
<dckc>I initially got this config working in a VM
<dckc>ttyS0 is a serial console, yes?
<ennoausberlin>If you do not have a display this is fine, but you need another computer to log on via Serial or not?
<dckc>I do have a display. A big TV. (goal is media-pc; see above)
<dckc>cutting out ttyS0 gives lots of diagnostics!
<dckc>something disk mounting problem..
<ennoausberlin>Then skip the console entry for now.
<ennoausberlin>How did you create your config?
<ennoausberlin>Why do you not use the official installer iso?
<dckc>I'm pretty sure I copied it out of the docs and then tweaked it slightly. I have it in version control, but the commit message for the 1st version isn't very good :-/
<ennoausberlin>At the beginning it is better to use the iso image provided. It is a little dated, but you can easily update your system afterwards. It just takes some time
<meatus>which package contains the 'glib-compile-resources' command?
<dckc>why not the official installer iso... I suppose I could do that, but I got a vm working, and I somehow like the idea of using `guix system init` to use the same config
<ennoausberlin>dckc: https://ftpmirror.gnu.org/gnu/guix/guix-system-install-1.4.0.x86_64-linux.iso
<meatus>nvm
<dckc>yes, I have the .iso image. I've used it once or twice before.
<dckc>I'm willing to do a little learning to avoid that tonight, though
<ennoausberlin>dckc: After install you can find the current config under /run/current-system/configuration.scm. You can tweak this for reconfiguring your system
<dckc>(presuming folks don't mind my using this channel as my notebook a bit; let me know if I get too verbose...)
<dckc>shepherd[411]: Exception caught while mounting file system:
<dckc>(custome-error "mount" "mount" 3 "A" ("/dev/sda1" "/boot/efi" "No such device") (139))
<piethesailor>my machine suddenly boots straight into grub console. ls returns list of devices as well as an error failure reading sector 0x1d.. from hd0
<piethesailor>is this a sign my hard drive is in trouble?
<f5mg>dckc: If you're set on making your own .iso, you can save yourself a lot of trouble by inheriting from `installation-os` defined in `(gnu system install)`, and only tweaking things you care about
<dckc>I wonder why (file-system (device (file-system-label "ESP")) (mount-point "/boot/efi") (type "fat32"))) isn't working.
<f5mg>(define my-installation-os (operating-system (inherit installation-os) ...))
<dckc>interesting idea...
<ennoausberlin>dckc: There is an eft partition not mounted on boot. If you did a manual install you probably messed up the paths somewhere during the process. https://guix.gnu.org/manual/en/html_node/Keyboard-Layout-and-Networking-and-Partitioning.html#Disk-Partitioning
<dckc>ok... enough learning for now... let's try the installer...
<dckc>one reason I avoided the installer is: the machine has a disk inside it that has precious stuff. I want to be sure *not* to wipe that out.
<dckc>so I'm using an external disk
<dckc>I suppose taking the precious disk out would have been the smart approach
<dckc>yup. that was pretty straightforward
<dckc>it installed cups a few times, which is a few times more than I had in mind, but whatever
<dckc>(likewise lots of other stuff)
<dckc>it's now running `guix pull`, which often takes a while
<dckc>I just got command-not-found for `make`. what's the guix equivalent of `apt install build-essential`?
<dckc>and does guix have a command-not-found thing where it will tell you what package to install when you try to run a command that's not installed?
<dckc>yay! the media pc is serving up my photos!
<dckc>I'm using `guix shell --pure coreutils file less make git python-toolchain` and then `pip3 install -r requirements.txt` to get my python packages: datasette, datasette-media
<dckc>I'm sure there's a more pure-guix way to do that, but this is pretty good for today
<Deltafire>gcc-toolchain i think
<Deltafire>..nope
<Rutherther>dckc: guix doesn't have 'build-essentials', make is in 'make' package. No, guix doesn't really have command-not-found, since currently it's not possible to locate files unless you already have them in the store, so it wouldn't be able to tell you arbitrary packages. To search in your store, you can use "guix locate"
<divya>Rutherther: How can I disable the tests?
<Rutherther>all or specific ones?
<Rutherther>all with #:tests? #f flag, specific ones with arguments to cargo test (#:cargo-test-flags), where you set --skip with name of a test
<meaty>What is the "no binding `~A' in module ~A" error message even supposed to say
<meaty>Rutherther: maybe one day the build farms could share locate databases?
<meaty>at least for bin/ and lib/
<Rutherther>meaty: yes it could. But someone has to do that work
<Rutherther>it needs to properly build the database for given guix channel commit
<dhj>so at the moment its not possible to build for aarch64, neither natively nor emulating from amd64? Is this a known issue already?
<dhj>ci.guix.gnu.org almost never works when I need it, is this a recurring condition?
<janneke>it worked all morning, i guess timing is everything ;)
<janneke>but yeah, it's down for me too now, annoying
<dhj>but in general there should be some builders for aarch64-linux, right?
<janneke>yes
<dhj>I am tinkering for days now, trying to get it running on an aarch64 VPS and can´t seem to figure it out
<yarl>Hello
<homo>I figured out the style for guile to make it readable with proportional font https://0.vern.cc/me.png
<h4> "How can I determine which Guix package provides a specific command-line tool (binary)?" "If I know the name of a command (e.g., ls, gcc), how can I find the corresponding Guix package that installs it?" "Is there a guix command equivalent to dpkg -S (Debian) or rpm -qf (RPM) for finding package origins of files?"
<Rutherther>h4: there is no direct equivalent. You can use "guix locate" what will use your store as an index. So you need to have the package already available there, ie. if you built something that requires gcc, used it in a shell at some point without gc etc.
<h4>Rutherther: It's rather inconvenient considering that Guix have some package name that aren't found in any other distributions. So you can't know that such package provides such thing if it's not listed in the description
<meaty>what is the difference between gpl{2,3}+ and non-plus versions? and how would one tell the difference?
<h4>meaty: Afaik it does mean that more recent version can apply as a substitute aswell, but don't take my word
<h4>Like it use GPL1 but is okay if you rather use it on v2 or v3 or any future version conditions
<h4>Next version are more restrictive, so often it's a non-problem for the developer
<meaty>but how do I know whether a repo is "plus"? afaict the filenames, github's classifictations, headers etc. are the same
<meaty>or nobody uses the "plus" versions
<homo>meaty if source files don't state that, ask maintainers at the very least to create explicit NOTICE file
<homo>h4 restrictive???
<homo>ACTION confused
<homo>fsf doesn't endorse restrictive licenses
<h4>meaty: The owner of the code defines what license it's under, have to look at original repo
<h4>There is no "plus" version. It's only a way to write "actual license or any further iteration". It lets you the choice
<h4>homo: Each people have its definition of restrictiveness
<nmeum>can I somehow specify from which channel `guix install` should install a package? for example, if I have a bash version in my channel with custom patches, can I somehow tell guix to prefer that over the "normal" channel which also ships a bash package?
<Rutherther>nmeum: you can if you reference it via guile expression. You can't via specifications. Rather change the version (and then use @version) or change the name
<lilyp>meaty: pick some source file and look at the header – if it says "or (at your option) any later version", then that's +
<homo>nmeum (@@ (your custom module) bash)
<homo>does it work like that?
<dthompson>anyone having issues where shepherd services are not running with the expected group ids? I'm pretty baffled by what I'm seeing on my server after a reconfigure
<lilyp>some packages may also put spdx identifiers in various places, which makes translation easier
<nmeum>Rutherther: is there a package transformation to change the name? because I am currently using package-with-extra-patches and you can't specify a custom name with that
<meaty>so right now I'm packaging the libretro "beetle psx" core; it's a library that compiles to either the hardware-accelerated or software versions (which are differently named, differently functional libraries) depending on a single cmake flag. Should I package it as one definition with multiple outputs or two definitions, one inheriting from the other?
<dthompson>two different versions because you have to compile it differently
<dthompson>outputs are for splitting up the build artifacts
<Rutherther>nmeum: no, but it's trivial to make a function like that
<graciousgnu>do you know how to list packages installed with a particular channel in guix?
<homo>h4 gpl's "restrictiveness" is corporate propaganda who want to keep abusing people, gpl doesn't restrict how you can and can't use software licensed under gpl, restriction is when licenses have statements like "don't sell", "don't modify", "don't reverse-engineer", "don't disassemble", "don't share with China", "don't use it for evil", etc. there are no such statements in gpl, so gpl is not restrictive
<graciousgnu>ill give an example of a restrictive license: sybase open watcom
<graciousgnu>thats a restrictive license, but gpl definitely is not
<graywolf>I noticed that there is core-packages-team branch. If there is anyone from the core-packages-team, would you please consider 73660 for inclusion? The patch was sent 6 Oct 2024 and there is no feedback yet, but I still think it would be useful. Due to the potentional for causing lot of rebuilds (I am unsure how to tell how many) I am hesitant to just apply it to my guix tree...
<dhj>I wondered how frequently core-packages gets merged to master? I also need a commit from that branch.
<muradm>hello guix
<dhj>Hey muradm
<muradm>Ho dhj
<muradm>any news about 75270, 75311 and 75312?
<muradm>solving them will close 7 issues at once, isn't it good bounty? :D
<graciousgnu>i dont want to be annoying and repeat myself, but does anyone know how to list packages installed from a channel?
<Rutherther>graciousgnu: I think that would be reliably possible only if you have provenance, but if you meant the ones installed via guix install, then that should have provenance. As for how to do it, I don't know of a command that does it, but parsing the manifest ("path-to-profile/manifest") shouldn't be too hard, it's in the properties of every package there
<cluelessguixer>Just about ready to turn my Debian fileserver into a Guix one. The only thing left to do is export my zfs pool and then import it once the new system is installed. How simple is this?
<cluelessguixer>Mainly concerned with what I need in my config.scm.
<dhj>graciousgnu: you could filter the location of the guix package --list-available result, like guix package --list-available | grep "gnu/*"
<dhj>pretty simple cluelessguixer, as long as the new kernel knows how to zfs and you didnt activate zfs features on the pool that the new kernel doesnt know about. I am running root on ZFS for almost 10 years, but havent tried it on guix yet, so I cant help you with that.
<graciousgnu>dhj: thanks!
<cluelessguixer>dhj: Yeah. I doubt my memory starved server has any special zfs features activated. Been running for years here too, and it has survived being moved to a new system once already (without exporting first). I've got the raid backed up too, so I'm not too worried tbh. Hopefully the guix configuration is simple enough.
<graciousgnu>does this work with guix?
<graciousgnu>how would i configure it?
<graciousgnu> https://www.thinkpenguin.com/gnu-linux/penguin-wireless-n-usb-adapter-gnu-linux-tpe-n150usb
<dhj>I saw a zfs guix config floating around on github not too long ago
<graciousgnu>currently the last piecce of nonfree software on my computer is the linux kernel
<graciousgnu>and thats bc of the proprietary wifi firmware
<graywolf>Based on `TODO: Add a declarative API.' comment for %sudoers-specification, I assume there is currently no way to extend the file from a service, correct?
<duncan>USB wifi is exceedingly grim, avoid!
<msavoritias>hey. is rottlog broken for anybody else? I keep getting
<msavoritias>2025-01-04 12:00:19 625 /gnu/store/l76gjihgarq773bh3zarya3rglnwmzbg-rottlog-0.72.2/sbin/rottlog: failed after 0.464s with: (misc-error #f unclean exit status ~S (1) #f)
<msavoritias>nothing has changed on my setup tho or on the server that this is happening.
<msavoritias>outside of a system reconfigure that is
<dhj>the store path with your hash builds on my system, msavoritias
<cricri>hi there, I ran into a problem trying to install guix on my thinkpad X240. The boot process gets stuck at a quite early stage (https://0x0.st/8ibL.jpg) and I dont understand why. Might it be due to my btrfs disk setup? Here would be my guix configuration: https://0x0.st/8ib5.tmpl
<cricri>Might you give me a hint where I should look at?
<runejuhl>Is there any way of getting a elisp/Clojure CIDER-like debugging experience in Guile with emacs/Geiser? I.e. `eval-defun` with edebug? Coming from Clojure I really miss easily stepping through code :)
<Rutherther>cricri: I doubt it would be because of btrfs, btrfs should work fine normally. What seems interesting in your config is the greetd terminals, and removal of login+mingetty services. I would try to get rid of that for now, only start with like one greetd session and others the default mingetty
<dhj>hey cricri, are you trying to boot efi or mbr? Were you able to boot from the installation medium with the linux libre kernel? your filesystems, they all have the same labels.
<graywolf>dhj: same label, but different subvol option as far as I can see
<dhj>you are right graywolf, overlooked that
<cricri>thanks for your answers! I will go with one greetd session. But isn't it a bit early in the boot stage for a problem with the login manager?
<cricri>@dhj I am trying mbr.
<dhj>how early are we talking? initrd?
<graywolf>cricri: guix has `quiet' in default kernel arguments and I do not see it being removed in your config.
<graywolf>So you have no idea how early in the boot process we are I guess?
<graywolf>Maybe I overlooked something though
<graywolf>ACTION thinks the quiet being in default arguments is not... the best
<cricri>yeah, didn't know about the quiet default. I will turn it off, might be easier for debugging my config :)
<graywolf> (kernel-arguments (delete "quiet" %default-kernel-arguments))
<graywolf>^ :)
<dhj>cricri: your root is on etx4 but your store lives on a btrfs subvolume. where do you mount the toplevel btrfs filesystem? have you read the manual https://guix.gnu.org/manual/en/html_node/Btrfs-file-system.html
<f5mg>I've a similar question to runejuhl (nice nick btw!): How do y'all get more useful error messages out of Guile?
<runejuhl>f5mg: thanks -- it's my name, I'm quite attached to it :D
<f5mg>Even when I can get a backtrace out of the guix cli, it ends up being near useless most of the time
<runejuhl>I was looking for something in Guile like `#dbg` in Clojure or `debugger;` in JS. It seems like it existed in Guile 1.8, but can't find anything similar in current Guile
<rrobin>for some debugging tricks I usually follow https://foundation.guix.info/downloads/20230203-debugging.org
<rrobin>what I have a really hard time with is debugging gexps
<f5mg>ACTION murmurs in commiserative agreement
<rrobin>on that link I was not able to get ,break to work though
<f5mg>even after reading the Dissecting Guix series gexps still haven't clicked for me
<rrobin>AFAIK for gexp maybe set the guix daemon to debug logs, but I'm just too lazy :D
<homo>it's fun when random files are chosen for compilation and linux kernel has so many files that it often creates impression of same drivers being recompiled over and over again
<homo>s/random files are chosen for compilation/files are compiled in random order/
<yarl>Hi
<yarl>ieure: I just got guix git: error: could not authenticate commit ddbb59f9bc5eb6dfaf1fc24881bb62f11960d664: key [...] is missing
<peanuts>"gnu: emacs-org: Update to 9.7.19. - guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/?id=ddbb59f9bc5eb6dfaf1fc24881bb62f11960d664
<yarl>Signed-off-by you
<graywolf>yarl: Did you just run guix pull? Or from git?
<yarl>From git graywolf
<graywolf>Did you pull the keyring branch first?
<yarl>OH, right....
<yarl>Thank you graywolf
<meaty>what do we do if a package needs to be built with clang?
<meaty>there is a --with-c-toolchain transformation option, but that's not quite it...
<meaty>there is also package-with-c-toolchain, but I feel like that's not quite correct either
<muradm>hello guix
<yarl>meaty: I don't know if you saw it but there is an example using --with-c-toolchain and clang-toolchain
<yarl>"(guix)Package Transformation Options"
<meaty>yarl: I did see that, but is there no way to just specify the toolchain as like, a parameter to the build system or something? Or do I have to wrap the whole definition in a transformation
<yarl>ACTION is a noob
<meaty>lol me too
<msavoritias>dhj: what you do you mean "builds"? as in the rotation of logs works fine?
<msavoritias>for context i dont have any configuration of logging rotation it is all defaults https://codeberg.org/joinjabber/Infra/src/branch/main/System%20Declaration/system.scm
<msavoritias>the system does build fine for me too for context
<lfam>Looks like issues.guix.gnu.org is down
<msavoritias>ah its not just me :)
<homo>it happens so often that it's like saying "sky is blue"
<homo>almost every day someone complains about that site being broken
<f5mg>rrobin: thanks for the link. I just realised, `guix repl` is quite broken - ,break works fine if I just start a REPL with the `guile` command
<f5mg>Realised that from here: https://forum.systemcrafters.net/t/scheme-guile-debugging/484/9
<runejuhl>f5mg: ah, good to know. I've only tried from emacs/Geiser, and it doesn't work for me that way.
<f5mg>Ugh, stepping through a function call in the REPL won't even show me what's being evaluated in each frame???
<f5mg>Just the position in the source file apparently
<f5mg> https://paste.debian.net/1342442/
<f5mg>I heard somewhere that compiler optimization makes debugging and errors less useful. How can I build Guix with `-O0`, for instance? Would this make error messages more useful?
<freakingpenguin>Hey all, what's the recommended way of freeing up store space when the drive is so full guix gc fails?
<graywolf>By any chance btrfs?
<freakingpenguin>Yep, root is btrfs. I think I can find enough non-guix cache data elsewhere to scrape by for now, but that won't always be the case.
<graywolf>You can just add another device to the filesystem, run the gc, and remove it afterwards
<freakingpenguin>Huh, never thought of that. Neat!
<graywolf>Do not ask me why I know of this trick :D
<yelninei>freakingpenguin: Somewhat recently I saw something about /var/guix/db/reserved
<yelninei>freakingpenguin: https://git.savannah.gnu.org/cgit/guix.git/tree/nix/libstore/local-store.cc#n114
<freakingpenguin>Interesting, I assume that's something that's meant to work automatically. Only reference to it in the manual is (guix) The Store.
<graywolf>Reading the code, I am not sure it works as intended on btrfs...
<freakingpenguin>I have an mcron job to run "$ guix gc -d 1m -F 50G" nightly, but it must not be triggering. gc caught 300GB of garbage when I ran it manually hehe.
<freakingpenguin>Perhaps the problem is having 50G and not 50GB.
<cage>Hi! https://issues.guix.gnu.org/ returns 502 error code
<sneek>Welcome back cage, you have 1 message!
<sneek>cage, Rutherther says: if you somehow lost /etc/config.scm, just recover it from your current or older system configuration - /run/current-system/configuration.scm for current, or under /var/guix/profiles/system-X-link even for older
<divya>efraim: A rust top-like application should go into rust-apps.scm or something like admin.scm?
<divya>It's this that I've packaged, and would be sending upstream once I know where to put: https://github.com/ClementTsang/bottom
<ieure>Also noting that qa.guix.gnu.org is extremely slow and the branch view is broken due to a 502 from some other service (data?): https://qa.guix.gnu.org/
<elevenkb>Hello there, I have a pretty advanced question. Consider the tree-sitter-build-system (in guix/build/tree-sitter-build-system.scm).
<elevenkb>The patch-dependencies proceedure is a phase that calls the function node:with-atonmic-json-replacement whose name is bound to a procedure since the module (guix build tree-sitter build-system) imports it:
<elevenkb>#:use-module ((guix build node-build-system) #:prefix node:)
<elevenkb>I want to call that proceedure too, but by modifying a package instead of writing a new build system from scratch, but I can't somehow get the symbol to be in scope.
<Rutherther>elevenkb: get it in what scope exactly?
<elevenkb>the symbol node:with-atomic-json-replacement
<elevenkb>here's what I'm trying now: https://bpa.st/HUWA
<Rutherther>that's not what I am asking, I am asking where you are trying to get that symbol
<Rutherther>ie. from something that gets evaluated on the guix daemon
<ieure>Rutherther, Answer is yes, it's in a gexp in a build phase in the paste.
<Rutherther>elevenkb: 1. you should probably be using imported-modules argument if you are inside of a package definition, 2. the first point will probably fix your issue, but for what you have now, you would have to manually execute use-modules in your code to get the module you want, with the prefix you want
<x8dcc>On a Guix system, if I manually edit '/etc/resolv.conf', will it get overwritten when reconfiguring the system? I am not using 'network-manager-service-type' nor 'static-networking-service-type'
<elevenkb>Rutherther: I don't actually /want/ to change the imported-modules though... right?
<elevenkb>actually, I'm now unsure...
<Rutherther>elevenkb: I don't know, depends. But if you don't want do to that, just use ensure-keyword-arguments instead of default-keyword-arguments and get the previous value
<Rutherther>and append to it
<ieure>x8dcc, Depends on what services you're using, some of them (like static-networking-service) will write /etc/resolv.conf.
<ieure>x8dcc, connman-service-type can also write /etc/resolv.conf.
<ieure>x8dcc, Probably easiest thing is to modify it, reconfigure, and see.
<x8dcc>I am using connman-service-type, though. Didn't see anything about connman and DNS in the manul
<x8dcc>manual*
<ieure>x8dcc, It's the resolv-conf field of connman-general-configuration, looks like the default isn't /etc/resolv.conf, but it could be set to that.
<x8dcc>Oh God... I wasn't looking in the devel version of the manual...
<ieure>ha
<x8dcc>My bad :)
<x8dcc>What's the 'maybe-string' type?
<ieure>x8dcc, An optional string.
<ieure>If you're an Emacs user, the built-in info reader gives you the manual matching whatever rev of Guix you're running, and is hugely faster than using a browser.
<x8dcc>So I can just not specify it, but it can only be a string, right?
<ieure>Yes.
<x8dcc>Okay, thanks.
<x8dcc>Yeah, I am using Emacs. I know about info, but I am not good with it. I often can't find stuff, and I always end up in weird places :)
<ieure>x8dcc, I have bookmarks set for `(guix) Top', so I can `C-x r b guix RET' to open the manual, then C-s to search for whatever I'm looking for.
<ieure>x8dcc, Essential keys are l (go back in history, like a browser's back button) and u (go up a level).
<luca>Can I substitute in a file object in guix home?
<x8dcc>Yeah, I can get around somewhat, but I am not used to it. I rather browse GNU manuals in PDF or HTML, in that order.
<x8dcc>But sometimes google just shows the non-devel version and I don't notice
<Rutherther>luca: what do you mean by a file object?
<luca>Something like (local-file). In particular because I'd like to not change the current working directory file
<elevenkb>Rutherther: I actually get your point now. Essentially, scheme has a proper module system. Unlike in say Emacs, one doesn't have a certain symbol in scope just because one of your dependencies does! Welp, my excuse for not thinking that is that I'm a mathematician.
<elevenkb>Thanks.
<Rutherther>luca: so a guix file-like object, okay. You can make a new file from one file-like object using gexps, where you will substitute, sure
<ieure>luca, What are you actually trying to accomplish?
<ieure>Not sure what you mean by "I'd like to not change the current working directory file"
<luca>Honestly I am not even sure myself what I want... I think I'll reconsider my approach here
<luca>If I could tell the computer in words what to do I'd like for it to run this python script using dependencies managed by guix home (but also maybe not change the source as it may be used by non-guix managed users). But this is sounding like a lot to ask of a very little script https://git.lucamatei.com/dotfiles.git/tree/.config/swayrbar/scripts/wayland-idle-inhibitor.py
<ieure>luca, nice avatar lolll
<ieure>and the WTFPL, nice nice
<ieure>luca, I think you need to package your script and make a Guix Home service which runs it.
<luca>I don't want to take credit for the source, it comes from https://github.com/stwa/wayland-idle-inhibitor (but the profile pic is mine, i like minecraft ;))
<luca>Yeah, it's starting to sound like I need a real proper guix package for this, with the pyproject.toml or whatever. No better time to learn than now, right
<ieure>It's more the dickbutt than minecraft, but, sure.
<luca>Fun fact, not allowed on some platforms as it's too sexual!
<ieure>Not surprised, the internet is very bland compared to the freewheeling 1990s.
<Rutherther>luca: you don't need to change the source, just set GUIX_PYTHONPATH before executing it (can be done via wrapping using guix)
<luca>Honestly I think a package might still be better. (though honestly I wish there was a better alternative than a random python script for this)
<Rutherther>better than what?
<luca>I don't know I'm just rambling. Just that ideally there would be a command to toggle if the screen goes to sleep by itself or not
<Rutherther>I was asking about the first part - package might still be better
<luca>Oh. A package would be better and more in line with how all other executables are, as opposed to weird substitutions/wrapping in the home config. Like I'd have to ignore the script here and add it seperately https://git.lucamatei.com/dotfiles.git/tree/home-configuration.scm#n249
<Rutherther>luca: but the package will do the wrapping
<ggVGc>hi, I just started trying to use guix to set up a development environment for ARM development. After running the install script, I successfully ran `guix shell arm-none-eabi-toolchain`, however the toolchain binaries were from 2017. I then ran `guix pull`, and now `arm-none-eabi-toolchain` is an unknown package. I am now wondering two things. Why did the package disappear when I updated guix? And is
<ggVGc>there a channel I can add to get am ARM toolchain? Or do I need to figure out how to build it myself?
<Rutherther>there is no other way apart from wrapping to make a standalone python script with all necessary requirements
<ggVGc>I am using guix on Arch, and I have some experience with Nix for the same kind of use-cases
<Rutherther>all python applications in guix channel use it
<elevenkb>Alright, that problem is now dealt with. On to a different one.
<luca>Yeah when you put it like that... that's a good point
<Rutherther>ggVGc: you don't need to figure out how to build it yourself. It is in guix channel, but it moved to being a function that produces the package, so you can't directly use a specification like that to obtain it, you need to use guile expression
<Rutherther>ggVGc: ie. "guix shell --expression="((@ (gnu packages embedded) make-arm-none-eabi-toolchain-12.3.rel1))""
<ggVGc>Rutherther: thanks, where can I find documentation on this?
<Rutherther>you can't
<ggVGc>:(
<ggVGc>haha
<Rutherther>ggVGc: unfortunately, due to it being a function, and not having an explicit job on the CI, the package will not get substituted and will have to be built by your machine. It can take like an hour
<PotentialUser-90>Has a fix been found for the `error: kexec-load-file: Invalid argument`error when running `guix system reconfigure`? I see some issues on the issue tracker but the issue tracker appears to be down.
<ggVGc>that's fine, I'm just trying to learn how to do the equivalent of having a .nix file for a project to set up the development environment, using guix
<ggVGc>but, if I suspected this function existed, would the way to figure this out be to grep the guix sources?
<ggVGc>what is the discovery actions guix users use to figure things like this out?
<ggVGc>what are*
<Rutherther>ggVGc: yeah, I would go with searching for arm-none-eabi / or only arm if the first one had nothing useful in guix source
<elevenkb>Alright, consider this code here: https://bpa.st/C2FQ.
<elevenkb>The match-lambda fails to evaluate while building... with the following error:
<ggVGc>another basic question, what actually is the equivalent in guix of having a .nix file and going `nix-shell foo.nix`?
<ggVGc>Do I just put an expression in a .scm file?
<elevenkb>unknown location: source expression failed to match any pattern in form ("peerDependencies" @ . _)
<elevenkb>this is the same error that happens when you try to evaluate the match-lambda without evaluating (use-modules (ice-9 match)), for example, first.
<ggVGc>ah, guix.scm and guix shell, it seems
<Rutherther>ggVGc: yes, put it in an scm file and then run guix shell -f file.scm on it if it returns a package / list of packages, or guix shell -m file.scm on it if it returns a manifest
<Rutherther>elevenkb: are you sure that failed to match any pattern cannot be coming from that "_" usage without importing the srfi module that defines its syntax?
<ieure>Rutherther, Is _ really in an SRFI? I'd think it's just another symbol. ((lambda _ "hi")) in a bare Guile repl evals to "hi"
<Rutherther>ieure: depends on the usage, you're right that in lambda it's like that, but that's like the only place as far as I know
<ieure>Hm, I'd think it'd either work, or be in (ice-9 match), since _ is mentioned in `(guile) Pattern Matching' as matching anything.
<Rutherther>ieure: it's possible that in this case the syntax comes from ice-9 match's match-lambda
<Rutherther>anyway if it's not that, I am not really sure what use-modules above the modify-modules does, personally I would just put it to the lambda body
<Rutherther>s/modify-modules/modify-phases
<elevenkb>Rutherther: what srfi would that be?
<Rutherther>elevenkb: ignore it, here it comes from match-lambda syntax
<elevenkb>Alright, that is now fixed.
<elevenkb>I need to add '(ice-9 match) to the #:modules argument
<ggVGc>Rutherther: do you know why there are not prebuilt packages for the arm toolchain?
<elevenkb>it's a bit surprising to me that this is different to adding it to #:imported-modules and then using use-modules...
<ggVGc>it seems like it would be a pretty common use-case to me?
<elevenkb>The package is successfully build!
<elevenkb>*built!
<divya>ekaitz, efraim, and other committers. How do I sign up to be part of a "team"? I'd like to be part of emacs and rust teams.
<ekaitz>divya: you can add yourself to the etc/teams.scm file
<x8dcc>I setting the 'resolv-conf' element of 'connman-general-configuration' to "/dev/null", but "/dev/resolv.conf" is still getting set :/
<divya>ekaitz: I am to add my name and the teams I'd like to join and send a patch for it to guix-patches as usual?
<ekaitz>divya: git show 1a775399879fcc7c06444f9117630329f1cb6365
<peanuts>"teams: Add Ekaitz Zarraga to bootstrap and zig. - guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/?id=1a775399879fcc7c06444f9117630329f1cb6365
<divya>Got it, thanks ekaitz!
<ekaitz>divya: :)
<divya>Also I have a series of almost 45 commits (patches for a package build), and I'm afraid there might be indenting issues that guix style would pick up.
<x8dcc>I checked in the guix repository and 'resolv-conf' doesn't seem to be accessed? At least from looking at the grep output
<ekaitz>divya: 45 commits? oh shit that's more than my full commit history in guix LOL
<divya>ekaitz: You must've made more 'core' commits haha. And yeah it's a rust package requiring a bunch of crates.
<ekaitz>divya: ooh i see, classic
<ekaitz>rust's dependency hell