IRC channel logs

2024-06-18.log

back to list of logs

<f1refly>when I run a script in my normal system environment I use the shebang /usr/bin/env sh, but when I use guix shell --container /usr/bin/env is not available, even when I include coreutils in the shell. Is there something I can do to fix this?
<eikcaz>Anyone hosting a public read-only git repo on a guix machine?
<f1refly>--emulate-fhs creates /usr/bin, but theres no env script in it :/
<eikcaz>I know I can make a git user and configure some things to make it safe, but I'd rather just not allow ssh connections
<eikcaz>I'd rather do something like nginx, but the appropriate nginx module would have to be packaged already
<eikcaz>anyone know of something like that?
<eikcaz>f1refly: include 'coreutils' package
<f1refly>eikcaz: I did, coreutils is in my manifest.scm
<eikcaz>well it works for me:
<eikcaz>$ guix shell -C coreutils --emulate-fhs -- ls -l /usr/bin/env
<eikcaz>lrwxrwxrwx 1 zacchae users 59 Jun 17 22:44 /usr/bin/env -> /gnu/store/x71h9shjs5w87ci0qyhhyrjcas2b0b1d-profile/bin/env
<f1refly>Interesting
<eikcaz>notice that /usr/bin is just a symlink to /bin. Maybe that is tripping you up?
<f1refly>my container doesn't have a /usr at all
<f1refly>i run `guix shell --container --network --preserve='^DISPLAY$'`
<f1refly>and my manifest is just "openjdk@17:jdk" "coreutils" "make" "git" "sed" "findutils" "libx11" "libxxf86vm" "mesa" "gtk+@3"
<podiki>You need emulate fhs, that makes a /usr
<f1refly>my original command included --emulate-fhs, that will yield sh: /usr/bin/env: No such file or directory
<f1refly>I just noticed I don't even have `ls` available, something is messed up
<f1refly>when I don't provide -m manifest.scm everything breaks
<eikcaz>if ls doesn't work, then it is because you don't have coreutils, which explains why you don't have /usr/bin/env
<f1refly>when I do provide it it works great though. huh.
<eikcaz>you need to add your directory to ~/.config/guix/shell-authorized-directories
<eikcaz>otherwise it will not auto-detect manifest.scm. See 7.1 of the manual
<f1refly>It is authorized. I don't get any complaints from guix either
<f1refly>If it wherent authorized I'd get that warning about an unauthorized manifest
<eikcaz>do you see "guix shell: warning: no packages specified; creating an empty environment"?
<f1refly>No
<f1refly>guix shell: loading environment from '/path/to/my/manifest.scm'...
<f1refly>and then the container prompt
<f1refly>interestingly, javac is available
<eikcaz>Not sure then. I would 'cat ./manifest.scm' as a sanity check to make sure what I see in my editor is the correct manifest.scm
<eikcaz>otherwise, no idea
<f1refly>now it all works!
<f1refly>aaaaahhh!
<f1refly>ghost in my machine :(
<f1refly>even /usr/bin/env is present...
<f1refly>seems like it was a bit too early to celebrate
<f1refly>passing --emulate-fhs causes the profile to barely contain anything
<f1refly>If i remove --emulate-fhs from the command line the profile listed in $GUIX_ENVIRONMENT contains all expected packages
<f1refly>checking the profiles manifest file, it lists the only package in the profile is glibc-for-fhs and nothing else.
<f1refly>so implicit manifest loading works without --emulate-fhs, but when the switch is enabled the only package is glibc-for-fhs.
<f1refly>is there a way to make guix shell spew debug output at me?
<mange>What sort of debug output are you looking for? I think you can use --verbosity=3 and --debug=5 to set log levels client and the daemon, respectively. I think these only control build output, though.
<podiki>f1refly: right, i think emulate fhs doesn't work with manifests
<podiki>it should, but needs to add glibc-for-fhs to the manifest; so need to handle if it is/isn't there as that's what emulate fhs adds
<sturm>Where does `guix lint` get it's proposed synopsis and description from?
<podiki>what do you mean? doesn't it just check the one written in the package definition?
<Googulator>Getting an illegal instruction error in google-highway's math_test (in the check phase) on a Core 2 Quad (Kentsfield, 65nm). Is this a known issue?
<sturm>podiki: No, I'm running `guix lint` on my in-development MediaGoblin package and it's giving me a completely different synopsis/description. I just had a look in the Guix source and it looks like it's hitting up some GNU infrastructure because it's a GNU package. The proposed text seems to match what's listed here: https://directory.fsf.org/wiki/Mediagoblin
<peanuts>"Mediagoblin - Free Software Directory" https://directory.fsf.org/wiki/Mediagoblin
<podiki>ah intersting
<podiki>hadn't run across that
<ben46>Hey guys, I'm a big noob and I'm just having a hard time understanding declarative package management. I don't really understand where the packages are supposed to be declared and how? In particular, "use-modules" and "use-service-modules" are confusing me. I'm having a hard time finding documentation on this, everything I find is about managing
<sturm>thanks peanuts!
<ben46>packages imperarively like you would with any standard package manager?
<peanuts>sturm: Hi, for comments please contact my maintainers at https://codeberg.org/lechner/irc-helper-bot
<sturm>oh, it's a bot
<apteryx>podiki: for GNU packages, it gets it from the GNU website or similar
<apteryx>f1refly: using extra command lines disables autoloading of manifest.scm files
<apteryx>you then have to use -m manifest.scm
<apteryx>this is supposedly in the name of making things less confusing, but it seems to cause some confusion too :-)
<apteryx>s/extra command lines/extra arguments to 'guix shell'/
<lactose>Still at a bit of a loss to get xdg-desktop-portal working. Pipewire and D-Bus seem to be functioning, but I still can't screen share from sway.
<iyzsong>oh, there are many build failures on core-updates due to missing libxcrypt for '-lcrypt', thinking if i could write a script to automatic update those packages..
<PuercoPop>I'm trying to package a project that has a Makefile but doesn't autotools. Is there a way to skip the configure phase as it fails?
<mange>You can probably just delete the phase with (modify-phases %standard-phases (delete 'configure)).
<janneke>PuercoPop: see the manual: https://guix.gnu.org/manual/en/html_node/Build-Phases.html
<peanuts>"Build Phases (GNU Guix Reference Manual)" https://guix.gnu.org/manual/en/html_node/Build-Phases.html
<janneke>and like mange says
<PuercoPop>Thanks I had just found an similar example! https://github.com/genetics-statistics/GEMMA/blob/b6b8eb6acbf533109edd3004e5d81fdb42ec9102/guix.scm#L69
<peanuts>"GEMMA/guix.scm at b6b8eb6acbf533109edd3004e5d81fdb42ec9102 ? genetics-statistics/GEMMA ? GitHub" https://github.com/genetics-statistics/GEMMA/blob/b6b8eb6acbf533109edd3004e5d81fdb42ec9102/guix.scm#L69
<janneke>nice
<janneke>also, i should have pointed to the devel manual; for the archives: https://guix.gnu.org/manual/devel/en/html_node/Build-Phases.html
<peanuts>"Build Phases (GNU Guix Reference Manual)" https://guix.gnu.org/manual/devel/en/html_node/Build-Phases.html
<f1refly>apteryx: I think it's confusing that both the regular output and the debug output are basically the same, it doesn't matter if I include the --manifest or not. To me, as a user who doesn't has much of an idea why certaine decisions where made it is very weird that guix shell behaves completely different when I want to run it with --container and doesn't indicate it at all.
<f1refly>It doesn't help that there's no mention of it in the manual section in guix shell. It tells me why I might want to use a container shell, but it doesn't mention the interaction with manifest loading
<f1refly>podiki: adding glibc-for-manifest doesn't change things, the built profile still only contains that one package and nothing else :(
<podiki>f1refly: i meant i don't think emulate-fhs will work with a manifest
<f1refly>oh, okay
<f1refly>sad
<podiki>it wants to add a package to a profile, but doesn't handle doing that with a manifest
<podiki>it would be nice to, i just never did it :(
<podiki>the question is how to handle it: add the fhs glibc silently to the profile? warn and say it needs to be in the manifest (refuse to launch with emulate-fhs and a manifest if glibc is not listed)?
<podiki>shouldn't be difficult
<f1refly>I see. It's a good question.
<f1refly>I personally would prefer the second variant but I see why it maybe needs a discussion.
<podiki>yeah that's what i was thinking so it is explicit. if given a manifest and emulate-fhs, error if glibc (or glibc-for-fhs) is not in manifest
<podiki>maybe warn if "glibc" saying it is being replaced with a variant
<Guest46>Hello #guix, I have a interesting bug. My guix describe is not linking up with my guix pull, and it linking to commit from may. Is there anyway I can force my guix-profile to 'refresh'?
<mange>Hi Guest46! What output do you get from `which guix`?
<Guest46>~/.guix-profile/bin/guix
<mange>I see. That means that you have guix installed in your user profile, and this is shadowing the one from guix pull (which goes in ~/.config/guix/current). The easiest solution is to uninstall guix from your user profile, possibly by running `guix remove guix`.
<Guest46>Ah! Thank you, mange! I was worried I had a more serious problem on my hands.
<adanska>Hey guix! I'm trying to debug the authentication error that i've been talking about on the mailing list. how can i invoke guix build from the repl? im trying to use the repl debugger to see where the call to the git authentication mechanism is coming from.
<adanska>oh! didnt see the meta commands
<adanska>... how can i build a manifest in the repl...
<adanska>ITS WORKING???? running it in the repl for some reason works??
<adanska>i mean its getting a bunch of substitutes now so i assume its working!!
<adanska>maybe it was a caching issue like ludo' was suggesting...
<adanska>oh god i didnt know it a whole `guix system init` with no substitutes
<adanska>wait... no it doesnt? huh..
<adanska>anyway the tests passed for the non encrypted version! now to try the encrypted version
<msavoritias>hey so Software Heritage replied and the reply is very concerning. especially if there is a discussion supposed to be happening with guix people about it
<msavoritias>the email was about not having my code included in the LLM by default btw. which i cant, it will be added anyway
<msavoritias>I sent an email to the Guix devel mailing list with some next steps. If there is no major outrage I am planning to start sending patches for the changes soon
<msavoritias>(the documentation part and the blog post part that i mentioned. plus the rules and the CoC and such)
<Googulator>Any ideas about this google-highway failure? https://paste.debian.net/1320650/
<peanuts>"debian Pastezone" https://paste.debian.net/1320650
<jakef>anything helpful in the build log? see line 456
<jakef>do you have plenty of RAM?
<efraim>line 417: Illegal instruction? check for optimizations like -march=native would be my guess
<efraim>which architecture?
<Googulator>x86_64-linux
<Googulator>CPU is an old Core 2 Quad
<efraim>it should till have SSE2
<Googulator>it seems as if that math test unconditionally tries to use SSE4 and/or AVX without checking for support first
<efraim>can you post the output of 'cat /proc/cpuinfo'
<efraim>ah, that would do it
<Googulator>cpuinfo: https://paste.debian.net/1320651/
<peanuts>"debian Pastezone" https://paste.debian.net/1320651
<efraim>you could try building a newer version with --with-version=google-highway=1.2.0
<Googulator>How do I pass that to guix system init?
<efraim>oh, I guess you couldn't for that
<Googulator>I already tried doing this: https://github.com/Googulator/guix/commit/0157133e335dee50a7da65dd757bbc2bf0eab24d
<peanuts>"HACK disable google-highway math test on x86-64 ? Googulator/guix@0157133 ? GitHub" https://github.com/Googulator/guix/commit/0157133e335dee50a7da65dd757bbc2bf0eab24d
<Googulator>but it doesn't seem to have an effect
<efraim>I would just disable the test in your case
<Googulator>How would I do that for this package definition: https://github.com/Googulator/guix/blob/live-bootstrap/gnu/packages/cpp.scm#L575 ?
<peanuts>"guix/gnu/packages/cpp.scm at live-bootstrap ? Googulator/guix ? GitHub" https://github.com/Googulator/guix/blob/live-bootstrap/gnu/packages/cpp.scm#L575
<Googulator>I'm not that good at understanding Scheme...
<efraim>insert a line before ,@(if (string-prefix ... add #:tests? #f
<Googulator>does indentation matter?
<efraim>no, it just makes it easier to read
<Googulator>seems like it needed a bit more than just #:tests? #f - it was also running the tests during the build (and then again, in the check phase)
<Googulator>& even those tests that did succeed made the machine swap like crazy
<segfault>Hello, I've just recently learned about Guix and find the project very interesting. I am however perplexed by how packages do not appear to have arguments/parameters (as far as I can tell, anyway) like Gentoo does with USE flags. Reading about all the advantages to the functional approach, I expected to find an advanced version of this, but instead
<segfault>it seems like package definitions are listing dependencies in a static manner. Effectively having rules like "PKG_A depends on PKG_B" instead of "With OPT_A=..., PKG_A depends on PKG_B with OPT_B=...". I am assuming there is a reason for it, but I can't figure it out. Could someone point it out to me? Thanks in advance.
<Altadil>segfault: I believe you’re looking for package transfromations https://guix.gnu.org/en/manual/devel/en/html_node/Package-Transformation-Options.html
<peanuts>"Package Transformation Options (GNU Guix Reference Manual)" https://guix.gnu.org/en/manual/devel/en/html_node/Package-Transformation-Options.html
<segfault>Yes. As, far as I could tell, this lets the user rewrite part of a package and replace references to it through recursive rewrite rules, right?
<segfault>It's very convenient, but to get an equivalent to the kind of dynamic (key, value) options I'm talking about, you would need to go over each package that is dependent on the package that you modified (and the packages depending on it, and so on) to see how your newly crafted package should affect that other package's dependencies and build process,
<segfault>right?
<jakef>for that use case, it sounds like you want to modify the package itself, rather than transform it for some special use case
<jakef>which you're free to do
<segfault>No, but thinking about it more, I think the issue is that I've grown used to configuring packages to use/not use different libraries (sound, display, HW manager, etc) through such constraint systems (Portage and its USE flags, limited as they may be). But it's more probable that in most cases, the applications can be compiled with everything
<segfault>enabled, all dependencies pulled, and sort it out during runtime.
<segfault>Thank you for the answers, though.
<ieure>msavoritias, Thank you for the email.
<jpoiret>segfault: the combinatorial explosion of this approach makes it very unappealing
<jpoiret>also it doesn't really mesh well with reproducibility
<futurile>ALL: don't forget that David Thompson (Guile games hacker and working on Spritely Institute cleverness) will be giving a talk online later - roughly 4 hours time - details here - https://libreplanet.org/wiki?title=Group:Guix/PatchReviewSessions2024
<peanuts>"Group:Guix/PatchReviewSessions2024 - LibrePlanet" https://libreplanet.org/wiki?title=Group:Guix/PatchReviewSessions2024
<df0>are these recorded? I'd like to see this
<dthompson>futurile: oh wait, is my time math off? I thought it was in 2.5 hours?
<dthompson>which would be 1pm eastern New York timezone
<segfault>jpoiret: Would it really affect reproducibility, provided such arguments/options are part of the manifest? I am assuming sane default values could alleviate the issue of making it appealing for the users who have no desire to tinker (I kind of assumed people using such an advanced package manager would _want_ to tinker, but it's true other reasons
<segfault>may have made them choose Guix). So yeah, appeal could be an issue. It's definitely a huge additional workload for packagers, too.
<jpoiret>yes, having everything work under 1 possible configuration is already complicated enough, with more choices it's entirely possible users would stumble upon completely broken systems
<futurile>dthompson: no you're right - 13:00 New York
<futurile>dthompson: I live a life of confusion about timezones - my computers are all on UK time, but I'm in France - my watch is GPS and resets itself to local time - I'm just back from London - so at this point all bets are off!
<dthompson>lol!
<dthompson>it's all good
<dthompson>I make timezone mistakes all the time without any of that complexity ;)
<nikolar>just show the timezone next to your clock
<podiki>thanks for the reminder of the talk and for this series, very nice!
<segfault>jpoiret: I see. Thank you very much for the explanations. (y)
<PotentialUser-36>Hi, I have a question regarding freetype2. Currently it is not available on my system. I installed freetype, but this didn't resolve it. Still no libfreetype...
<PotentialUser-36>fatal error: 'ft2build.h' file not found
<graywolf>Hello Guixers, would anyone know what is a "string valued G-expression"?
<PotentialUser-36>Is this package for libfreetype missing? I figured freetype should work.
<ngz>PotentialUser-36 `guix locate ft2build.h' tells me it belong to freetype package.
<ngz>belongs*
<PotentialUser-36>ngz: Ok thanks! Good to learn new guix commands... It still doesn't work though. I installed "system-wide" with guix install..
<ngz>What is reporting the error about the missing file?
<Googulator>How do I find out what's causing Haskell/GHC to become part of an xfce desktop install of Guix?
<Googulator>(I would like to exclude GHC from my build, if at all possible, due to bootstrapping concerns.)
<PotentialUser-36>ngz: For my c++ university course they provided some OpenGLTerminalManager.cpp file. It has this as a dependency.
<PotentialUser-36>I compile with a generic Makefile
<ngz>OK. You may use pkg-config to locate it, or you may point it to the location of the file in the store.
<PotentialUser-36>ngz Ok I will try. Thanks
<podiki>Googulator: take a look at guix graph: https://guix.gnu.org/en/manual/devel/en/html_node/Invoking-guix-graph.html (probably you just want "path")
<peanuts>"Invoking guix graph (GNU Guix Reference Manual)" https://guix.gnu.org/en/manual/devel/en/html_node/Invoking-guix-graph.html
<efraim>Googulator: probably pandoc somewhere
<Googulator>podiki: unfortunately guix graph doesn't appear to work on packages not yet built...
<Googulator>efraim: you're right, pandoc is in the list of packages to build
<Googulator>(but why?)
<podiki>i would guess documentation of packges
<Googulator>ouch, xorg wants pandoc
<Googulator>so basically we can't have a GUI without Haskell :(
<podiki>probably also python and rust (librsvg)
<efraim>gnome definately needs rust, IIRC xfce and mate should be doable without ghc or java
<Googulator>Rust is not an issue - it is bootstrapped already
<Googulator>Haskell is
<Googulator>semi-bootstrapped up to 7.0.2 from generated .hc pseudo-sources - then it's thrown away, and a prebuilt binary of 7.8.4 is downloaded (why?)
<efraim>gssdp perhaps?
<efraim>we weren't able to get another version after 7.0.2 to build. it's fairly frustrating work
<efraim>looks like it's not gssdp
<Googulator>I mean, why binaries and not .hc code?
<efraim>ACTION has to go afk for a while
<Googulator>.hc would at least take any outside GCC binaries out of the chain
<testabc>Hello, I want to ask a question, why Guix users choose it over NixOS?
<ieure>I like lisps.
<podiki>for many I would guess, and myself, because Guix is written in Scheme (from configuration to package definitions) and I love anything Lisp-y
<podiki>:-)
<testabc>how you handled closed source drivers like wifi?
<ieure>I use the nonguix kernel.
<dlowe>Googulator10: can't you push pandoc to another target and only build it if necessary
<dlowe>s/pandoc/the documentation requiring pandoc/
<testabc>thanks for the answers, I will search about the nonguix kernel
<podiki>happening now! (well barring some tech issues): https://www.meetup.com/guix-london/events/300819823/
<peanuts>"Guix London Meet-up (Hybrid) - talk by David Thompson, Tue, Jun 18, 2024, 6:00 PM | Meetup" https://www.meetup.com/guix-london/events/300819823
<Googulator>dlowe: unfortunately it's core packages for a GUI, such as xorg itself, that builds its docs using pandoc....
<installingguixor>hello all
<installingguixor>can i install guix on a root partition using nilfs
<installingguixor>docs say you cant but i want to know if anyone has tried it before
<futurile>installingguixor: you could try asking on the mailing list and searching it's archives
<installingguixor>okay on it
<installingguixor>no matches
<installingguixor>sorry i dont have an email i can use for this right now
<Gooberpatrol66>installingguixor: you can probably manually create the fs and then install guix on it with cow-store
<installingguixor>ill try just that
<installingguixor>graphical wizard didnt work for me anyways
<lykso>Before I strike off on my own: does anyone know if having a separate boot partition under Guix System is a solved problem yet? Working on the MNT Reform and have to support booting from an SD or eMMC while also keeping the root filesystem on a separate SSD.
<installingguixor>wait, i cant have a separate boot partition?
<installingguixor>i have /boot ext2 and / nilfs2
<installingguixor>is that a problem?
<nikolar>huh first time i see someone using nilfs
<nikolar>neat
<installingguixor>ive used it for a couple years now
<lykso>I couldn't find anything in the documentation to support the idea that I could, and I found a few threads of folks being unable to do so from a few years back.
<installingguixor>its a relatively slow fs but really good for a system install since its CoW
<installingguixor>the wear leveling is good too
<nikolar>interesting
<installingguixor>what i did just now was make a snapshot of my old debian install and just rm -r /mnt/*
<nikolar>i was aware of it and had it as a root for one of my vms
<installingguixor>ye
<nikolar>i like cow FSs
<nikolar>i use zfs as my root
<nikolar>eh off topic i guess
<installingguixor>its fine
<installingguixor>i use zfs for data
<nikolar>yeah pretty cool stuff
<installingguixor>for sure
<installingguixor>anyways do you know if i cant have a /boot
<installingguixor>do i have to put everything in the same partition
<Gooberpatrol66>i have a separate boot partition
<Gooberpatrol66>i don't know what that problem allegedly is
<lykso>My understanding was that, because the extlinux config uboot boots from contains references to the GNU store, which would be on the unmounted partition, it would cause problems for people trying to boot under this scheme
<lykso>This is one of the threads that led me to this understanding and which also outlined the approach I was about to try, assuming no "blessed path" had been established yet: https://issues.guix.gnu.org/48172
<peanuts>"support split /boot partition" https://issues.guix.gnu.org/48172
<podiki>Gooberpatrol66: separate /boot or just /boot/efi (what i have)?
<Gooberpatrol66>oh, /boot/efi
<Gooberpatrol66>nvm
<lykso>Okay, cool. Thanks for the feedback. Gonna see what sort of trick I can come up with to make this work, then.
<avp>Hello Guixers! Could someone witch commit access take a look on my patchset that updates "prusa-slicer" to 2.7.4? https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70880
<peanuts>"#70880 - [PATCH 0/8] gnu: prusa-slicer: Update to 2.7.4. - GNU bug report logs" https://debbugs.gnu.org/cgi/bugreport.cgi?bug=70880
<avp>It's been more than a month since the patchset was sent. I would love to use fresh "prusa-slicer" from Guix instead of AppImage. ;-)
<dlowe>heh, I took a stab at this but couldn't make cmake find heatshrink
<dlowe>mostly because I couldn't get the AppImage to work :p
<podiki>working on updating a python program which uses qt (via pyqt) and icons aren't loaded
<podiki>is there some qt wrap phase i might need?
<podiki>...well that lead me to searching and see there is a qt-wrap-program....
<ieure>podiki, Hmm, haven't run into that one specifically. I recently packaged a similar program, and needed to switch to qt-build-system to make it work.
<ieure>podiki, Package def is here, if it's helpful: https://codeberg.org/ieure/atomized-guix/src/branch/main/atomized/packages/video.scm#L36
<peanuts>"atomized-guix/atomized/packages/video.scm at main - ieure/atomized-guix - Codeberg.org" https://codeberg.org/ieure/atomized-guix/src/branch/main/atomized/packages/video.scm#L36
<podiki>i see qgis does a qt-wrap-program
<ieure>It is python+qt, but doesn't have icons.
<podiki>which is, qgis?
<ieure>podiki, No, jellyfin-media-player.
<podiki>woop works!
<podiki>well it is because the program wants to get icons via qt resource (or something like that), not that it is loading its own
<podiki>so it needed QT_PLUGIN_PATH i believe in the end
<podiki>ckb-next is what i mostly copied (needs to add modules and then call qt-wrap-program)
<podiki>now i can actually do the thing i wanted to, which was to use rapid-photo-downloader to download some photos
<podiki>(will push the needed new python package and updates to rapid-photo-downloader after further testing and clean up. was 4 years out of date!)
<freakingpenguin>What's the CLI invocation to submit a patch marked as WIP?
<freakingpenguin>Or patch series rather
<podiki>maybe --subject-prefix='PATCH WIP' ?
<podiki> https://guix.gnu.org/en/manual/devel/en/html_node/Sending-a-Patch-Series.html
<peanuts>"Sending a Patch Series (GNU Guix Reference Manual)" https://guix.gnu.org/en/manual/devel/en/html_node/Sending-a-Patch-Series.html
<freakingpenguin>podiki: That looks right, thanks!
<podiki>welcome!