IRC channel logs

2021-09-24.log

back to list of logs

<awb99>I just installed my first guix SD machine. I use just "normal" packages, but I noticed that some of the packages took many hours to build. Could this be related to grafts?
<maximed>awb99: Do they take long to build, or long to compute the derivation?
<maximed>I usually understand ‘building’ as ‘building a derivation’ (approx. package or source code)
<awb99>derivation = graft?
<awb99>I had a lot of CPU usage due to GCC builds running. Not sure if this was build or derivation.
<maximed>I.e., do you see ‘building derivation /gnu/store/HASH-NAME-VERSION.drv lines’ when running "guix build ..."
<slyfox>maybe you need to authenticate binary substitution server?
<maximed>do you mean with "GCC builds", building the compiler GCC, or builds that are using GCC?
<maximed>If the former, then you probably want to enable substitutes
<maximed>(Likewise for the latter)
<slyfox>[ something along the lines of https://guix.gnu.org/manual/en/html_node/Substitute-Server-Authorization.html ]
<maximed>grafts and packages are implemented with derivations, but derivation != graft
<maximed>(probably not important for this discussion)
<maximed>derivations are a low-level thing that packages, origins and local-file objects are turned into.
<maximed>A package has multiple derivations: one for each system and target combination
<maximed>(system = i686, x86_64, ...) (target is important when cross-compiling)
<maximed> https://guix.gnu.org/manual/en/html_node/Derivations.html has more information
<zamfofex>awb99: From my understanding, “substitutes” are the binary versions of packages. In Guix, packages must be built from their source, but it can get bothersome having to build them all yourself. There is a CI server that builds them automatically for you, so when it is available on the server, it gets downloaded instead of being built from source.
<zamfofex>awb99: Maybe that isn’t working well for you for some reason.
<zamfofex>Which would cause all packages to be built from source!
<zamfofex>So it could be worthwhile to investigate if substitutes are working well for you.
<singpolyma>Basically if you just do "guix install x" you should not expect gcc to run if things are set up normally...
<zamfofex>awb99: It should have been automatically set up for you when you installed Guix SD, though, so it is strange if it isn’t working.
<podiki[m]>maybe need a `guix pull` first?
<jab>maximed I need to learn how to do some derivations for my opensmtpd-filter-dkimsigm configuration...
<zamfofex>singpolyma: Well, from my experiences, sometimes you still have to build some packages from source if you just ran ‘guix pull’, since they might not yet be available from the substitute server yet. Though I don’t generally keep track that well, so maybe it’s not so frequent.
<jab>I am currently running having the code create /etc/openstmpd/dkimsign...But it does not create a derivation for it. So, guix system vm config.scm creates /et/opensmtpd/dkimsign on the host OS.
<jab>I also should probably figure out how guix create /etc files...I think there is an etc service or something....
<maximed>jab: Can I take a look at the code?
<maximed>This sounds like a staging issue.
<maximed>Probably not a derivations issue. Derivations are usually created behind the scenes by 'package', 'origin', 'computed-file', ... Not something you would create manually
<awb99>hmmm..
<maximed>jab: etc-service-type
<zamfofex>awb99: I think you could try podiki[m]’s suggestion and run ‘guix pull’ first to see if things start working well.
<maximed>The manual documents how to add a /etc/issue file.
<podiki[m]>awb99: especially if you just installed and didn't do a pull, then probably you are building old packages, hence the lack of substitute to download
<jab>madimed: notabug.org/jbranso/
<jab>The repo is called linode system configuration or something like that.
<jab>I am using the "*current-config.scm" The code is question comes from "create-etc" something procedure in opensmtpd.scm. I'd send you a link, but I'm at work, and work blocks notabug.org :)
<maximed>your use of (create-etc-dkimsign-key-file) won't work
<jab>maximed how so? It seems to be working for me on my server.
<maximed>You neeed something like (mixed-text-file ... ".../relaxed" (program-file "stuff" #~(begin do some chmodding and chowning and mkdirring)) ...)
<maximed>jab: it won't work with "guix system vm" for example. THe issue is that ...
<maximed>(create-etc-dkimsign-key-file) is executed when guix loads the system configuration
<maximed>Instead, it should be executed during system activation
<jab>maximed YES! That's exactly my problem!
<jab>Well I've got other problems too, but those aren't really relevant. :)
<maximed>jab: Do you have a lead with 'program-file'?
<maximed>I hope the Scheme file on notabug doesn't have the actual credentials?
<jab>maximed I'm not sure what you mean by a lead...I think the scheme file only have the public credentials.
<maximed>nevermind, its hashed or something, so not much of a problem
<jab>public keys.
<maximed>public keys may be public. Seems ok
<maximed>jab: My comment about credentials is unrelated to my comment about program-file
<maximed>With ‘do you have a lead’ I meant: do you have an idea how to use 'program-file' to resolve the staging issue?
<jab>I know that I do not want to put the private key in the store and symlink it. So I need to maybe put a #~ infront of the (let in create-etc function....
<maximed>(staging issue: stuff being run at activation time instead of when guix loads the file)
<jab>maximed I am woefully inexperienced with gexps. Your explanation about code needing to run at activation time instead of load time was a great explanation!
<jab>Actually that opensmtpd file was my first gexp usage. I found the file in the store where opensmtpd-filter-dkimsign is located via a gexp! So much fun!
<maximed>Does someone have an example of how to set usertags on debbugs in the pseudo-header?
<maximed>My attempt at https://issues.guix.gnu.org/50769 didn't work
<dthompson>does anyone know if it's possible to use `guix pack -f squashfs` without singularity?
<maximed>Nevermind, the 'easy' tag appears to be set
<maximed>(Not sure about the usertags)
<dthompson>for example, my understanding of AppImage is that it ships squashfs images inside an executable, so you just run the executable and it automatically mounts the image and runs the software within.
<jab>dthompson what up brosif? Thanks for haunt man. I've been a happy user for 2 years now.
<dthompson>jab: oh wow that's great to hear! glad you like it
<jab>dthompson definitely! I need to dig into your source code and teach haunt how to render commonmark. Thought your markdown support might be good enough.
<jab>I would love to teach it how to render org-mode too, but I've heard that's rather hard to do...
<dthompson>what do you mean by render? it can *parse* commonmark
<dthompson>like, instead of html, you want to write commonmark files? curious about the use-case
<jab>dthompson Oh no. I want it to write to html. I didn't realize that it could do that! Oh wait...maybe my usecase is that I am writing the blog posts in org-mode, then exporting to markdown, and some of the links do not work....
<jab>It's been a while since I wrote a blogpost at gnucode.me....so I forget the exact issue.
<jab>Not a major concern. :)
<jab>It mostly works.
<dthompson>jab: org-mode support would be great! I just don't have any interest in writing an org-mode parser because it's very complicated! :)
<dthompson>haunt comes standard with commonmark support if it is built in an environment with guile-commonmark.
<jab>dthompson maybe I could write an org parser in stages...We could just support * Headline for now....
<jab>Then later we'll add *bold*. Later code segments...
<jab>dthompson Which part of org do you think would be the hardest to parse?
<dthompson>jab: I don't really know. I just know that org has a lot more syntax than I even know about!
<dthompson>someone has a basic guile org-mode parser somewhere
<dthompson>that would be the thing to improve
*dthompson has got to go
<b3>Hi, what's the best way to manage my Emacs configuration inside Guix? I would like to be able to roll it back etc. as part of my system. Should I just stick it inside an extra-special-file service, or is there a better way? Any guides around this? Thank you!
***califax- is now known as califax
<iskarian>b3, it seems pretty quiet around here right now. you're likely to get more responses if you send mail to help-guix@gnu.org :)
<raghavgururajan>yosys-questions: donotshake at #whereiseveryone might have some insights on playing with cuirass. :)
<Gooberpatrol66>What package provides the "gio" command?
<flatwhatson>Gooberpatrol66: did you try "which gio"?
<flatwhatson>/gnu/store/sgx82g9s89zw7q4nqwslxc9znygiswf8-glib-2.62.6-bin/bin/gio
<Gooberpatrol66>flatwhatson yes
<Gooberpatrol66>"no gio"
<flatwhatson>oh, of course :)
<Gooberpatrol66>so it's in glib, thanks
<lilyp>glib:bin
<civodul>Hello Guix!
<sneek>Welcome back civodul, you have 1 message!
<sneek>civodul, apteryx says: I'm encountering the "Throw to key `match-error' with args `("match" "no matching pattern" #<eof>)'." offloading issue with a weak ARM board; it is returned after ~16 s. On the board, a Guix process continues running for much longer (the inferior process), apparently reading all package modules slowly. Let me know if you have ideas of things to look for/try!
<civodul>apteryx: not sure about 'match', but could it be that the ARM board is somehow not finding the .go files, and thus recompiling it all?
<efraim>hello guix!
<vivien>Hello :)
***euandreh_ is now known as euandreh
<vivien>Is there a way to guix pull with a couple of ad-hoc patches?
<civodul>vivien: hi! nope
<vivien>So, I tried to pull a guix mirror with my changes on top, and I get: commit <my commit> lacks a signature. Is there a way to make guix still pull?
<civodul>if you "know what you're doing", you can pass --disable-authentication
<civodul>that's ok if you're pulling from a local clone
<vivien>I know, because that’s just my commits on top of official guix, and it’s just for one pull after which I’ll discard them :)
<vivien>Thanks!
<civodul>yw :-)
<vivien>Strangely though, I added 4 commits, and this error was just for the second commit.
<vivien>I would have expected for the first commit to trigger the error
<vivien>Ah sorry nno it’s for the 4th
<vivien>So OK
<civodul>hmm looks like today's ungoogled-chromium won't let me share my webcam:
<civodul>[4685:3:0924/102919.814053:ERROR:video_stream_encoder.cc(1762)] Failed to encode frame. Error code: -7
<civodul>does that ring a bell?
<jonsger-laptop>what do I need to blacklist to get Guix stock kernel running with "recent" GPUs from AMD? is it only `amdgpu` or is it more?
*civodul has no idea
<vivien>Blacklisting amdgpu "works": on my server I disable it, but the screen is displays early boot log and is not responsive (I don’t care, it’s just a server), and on my desktop machine I can only use 1 screen and sometimes the colors are all weird.
<jonsger-laptop>vivien: thanks, thats at least better then before. At a certain point during boot the monitor gets black and thats it :(
<paul_j>jonsger-laptop: Could this also be an issue with ensuring the latest microcode is in place as well as drivers? I have gentoo installed on a desktop and on a Udoo Bolt, both with AMD graphics, and I seem to remember this was also important. I did get the black screen issue. I haven't yet ventured to install guix on either for this reason.
<paul_j>(but I will at some point)
<efraim>I'm now using inferiors to try to write a package that depends on an old version of ungoogled-chromium
<jonsger-laptop>nckx: I tried your XFS patches on top of core-updates? but its still the same error
<jonsger-laptop>do we need to update the Guix package itself or something a like?
<civodul>texlive quizz: which package provides translator.sty?
<ss2>civodul: ;; (display "finish\n"))
<ss2> (lambda () ((display "finish\n")))
<ss2> ;; (lambda ())
<ss2> not again :D:D
<ss2>civodul: https://ctan.org/tex-archive/macros/latex/contrib/translator
<ss2>I have to fix my pasting...
<vivien>Dear guix, if you want to test my minetest patch https://debbugs.gnu.org/cgi/bugreport.cgi?bug=50677 with a build that fails, just revert patch 0002 and try building minetest-moreores. You will see that all error lines are present and not just the first, so we see that it fails because _config.txt is not installed.
<civodul>ss2: ah thanks! "guix import texlive translator" isn't very helpful though
<civodul>vivien: looks like maximed is the other minetest expert here :-)
<vivien>civodul, yes, but I already asked too much, so it would be better if someone else tested it
<civodul>heheh, makes sense
<maximed>vivien: I applied the patches and removed "config.txt" and "_config.txt". The error reporting seems to work.
<ss2>yeah, and this translator can be found in the grand texlive package. In any case ctan is always helpful.
<isolier>I am considering exploring Guix, and know very little about the functional system administration paradigm. Anyway, is there a package for Gnome 40, or is it easy to derive one from the Gnome 3.34 package in the repos?
<maximed>Raghav Gururajan is working on updating the GTK and GNOME stack
<maximed> https://git.savannah.gnu.org/cgit/guix.git/log/?h=wip-gnome
<maximed>Gnome consists of many packages, so it's not just a single package update
<isolier>maximed: Makes sense; I wasn't sure if there was a meta package concept in Guix or not.
<maximed>isolier: There is a meta package called ‘gnome’
<maximed>it ‘propagates’ many GNOME packages
<isolier>Gotcha. I know Gnome is a beast.
<vivien>maximed, thanks!
<nckx> https://github.com/InitWare/InitWare 🤔
<nckx>Morning Guix!
<zap>nckx: so fresh
<nckx>git log --format=oneline | wc -l → 41
<nckx>git log --format=oneline | grep junk | wc -l → 4
<nckx>This gun b gud.
<oriansj>nckx: well it is the best part of having software freedom, no one gets to dictate shit if other people are willing to pick up their text editors in anger.
<nckx>Thinking others are ‘dictating’ things is the first mistake of those who do so.
<oriansj>and lets be honest, they are gonna have to pry emacs from my cold dead hands.
<dstolfa>nckx: the InitWare stuff is unfortunately pretty doomed in a way. i appreciate the work that the person is doing (who is also AFAIK doing it for themselves), but it is extremely likely that down the line each of the BSDs is going to do their own thing. i'd say that within the next few years, FreeBSD is going to get a lua-based launchd/systemd-like thing, ideally with a kernel bus instead of dbus for many
<civodul>nckx: would "systemd reimplementation" correctly describe InitWare?
<dstolfa>reasons
<dstolfa>civodul: it's not a reimplementation, it's a heavily stripped down version that is intended to be portable
<civodul>ok, that's sort of what i had in mind
<efraim>I don't know what it was but now there's a pcre test failing on powerpc-linux :/
<civodul>on core-updates-frozen?
<efraim>does this syntax look right? ,@(inferior-package-native-inputs inferior-ungoogled-chromium)
<efraim>civodul: yeah, on core-updates
<efraim>I see I already disabled JIT for ppc on pcre2
<efraim>some tests fail but its explicitly supported in the code so I don't know what's up with it.
<civodul>uh
<civodul>efraim: the syntax above looks right privided it's within a quasiquote form
<efraim>it's inside (native-inputs `(... on master,
<efraim>ice-9/boot-9.scm:1685:16: In procedure raise-exception:
<efraim>#<unknown port>:16:245: Unknown # object: "#<"
<zap>efraim: I remember this error, also had it when was playing with inferiors
<efraim>I wonder if it has to do with the local-file in the native-inputs
<zap>I didnt use local-files - guess it happens when reader gets input from inferior repl after "#<" there probably should be a record representation
<dhruvin>Hello guix! Guix System is now officially supported on builds.sr.ht. https://man.sr.ht/builds.sr.ht/compatibility.md#guix-system
<zap>but it should not be representation but actual sexp to construct the record -- just a guess
<zap>dhruvin: wow! why am I not on sr.ht yet?
<civodul>dhruvin: woow, congrats!
<civodul>it's great to see that happen on sr.ht in particular because its vision seems well aligned with that of Guix
<dhruvin>Currently it supports x86_64 only, will add more architectures soon, once this is stable. Hurd image is under development and will be available as 'image: guix/hurd'. (For now, we need to cross-compile.)
<dhruvin>zap: Join in! :)
<dhruvin>civodul: Thank you. I agree. Side note: guix taught me how to contribute via patches. :)
<civodul>heh, fun :-)
<dhruvin>I'm working on a wiki to demonstrate how to use guix packages, manifests, channels, and substitute servers in that image.
<dhruvin>Just started, it's completely empty, but here it is for the readers of irc logs: https://man.sr.ht/~dhruvin/builds.sr.ht-guix-cookbook/
<apteryx>civodul: about the match error, it seems that the libssh channel port returns 0 when encountering a timeout, which is interpreted as EOF by guile (more info here: http://issues.guix.gnu.org/41625#16)
<apteryx>that's why I've been seeing this error mostly on under powered ARM boards
<apteryx>(e.g., a 'guix repl -t machine ...' command taking more than 15 s throws the error)
<civodul>apteryx: hey! that timeout issue vaguely rings a bell
<civodul>so essentially, if the server side replies to slowly, then you get EOF on the client side, right?
<civodul>*too slowly
<apteryx>yes
<apteryx>and we don't currently expects this
<apteryx>I'll rework a patch I had raising an EOF-related error, and handling it in offload to offer a more precise diagnostic (possible timeout)
<civodul>read_from_channel_port has: if (res == SSH_AGAIN) res = 0;
<civodul>
<civodul>that could lead Guile to return EOF upon EAGAIN
<civodul>maybe that's what's happening here
<civodul>though normally SSH_AGAIN can only be seen if the channel is in "non-blocking mode" at the libssh level (which i think is not the case)
<apteryx>civodul: the information (of SSH_AGAIN vs EOF) is lost at the libssh level; it's ssh_channel_read that ends up returning 0 on a timeout
<apteryx>ssh_handle_packets_termination returns SSH_AGAIN, but then this value of rc (-2) is not handled and what gets returned is the length of the receiving buffer (0).
<civodul>oh
<civodul>apteryx: have you reported it upstream?
<apteryx>that does not seem to be bug; it's at least consistent with the documentation of the ssh_channel_read_timeout function (The number of bytes read, 0 on end of file or SSH_ERROR on error. In nonblocking mode it Can return 0 if no data is available or SSH_AGAIN.)
<apteryx>one could argue that a timeout happens when 0 bytes were read in that time, so it returns 0
<apteryx>dunno
<civodul>yeah
<civodul>open-ssh-session in (guix scripts offload) is supposed to set a timeout equal to max-silent-time, typically 1h
<civodul>but in your case you seem to be getting a timeout much more quickly, right?
<roptat>hi guix!
<apteryx>civodul: we set it to 15 s
<apteryx>well, Im̀ testing the 'guix offload test' code path
<apteryx>which uses %short-timeout
<civodul>hi roptat!
<civodul>apteryx: and you get the EOF match error after 15s?
<apteryx>yes, because I think I misconfigured the offload machine and it must be compiling the Guix modules, as you mentioned
<apteryx>Guix runs at 100% of a core for 1m30s on the offload machine
<civodul>ok
<civodul>good
<roptat>ah, I still can't guix pull on my arm board :/
<civodul>apteryx: so now, what do we do? we could just recognize that timeouts can lead to EOF and adjust our code accordingly?
<apteryx>civodul: that's the plan; better diagnstoic on a EOF (mentionning a possible cause is the remote not producing a response in timeout)
<apteryx>diagnostic*
<civodul>ok, alright
<civodul>phew, these things are really terrible to debug
<apteryx>perhaps also ensuring that the session is destroyed after this condition; currently the guix process keeps running passed the error
<apteryx>civodul: yes! and I couldn't figure out a way to get the libssh and guile-ssh debug symbols to aid in my gdb debugging because of http://issues.guix.gnu.org/48907 :-/
<apteryx>so the best I saw of a backtrace with some luck was: https://paste.debian.net/1213086/
<apteryx>I've posted some idea to use the debug-id (baked at build time) instead of the file name matching (debug link) scheme to locate the debug files with GDB
<apteryx>but I'm struggling to understand how it'd cope with grafts
<apteryx>as long as the package itself wouldn't get rebuilt (as in replaced), it should work, but what happens when the package itself is replaced with a graft (rebuilt)? Would the debug output also get the new build-id? I guess so, but I'm not entirely sure.
<roptat>I don't remember how I solved the binfmt issue I had last time on a foreign distro... when I try to build for armhf, guix tells me "/gnu/store/lgk876wh2bxxglplbwyymkx3sqzcbnk9-guile-3.0.2/bin/guile" not found, but I can actually run it as my user (it's an armhf binary)
<acrow>Hoping to fill in a gap in my understanding here. Trying to build the zig 'compiler'. It uses the cmake build system and depends on llvm@12.0.1 but when I try to build it reports only finding llvm@9. I've provided (native-inputs `("llvm" ,llvm "opt-viewer")("llvm" ,llvm "out")). It is puzzling because guix environmant --ad-hoc llvm yeilds llvm@12.0.1 by default. Why doesn't this happen in the build environment too?
<acrow>Sorry, there are some spelling errors above. s/environmant/environment/, s/yeilds/yields/. I blame the fingers.
<roptat>acrow, the variable llvm is linked to llvm@9
<roptat>whereas the name llvm refers to all versions of llvm we have, and guix will always choose the latest
<roptat>you want to pass llvm-12 instead
<acrow>Thank you, roptat, where are these links defined? or is it just a matter of redefinition, like (let ((llvm ,llvm@12.0.1)) (blah ,llvm)...).
<roptat>no, there's a difference between the name field of a package, and the variable that contains that package
<roptat>you can have a look at "guix edit llvm" for instance
<acrow>ok
<roptat>you'll see that it's defined in a variable named llvm-12 (not llvm@12)
<roptat>the package definition always refers to the variable name, not the name field
<roptat>but on the cli, you refer to the name field, not the variable name
<roptat>in the same file, you'll see (define-public llvm llvm-9), which explains why when you use llvm, it refers to llvm@9
<acrow>Yep, it popped right up. it lives in llvm.scm too. Thank you again. I should know better than to ask before reading the code myself.
<civodul>apteryx: thanks for the heads-up on #48907, i just replied there
<civodul>i agree we should Do Something about it
<roptat>ok, I got qemu_binfmt working on a foreign distro, I installed qemu:static with guix, and added it to --chroot-directory, so it can be found at runtime. I also registered it manually as qemu-arm in binfmt
<roptat>as root, I removed the existing one: "echo -1 > /proc/sys/fs/binfmt_misc/qemu-arm" (which would require adding /usr/bin and /lib64 to the chroot)
<roptat>and added my own: echo :qemu-arm:M:0:'\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00':'\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff':/gnu/store/p331mnw542k1hlj9xy76liiyly8657rp-qemu-6.0.0-static/bin/qemu-arm: > /proc/sys/fs/binfmt_misc/register
<robin>what is the guix home thing being discussed on the ML? i was unsubscribed for a bit
<robin>fwiw, my $0.02 on recent topics: delegated inputs seem like a suboptimal hack but i don't have an alternative, and it's been mentioned that guix home services have potential name conflicts with regular guix services which suggests that GOOPS or record inheritance might be useful
<robin>i haven't thought much about it, but if we're tweaking the use of outputs i also wonder if the outputs should be named consistently regardless of what the package is primarily for
<robin>(for example, the GLEW library just has an "out" output, but it could install into a "lib" output instead)
<robin>then you know which outputs to use from other packages, without having to guess or look it up
<nckx>Yeah, I've wanted that before. :out is currently assumed/mandatory at a very low level, and you'd need the concept of a ‘default output’, I think…
<nckx>jonsger-laptop: Yes, you need to update Guix if you're not running from a ./pre-inst-env. That includes using the visual installer, since it nests at least one Russian guix.
<jonsger-laptop>russian guix?
<robin>nckx, ah, that makes sense
<nckx>jonsger-laptop: Updated guix on master.
<nckx>Russian nesting guix.
<dstolfa>guixushka
<nckx>да
*dstolfa wonders if nckx secretly knows cyrillic or if they just know "da"
<nckx>Cyrillic is trivial. Russian isn't. I don't know much Russian and would like to know more.
<nckx>Please don't pelt Russian obscenities at me now.
<nckx>Actually, do.
<nckx>Might come in handy.
<lfam>XFS! Nice work nckx
<sneek>lfam, you have 1 message!
<sneek>lfam, iskarian says: You're right. I'm not going to block #50493 with all the go-build-system updates; I'll just send a patch for the "go-std-cache" bit
<lfam>sneek: later ask iskarian: Thanks! Did you send that patch?
<sneek>Will do.
<podiki[m]>the few words of Russian I know are mostly vulgar insults...
<nckx>We must have learnt Russian at the same bar.
<nckx>lfam: Thanks! And thanks for updating rsync a while back. I did enable zstd and lz4 since my workload benefits greatly from it; holla if it breaks yours.
<lfam>I can't imagine that would break anything! I thought I would just make the smallest change. But zstd / lz4 represent the future
<lfam>With zstd and xxhash rsync is ready for the 21st century
<nckx>zlib (probably) has its place (compatibility, good enoughness) but real-time data compression over the network ain't it.
<nckx>Yes!
<lfam>Yeah, I don't wanna put down zlib. But zstd is definitely next-level
<nckx>Learning about zstd was an interesting feeling. Like it shouldn't have been possible this late.
<lfam>I know what you mean. There is still low-hanging fruit to be picked. And I think it's possible for one person (or a small group) to have an impact that seems unreasonably large
<nckx>
<dstolfa>i've been using zstd for a couple of years now very happily. highly recommend it :)
<nckx>Fanboy levels approaching intolerable. Let's all get a room and invite zstd. It'll be great.
<lfam>It makes me think of a more general phenomenon, which is the value of starting again
<lfam>Like, it's very easy to settle into maintenance mode and stop inventing new things
<lfam>Both kinds of work are necessary
<dstolfa>my biggest benefit with zstd was the general usability improvement with ZFS + zstd
<dstolfa>especially on big HDDs
<nckx>Right. Or assuming that if it were possible, someone would have done it. I see that one a lot.
<lfam>Yeah!
<nckx>(I mean, in my own head, not casting stones.)
<lfam>And also yeah to dstolfa. It's amazing that CPUs are fast enough to transparently compress data storage
<nckx>My SSD is faster with compression than without it (this is not a strange or unknown phenomenon but 11-y-o nckx would have wow'd so hard).
<lfam>And it reminds me of how speed enables new kinds of inventions. 40 years ago, it wasn't possible to compute cryptograhic hashes fast enough for e.g. Git to exist
<nckx>Humans are really bad at thinking more than 2 or 3 compounding changes ahead.
<lfam>It's so true
<lfam>And we are really good at enforcing the status quo
<lfam>Changing the subject, can anybody recommend a USB Type A to HDMI adapter that will work with linux-libre? Like, I want to add a video output to a computer that only has a USB port available. I do not need HDCP to work
<lfam>Or maybe this type of product "just works"?
<dstolfa>there are few things more satisfying than cleaning up ~1000 lines of code of cruft without losing functionality and improving quality
<lfam>:)
<vagrantc>lfam: i haven't had great luck with such devices
<vagrantc>tried a few over the years ...
<lfam>vagrantc: I found one from a trusted brand (Startech) but they say it only works on Windows and that it doesn't work on Linux :(
<lfam>I suppose I could also do USB -> composite / CVBS
<vagrantc>is it usb 2.0 ?
<nckx>I've never used such a product, so I guess I'd start with a particular (not too new) model and search for reviews & grep the kernel tree.
<vagrantc>as i'm guessing that is barely even fast enough...
<nckx>For example { USB_DEVICE(0xeb1a, 0x5051), /* Ion Video 2 PC MKII / Startech svid2usb23 / Raygo R12-41373 */
<lfam>The port is USB3. The product I found is <https://www.bhphotovideo.com/c/product/1416628-REG/startech_usb32hdes_slim_usb_3_0_to.html/reviews>
<nckx>I dunno.
<lfam>I think there are plenty of capture devices, but I am looking for an output device
<vagrantc>if only marketing information included the usb id ... it would be trivial to check :)
<nckx>IME with these devices, you can't even be sure which chip you end up getting.
<lfam>Luckily my city has a good shop for this kind of thing. So I won't have trouble returning anything
<nckx>Search results for MCT T5-302 or MCT U3-A8500 does not return anything hopeful.
<nckx>*do
<jonsger-laptop>xfs did some file system checks during boot, but the system acutally boots :)
<reily>Is it possible to configure guix etc files (such as /etc/guix/channels.scm and /etc/guix/machines.scm) via guix system? If not, would it be possible/desireable to add this to guix-service?
<nckx>That's normal, it's Guix, not XFS. Great news, jonsger-laptop, and thanks for testing!
<nckx>jonsger-laptop: If the checks bother you, you can set (check? #f) in your file-system.
<jonsger-laptop>I doesnt bother, only wasn't sure if the file system is corrupt or so...
<nckx>Hm, I still feel like something's not right though. skip-check-if-clean? *should* be #t, which should skip the fsck altogether. Hm.
<nckx>Oh, two hms, that's not good! ☝
<nckx>I'll try to reproduce this. But it is not indicative of corruption, don't worry.
<jonsger-laptop>there is nothing to corrupt apart from reproducible Guix bits :)
<Noisytoot>What reason is there to use XFS rather than ext4 or btrfs?
<nckx>I'm going to add a Hardcore Reproducibility Mode to Guix where any exception (like fsck error) during boot immediately reformats your drive and reinstalls Guix from your system.scm. It'll go over great.
<dstolfa>Noisytoot: it's much faster on large files and suited to certain workloads
<dstolfa>for me, anything that needs speed with large files goes on XFS. everything else goes on ZFS.
<Noisytoot>Why ZFS rather than btrfs?
<dstolfa>it does mountpoints and allows me to do zvols for backing storage of VMs (+ a few other things that are a bit nightmare-ish on btrfs at the moment)
<dstolfa>but those are the main 2 reasons
<dstolfa>i've tried using btrfs but i found myself fighting it more than getting the stuff i need to do done
<dstolfa>and since i don't distribute ZFS to anyone and just use it on my own systems, i don't really have any of the usual concerns
<lfam>Speaking of btrfs, coreutils 9 will use CoW copies by default: <https://lwn.net/Articles/870372/>
<nckx>Fecking finally.
<nckx>But yay!
<nckx>‘wc uses avx2 instructions to count lines’ reads like a parody, but great.
<jonsger-laptop>^^
<podiki[m]>speaking of filesystems, is it expected that /gnu/store/.links will be ginormous? last I checked I was near 10M files
<podiki[m]>that's what caused me to use large_dirs in ext4, which is not good (grub doesn't support)
<robin>podiki[m], idk but mine has a million+ files
<podiki[m]>I ask since I know I wasn't the only person that hit on using large_dir and got bit by it. maybe a warning somewhere (not sure where, in installation? file system manual chapter?)
<podiki[m]>I don't know if anything bad happens if ext4 chokes on that directory, I don't think so, but you see syslog warnings about file system which always worry me
<jgart>hi guixers!
<jgart>this test seems to fail: https://github.com/mahmoud/glom/blob/master/glom/test/test_cli.py#L147
<jgart> https://paste.sr.ht/~jgart/aa4b965320092a61b60035b222c574fab4285bd2
<jgart>any thoughts on what might be missing in the python-glom package?
<jgart>package definition: https://bpa.st/IVYQ
<jgart>> res = subprocess.check_output(['glom', 'a', '{"a": 3}'])
<jgart>do I maybe need to patch the glom cli executable?
<lfam>podiki[m]: Yes, it's expected that directory is large
<reily>b
<podiki[m]>lfam: anything "bad" if e.g. ext4 can't make more files there? (not sure what it does exactly, besides complain)
<lfam>Not sure... probably
<podiki[m]>I'm now on btrfs, but thinking of some advice or notice we should put, since the large_dir flag for ext4 is for that, but no good with grub
<lfam>It's been discussed extensively before but I don't remember the salient points myself
<podiki[m]>hm
<lfam>It's currently proposed to gently suggest users away from ext4
<lfam>As it's not really suitable for Guix, at least by default
<podiki[m]>at the very least maybe just warning against large_dir anyway, since guix has that large directory
<lfam> <https://bugs.gnu.org/50768>
<singpolyma>What would people use if not ext4?
<lfam>Something designed in this century. Like xfs, btrfs, zfs, etc
<podiki[m]>oh wow, what random timing
<jgart>Any help is much appreciated
<podiki[m]>thanks lfam, I'll respond there about this
<podiki[m]>I think still ext4 will be fine, modulo the warnings there
<podiki[m]>any good reason why that is one giant directory and not divided up anyway?
<lfam>With ext4, the defaults are insufficient for Guix in at least two ways: You can run out of inodes, and the directory hash index is too small
<singpolyma>lfam: btrfs isn't really ready for production use though is it? Always hearing horror stories
<Noisytoot>I use it
<dstolfa>singpolyma: horror stories are from people who try to use it in really complex environments. btrfs works just fine for most people
<lfam>singpolyma: Btrfs is used in production in a lot of places. The horror stories are at this point an obsolete meme
<dstolfa>e.g. if you use RAID56 or something with btrfs, then yes you will have a horror story of your own
<lfam>On the other hand, ext4 fails for Guix users frequently
<dstolfa>but if you just use btrfs on your normal system, you're fine
<singpolyma>I'd love to use zfs since it's really the only good option, but then licensing bah
<podiki[m]>I'm on btrfs now too, though would have been interested in xfs or zfs (xfs getting there it seems, in guix)
<lfam>podiki[m]: Probably the reason is that it was designed and tested on a small dataset
<dstolfa>singpolyma: there are no licensing issues for ZFS use, just grey area for distribution
<dstolfa>you can compile ZFS on your own and use it just fine (and certain people would disagree that you can't distribute it, as well)
<podiki[m]>lfam: you mean ext4?
<lfam>podiki[m]: I was talking about why the .links directory is designed the way it is
<podiki[m]>ah
<lfam>Also, take note of the fact that multiple NAS companies base their products on btrfs
<dstolfa>(and that suse + fedora default to it)
<lfam>Yeah. I think that, at this point, it's at least as good as ext4
<podiki[m]>btrfs snapshots I imagine are quite nice on other distros, guix doesn't need it (for the system, your own data is something else)
<lfam>The other thing is that, during the early "horror story" phase of ext4, social media did not really exist. So the meme of "ext4 will eat your data" was never founded
<lfam>But there were many bugs
<dstolfa>most people don't care what filesystem they use, in which case btrfs is perfectly adequate
<podiki[m]>speaking of, I too ran into btrfs swap subvol not being started with shepherd at boot (fine manually starting); this was discussed here before, I'll submit a bug report
<lfam>It's rather recent that people trust ext4
<dstolfa>unless you *know* why you're going out of your way to use a file system, you can use anything
<lfam>That's a good point
<zacchae[m]>podiki: You can start it manually? I get "invalid argument", and it is the same swap file I use on another OS
<podiki[m]>zacchae: yes, if I just do sudo shepherd start swap-.. (I forget the exact line right now), it works
<podiki[m]>zacchae: I'll submit a bug report later today, please check later and chime in; some people have it working, seems to be an ordering issue maybe (name? what subvol?)
<zacchae[m]>I get the same error if I run swapon /swap/swapfile, or herd start swap-/swap/swapfile. I guess I should try remaking it from guix before saying something on the bug report, just in case.
<podiki[m]>it will be good to see different configurations people use anyway
<podiki[m]>no reason it shouldn't work also, it is just a swap file
<nckx>‘Just a swap file’ didn't used to be a thing on btrfs at all, but I'm years out of date. Just saying ‘just’ is a loaded word.
<zacchae[m]>On an unrelated note trying to update qutebrowser crashed my computer (twice) by eating up all 16GB of RAM I have. It looks like there are no substitutes avail, probably for this reason. I'm thinking it might have something to do with guix trying to use all 16 of my cores. Is there a way to restrict core count? I don't see any such option in guix package.
<nckx>zacchae[m]: --cores :)
<nckx>Related: --max-jobs (for multiple parallel packages/derivations).
<lfam>--cores and --max-jobs are "common build options": <https://guix.gnu.org/manual/en/html_node/Common-Build-Options.html>
<lfam>That means they can be used with any command that may build things, such as `guix package`
<zacchae[m]>nckx: Thanks! I see now it was under common build options, not guix build
<nckx>It's under guix package --help, which you can grep, which is what I personally recommend. The manual is less ideal for this particular task.
<nckx>It does understandable human prose things like ‘don't repeat the same paragraphs 17 times’.
<podiki[m]>nckx: understand about the "just" but my knowledge of btrfs is limited an only recent, so I don't know the history. at least currently there instructions to create it, pretty similar to a swapfile on another fs
<podiki[m]>indeed the "just" in "just works" often does inordinate heavy lifting ;)
<zacchae[m]>podiki: I remade the swapfile, and now I can start it. IDK how/why it worked on the other os, but not guix
<podiki[m]>Interesting. But still doesn't start at boot?
<zacchae[m]>I'll test as soon as qutebrowser finishes (or crashes my system again, though that's unlikely because I'm using half cores, and just gained 16GB swap)
<nckx>podiki[m]: I'm glad to hear it's supported now!
<podiki[m]>I too have had to make a swap with some recent big compiles (and less optimized games that eat memory) even with 16gb
<nckx>zswap has always saved me from such indignity.
<nckx>(…zstd of course! 😃)
<singpolyma>IME once you touch swap your system becomes unresponsive and you end up having to reboot anyway...
<zacchae[m]>Only using 8 cores and RAM usage spiked to 12GB o.o
<lfam>The dreaded "cannot build missing derivation" problem: <https://ci.guix.gnu.org/build/848351/details>
<zacchae[m]>singpolyma: Having your swap on an NVME drive helps
<nckx>singpolyma: I have a very different experience (touching swap constantly with only the expected slowdown, nothing more), so it varies greatly.
<nckx>I mean, it's not fun, and you should start filling the buy-more-RAM penny jar, but I've never had to reboot.
<singpolyma>zacchae[m]: isn't that a good way to kill the drive?
<lilyp>yep, SSD hate swapping
<roptat>so much so that guile won't swap :p
<roptat>I wonder why though, but "guix pull" happily exhausts my 2GB of memory, without ever touching my 8GB of swap :/
<lilyp>to a lesser extent they also hate /tmp
<lfam>"Kill the drive" vs "use the drive" :)
<roptat>I don't know if anyone investigated why it's taking so much memory?
<lfam>It's Chromium, roptat.
<zacchae[m]>I don't do it often. TBH it only happened when my emacs had a memory leak (not sure which package. It went away with an update randomly). My system got slow, but I was able to kill emacs just fine.
<lilyp>hmm, I experience something similar (not necessarily with Guix) in that the OS tends not to swap unless it really needs to (i.e. hitting those 8Gs of RAM first)
<roptat>yeah, it's a good thing that it doesn't swap too early, but in my case, it never swaps for guix (the rest swaps, but guile ends with out of memory error while the swap is mostly empty)
<lilyp>that's... strange
<roptat>lfam, yeah sorry, not really on topic, but I'm a bit exasperated because I can't understand this behavior
<drakonis>i have email now
<drakonis>at last
<roptat>yeah :)
<roptat>congrats :)
<drakonis>through gandi, but still.
<drakonis>i'll have it moved to my guix vps soon
<nckx>drakonis: Still cool!
<yosys-questions>I am unable to launch postgresql demon on guix, looks like 'guix install postgresql' doesn't start it automatically. I looked at https://guix.gnu.org/manual/en/html_node/Database-Services.html .. and adding the snippet to /etc/config.scm does nothing upon reboot (no information in /var/log/messages). Any help is appreciated!
<lfam>Did you reconfigure your system after editing config.scm, yosys-questions?
<yosys-questions>Ah, I did not!
<lfam>You gotta do that :)
<lfam> https://guix.gnu.org/manual/en/html_node/Using-the-Configuration-System.html
<yosys-questions>is there any other way to do it? say with herd?
<lfam>Herd is used to control services, but you still need to configure your system to have a postgres service. That is done by editing config.scm and then reconfiguring
<nckx>No, but ‘guix system reconfigure’ will start new services, like herd.
<yosys-questions>thank you!
<nckx>Once a service exists and you change the configuration, ‘guix system reconfigure’ will be cautious and not restart it, however, so then you will need to ‘herd restart <foo>’ by hand.
<nckx>It's not ideal, but it's also not a trivial thing to get right.
<yosys-questions>I see .. ok, that makes some sense
<lfam>There's a substitute for qutebrowser now
<vagrantc>act quick, before a dependency gets updated! :)
<nckx>So tempting.
<nckx>I knew it, I knew it when I bloody wrote it: https://git.savannah.gnu.org/cgit/guix.git/commit/?id=69f37702dfcda776a190d5c40fad8518469ce3c4
<nckx>jonsger-laptop: That should fix your phantom fsck. ☝
<nckx>The problem is that it's gated by check?, so anything like ‘check-if-dirty? #t’ could be misleading in a context where check? is implicitly #f. If anyone has a better name idea, shoot.
<nckx>I considered ‘check?-if-clean?’ but apart from being ugly it feels just too clever for its own good.
<jonsger-laptop>I first need to reboot, got a kernel crash related to nw device :)
<nckx>Are you testing ppc64 or something similarly fancy?
<nckx>Otherwise: erk.
<nckx>Erk in both cases, but still.
<jonsger-laptop>nope, but linux-libre ^^
<moshy>Guix has now migrated to 5.14 branch, might be semi related to the move from 5,13,x
<moshy>And now on a mission to build all the icedtea and openjdk versions :>
<nckx>Thank you for beta-testing my kernel o7
<yosys-questions>@nckx reconfigure for adding a simple postgresql is taking awfully long. Is it something to live with? Or is this coupled with the fact that I haven't updated my system in 4 months?
<ramaero>Hi, a couple of years ago I noticed that there was a good momentum in development of the guix GNU/Hurd system. Then it stalled. Was it this discussion that killed that project? https://lists.gnu.org/archive/html/l4-hurd/2020-09/msg00000.html
<apteryx>ramaero: your breaching our code of conduct; please calm down and keep the discussion civil
<ramaero>Too many bad words? Sorry
<apteryx>yes, we try to keep the atmosphere friendly around here
<apteryx>I don't think development of the Hurd development ever stopped, it's just always been slow paced.
<lfam>That was useful
<roptat>I don't even understand how this is related to guix...
<moshy>nckx: i only think 5.14 ever had two crashes, but both were boot-related and non-fatal.
<nckx>Sorry for missing the above.
<civodul>ditto
<civodul>i think it's a case where we can and should kick the person right away
<nckx>Hell, I would've.
<nckx>IWBN if my client supported highlighting certain words only in certain channels but it's not something I'll switch over.
<awb99>I just installed guix sd with XFCE. Are there some standard packages that you guys can recommend me? Seems like fonts, auto disk mount, screensaver, etc. that there are lots of packages missing.
<nckx>moshy: Non-fatal boot-time crashes? Those sound elusive, where can I get some 😉
***john__ is now known as gaqwas
<moshy>awb99: I highly recommend adding "sound" to "use-service-modules" to always use pulseaudio to avoid apps crashing. Also recommend gvfs and xfce4-whiskermenu-plugin packages
<awb99>how would I do this "use-service-modules" ?
<moshy>sudo nano /etc/config.scm at line 5, mine's currently (use-service-modules desktop networking ssh xorg sound)
<moshy>nckx: Probably might be my specific laptop, intel icelake hardware isn't the most stable from my experience xD
<nckx>Ah, no experience.
<moshy>understandable. i can't recommend it in general, although it does appear to play fine with 3D acceleration without needing extra firmware
<roptat>moshy, just adding the module won't do anything to your system though
<awb99>do I have to do "guix install sound" first ?
<moshy>actually it does. i needed to do that to stop apps from having no sound or causing them to crash outright
<awb99>after I add this to config.scm, do I have to restart the guix daemon?
<moshy>after you do that, "guix pull" then "sudo guix system reconfigure /etc/config.scm" then reboot
<awb99>thanks a lot!
<moshy>also guix install pavucontrol, then try running and quitting pavucontrol multiple times, to see if it no longer locks on "Establishing connection to pulseaudio server"
<roptat>moshy, I'm pretty sure adding a module to your config.scm simply makes variables/services/etc available for you to use, but doesn't change your os. So either you also added a service, or the pull fixed something, or it's placebo effect :)
<moshy>roptat: It makes Pulseaudio the default ALSA driver, from what I've read.
<roptat>mh, something's weird in that story, maybe it's doing something I don't understand
<moshy> https://guix.gnu.org/en/manual/devel/en/guix.html#Sound-Services
<roptat>yeah, I don't see anything different from other services: it only makes the services available, but doesn't add anything
<roptat>are you sure you didn't also add a pulseaudio-service-type in your system config?
<roptat>could even be there by default...
<moshy>I see. Then I'm not sure what magic happened that fixed all of my audio issues out of the blue
<moshy>haven't added any new entries relating to sound regardless
<moshy>All I've got is my keyboard layout and &desktop-services
<moshy>and xfce-desktop-service-type
<roptat>moshy, probably "guix pull" solved your issues, maybe you were on a commit that didn't have pulseaudio by default, and after the pull it had?
<roptat>(just checked, it's in %desktop-services)
<moshy>it's a problem I've been having for over a month since i first started using guix with xfce. and ever since adding the word sound to line 5 it just fixed everything
<moshy>or i might be wrong, that could've been fixed in %desktop-services
<roptat>awb99, I would recommend icecat (a rebranded firefox) or ungoogled-chromium
<podiki[m]>speaking of sound (ha), we have pipewire package, is there supposed to be a service related to it or some change to made in a service to use pipewire?
<roptat>it's not that packages are missing, we just don't install any by default ^^'
<podiki[m]>(i know nothing about pipewire, but interested in learning)
<iskarian>lfam: Yes I did send it, it should be under #50493, I also CC'd you :)
<sneek>iskarian, you have 1 message!
<sneek>iskarian, lfam says: Thanks! Did you send that patch?
<iskarian>I don't recall who I was talking with about the missing icons in xfce, but a system reconfigure (without a subsequent guix gc), so it must not be keeping references to whatever has those icons.
<iskarian>a system reconfigure fixed it*
<awb99>are there some examples of cool guix configs?
<awb99>exampels to run cron jobs
<awb99>examples to auto mount drives that get plugged into the pc.
<podiki[m]>I have one for fstrim, but it is not "cool", about as simple as it gets
<podiki[m]>you can use udiskie for that
<awb99>can you tell me how to use udiskie with guix ?
<roptat>awb99, I have my own config here: https://git.lepiller.eu/system-configuration/
<awb99>amazing!! thanks!
<podiki[m]>I can share mine too, though has some non-gnu
<podiki[m]>for udiskie I don't think you need to do anything, just install it (at least in my setup where i use %desktop-services)
<podiki[m]> https://github.com/podiki/dot.me/tree/master/guix/.config
<podiki[m]>(it needs to become an org file that generates the guix config, but haven't done it yet)
<awb99>lepiller.eu has an amazing mailserver config.
<awb99>I want to replace my mailinabox script (this spins of ubuntu server with some bash scripts) with a pure guix based system.
<awb99>I guess a mailserver with guix is way less difficult to administer
<podiki[m]>since this has come up here, this is the bug report for btrfs swap: https://issues.guix.gnu.org/50788