Hi,
On 10/3/23 2:06, Joel Roth via Dng wrote:
> Thanks for that awesome work, aitor. I'm glad to hear that vdev will
> be available to devuan and other OSs.
>
> I'm cautiously optimistic that once it's easier to install,
> we'll see more distributions and users opting for this
> simpler, more focused and portable alterative to udev.
>
> with cheers and appreciation,
I've upgraded the versions of vdev and libudev-compat after the the eventfs integration.
Most changes have been done in the files listed below:
1) Modified files in libudev-compat:
- src/libudev/libudev-fs.c
- src/libudev/libudev-monitor.c
2) Modified files in vdev:
- vdevd/helpers/LINUX/event-put.c
- vdevd/helpers/LINUX/event-push.sh
- vdevd/helpers/LINUX/udev-compat.sh
- vdevd/helpers/LINUX/dev-setup.sh
The event queue directory is mounted in the last script (dev-setup.sh) by the following way:
if [ "$(stat -f -c '%T' $VDEV_MOUNTPOINT/metadata/udev/events/serial)" != "fuseblk" ]; then
/bin/eventfs -o nonempty -c /etc/eventfs/eventfs.conf "$VDEV_MOUNTPOINT/metadata/udev/events/serial"
fi
If you want to give it a try, you can download the new live images of gnuinos chimaera and build the
example "test-libudevfs" at the end of the article:
https://www.gnuinos.org/libudev-compat/
I have split "/dev/metadata/udev/events" in two subfolders "global" and "serial". The first one is the
global queue, and the second one is the per-process specific directory containing the underlying folders.
When you run the program, a new directory (named libudev-$CLIENT_PID-0) is created in "serial", which is
visible only for root. Once the program terminates, the directory vanishes as explained in the README.md
file of eventfs, written by Jude Nelson:
https://github.com/jcnelson/eventfs
However, my approach as it stands is far from perfect and suggestions are very welcome :)
Cheers,
Aitor.