<zamfofex>I have been trying to update the various packages for Hurd, but I’m unable to create a system image because apparently there are conflicting variants of ‘shepherd’ in the system profile. I think there is something I’m missing about this. If anyone wants to help me out, I wrote some more details here: https://gist.github.com/zamfofex/bc7279a5bddd25e8603c84c799d835dd
<zamfofex>(Any form of help is appreciated, by the way!)
<zamfofex>sneek: later tell attila_lendvai A solution I found was satisfactory enough was to write ‘export CC=gcc’ on my ‘~/.bashrc’, so that it uses GCC by default and I can then just run ‘make’.
<apteryx>raghavgururajan: about x200, yes, sometimes
<apteryx>hmm, I think I finally grok why Bash on Guix sources /etc/profile when invoked in a non-login, non-interactive way (e.g. ssh remote-guix-system 'echo $-'; it has to do with -DNON_INTERACTIVE_LOGIN_SHELLS in the Guix bash recipe, which causes Bash to source startup files such as /etc/profile even when run non-interactively
<apteryx>it seems to me that the most definitive way to get Guix on PATH on a foreign OS for SSH is to replace the login shell used by Guix's bash and augment the PATH accordingly in /etc/profile
<guixy>"Agate is a server for the Gemini network protocol, built with the Rust programming language. It has very few features, and can only serve static files. It uses async I/O, and should be quite efficient even when running on low-end hardware and serving many concurrent requests.
<drakonis>its always a good time to write a new package
<apteryx>ah, I think the login shell must be invoked as bash, not sh
<apteryx>for the record, to get Guix on PATH on a foreign distribution: 1. build Bash with -DSSH_SOURCE_BASHRC and -DNON_INTERACTIVE_LOGIN_SHELLS or use the one from Guix and set the login shell to invoke it (as *bash*, not *sh*). 2. Do the configuration in your $HOME/.bashrc file.
<apteryx>oh, the shell must be listed in /etc/shells as well, at least on buildroot
<lilyp>shouldn't we put profile stuff in ~/.bash_profile tho?
<attila_lendvai>i just sent an updated patch with git send-email, but i had no idea where i am allowed to write extra commentary in the email, so i just sent it verbatim. this all feels somewhat archaic in 2021...
<lilyp>Call it archaic, but the project couldn't really exist if it required non-bootstrappable JS hell.
<efraim>under the commit message is a line like ---, I normally put any extra message there
<PurpleSym>Does anyone know how to debug this message from the daemon? cycle detected in the references of `/gnu/store/a0wcf4bcw8xr24zwys0idah2gvbpprwj-pandoc-18.104.22.168'
<sneek>abcdw, ixmpp says: looks like `guix home` has stopped working for me, despite home.scm still being in ~/.config/guix/current/.../guix/scripts, and me using that particular guix. Any ideas?
<PurpleSym>Ah, thanks civodul! Now pandoc builds if I put everything into one output.
<civodul>perhaps there are other options, splitting files differently
<civodul>abcdw: hi! i think we haven't discussed a date yet, there's still work to do on core-updates-frozen before it can be merged
<abcdw>ixmpp: Provide more details please. I removed the code, which sets the GUILE_LOAD_PATH from rde, because we are moving code to wip-guix-home right now, so you have to set them manually if you still use master branch of rde repo.
<civodul>that's also why i haven't been responsive on wip-guix-home, but i did take a look
<PurpleSym>civodul: It looks like the statically-built mega-pandoc-binary has a stray reference to :lib. I’ll strip down that package to just the binary if possible.
<PurpleSym>And then I’m almost done with Haskell updates.
<abcdw>civodul: ok, I just wanted to know the date to adjust the amount of additional work I'll put in wip-guix-home (I would like to have it included in 1.4). It's already in a working state and I use wip-guix-home for a week now. There are a few question, which not solved yet: 1. Decide on moving a home services to (gnu services ...) or keeping them in (gnu home-services ...). 2. Covering `guix home` with tests. I need a few more opinions
<abcdw>wigust: Other than that I'm ok with merging it to master.
<patrickx>Hey, i am a newbie with guix and try to package emacs tree-sitter. It requires emacd-tsc , however when I try to install this based on the output of guix import I get the following errorIn toplevel form:
<patrickx>tsc.el:26:1:Warning: Package tls is deprecated
<patrickx>Opening TLS connection to ‘github.com’...
<patrickx>Opening TLS connection with ‘gnutls-cli --x509cafile nil -p 443 github.co\
<ixmpp>> ixmpp: Provide more details please. I removed the code, which sets the GUILE_LOAD_PATH from rde, because we are moving code to wip-guix-home right now, so you have to set them manually if you still use master branch of rde repo.
<abcdw>patrickx: Np. Share the output of guix import you are reffering to.
<attila_lendvai>i'm seeing this after pulling master, and i think it's not my fault: (exception unbound-variable (value #f) (value "Unbound variable: ~S") (value (linux-libre-5.13)) (value #f))
<efraim>attila_lendvai: linux-libre-5.13 was removed from guix proper a few hours ago, now the default version is 5.14
<efraim>if you have any extra channels they might need to be adjusted too
<attila_lendvai>oh, i see. i do have that other channel for my laptop, that's the problem then... thanks efraim!
<patrickx>abcdw: Here it is paste.debian.net/1212939
<maximed>patrickx: tsc.el is calling tsc-dyn-get-ensure which tries to access the network
<maximed>And the network is inaccessible from the build environment to close a can of irreproducibility and insecurity worms
<maximed>Looking at tsc-dyn-get-ensure, it appears adding tsc-dyn to propagated-inputs (and native-inputs, because tsc-dyn appears to be required at expansion time) would work
<paul_j>Good morning all. Is there a way to execute guix pull, but without downloading the repositories again? I am trying to fix a problem by editing the files locally. Thanks!
<maximed>paul_j: What are you trying to achieve, exactly? guix pull _needs_ to download the latest version of guix, it cannot predict what the newer versions of itself will look like
<maximed>And the purpose of "guix pull" is to update to the latest version of guix
<paul_j>It isn't a problem with the latest version of guix, but another channel. The download of the channel works correctly, but then there is a build fail when building one of the derivations. I think I know what the problem is, so I want to edit the local file then run guix pull again to see if the problem is fixed. However, I am assuming guix pull will download the repository again and overwrite my changes.
<abcdw>paul_j: You can create a channels file, which references the local repository using file:/// instead of remote and do guix pull -C ./channels
<efraim>you can use a channels file with time-machine, that can get you an older specific commit
<paul_j>efraim: I am resolving an issue with a change in the contents of the latest version of the channel, so abcdw's approach works nicely. As I write this, the guix pull has completed correctly with my modified version.
<vivien>Hi! Do you know how module-reverse-lookup in guile works? The name suggests it will tell me which module defines a variable, but I don’t know how to use it.
<vivien>(I’d like to see if I can use the GOOPS meta-object protocol to have automatic serialization and deserialization of classes, but I need to encode the class name and where it is defined so I can reconstruct it in the deserialize function)
<saile>Hi. I have a problem I couldn't really find much about, but is probably quite basic: I've created a new profile from a manifest and sourced its profile file. I noticed that I wasn't able to run any of that profile's software and that its /bin and /sbin were not actually part of $PATH. Is that something I would need to add myself when enabling a
<lilyp>normally, PATH should be set accordingly, did you by any chance set GUIX_PROFILE to a wrong value?
<saile>I don't think so. I'll just check and come back to you
<awb99>I want to ssh into my machines; I have private keys for all machines; can someone tell me how I can configure this in guix. In other distros, I would edit the ~/.ssh and make entries to a textfile. But I guess with guix I can / should do this differently?
<saile>Right, from what I can see I am doing it correctly when I compare to any example in the docs. I'll try to do it again from scratch
<zamfofex>Hello, Guix! I hate to be a bother and ask again, but since there are more people online now, I have been trying to install Guix with the Hurd on one of my computers for quite a while now, and I have been trying to update the packages for the Hurd to use ‘netdde’. I wrote some definitions to update the various Hurd packages for an OS definition, but I think I’m missing something, because there appears to be a conflict between two v
<zamfofex>apteryx: I’m glad you appreciate my efforts! I just wish I could be able to know what I was missing, though. I think I should continue investigating, but it’s a bit difficult, because I don’t exactly know what I’m looking for.
<apteryx>from a repl, perhaps you can investigate what (operating-system-essential-services your-system) returns, along operating-system-user-services ?
<apteryx>there may be (erroneously) a 2nd shepherd instance somewhere
<zamfofex>Yes, that was my guess too. I think one of my problems is that I don’t know how to start a REPL at all. I have been using ‘(display foo)’ and ‘(exit)’ before running ‘guix system image’ to debug, and that seems fairly suboptimal, specially because the default ‘display’ of values is not the most useful.
<zamfofex>But I tried manually looking for such dependencies by finding the service definitions in their respective files, but that was quickly getting tiresome, I think. If there is some other way to do that more efficiently, that would be fairly useful, I think!
<zamfofex>Oh, there is literally just ‘guix repl’. That ought to be helpful!
<brendyn>I'm getting these cannot link /gnu/store.links/... no space left on device messages again. should i be worried about them?
<attila_lendvai>is there an equivalent of (eval-when :compile-toplevel ...) in scheme? what i want is a macro that based on a compile time value either expands to two define-public forms, or just one...
<singpolyma>attila_lendvai: probably the guile manual is the place to look?
<attila_lendvai>i was hoping for something shorter than the entire manual... :) i have found an example in the buix sources, define-database-entry, but i don't know how to make the expansion conditional. maybe i'll just resort to commenting out/in for now.
<maximed>attila_lendvai: I don't think you need eval-when for that
<attila_lendvai>maximed, most probably not. what i want is a toplevel macro that expands conditionally to two different forms
<maximed>(identifier-syntax ...) can be replaced by syntax-rules or syntax-case + lambda
<maximed>attila_lendvai: What are ‘toplevel macros’?
<maximed>Scheme just has macros, which can be defined on the ‘toplevel’, but also within a procedure
<attila_lendvai>maximed, that looks looks simple, i'll try, thanks! ignore the toplevel part. what i wanted to say is that i want to use it at the toplevel
<maximed>Technically, Scheme macros can't expand to multiple forms, but it can expand to a (begin one-form another-form ...)
<maximed>where one-form and another-form ... are allowed to be definitions
<attila_lendvai>i know all the basics from CL, except maybe the hygienic part. i just need the the local incantations to name them... :)
<maxwell_TGAP>hey my guix is not building and i have no idea why. Its breaking on /gnu/store/*ca-certificate-bundle.drv. It directs me to a log file but there doesnt seem to be anything in it. This is stoping me from running guix pull and guix system reconfigure so im kind of woryed
<saile>I have finally fixed my issue with new profiles not being added to the environment variables. Turns out it was entirely my inexperience with *nix and shells specifically. I was sourcing the profile files of the profiles I wanted inside a script and ran the script in a subshell. It did indeed add the profile to $PATH, it just got lost once the
<saile>script was done. Just leaving this here in case others have ever had the same problem
<zamfofex>A short update about my Hurd endeavors: I was able to build a system image, but it is now stuck at ‘start ext2fs:’ and I’m not fully sure why. I suppose maybe it would make sense to ask further about it on #hurd, but I’m unsure.
<zamfofex>I will update my gist with information about it, in case anyone cares about it.
<jab>so I've finally gotten SPF, DKIMsign, and DMARC working! Let me know if you want to exchange email!
<zamfofex>rekado_: If you want, you may use whatever might be useful from my gist to update the Hurd packages and whatnot. I remember the latest commit of the netdde package causes a problem with includes, so I had to use the second‐to‐latest commit.
<jab>Now I suppose that I will write up an opensmtpd-configuration and try to submit that.
<jab>roptat: Are you using a childhurd for funsies?
<jab>nckx: thanks for your tips and encouragement along the way.
<nckx>Nothing tickles me more than people self-hosting things.
<rekado_>zamfofex: network seems to work fine. I run “guix install wget” and it starts fetching substitutes from ci.guix.gnu.org
<jab>nckx bogofilter vs. rspamd vs. spamassassain ? My goal is to become an email provider.
<zamfofex>rekado_: I see. I suppose I could try it out again. I remember someone telling me that I likely had trouble because the builtin networking drivers in GNU Mach maybe don’t support my hardware, and that I should try using netdde.
<podiki[m]>big fan of self-hosting (I wrote an article about it recently, though not guix related), though I haven't tried email
<attila_lendvai>maximed, i ,m (gnu packages idris), then ,reload, and then in the guile repl: string->symbol => unbound variable. right now i'm back to trying to do this with syntax-case.
<maximed>attila_lendvai: I can't reproduce from "guix repl"
<maximed>do you see the error when not using ,m ... and ,reload?
<attila_lendvai>maximed, this is driving me nuts, it must be something with my environment: if i copy-paste my macro into the repl while ,m (gnu packages guile), then it works. if i do the same in ,m (gnu packages idris), then it fails.
<attila_lendvai>maximed, your workflow works. it's something when i'm in emacs/geiser. it's probably set up incorrectly, but then ,reload and stuff seems to be doing what i expect, and even ,expand is doing what i expect after C-c C-c'ing the form.
<podiki[m]>speaking of, any recommended guides/examples on guix and guile repl? I'm a big fan of slime but haven't tried the guile and guix experience yet
<apteryx>sneek: later tell civodul 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!
<yosys-questions>Have any of you tried/played around with Cuirass? If so, would you be kind enough to share an example of how to use it? I have GUIX installed on a machine and would like to use Cuirass to setup a CI system for my git repositories hanging out on Gitea.
<roptat>yosys-questions, looks like the answer is no :/
<roptat>you might have more luck on the email@example.com mailing list
<roptat>(if it's your first message, you will be moderated by a human, so it can take up to 24h for your message to appear)
<hackeryarn>So I am trying to setup a guix dev environment in emacs. I followed the steps in the manual, and the guix stuff loads, but now I'm getting `no code module for (gcrypt hash)`. What is the correct way to make the code for dependencies like that available to geiser?
<roptat>I don't use emacs, but I get this "no code for module" when I try to use ./pre-inst-env outside a "guix environment guix" on foreign distros
<maximed>roptat,hackeryarn: I think you're supposed to run ./pre-inst-env within "guix environment guix"
<jab>nckx What up bro? I'm thinking about creating an opensmtpd-configuration record...I think it will take a list of (opensmtpd-domain records. Each opensmtpd-domain records will specify the domain to serve emails, the email accounts, a boolean to use opensmtpd-filter-dkimsign, and maybe some other items. Thoughts?
<nckx>First let me paste what sneek should have relayed but didn't:
<nckx>rspamd does a lot more than ‘just’ filter spam: it can send DMARC aggregate reports (which allegedly helps tiny personal mail servers maintain a reputation at the megaproviders', although I haven't verified that), greylisting, RBLs, and doesn't require an external DKIM filter. The others don't do all of that, although Spamassassin does more than Bogofilter. rspamd is probably heavier-weight, though (I run a Redis service just for it). I ca
<nckx>n't comment on the effectiveness of the spam content filters themselves; that would need a proper benchmark.
<nckx>Note that ‘heavy-weight’ doesn't mean slow, in fact rspamd seems faster than others.
<jab>Also, I am wanting to get into email hosting (opensmtpd, dovecot), XMPP prosody, and other web service...Is there a default way to update the services that depend on certbot? That way when certbot updates my certs, my web services stay encrypted.
<singpolyma>I think DMARC reports as only useful for medium-to-large setups with many mailservers usually
<singpolyma>If all your mail comes through one server the report will only show you things you can do nothing about
<nckx>jab: I'm really not a fan of such high-level opinionated abstractions when it comes to service foo-configuration records. I think they should closely follow the upstream format and just Schemify it a little.
<Noisytoot>which is more than libera.chat and freenode combined
<jab>nckx: I had assumed that it was really hard adding more filesystem support to guix proper...
<Noisytoot>actually more than libera.chat, freenode, OFTC, hackint, and efnet combined
<zamfofex>In case anyone might care, I just wanted to say that I recently added Liquid War 6 to my “Guix packages” repo: https://github.com/zamfofex/packages I wonder what I should if I wanted to get it included in the main Guix packages repo. It’s a neat game, and it’s also a GNU project, rather amusingly!
<nckx>Getting xfsprogs to build statically (for the initrd) was *really* tedious until I found the right magic variable (because I don't know libtool).