Instead of just having one vol_id package, create a 'udevextras' package
for all of the udev "EXTRAS" utilities. Selecting this package allows
each extra to be selected individually.

Also, installing udevextras adds a few udev rules for persistent device
naming.

Signed-off-by: Jeremy Kerr <[EMAIL PROTECTED]>

---
 package/udev/Makefile             |   32 +++++++++++++++++------
 package/udev/udevextras-config.in |   51 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 74 insertions(+), 9 deletions(-)

diff --git a/package/udev/Makefile b/package/udev/Makefile
index 336e511..2da6149 100644
--- a/package/udev/Makefile
+++ b/package/udev/Makefile
@@ -35,21 +35,34 @@ endef
 define Package/udevtrigger
 $(call Package/udev)
   TITLE:=Small utility to request kernel devices events for coldplug
+  DEPENDS:=udev
 endef
 
-define Package/udev-vol-id
+define Package/udevextras
 $(call Package/udev)
- TITLE:=Small utility to read volume ids
+  TITLE:=Utilities for udev scripts, for general device discovery
+  DEPENDS:=udev
+  MENU:=1
 endef
 
+define Package/udevextras/config
+  source "$(SOURCE)/udevextras-config.in"
+endef
+
+UDEV_ALL_EXTRAS=ata_id cdrom_id dasd_id scsi_id path_id usb_id volume_id
+UDEV_EXTRAS=$(strip $(foreach e, $(UDEV_ALL_EXTRAS), \
+               $(if $(CONFIG_UDEVEXTRAS_$(e)),extras/$(e))))
+
 define Build/Compile
+       echo $(UDEV_EXTRAS)
        $(MAKE) -C $(PKG_BUILD_DIR) \
                CROSS_COMPILE="$(TARGET_CROSS)" \
                STRIP="/bin/true" \
                OPTFLAGS="$(TARGET_CFLAGS)" \
                DESTDIR="$(PKG_INSTALL_DIR)" \
                INSTALL="install -c" \
-               EXTRAS="extras/volume_id" \
+               EXTRAS="$(UDEV_EXTRAS)" \
+               VOLUME_ID_STATIC=true \
                all install
 endef
 
@@ -74,13 +87,14 @@ define Package/udevtrigger/install
        $(INSTALL_DIR) $(1)/sbin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/udevtrigger $(1)/sbin/
 endef
-define Package/udev-vol-id/install
-       $(INSTALL_DIR) $(1)/sbin
-       $(INSTALL_DIR) $(1)/lib
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/libvolume_id.so* $(1)/lib/
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/udev/vol_id $(1)/sbin/
+
+define Package/udevextras/install
+       install -d -m0775 $(1)/lib/udev
+       $(CP) $(PKG_INSTALL_DIR)/lib/udev/* $(1)/lib/udev/
+       install -d -m0775 $(1)/etc/udev
+       $(CP) $(PKG_BUILD_DIR)/etc/udev/rules.d $(1)/etc/udev/
 endef
 
 $(eval $(call BuildPackage,udev))
 $(eval $(call BuildPackage,udevtrigger))
-$(eval $(call BuildPackage,udev-vol-id))
+$(eval $(call BuildPackage,udevextras))
diff --git a/package/udev/udevextras-config.in 
b/package/udev/udevextras-config.in
new file mode 100644
index 0000000..3e94004
--- /dev/null
+++ b/package/udev/udevextras-config.in
@@ -0,0 +1,51 @@
+
+config UDEVEXTRAS_ata_id
+       bool
+       prompt "ata_id" if PACKAGE_udevextras
+       default n
+       help
+         ata_id can find unique identifiers for ATA devices
+
+config UDEVEXTRAS_cdrom_id
+       bool
+       prompt "cdrom_id" if PACKAGE_udevextras
+       default n
+       help
+         cdrom_id can find unique identifiers for CDROM devices
+
+config UDEVEXTRAS_dasd_id
+       bool
+       prompt "dasd_id" if PACKAGE_udevextras
+       default n
+       help
+         dasd_id can find unique identifiers for DASD devices
+
+config UDEVEXTRAS_path_id
+       bool
+       prompt "path_id" if PACKAGE_udevextras
+       default n
+       help
+         path_id can find the full path (eg. bus-device-partition)
+         of devices
+
+config UDEVEXTRAS_scsi_id
+       bool
+       prompt "scsi_id" if PACKAGE_udevextras
+       default n
+       help
+         scsi_id can find unique identifiers for SCSI devices
+
+config UDEVEXTRAS_volume_id
+       bool
+       prompt "volume_id" if PACKAGE_udevextras
+       default n
+       help
+         volume_id can find the volume label of storage devices
+
+config UDEVEXTRAS_usb_id
+       bool
+       prompt "usb_id" if PACKAGE_udevextras
+       default n
+       help
+         usb_id can find the unique id of USB devices
+
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to