IRC channel logs

2023-12-15.log

back to list of logs

<PotentialUser-35>is it possible to write a new package definition in an inferior? I have a manifest that uses inferior-for-channels, lookup-inferior-packages, and packages->manifest and I want to add some more packages to the manifest that use packages from the inferior as inputs. I know I could just make my own channel and write the package definitions I want and
<PotentialUser-35>add my channel to the inferior but it would be cool if i could just write them into the manifest file
<cnx>could some committer please take a look at the patch for socksify? https://issues.guix.gnu.org/67675
<peanuts>"[PATCH] gnu: dante: Enable preloading support." https://issues.guix.gnu.org/67675
<cnx>i need to for safe html email rendering
<apteryx>is there any reason this-package-input is made syntax instead of just a proc?
<apteryx>it seems to be composed of procedures, not other syntaxes
<apteryx>ah, it uses this-package
<apteryx>which is a macro
<evanc>hi, everyone. I would love to improve my freedom by installing Guix, but unfortunately my graphics card (AMD Radeon rx 6600) requires a non-free firmware and guix won't work with it. Are there any ways I can get away from not-totally-free distros like Arch, while still using my hardware? Thank you!
<isaneran>whassup guix!
<civodul>Hello Guix!
<janneke>o/
<isaneran>\o
<Guest65>Hello, emacs in guix cannot find its C sources, do they need to be installed separately somehow?
<theo4>Hello everyone,
<theo4>I'm new to Guix and I want to make an experiment that runs with `docker compose` as reproducible as possible.
<theo4>Is it a good approach to
<theo4>- use Guix in every Docker container, and
<theo4>- run `docker compose` within a Guix container?
<theo4>Or is there a better approach?
<theo4>Thanks in advance!
<civodul>theo4: hi! i’d be curious to see what’s missing from ‘guix shell -C’ for your use case
<civodul>and whether ‘guix home container’ would be of any help
<civodul>if you go for Docker Compose, i guess you could have one ‘guix shell’ per container maybe?
<civodul>it’s a bit redundant though, dunno
<evilsetg>Is there a way to lookup reverse dependencies of shepherd services? Meaning I want to see which services require a service.
<theo4>civodul: AFAIK, there are two things: 1. the command `docker compose` must be reproducible. 2. the containers need to be reproducible in itself (i.e., for now, I have Debian containers and do `apt update && apt upgrade`).
<theo4>The handy thing about docker compose is that I can run my experiment with a few commands (`docker compose up&; sleep 60 && docker compose down`). Is something similar possible with Guix? Also, can I have a network with dedicated IP addresses for Guix "containers?"?
<rekado>there’s also the swineherd to register and manage Guix System containers with shepherd: https://github.com/BIMSBbioinfo/swineherd
<peanuts>"GitHub - BIMSBbioinfo/swineherd: Let the Shepherd herd Guix System containers" https://github.com/BIMSBbioinfo/swineherd
<civodul>evilsetg: not really, but you can try “herd graph | xdot -” to visualize the graph
<evilsetg>Thank you, that worked for me.
<rekado>I’m on the master branch on commit b681e339fa37f2a26763458ee56b31af1d6a7ec5, and for some reason anything I do causes a complete rebuild.
<peanuts>"guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/commit/?id=b681e339fa37f2a26763458ee56b31af1d6a7ec5
<rekado>is it just me?
<gabber>a source checkout?
<rekado>hmm?
<gabber>there was the mention of deleting some bootstrap.go (i think) preventing that
<rekado>ah, ok
<rekado>thanks
<gabber>YW
<jonsger>maybe we should send an email to guix-devel about this thing as rekado is not the first to run into this issue...
<theotherone>Hello again :) I am trying to setup up pipewire. How can I enable it to be the default sound server and replace pulseaudio with it? My first guess would be to remove the pulseaudio-service-type from my system config. However I am unsure about what to do next since there is no pipewire service type. I installed pipewire via guix. Do I need to configure some custom service or is there already a preffered method of doing this? A pointe
<theotherone>the right direction would be nice :)
<gabber>theotherone: what WM are you using? i start pipewire manually from my sway config (:
<gabber>i also start pipewire-pulse (or what was it called, again?) and wireplumber
<theotherone>gabber: I am using Hyprland from a non-official channel (codeberg.org/hako/Rosenthal). Hyprland has a method for executing a start script. Maybe if I add a call to pipewire there it will work. Or is there more to it? I saw some people copying configuration files for pulseaudio around.
<gabber>theotherone: that should be all to it. of course, if you want and/or need more configuration you'll have to take care of that. but as soon pipewire-pulse takes the requests pulseaudio will not be spawned
<theotherone>gabber: Alright, I'll give it a go. Thanks for the advice :)
<gabber>HTH
<janneke>civodul: did "./pre-inst-env guix build -e '(@@ (gnu packages commencement) gcc-mesboot1)'" work for you?
<janneke>eh, with the new locales patch-set for core-updates
<janneke>ACTION has tried about five times now
<lechner>Hi, what type of keys are in the Guix key ring, please? GPG will not import them because they lack user ids. Thanks!
<lrustand>Hello, has anybody written any networked shepherd services here?
<lechner>lrustand / networked?
<gabber>lrustand: WDYM with "networked service"? one that runs jobs on other machines?
<lrustand>Simply a shepherd service that uses the network in any way
<lechner>lrustand / https://issues.guix.gnu.org/67555
<peanuts>"[PATCH 0/2] Add Heimdal Kerberos system services." https://issues.guix.gnu.org/67555
<lrustand>I'm having trouble with outgoing sockets in any program when started from shepherd, listening for incoming traffic seems to work fine
<gabber>lrustand: i think many of them do in one way or the other - think web server, mail server, loopback-service, ntpd, ssh (:
<lechner>lrustand / does the "service" work when starting it by hand?
<lrustand>gabber: Yes, but those are all daemons that are listening for incoming traffic which works fine, it is outgoing traffic that is not working for me
<lrustand>lechner: Yes, if I start the program manually on the commandline it works fine, but I get a socket error when starting from shepherd
<lechner>what kind of error?
<gabber>ah, i understand! i don't think ntpd listens on incoming traffic though
<lechner>and what port number?
<lrustand>Hang on, I can link you to the issue I created
<lrustand> https://issues.guix.gnu.org/67802
<peanuts>"Shepherd is not able to run simple networked programs as services" https://issues.guix.gnu.org/67802
<lrustand>So they are both email services, one of them fails to open port 993 to fetch email, the other one fails to open port 443 to check if it is running the latest version or something
<lechner>lrustand / should those be cron jobs?
<lechner>also, doesn't davmail fail on creating port 443?
<lrustand>lechner: no, davmail is a gateway service to allow using IMAP for Outlook addresses and this needs to run as a daemon to listen for connections from the IMAP client (in my case offlineimap). Offlineimap is also usually ran as a daemon, at least this is how I have used it previously (on other distros I have used it as a systemd service).
<lrustand>lechner: Yes, davmail is failing on 443
<lechner>do you run any web services on that equipment?
<lechner>for offlineimap, the error is incomplete
<lrustand>No, and also davmail is not listening on 443, it is just trying to fetch whatever from a https url
<lrustand>that is the whole error from offlineimap
<lrustand>it doesn't say anything more than that
<lrustand>Anyway, how can I get outgoing traffic to work in shepherd services?
<lrustand>Is there anything that needs to be enabled for it to work normally?
<lechner>lrustand / they work
<lrustand>they work?
<lrustand>what?
<lechner>lrustand / does davmail have to be invoked with -server? https://manpages.ubuntu.com/manpages/focal/man1/davmail.1.html
<peanuts>"Ubuntu Manpage:
<lrustand>I run davmail with those exact arguments as listed in the server when running it from the commandline, and then it works fine. And also in my systemd service
<lrustand>lechner: the server option is already set in my config file
<lechner>lrustand / it would be better to serialize
<lechner>that's the guix term to create a configuration file in the store from the "guix record"
<lechner>configuration record
<lrustand>this is my first try at writing shepherd services, so probably room for improvements all around
<lechner>i am not sure the offlineimap error contains the actual error message
<lrustand>well it does
<lechner>please point to it
<lrustand>what do you mean?
<janneke>civodul: builing without --verbosity=1, it seems to hang here:
<lechner>likewise, i do not see an error in the davmail log. the checks for remote updates succeed. then they program exits
<janneke>checking whether sscanf needs writable input... no
<janneke>checking for struct pst_processor.psp_iticksperclktick... no
<janneke><hang>
<lechner>lrustand / it's just the trace
<janneke>(Configuring in host-i686-unknown-linux-gnu/gmp)
<lechner>lrustand / i think you want to see what's behind that color, such as "port busy" or EPERM 'IMAP4 protocol error: socket error:'
<lrustand>yes, the davmail thing does not provide a good error, but the last thing it does before exiting is to try to create an outgoing socket, just like offlineimap. So these two failures share that in common
<lechner>lrustand / why does davmail not require 'networking?
<lrustand>because I hadn't found that yet when I wrote that one
<lrustand>but from what I can understand that is only applied if it is not a home service?
<lechner>sorry, i have no experience with home services
<gabber>where / how can i check how debian builds a specific package? i am trying to package RPi.GPIO (a Python package) for GUix
<lrustand>All services I have seen have an if statement that only adds requirements if not running as home service
<lechner>gabber / https://sources.debian.org/src/rpi.gpio/0.7.1~a4-1/debian/rules/
<gabber>lechner: thanks!
<lechner>gabber / and perhaps equally important https://sources.debian.org/src/rpi.gpio/0.7.1~a4-1/debian/control/
<lrustand>lechner: I checked the output from offlineimap again, and it is definitely all the output
<lechner>gabber / this page is your friend https://tracker.debian.org/pkg/rpi.gpio
<peanuts>"rpi.gpio - Debian Package Tracker" https://tracker.debian.org/pkg/rpi.gpio
<lechner>gabber / the links i sent from from the right "browse source code"
<gabber>any idea what that `dh' call is? i.e. `dh $@ --with python3 --buildsystem=pybuild'
<lechner>debhelper / hang on
<Franciman>what is your strategy for compiling latex documents? Create a guix shell containing all the dependencies each time?
<Franciman>Or just plainly install everything in the user profile?
<Franciman>in the former case, it would be nice to have a tool to extract the packages you need to have in the shell environment from the sources
<gabber>Franciman: optimally i'd have a manifest for a document with the gist of the dependencies, but i use $(guix shell texlive) (more often than i'd like to admin)
<Franciman>ahahah
<Franciman>well what's the downside of installing everything in the user profile?
<lechner>gabber / debian control files are makefiles. debhelper provides phony targets for all the build statages, but that got complicated very quickly. then joey hess came up with this https://penta.debconf.org/dc9_schedule/attachments/99_debhelper-slides.pdf
<Franciman>just to keep things uncluttered?
<gabber>Franciman: yes. and it's a bit too big to keep in my home profile IMO (but that's a matter of preference)
<Franciman>ah right, i also have a home profile lol
<Franciman>makes sense yeah
<Franciman>then we need this tool, gabber
<Franciman>to look for all the usepackage and report them
<gabber>Franciman: that'd be great! i'd happily help you craft and/or test your patch if you wrote it!
<lechner>gabber / basically, dh invokes what Guix calls a build system. i wrote much of the Haskell build system in Debian so any follow up questions are game, but 'dh' probably does not matter for your inquiry
<Franciman>gabber: oh i thought a separate tool. You want to have a sort of guix import?
<gabber>lechner: oh my! thanks! i think my head just burst a little with some steam escaping through the cracks
<lechner>yeah
<lechner>sorry about that
<lechner>just pick what you need, please
<gabber>that's not your fault! your explanations are actually super helpful! thanks again!
<lechner>gabber / maybe this is easier https://www.youtube.com/watch?v=h7wXEC-0Rc8
<peanuts>"not your grandpa's debhelper - YouTube" https://www.youtube.com/watch?v=h7wXEC-0Rc8
<lechner>gabber / or this https://www.debian.org/doc/manuals/debmake-doc/ch05.en.html#dh
<peanuts>"Chapter??5.??Basics" https://www.debian.org/doc/manuals/debmake-doc/ch05.en.html#dh
<gabber> just trying to build this definition https://termbin.com/lbxe results in an error (that i think comes from the header-files in the project not having guards?) - but looking at the debian packaging rules doesn't help much either. and i don't see myself manually (substitute* ) all the header files in the pacakge definition
<lechner>what's the error?
<lechner>i'm not a python person, however, and it may be more of a Guix question---which I'm struggling to learn
<gabber> https://termbin.com/0aue
<gabber>np it's a C/ld error ;)
<jlicht>hey guix
<lechner>gabber / you probably need a Python expert who understands the interaction of the source code with whichever version of setuptools.py we provide when building a module via CPython. from afair it looks like a missing DEFINE that prevents the header guards from working
<janneke>hey jlicht
<lechner>gabber / i do not see common.h being loaded more than once in the codebase
<gabber>it is once from common.c and once from py_pwm.c and once from constants.c - or am i erring now?
<gabber>lechner: do you actually see header guards? i can't spot a single ifdef in there
<gabber>which does strike me odd
<dthompson>anyone feel like updating guile-gnutls? :)
<dthompson>it's a bit old but I'm worried about breaking guix or something
<gabber>dthompson: this should be caught by qa when you send in the patches, no?
<dthompson>yeah I suppose so
<dthompson>I like to just directly commit minor version updates but I can send a patch >:]
<isaneran>sup
<gabber>isaneran: \o
<lechner>gabber / imo they are not needed. it's very simple code. i haven't done any meaningful C in twenty years, but it may be related to C standards around tentative definitions https://stackoverflow.com/questions/24782693/explanation-of-tentative-definitions-in-c
<lechner>gabber / here https://stackoverflow.com/a/1490777
<lechner>gabber / "GCC now defaults to -fno-common" https://gcc.gnu.org/gcc-10/changes.html
<peanuts>"GCC 10 Release Series Changes, New Features, and Fixes
<lechner>gabber / "In C, global variables with multiple tentative definitions now result in linker errors" you need -fcommon
<gabber>lechner: thank you so much!
<isaneran>it shouldn't be too hard to make a pipewire service
<isaneran>I have been wanting to do it for a while
<gabber>can i pass these flags directly to GCC when there's no ./configure or makefile involved in the process?
<lechner>gabber / i'd look at the python build system. the gnu one has something for flags, but i'm not sure
<lechner>usually, you want to augment by adding flags, not replacing
<gabber>thanks. it seems that the python build system uses the gnu build system's build stage. i dug a bit into it but i think this might not be a job for friday evening..
<gabber>thanks again for your help!
<gabber>@lechner
<lrustand>lechner: I found out it the socket error was probably not the issue. I hardcoded my IMAP password in the offlineimap config instead of having the service rely on gpg to decrypt it, and now the service comes a little further before crashing for a different reason
<lrustand>For some reason offlineimap is now receiving a sigterm very shortly after starting
<lrustand>This sigterm must come from shepherd I think
<lrustand>The service is working totally fine now, except that something external is telling it to shut down
<lrustand>Why would shepherd sigterm its own service? Do I need some kind of flag to allow it to be a continously running process?
<lrustand>Herd is also saying that the service failed to start even before the process has actually exited, but after the sigterm has been sent. I think herd wrongly thinks something has failed and therefore it send a sigterm to shut down the process
<lrustand>Does shepherd expect the process to fork?
<lrustand>It receives sigterm after exactly 5 seconds every time
<lrustand>AHA! Finally figured it out! It was the pid-file parameter. Shepherd expected the programs to create this pid-file and when it did not exist after 5 seconds shepherd sends a sigterm. I had just blindly copied this parameter from other services and expected that this was just the path to where shepherd could store a pid-file, not that the program had to create it
<civodul>lrustand: hi! i was about to answer, but it’s too late
<civodul>so yes, if the PID file doesn’t show up in a timely fashion, shepherd terminates the process and considers that it failed to start
<civodul>maybe the doc should be clarified?
<lrustand>Yep, and just removing that parameter did the trick
<lrustand>When I found the actual shepherd documentation things were more clear to me
<fjl>Answer to "maybe the doc should be clarified?" is always yes
<lrustand>I had only read the Guix documentation for services and read some code for existing services before this
<civodul>ok
<civodul>so the answer might well be “no”, fjl :-)
<lrustand>It would also be very helpful if shepherd could tell what and why it is doing instead of just silently killing processes
<fjl>might be, but you need to override default first ;)
<lrustand>I agree with fjl, that the answer to that question is always yes
<civodul>lrustand: you mean in addition to saying that the service failed to start?
<lrustand>Yes, it could say in what way it failed, ie missing pid-file
<civodul>oh yes, makes sense
<lrustand>And to tell that it was indeed shepherd that sent the sigterm
<civodul>right
<civodul>that’s an easy fix, let’s see…
<fjl>I mean that one needs to defend the existing docs, not provide a super valid reason for clarification
<civodul>yup!
<janneke>hmm, why does:
<janneke>./pre-inst-env guix shell --bootstrap --no-grafts -e '(@@ (gnu packages commencement) gcc-mesboot1)'
<janneke>want to build gcc-mesboot1?
<janneke>ACTION only wants its depqndencies without adding (lambda _ *crash*) or something, and source ../environment-variables ;)
<jackhill>lilyp I've reported a problem I noticed on gnome-team: https://issues.guix.gnu.org/67838 Unfortunatly, I'm stuck figuring out what's wrong.
<peanuts>"[gnome-team] epiphany pdf.js can't save pdf" https://issues.guix.gnu.org/67838
<vivien>peanuts, epiphany has been updated to 44.7 but it’s not in gnome-team yet, see #67162
<peanuts>vivien: Hi, for comments please contact my maintainers at https://codeberg.org/lechner/irc-helper-bot
<peanuts>"[PATCH] gnu: epiphany: Update to 44.7." https://issues.guix.gnu.org/67162
<vivien>Woops I meant jackhill
<vivien>Did you check this one?
<vivien>jackhill, probably it’s related to this: https://bugs.webkit.org/show_bug.cgi?id=260771
<peanuts>"260771 REGRESSION(266247@main): PDF "Save" button does nothing, "Print" function also broken" https://bugs.webkit.org/show_bug.cgi?id=260771
<vivien>If so, it should fix itself automatically when we land the webkitgtk update.
<vivien>I found this because I searched for “PDF” in the issue tracker of epiphany, and I followed the link in https://gitlab.gnome.org/GNOME/epiphany/-/issues/2163
<peanuts>"PDF "Save" button does nothing (Flatpak) (#2163) ? Issues ? GNOME / Epiphany ? GitLab" https://gitlab.gnome.org/GNOME/epiphany/-/issues/2163
<mwette>I'm working a package inherit. An example I'm using has something like (substitute-keyword-arguments (package-arguments xbinutils)
<mwette> ((#:configure-flags flags)
<mwette> #~(cons* "--enable-multilib"
<mwette> #$flags))))
<mwette>and I'm using (substitute-keyword-arguments (package-arguments xbinutils)
<mwette> ((#:configure-flags flags)
<mwette> #~(cons* "--enable-multilib"
<mwette> #$flags))))
<mwette>but I get a `"flags" not defined' error. Any ideas?
<mwette>Oops. Wrong replacement: it's
<mwette> (substitute-keyword-arguments ((#:configure-flags flags)
<mwette> #~(delete "--without-headers" #$flags)))
<vivien>You need to do ((#:configure-flags flags #~'()) ...) I guess, to give a default value in case #:configure-flags is not set in the inherited package.
<Franciman>what the heck is #~'
<vivien>#~'() is like '() but in a gexp
<Franciman>nice
<Franciman>thanks. I preferred a slightly more standard scheme :P but guile is okay
<mwette>vivien: thanks -- I'll give that a shot
<mwette>I was missing the (package-arguments ...) argument.
<childebert>Bonsoir à tous. J'aimerai bien faire un serveur Annuaire LDAP avec GuixSD mais je n'arrive pas à trouver la fonction sheme pour activer le service.
<cmiller>How can I configure QEMU to allow non root to start a VM? For example I need to execute the Bash script of a guix system vm with sudo. I have QEMU installed through Virtual Machine Manager.
<childebert>cmiller Hello you can use the daemon libvirtd.
<cmiller>I have libvirt installed. (that is what I mean with QEMU through Virtual Machine Manager). How can I run the qemu command without sudo because of libvirt?
<childebert>cmiller but you dont need to use sudo for create a vm. Look here : https://guix.gnu.org/fr/manual/en/guix.html#Virtualization-Services
<peanuts>"GNU Guix Reference Manual" https://guix.gnu.org/fr/manual/en/guix.html#Virtualization-Services
<cmiller>childebert: I don't meant those kind of VMs. I meant guix system vm. This returns a Bash script with a QEMU VM. Basically the same as Virtual Machine Manager but lower. Those need to run as root.
<nckx>Why do you need to run them as root?
<childebert>cmiller ry changing the permissions of the vm with chmod perhaps?
<nckx>ACTION reads backlog.
<nckx>Are you not in the kvm group, cmiller?
<nckx>Having to run QEMU as root is really weird and probably not recommended.
<nckx>Franciman: Gexps are a Guix thing, not a Guile thing.
<Franciman>oh kewl
<nckx>The point is kind of to be nonstandard.
<nckx>Because Gexps are 🌈 Guix magic 🌈.
<cmiller>nckx: Because it says this https://paste.debian.net/1301232/. No, I am not in the kvm group. Will try that.
<peanuts>"debian Pastezone" https://paste.debian.net/1301232
<vivien>childebert, je ne sais pas ce qu’il faut comprendre par « je n'arrive pas à trouver la fonction sheme pour activer le service »
<vivien>Un service est activé en faisant dans un terminal $ herd start <nom du service>
<childebert>vivien pour activer le service dans le config.scm.
<nckx>OK, meanwhile I'll upgrade my ‘running QEMU as root probably not recommended’ to a ‘considered harmful’.
<vivien>childebert, dans la section 11.9.19 LDAP Services, le manuel explique qu’il faut utiliser (service nslcd-service-type) https://guix.gnu.org/manual/devel/en/guix.html#LDAP-Services
<peanuts>"GNU Guix Reference Manual" https://guix.gnu.org/manual/devel/en/guix.html#LDAP-Services
<vivien>Je n’ai jamais touché à ce service donc je ne sais pas si ça marche
<vivien>(en plus c’est même pas herd start c’est herd enable, il a eu 0/20)
<vivien>(je parle de moi si c’est pas clair)
<childebert>vivien A je viens de trouver la fonction pour faire le serveur ldap. Il se trouve plus bas mais étrange la dernier fois il n'y été pas. Ca a du etre mis récemment.
<childebert>vivien merci quand même pour ton aide.
<childebert>Je vais enfin pouvoir rester sur GuixSD définitivement.
<childebert>Bonne soirée à tous ! good night everybody.
<vivien>childebert, par défaut guix publie une version du manuel qui date de la dernière version (c’était il y a longtemps)
<vivien>Il faut utiliser mon lien avec "/devel/" dans l’URI
<vivien>Perso je l’ai mis en favori pour ne pas le perdre !
<childebert>vivien mais si tu regarde dans la version du guide 1.4 la fonction pour faire le serveur n'est pas.
<childebert>J'avais pas regarder dans la version (actuel).
<cmiller>nckx: guix system: error: supplementary group 'kmv' of user 'cm' is undeclared
<cmiller>nckx: nvm, typo
<nckx>Good, because I'm in (supplementary-groups '("kvm" …)) and never declared anythin'.
<nckx>You might also need to log out for it to take effect, depending on how you're testin'.
<cmiller>nckx: Yes, need to reboot. I have a question. guix system: error: symlink: Permission denied: "/var/guix/profiles/system-21-link.new". I forgot sudo. Why does it not yell at me directly before it does the work?
<nckx>Because it's a cheap operation at the end off all the work, and rerunning it (e.g., with ‘sudo) won't do that work again. Should be close to instant.
<nckx>*of
<nckx>And: I didn't write that code, but I agree with the sentiment ‘don't try to “check” whether something will fail, just try it, and report any errors’ as long as it won't waste a lot of user time.
<cmiller>nckx: Ah so it is meant like that. I wondered because it allows to run a failing command, although it is known to fail.
<nckx>So instead of reporting an error it should instead… report an error? (I'm being a bit silly, but I do think I have a point :)
<cmiller>nckx: Sometimes it is nice. (for example guix system reconfigure <file> && reboot). Now I go to sleep because building takes time and wakeup to an error. Sure it is no big deal but yeah, guess this is more of a taste thing than something technically.
<nckx>The counterargument is that the command should return very quickly after adding sudo, but it's true, it's a trade-off. I've encountered software that buggily ‘checked’ whether it could do X and failed, where it would have succeeded if it had simply *tried* X, and find that far more frustrating, hence my bias here.
<cmiller>I also noticed that there is no bash completion for --image-type
<nckx>Hm, good point, although I'm not sure if we complete --foo={x,y,z…} elsewhere at all?
<nckx>It would be nice regardless.
<cmiller>(as of -t iso) since I forgot the exact name
<nckx>It would require parsing the output of --list-image-types in the completion script, so would be rather ad hoc, but useful.
<cmiller>and also, is it possible to tell Bash completion it should check if file is of .scm? There is no sense in having other files or is this because people call there config just config and not config.scm?
<cmiller>Just want it to be more idiot proof, because I am one :D
<nckx> https://git.savannah.gnu.org/cgit/guix.git/tree/etc/completion/bash/guix#n302
<peanuts>"guix\bash\completion\etc - guix.git - GNU Guix and GNU Guix System" https://git.savannah.gnu.org/cgit/guix.git/tree/etc/completion/bash/guix#n302
<nckx>(I added that TODO, and like all good TODOs, called it a day and never did.)
<nckx>It's certainly possible, just needs more codez.
<cmiller>Okay good to know. There is also a problem with guix style auto complete. There is none for -f flag
<cmiller>nckx: Since you wrote it, can you recommend something on how to write Bash completions? Maybe I can fix it myself. Bash completion is currently black magic for me.
<nckx>I don't think the completion script knows about ‘guix style’ at all, it hard-codes some commands and guix style it's relatively ‘new’.
<cmiller>nckx: Ah and it reminds me of psftools. Wanted to add that package just to find out it is already present in the fontutils.scm file, by you. I checked issues.guix.gnu.org but I guess it requires Git logs as well to be 100% sure (someone asked on IRC as well, how do I know if someone is already working on packaging a package?).
<nckx>cmiller: I contributed to it, but didn't write the whole thing. I don't know of any good guides, I just read the script and continued in the same fashion, although I did later redesign the mechanism a little bit. I recommend starting that way unless you find a great guide elsewhere.
<cmiller>brb, rebooting
<nckx>Welcome back. Have a wall of text hit you in the face. There is no official ‘intent to package’ announcement system. Finished packages are usually posted to the issue tracker before they are committed, occasionally a WIP one is, and only rarely will someone reply that they were just about to submit the same package. But it happens. I don't understand the part about git logs though. If you want to check whether a package is already in Guix,
<nckx>why not simply pull & check guix (guix package -A, or guix search)? (Serious question.) There's also https://packages.guix.gnu.org/ although it might lag slightly. For non-master branches, I'll admit the situation is less clear, and don't have a simple answer beyond ‘grep the git checkout on likely branches’. Fortunately, the vast majority of new packages land on master. But because I don't grok your question, I probably missed your point.
<peanuts>"Packages ? GNU Guix" https://packages.guix.gnu.org
<cmiller>nckx: I just meant that I forgot, that some people do commit directly (like you) and I kinda fooled myself with that mistake. I also wanted to mention with that text of myself, that beginners may not have any clear direction because the manuals do not give any hints. In that case, the person was kinda dissapointed to have wasted his time packaging something that was already packaged.
<cmiller>nckx: I am now in the kvm group and it works. But how did you know that?
<cmiller>nckx: Since you are present, I also have another question if you don't mind.
<nckx>I sympathise with the duplicate work, but I just don't understand why they didn't check Guix *itself* for psftools, rather than an activity tracker of sorts. To me it's like checking someone's diary to see whether they [remembered to write down that they] bought tomatoes, rather than just checking the bag.
<nckx>cmiller: When I get a permission denied error, I check the permissions of the file in question, and /dev/kvm is ‘obviously’ writable by a group called ‘kvm’, so I added myself to that group. Simple! But that's me. I know it's not ‘obvious’ to everyone.
<nckx>There's also (guix)Build Environment Setup.
<nckx>cmiller: Shoot.
<nckx>ACTION away a bit tho'.
<trnry>Is there any typescript in the Guix repos at all? I was thinking about packaging Vieb, but I don't see even the typescript compiler
<cmiller>nckx: Nah. I was that guy with psftools. I wanted to start (since I required it the day before) and found already the package I wanted to add (yes, of course this is obvious to check Git, but at that time, I did not think about it) I mentioned this, because it was kinda amusing to me. Than there was this other guy on IRC. This happened maybe a month ago. It was about (I think) some Emacs package. I just want
<cmiller>to say, that maybe we should mention it in the manual, since humans are not rational. My guess is, that if someone contributes, he will probably read the manual on how to contribute, and will read that sentence. Now he learns it and adds it to his "workflow". Thinking is hard and so on, especially for people that don't do those things on a daily base and since it happened twice, it is for me an indication that it
<cmiller> would may add value.
<nckx>trnry: No.
<nckx>cmiller: Mention what exactly in the manual?
<trnry>Bummer. Is there any particular reason why or is it just that nobody has had the time to do it yet?
<cmiller>nckx: I added a package to Guix. I repulled the Guix repository. I rebuild Guix and got the same error like this guy https://lists.gnu.org/archive/html/guix-devel/2020-04/msg00232.html. I freshly cloned Guix in a new directory and did the same steps. It works. Does that mean, I should always reclone the Guix repository?
<peanuts>"Build fails on 'doc/guix.de.texi': @ref reference to nonexistent node..." https://lists.gnu.org/archive/html/guix-devel/2020-04/msg00232.html
<cmiller>nckx: That they should check on the latest revision if the package is available. I am on 80 days Guix, there is no psftools. There is on master.
<nckx>trnry: I have no idea. All I found so far is <https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00594.html> which doesn't clarify matters. If TypeScript depends on or builds on NPM, then that's probably the main reason, as NPM is regarded as unpackageable due to circular dependencies and missing source code (AFAIR, not a JS'er).
<peanuts>"Compiling JS in guix (typescript, babel, browserslist, webpack)" https://lists.gnu.org/archive/html/guix-devel/2018-12/msg00594.html
<cmiller>Does someone know why my long message was split in multiple?
<nckx>cmiller: Err, sorry to disappoint, but I don't personally consider ‘before adding a new package to Guix, make sure the package isn't already in Guix’ something that needs to be said, and manual space isn't actually free. But maybe a majority will disagree :)
<nckx>IRC limits lines to 512 lines, and the actual message payload is less than that.
<nckx>Err, 512 bytes, of course.
<nckx>Most clients just preemptively split messages to be safe.
<trnry>Gotcha. I'm also not a JS'er, but that world always seems to make things way too complicated. Feels like it should be possible to build since I _think_ that npm only manages downloading dependencies and running build scripts.
<nckx>Using thousands of tiny packages (the proverbial leftpad, of wait that wasn't proverbial) doesn't jive well with the Guix model. You'd probably be looking at huge (human-)unmaintainable autogenerated .scm files with tremendous churn. Not impossible, but probably best suited to a third-party channel run by masochists.
<nckx>*or wait
<mwette>I keep having issues with "guix search" or "guix install" seeing packages I've defined in a module in my channel directory. It will see one of the packages , but not others. Any ideas?
<mwette>I have run "guix build -f foo.scm" for each package at end of file and proved that they all build.
<nckx>Is this channel public? (If not, I can suggest only silly things like ‘are the variables?’)
<mwette>Not public, I think. Though I don't know how that is specified.
<mwette>It's in development, but paste may help: https://paste.debian.net/1301240/
<peanuts>"debian Pastezone" https://paste.debian.net/1301240
<trnry>nckx: I completely agree with you, but it's a bit of a shame to totally preclude very popular stuff like VS Code
<nckx>Well, it's not a policy prohibition, if somebody submits a VSCodium package that can be reviewed before the heat death of the universe it could well be merged, it's just an immense undertaking. Even nonguix (which does try to build things from source where possible) nopes out by packaging the binary tarball instead.
<cmiller>nckx: Did you saw my question with building the Guix repository?
<nckx>No, I missed it.
<nckx>This behaviour is certainly not intentional, building from a sane-but-not-brand-new checkout should work.
<nckx>Feel free to report a bug, I'm going AFK a bit.
<cmiller>nckx: (last question, enough DoSsing you with questions) https://guix.gnu.org/en/manual/devel/en/guix.html#Building-from-Git I don't really understand the block with "If you are unable to use Guix...". Should I now use "guix shell -CPW" or "guix shell -D guix help2man git strace --pure"?
<peanuts>"GNU Guix Reference Manual" https://guix.gnu.org/en/manual/devel/en/guix.html#Building-from-Git
<ecbrown>cmiller: yes, then ./bootstrap, ./configure with the var thing, make
<apteryx>hm, I'm using 'package-name' from (guix packages) in another software (guile-hall), and I'm getting: In procedure map: Wrong type argument: #<syntax-transformer package-name>
<apteryx>is this not a procedure?
<apteryx>the import looks like: #:autoload (guix packages) (package-location package-name)
<apteryx>geiser says it's a procedure: $7 = #<procedure %package-name-procedure (s)>
<nckx>cmiller: That if clause is for people who don't have Guix yet (for example, building Guix from source on a stock Debian system without an installed Guix) and can't use ‘guix shell’. Doesn't sound like you.
<apteryx>hm, it worked on a 2nd try
<apteryx>shenanigans