IRC channel logs
2023-04-08.log
back to list of logs
<zamfofex>Some concrete(‐ish) thoughts: I wish I could be able to help work on Guix more actively. I wish I could turn those disorganized ideas into concrete actions. I wish I could have some kind of directioning regarding it, though. <mirai>zamfofex: you can always write the ideas down <mirai>it helps organize your thinking and allows for further actions <TristanCottam[m]>I'd like to have a mods field in my minetest-configuration. Since all mods start with minetest-, is it considered polite to convert a list of symbols without the prefix to a list of packages? Should I rather accept a list of packages? Or both? <vagrantc>ACTION hides which is probably more helpful <apteryx>seems the rust-winapi-i686-pc-windows-gnu-0.4 package (and rust-winapi-x86-64-pc-windows-gnu-0.4) are not unpacked in the guix-vendored directory... searching why <apteryx>there's some hack in that python-cryptography package to disregard inputs which names do not start with rust- <apteryx>and these deps start with winapi-, not rust-winapi-... <apteryx>mirai: thanks for all your recent work, it's impressive! <soundmodel>where can I find the description of the "Win32" API of Guix? <soundmodel>anyways, with just starting with Linux dev, I have to say that I'm finding it hard to grasp how Guix is built <soundmodel>I assume that it's far easier for someone who has already developed some other distro <lilyp>I'm not sure what you mean by win32 api, but I'm pretty sure Guix only works on Linux and Hurd kernels :) <soundmodel>The Win32 API is the de facto API that almost all Windows programs use <soundmodel>but I interpreted that in Guix one's expected to use Guile-GTK <soundmodel>sorry I was unclear, I meant what's the equivalent of the Win32 API in Guix <Guest19>hi, i want to hide specific desktop entries. one way i found is to let guix-home create e.g. xonotic-glx.desktop containing "NoDisplay=true" in ~/.local/share/applications/ . This .desktop-file takes precedence over the one in /gnu/store . Is this the optimal way to achieve this or is there an easy way to directly declare the .desktop files in the store itself? <TristanCottam[m]>Turns out I made a mistake in my Shepherd service definition for Minetest, the culprit being that I need to reference a path relative to the active profile, which I don't know how to do. <TristanCottam[m]>All Minetest mods and games install to share/minetest/{mods,games}, how can I refer to this path in make-forkexec-constructor's #:environment-variables? The package sets search paths, but I'm unsure if these can be referred to from here. <Guest19>i want to construct a variable name from strings. i don't understand why this doesn't work: (define (string->symbol "test") 1) can you please help me? <cow_2001>okay, i have cargo culted a define-public module <cow_2001>i've seen people do something like `guix build -L $pathtopackage package-name <TristanCottam[m]>Am I right that specifying a path starting with /run/current-system/profile is unacceptable? <TristanCottam[m]>I mean inside Shepherd service's MAKE-FORKEXEC-CONSTRUCTOR, under #:ENVIRONMENT-VARIABLES? <unfroq>Hi Guix! When I build a package with 'guix build -L . -f ocrmypdf.scm' it tells me: WARNING: (ocrmypdf): `python-pikepdf' imported from both (python-pikepdf) and (gnu packages python-xyz) and a similar warning like this for another package. How can I prioritize the custom packages set in the load-path? My build fails, because the build is pointing to the wrong - old - package, not the one I need to build the package. <mirai>sneek: later tell apteryx 😊thanks <mirai>TristanCottam[m]: that path is not writeable I think <mirai>but regarding the relative path thing, perhaps a chdir will do? <jpoiret>cow_2001: you might run into problems if you use RnRS libraries instead of guile modules <TristanCottam[m]>mirai: Is there no way of converting a FHS path to its profile equivalent? <TristanCottam[m]>If I could just use the search paths defined for minetest inside MAKE-FORKEXEC-CONSTRUCTOR's environment, it would solve everything. <jpoiret>unfroq: you can use (@ (python-pikepdf) python-pikepdf) but I would suggest you just name that variable differently <TristanCottam[m]>And adding "MINETEST_SUBGAME_PATH=/run/current-system/profile/share/minetest/games" feels wrong. <jpoiret>what are you trying to achieve exactly by defining a package that is already in Guix? Maybe we could help you with that <TristanCottam[m]>I'm trying to define a service for minetest, to run it as a server daemon. <TristanCottam[m]>I discovered native-search-paths aren't effective inside make-forkexec-constructor (although I don't understand why they aren't set as search-paths, since they're needed at runtime) <jpoiret>TristanCottam[m]: did you try out adding fields to the configuration record for your service, that are lists of mods/games? then you can just use (string-join (map (lambda (s) (string-append s "/share/minetest/games")) #$(minetest-configuration-games config)) ":") <TristanCottam[m]>I didn't realize every single game/mod has that same directory structure, I can't imagine it not working then. <cow_2001>jpoiret: hmm.. okay. converted. now, when i run `guix build -L . guile-clipboard-speaker`, it also runs the whole program <jpoiret>wdym it also runs the whole program? <jpoiret>TristanCottam[m]: a profile is just a combination of all the store outputs + a little bit of post-processing <cow_2001>i've put this file in guix-package.scm. the rest of the files are also in the root of the git work tree. i really should put everything in their own modules. <cow_2001>jpoiret: it runs the scm script i would like to run when the program is run, not when it is installed <cow_2001>i have to say something positive about the web version of the manual: i love its parenthesis matching colours <cow_2001>though i would have turned it on by default, not just by mouse hover <cow_2001>wait, no. on by default doesn't work. too many same level parenthesis taking the same colour, maybe. <mirai>TristanCottam[m]: I don't know, I haven't done anything of the sort before <mirai>jpoiret: re RnRS vs guile-modules, what kind of problems? <jpoiret>mirai: I believe (guix modules) is only equipped to deal with guile modules <apteryx>ah, we should get our meson-build-system to set --bindir when there's a "bin" output <sneek>apteryx, you have 1 message! <sneek>apteryx, mirai says: 😊thanks <apteryx>that's now supported, since our patched 0.59 onward <jpoiret>apteryx: are you saying that will solve the gtk+ problem on core-updates? 8) <PotentialUser-37>hiall. I'm from Germany os i chose timezone (timezone "Europe/Berlin"). hwclock shows correct time but date shows +1 hour. Do i have to do additional configurations? <jpoiret>PotentialUser-37: you're on a dualboot I assume? <jpoiret>some oses store local time in the hw clock but Linux stores it in UTC <jpoiret>timezone tells the glibc that the local time zone is UTC+2 and glibc does the necessary calculations <PotentialUser-37>to set permamnetnly the correct tiem can i simply set "date" the standard way? <jpoiret>no, I don't think you'll be able to permanently set the time for a vm like this <jpoiret>you can pass options to QEMU to set the proper hwclock i think <cow_2001>how do i make geiser aware of the guix modules? <[>Should I enable compression for /gnu when installing on btrfs? <jpoiret>PotentialUser-37: does hwclock -u give you the right time? <cow_2001>when define-publicing, should i define it with a name inside the (gnu packages ...) hierarchy? <cow_2001>wait, no. (define-module (gnu packages guile guile clipboard) ...) <jpoiret>PotentialUser-37: that's definitely weird <cow_2001>(define-module (gnu packages guile guile-clipboard-speaker) ...) <apteryx>[: it's a good idea, yes! I use compress=zstd with great results <cow_2001>guix --version says 47ea688fd27d0ce0c8ea5481f1f94d0ebc3e37eb, which may or may not be what you're after <quidnunc>Am I supposed to be able to install packages on emacs-next-pgtk (installed via guix) using the internal emacs package manager? <cow_2001>it's an apt install guix type of guix, plus a guix pull and setting a bunch of environment variables in the dot files (and removing some from the system-wide ones) <pusherofbrooms9>quidnunc I have a similar use case. Most packages seem to install just fine via "guix home" but I've seen a handful that pull in emacs 28 as a dependency. They all seem to work in emacs-next-pgtk though. <[>How can I use hosts-service-type to add extra hosts from a file rather than a list (similar to (hosts-file (local-file "/etc/guix/hosts")))? <unmatched-paren>this will create a new service HOSTS that extends HOSTS-SERVICE-TYPE with the provided list of hosts <bjc>and here i was thinking that ‘[’ was unmatched-paren's new handle =) <unmatched-paren>bjc: hehe. unfortunately i didn't realise that was permitted until it was too late :) <glenda>Hi people. I am compiling something, and getting this error: "fatal error: linux/errno.h: no such file or directory". What do I need to install to get it? <glenda>Sorry if it's wrong channel to ask. <unmatched-paren>glenda: you need linux-libre-headers (``guix shell linux-libre-headers'') <glenda>Another problem: gcc: fatal error: cannot execute 'as': execvp: No such file or directory <unmatched-paren>never install it or use it with ``guix shell''; it's for internal use only, i think <unmatched-paren>that's in guix, so you can just exit that guix shell and instead do ``guix shell -D drawterm'' to get all the right dependencies <glenda>Ah, in progress, hope will work, thanks. <glenda>Just Guix repository has outdated drawterm. <unmatched-paren>guix isn't designed for installing things locally with ``sudo make install' <glenda>Let me try, but I don't think it has latest version. <unmatched-paren>cd into the git repo, and run ``guix shell -D guix'' to set up a guix dev environment <unmatched-paren>then run ``./bootstrap && ./configure --localstatedir=/var && make -j$(nproc)'' to build it (this will take a bit of time, i'm afraid) <unmatched-paren>install ``git'' and ``git:send-email'' if you don't already have them <unmatched-paren>create a new branch with ``git branch -c NEW-BRANCH-NAME''; if you don't do this, it'll be quite annoying to manage multiple patch proposals at once <unmatched-paren>then use ``guix show drawterm'' and look at the ``location'' field to determine where the package is defined <PotentialUser-37>Do i remeber correctly that botstar aso . should be done as user and that i could not build some parts of guix whle being root? <unmatched-paren>tell me when you've finished that and i'll explain how to modify the package definition :) <PotentialUser-37>Do i remember correctly that bootstrap-command and the build itself should be done in useraccount and that i had errors building some part when being root ? <unmatched-paren>PotentialUser-37: i'm not sure whether it'd fail, but definitely don't do it as root regardless <quidnunc>pusherofbrooms9: Am I supposed to be able to install packages through melpa? <unmatched-paren>glenda: the other way would be to run ``./pre-inst-env guix edit drawterm'' <unmatched-paren>this will only work if $EDITOR is set to your preferred editor, though <glenda>./bootstrap: line 27: exec: autoreconf: nmot found <unmatched-paren>glenda: the only thing i can think of: have you ``guix pull''ed recently? <unmatched-paren>if it's *really* outdated it's possible your ``guix'' package doesn't include ``autoconf'' as an input, i suppose... <glenda>I will do guix pull for anything anyway. <unmatched-paren>./pre-inst-env is a script that's created during one of the build stages (not sure which...) that sets a bunch of environment variables that tells guile to search for guix modules in the current directory rather than in ~/.config/guix/current, which is where ``guix pull''ed guixes are stored <unmatched-paren>(hence ``./pre-inst-env guix edit drawterm'' opens the right file in the git repo in your editor) <unmatched-paren>PotentialUser-37: okay so this is weird: i have no idea why, but ``./pre-inst-env'' *really* hates sudo <glenda>glenda really hates sudo and make everything overcomplicated <unmatched-paren>so you have two choices: use ``guix system container'' instead, or use this arcane incantation: <unmatched-paren>PotentialUser-37: sudo guix shell -D guix -- ./pre-inst-env guix system reconfigure SYSTEM-FILE <unmatched-paren>also, if you have third-party channels, you need to add ``-L ~/.config/guix/current/share/guile/site/3.0'' onto the end <unmatched-paren>glenda: maybe try closing your current terminal window and opening a new one <rekado>on core-updates qtbase 6 fails its SSL tests <unmatched-paren>because you've been opening a few guix shells, and i wonder if something's interfering... <rekado>(I ran into this while upgrading linphone-desktop, which is almost done) <glenda>Sorry I was away, ordered ThinkPad T42! <PotentialUser-37>built already yesterday on different VM. took some time but finished and also "./pre-inst-env guix system reconfigure" worked straight frowrad...at least without errors and in reasonable time. did same on other VM, then changed parts of freedesktop.scm. Now it seems to build ...like ...all of it again? <glenda>What do you all think about 9front? I'm not sure but I think it's free. <unmatched-paren>glenda: maybe exit that shell and try ``guix shell -D guix -- sh -c './bootstrap && ./configure --localstatedir=/var && make -j$(nproc)' <unmatched-paren>running ``guix shell -D guix'' and running the commands in that shell should be exactly equivalent <unmatched-paren>``guix shell ARGS ... -- COMMAND COMMAND-ARGS ...'' is just "run these commands in the shell and exit'' <glenda>Stranger, okay waiting for it to compile <unmatched-paren>hopefully it should be plain sailing fro-- actually i'd better not say that <unmatched-paren>Guix calls that license "Expat" because *technically* there are two slightly different MIT licenses <unmatched-paren>Expat and X11, which is like Expat except it contains some X-specific stuff (about trademarks, i think?) <unmatched-paren>anyway... once you've built guix, run ``./pre-inst-env guix edit drawterm'' and the package definition should pop up in whatever editor you've got set as $EDITOR <glenda>I guess when using Guix, I should forget about everything I used in other distributions. <glenda>Minute later: So can anyone tell me plase, what is shell? :p <glenda>Recently I threw all distributions to trash, and installed Guix to all machines. <rdrg109>[Q] What's the name of the default display manager that is used in Guix? Suppose I install Guix using the graphical terminal-based installer and I don't change it afterwards (just if this matters, in the installation, I chose "Exams EXWM" when I was asked for choosing a desktop environment) I'm asking because I want to report an issue and I want to be clear on the terms that I'm using. <rdrg109>glenda: exwm is a windows manager, not a display manager. A display manager is a graphical login manager which, in this case, starts EXWM <glenda>no. [ 42%] GUILEC gnu/packages/crates-io.go <rdrg109>glenda: a question out of curiosity, how could I have determined that by myself? <glenda>You can throw rock at Guix developers, so they will tell you <unmatched-paren>rdrg109: the %DESKTOP-SERVICES variable contains an instance of GDM-SERVICE-TYPE (%DESKTOP-SERVICES is included in the system config if you select a desktop in the installer) <unmatched-paren>it is entirely possible to remove GDM-SERVICE-TYPE if you don't want it <glenda>Or easier: Throw your HDD at wall few times, it will remove gdm! <apteryx>rdrg109: 'info (guix) X Window' does mention the default login manager is GNOME Display Manager (GDM) <glenda>unmatched-person :: Is Guix System your main? <unmatched-paren>excellent, but there can be a few UI-related rough edges and i don't think there's enough documentation for the trickier aspects <msavoritias>after I edit the a file in then I have to git-email to send the patch to the mailing list? <glenda>Use printer, then come to FSF and give them paper (joke) <unmatched-paren>glenda, msavoritias: ignore the part where it tells you to use guix style, though <glenda>unmatched-paren: Where are you from? Come to me and do that for me, I will make you coffee for that! <unmatched-paren>glenda: don't worry, the process isn't as scary as the page's length might indicate :) <glenda>Why it's so complicated? Everywhere can just make, make install.. <unmatched-paren>glenda: you don't want to make install Guix because it'll break your system <glenda>I am talking about that I can't just make drawterm. <unmatched-paren>that *should* work, i'm not sure why it doesn't, but it's much better to put in the effort to upgrade guix's version instead <unmatched-paren>because then everyone who wants to use the latest drawterm can just ``guix install'' it :) <glenda>like: git branch -c drawterm-update? <unmatched-paren>okay, now do ``./pre-inst-env guix edit drawterm'' to bring the package up in your editor <unmatched-paren>(it might not open the right editor if $EDITOR isn't set correctly...) <unmatched-paren>ACTION trying to figure out what the new version number should be... <glenda>Sorry, too long link, I can't open. <jgart[m]>unmatched-paren: There is an issue with that package. Are you able to point it out <jgart[m]>'replace' may only be used within 'modify-inputs' <jgart[m]>But I think that error might be misleading? <jgart[m]> 26e42d11 – Jacob authored - 2023/04/05 22:59 <glenda>git.9front.org/plan9front/drawterm/HEAD/info.html <glenda>Edited commit and git-version, next? <unmatched-paren>for tarballs, you can just ``guix download URL'', but unfortunately there's no equivalent for git repos yet <jgart[m]>Should glenda update the guix style in this run? <unmatched-paren>glenda: this package uses an old style of writing packages, but updating it might be a bit complex; do you want to do that? <unmatched-paren>it doesn't change anything, but it's good to get everything up to date with the latest style <jgart[m]>I've updated the guix style in that paste <jgart[m]>glenda: make sure to import #:use-module (guix gexp) <jgart[m]>glenda: which I still need to read and review ;() unmatched-paren <glenda>Okay, copied that pasta. I don't think I understand gexp, what to do with it? <jgart[m]>Just copy it. It'll be too much of a rabbit whole right now I think <unmatched-paren>glenda: all you really need to know at the moment is that #~ creates an expression that is "deferred" until build time, and #$ lets you access things from the outside world <unmatched-paren>glenda: if you do wish to read that post, you'll need to read its two predecessors as well <jgart[m]>unmatched-paren: Can you explain why you need to "access it from the outside world to begin with" <glenda>Can you just tell me what to do put in that file or what to do next? <jgart[m]>The reader of that statement will not know why you need to access it from the outside world to begin with <jgart[m]>glenda: Just copy my pastebin and build it <jgart[m]>And add your name to the copyright statement at the top of the file <glenda>Here: Copyright (c) 2021 <iyzsong@member.fsf.org>? <jgart[m]>make -j5 && ./pre-inst-env guix build drawterm <jgart[m]>glenda: follow the same syntax as the others <unmatched-paren>oh, yeah, you'll want to run ``guix shell -D guix -- make -j$(nproc)'' <jgart[m]>just see the others at the top of the module for an example <unmatched-paren>you don't need to be in a shell for ``./pre-inst-env guix build ...'' <jgart[m]>glenda: Did you already run `guix shell -D guix -- make -j$(nproc)`? <glenda>I mean, do I need to replace current copyright or add my below? <glenda>I have runned earlier: guix shell -D guix -- sh -c './bootstrap && ./configure --localstatedir=/var && make' <jgart[m]>glenda: When it comes time to commit, see other commits that add a package for an example of the commit style <jgart[m]>glenda: Do you know if you are currently in a guix shell? <jgart[m]>You need to be in a guix shell in order to build the package <unmatched-paren>glenda: you might as well just be inside a guix shell for the whole process though <jgart[m]>unmatched-paren: Are you normally not in a guix shell when building new packages? <glenda>Maybe I like looking at compilation process for hours? <jgart[m]>when building new packages in a checkout, that is <jgart[m]>But why would you want to not do it "outside" <jgart[m]>glenda: Don't do the above twice as now you'll be in a sub guix shell <unmatched-paren>and if you want to install the new drawterm, ``./pre-inst-env guix install drawterm'' :) <glenda>Thank you for helping unmatched-paren <glenda>So let's wait one eternity for it to complete <glenda>fatal: Server does not support shallow clients .. Failed to do a shallow fetch; retrying a f ull fetch... Is that ok? <unmatched-paren>glenda: sounds like the git.9front.org git frontend really does live up to its name! :D <unmatched-paren>(i'm pretty sure it's fine; looks like the 9front git system is, uh, very primitive, that's all :)) <unmatched-paren>i think not supporting shallow fetching crosses the line of "simple" into "primitive" :) <glenda>What's next? Throw keyboard to wall <glenda>It shows copy5right, asks Stage this hunk? <unmatched-paren>(git add -a doesn't ask for confirmation, so it's quite risky [what if you accidentally added a file you didn't mean to, for instance]) <glenda>There also added empty line, say no? <glenda><stdin>:75: new blank like at EOF. <glenda>warning: 1 line adds whitespace errors. <glenda>I said yes, and it said that after <glenda>I just removed line, and git add -p again <glenda>Sorry, just on 9front files must end with empty line, so lol <glenda>What's next again? (cannot scroll, sorry) <glenda>git commit first, and then read that, right? <unmatched-paren>your commit should look like one of the other commits that updates a packages <unmatched-paren>* gnu/packages/plan9.scm (drawterm): Update to <new commit, truncated>. <glenda>Literally write <new commit, truncated>? <unmatched-paren>GNU has this really pointless commit message formatting style called ChangeLog... <glenda>I mean, you said first line, then third line <unmatched-paren>(1) create branch (2) build guix (3) make change (4) rebuild and test (5) make commit (6) send patch to mailing list <unmatched-paren>also, once you've finished, switch back to master, so you don't accidentally base any other new branches on update-drawterm: git checkout master <glenda>And like that I can contribute to Guix? <glenda>perfect! I will learn it later, but now tell me what next, git pull? <glenda>Maybe I am too sleepy, but I honestly can't understand that manuall. <unmatched-paren>that one is the most important section (it tells you how to send a patch) <jgart[m]>glenda: TLDR: `git send-email --to="guix-patches@gnu.org" -1` <jgart[m]>make sure you have git send-email set up <glenda>Can I just save it, and use my mail client? <jgart[m]>lots to learn if you're starting from not knowing any of this stuff but don't worry <mirai>glenda: in theory “you can” but in practice it either mangles the thing or it makes for a poor reviewer experience <unmatched-paren>that adds a marker to the patch that tells the committer what commit it's based on <glenda>fatal: base commit shouldn't be in revision list <mirai>simply use git send-email, it will become ingrained in no time <unmatched-paren>for me it doesn't work unless i do git branch --set-upstream-to=master first <glenda>Where do I put that: [sandemail] smtpserver= ... smtpuser = ... etc <glenda>smtpserver = mail.autistici.org .. smtpuser = unixcat@anche.no .. smtpencryption = ssl .. smtpserverport = 465 .. correct? <jgart[m]>glenda: does your smtp server use port 465? <jgart[m]>run my tldr above or what unmatched-paren said <glenda>After saying yes, I think it's stuck. <jgart[m]>I would need more context to debug that further <glenda>Does it have any option to debug? Log file? <unmatched-paren>searching is only turning up actual errors like "failed to initialise smtp" <PotentialUser-37>this is smtp issue? Does tcpdump show activity? is target server/port contacted? <kozo[m]>Hello Guix, I am using guix shell and am testing the creation of udev rules. The rule is not being created in /etc/udev/rules.d/ and I can't expose or share that path as it's already symlinked, just that it's empty when in the container. Anyone have a suggestion of how I could proceed? <jgart[m]>Can you share the file that you are currently doing that with? <unmatched-paren>barring that the only thing i can think of is that the mail service itself is having issues at the moment <kozo[m]>jgart, sorry, checking if you are talking to me or you are helping glenda <glenda>Yes I think that it can be server issue <jgart[m]>sharing your file would avoid a lot of assumptions about what we think you are actually doing <kozo[m]>The appimage I am trying to run requires the .rules file that I have. After reading the reference manual, I can't figure out how to get it into /etc/udev/rules.d/ within the container <glenda>Ah, and also I remember I tried to use Icedove recently, and smtp didn't worked too. <glenda>I think it's my mail provider issue, I emailed them. <kozo[m]>I created a package locally on my machine that installs it and I also defined a custom rule on my local machine to do it but I don't know how to pass/use those for the container <glenda>unmatched-paren <-- I guess we have to just wait reply from A/I now? <kozo[m]>Could I symlink it from my machine into the container? <glenda>no. Last post: Some mailboxes will be temporarily unreachable next sunday due to maintenance work on one of our services. (Mar 17) <glenda>unmatched-parent :: Anyway, thank you a lot for help, and I surely will learn that and will annoy you later with my questions! I will write when I get reply from A/I and/or solve smtp troubles. <glenda>sneek: later tell unmatched-parent:meow <sneek>glenda, unmatched-paren says: like this <glenda>Also, can you send me links to articles that I can read to learn more about it? <glenda>So I will save them to yet another SOMETHING.TXT <jgart[m]>Ok, let's stop trolling sneek and taking all its' botsnacks <glenda>About contributing to Guix, packages, etc <jgart[m]>Someone should make a Udemy course on Guix Packaging <jgart[m]>Unless Udemy means putting it on a PeerTube instance <glenda>PeerTube? I have never used it I think. <glenda>I used to use Invidious in the past, but recently stopped. <glenda>I have found some content on YouTube that offenses me (and not only) that is really popular, and Google wasn't going to remove it, so I don't use YouTube at all even through Invidious/Piped. <kozo[m]>Should I email the help list with my question as well?