I don't like the idea of merging a vibe-coded component in guix core. Replacing 
eudev with udev shouldn't be difficult for guix maintainers. I prefer udev to 
goodev if goodev is vibe-coded.

On Friday, October 2nd, 2026 at 8:59 PM, Marius Bakke 
<[email protected]> wrote:

> Hello Guix!
> 
> Gabriel Wicki <[email protected]> writes:
> 
> > just yesterday, mbakke came to #guix to promote their udev replacement
> > written in Guile, goodev¹.  They told me they were using it, already, so
> > maybe this is good enough for a wider populus to test, extend and adapt
> > for Guix?
> 
> I now believe it is ready for testing by a wider audience.  If you'd
> like to try it, stick this in your channels.scm:
> 
>   (channel
>     (name 'goodev)
>     (url "https://codeberg.org/goodev/goodev";)
>     (branch "main")
> 
> Then you can (use-modules (goodev-service)) and use it like so:
> 
>   (services
>    (cons* (service goodev-service-type)
>           (modify-services %base-services
>             (delete udev-service-type))))
> 
> Note: this won't work if you have any service that extends
> udev-service-type like elogind.
> 
> (I'm working to decouple eudev from udev-service-type, but it's tricky)
> 
> > They did mention that they used LLM to craft this piece of software,
> > though to me the reasoning is sound, and the risk of losing it to the
> > LLM corp due to copyright law seems small to inexistent.
> 
> I have used LLM for some parts like (hwdb trie) and the inotify
> implementation.  And all "builtin" modules like 'path-id' are pure LLM
> translations of the systemd C counterparts.
> 
> There were some LLM commits in the "core", but I have since rewritten
> the entire "API surface" to get rid of LLM smells.  There was a lot!
> 
> The code is now much more pleasant to work with.
> 
> > @mbakke: Do you have a Guix Service ready for this?  Do you think it's
> > ready to include in Guix (at least for tests)?
> 
> Now that there is a channel, I'm not in a hurry to merge it to Guix.
> 
> Things that rely on libudev like 'libinput' might not work without a
> proper udev daemon.  I'm working to fix that (the database
> implementation is identical to udev, and thus compatible with libudev;
> but the 'udevadm monitor -u' netlink protocol is not yet supported).
> 
> Apropos libudev: I have fully "vibe-coded" a libudev in Rust:
> 
>   https://codeberg.org/goodev/goodev/src/branch/libudev-rust
> 
> I'm looking for someone to take ownership of that and help get it
> merged.  Otherwise I'll learn enough Rust to merge it myself.  But
> someone may need to stop me from porting the entire thing to Rust in
> that case!
> 
> (just kidding, Guile is exceptionally well-suited for this task: I
> believe goodev is *faster* than systemd-udevd in many cases)
> 
> Prospective hackers should know that it's perfectly safe to run goodev
> as an unprivileged user for testing.  One fun activity is running
> "./pre-inst-env goodev-daemon --monitor" in one window, and
> "udevadm monitor -u -p" in another and compare output. :-)
>

Reply via email to