sigmoid.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A social space for people researching, working with, or just interested in AI!

Server stats:

587
active users

#guix

18 posts11 participants2 posts today

I gotta say ever since I've started using #guix I feel a lot more clenched up about doing Debian upgrades... Look Debian does a fantastic job, but if shit goes wrong... there's no rollback. Yes, for VMs I can just restore from a backup but ...

The more I learn about #guix, the more I see what's special about this distro. I feel in a similar way as I felt when I was learning Debian back in the early 00

All right, I've slightly refactored the #guix router. Wrote my own simple dhcpcd service that provisions a wannet service so that the wan is independent of the various LAN networks. Also so you can restart the wan separately when keepalived switches the router. I'm gonna add zabbix monitoring, and wireguard... Then bird routing daemon to handle the wire guard peers...

Ok, my #guix peeps... Many many bits of progress today.

Today the system boots, networking comes up, dhcpcd runs, networking appears stable and I can ssh into the machine!

I found that it wasn't getting automatic link layer ipv6 so I added those manually but that seems like it should be automatic? Anyway it doesn't much matter but it's kinda annoying that I don't know why it doesn't have automatic LL addresses. But, basically everything works!

So I can feel the #guix router getting closer and closer. Yesterday I found that if I run my networking service on a fresh boot it works but restart fails because I'm adding IP addr that are already there on the links and it throws and exception. I could just catch and ignore the exception, or I could clear off the IP addrs from the links first... But guile net link only has a way to print addr to stout. How do I capture those addr to a list or something? So I can for-each addr-del them?

woot! @abcdw @carlozancanaro
and general #guix peeps...

I've solved my issue with gexp in (start) and (stop) fields of shepherd-service objects...

the error now no longer has to do with me calling my functions to set up the networking, and in fact my code runs, renames the net interfaces and sets all the static IP addresses and ipv6 addresses!

now it errors out when it tries to run dhcpcd with a config file using ,(plain-file but this is further debuggable without so much mystery.

Ok #guix peeps and especially @abcdw who helped me yesterday. Here's what I got...

If I do this for the start field of my shepherd service... it compiles but doesn't work, (foo) isn't in scope.

(start (with-imported-modules '((staged debugmod)) #~(lambda _ (use-modules (staged debugmod)) (foo "started")))

Instead, it seems in the docs shepherd-service has a struct (modules ...) which is supposed to list the modules needed by (start and (stop however when I list (modules '((staged debugmod)))

Every day I get a little closer to a #guix router.

My current hangup is that my config builds, but a module I created services/tottenham-networking.scm doesn't appear anywhere in the /gnu/store and so at runtime a function defined there isn't defined so my networking service doesn't run.

Any ideas? shouldn't my modules get copied into the store to be accessible?

My #guix peeps. I do feel like I'm making good progress on my router... but I'm a little puzzled by this behavior. I did a guix system reconfigure and it's found my local substitutes server... but it's sitting there saying:

"looking for substitutes on ... 0.2%" after like minutes and minutes, and I don't plan to wait a day for it to look for substitutes... what's up? any ideas (yes the substitutes server is online and I can ping and ssh to it and port 80 is open)

Hey #guix peeps. To support my GUIX router project I'm thinking to create a module that has some functions like (rename-ifaces!) and (set-addrs!) etc... Basically using guile-netlink to manually set up the network the way I want on multiple interfaces. I'd like to create a shepherd service that simply calls a "run" function defined in this module as the start procedure, and a teardown function as a stop procedure.

I see lots of make-forkexec-constructor and etc but ....

Well #guix peeps. I solved the problem with my squid config file... I had two copies and was editing the wrong one. Deleted the unused copy and edited the right ones and now squid runs, as does dnsmasq and unbound.

I now need to figure out how to do a custom dhcpcd service so that I can have static networking except on the WAN where I can both get an ipv4 as well as a series of ipv6 /64 PDs for the internal networks.