jcnelson / vdev

A device-file manager for *nix
GNU General Public License v3.0
101 stars 13 forks source link

.rules to .act #72

Open Obarun opened 9 years ago

Obarun commented 9 years ago

hello, First, thank you for your hard work, it's very appreciate. I'm working on a archlinux based system with Runit as services manager and obviously without systemd. For the moment i use eudev. I have made a pkgbuild based on https://aur.archlinux.org/cgit/aur.git/tree/?h=vdev-git for arch and change some files for example libudev.pc to better correspond to the archlinux structure, added license, create a good symlink, etc..... I will provide as soon as possible on my github. So i try to make a hook for building an initramfs to run earlier vdev. If i understand you're concept i need to replace .rules provide by eudev by a .act and include it in my hook. But i'm little be confused when i look your example of .act. For example in the 50-udev-defaults.rules i have this KERNEL== or this GOTO=. How can i know your corresponding option? Do you have a parser to convert directly .rules to .act? Onemore when i try to compile the tools udev_to_vdev with the makefile i have this error : g++ -o udev2vdev
g++: fatal error: no input files May be i make a mistake.

Sorry for my english and once again thank you for your work.

jcnelson commented 9 years ago

Hi @Obarun,

Vdev does not use udev rules at all. Vdev is a lot more like mdev than udev--you use .act files to identify a class of device events and the program(s) for vdev to run to handle them. For example, the file example/actions/loop.act matches all device-add events from the disk subsystem whose names start with loop and end in a number. When it finds such an event, vdev exports a few environment variables and runs the permissions.sh helper program (installed /lib/vdev/) to set its ownership to root.disk and mode to 0660. More details can be found in https://github.com/jcnelson/vdev/blob/master/how-to-test.md.

The udev2vdev tool currently does nothing. If you want to add new behaviors, you'll need to create new .act files.

Thanks, Jude

suedi commented 9 years ago

I oogled your PKGBUILD for vdev and saw that you had lvm2 as depends

I think that should be optdepends vdev can run without it.

Logiacallly it may put device-mapper in optdepends also

Mr Nelson, please correct me if I'm wrong.

EDIT Ahha the referenced PKGBUILD was fbt's so my comment may or may not apply to your PKGBUILD

jcnelson commented 9 years ago

@suedi is right. lvm2 is an optional dependency. You only need it if you want vdev to handle LVM volumes. Similarly, vdev only needs device-mapper if you make use of it already.

fbt commented 9 years ago

Fair enough, I've moved both packages to optdepends.

@Obarun wanna email me or comment on the AUR page for me to merge the improvements?

Obarun commented 9 years ago

thank for your reply, i understand a little bit how to do my work. @fbt you can find my pkgbuild here https://github.com/Obarun/obarun-pkgbuild/tree/master/vdev-obarun

fbt commented 9 years ago

@Obarun thx, I've incorporated some of your work into the PKGBUILD (and added you as a contributor).

On that note, @jcnelson, I think the example target needs some more flexibility. We need RUNDIR and LOGDIR. They are currently hardcoded as being under PREFIX in the config.

fbt commented 9 years ago

I've made a pull request: #73

Obarun commented 9 years ago

@fbt Great thank for this features

fbt commented 9 years ago

@Obarun btw you go over the .pc file with sed, but it doesn't seem to be necessary at all, as without it the result is sane:

prefix=/usr
exec_prefix=${prefix}
libdir=/usr/lib
includedir=/usr/include
Obarun commented 9 years ago

@fbt yep i saw it