-# $Id$
+#
+# Copyright (C) 2006-2008 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
include $(TOPDIR)/rules.mk
PKG_NAME:=udev
-PKG_VERSION:=077
+PKG_VERSION:=106
PKG_RELEASE:=1
-PKG_MD5SUM:=61ec646daf7795e9777e8f33975408fe
-
-PKG_SOURCE_URL:=ftp://ftp.kernel.org/pub/linux/utils/kernel/hotplug/ \
- http://ftp.kernel.org/pub/linux/utils/kernel/hotplug/ \
- ftp://ftp.de.kernel.org/pub/linux/utils/kernel/hotplug/ \
- http://ftp.de.kernel.org/pub/linux/utils/kernel/hotplug/ \
- ftp://ftp.fr.kernel.org/pub/linux/utils/kernel/hotplug/ \
- http://ftp.fr.kernel.org/pub/linux/utils/kernel/hotplug/
+
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_CAT:=bzcat
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
-PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
+PKG_SOURCE_URL:=@KERNEL/linux/utils/kernel/hotplug/
+PKG_MD5SUM:=320ccd2d0f4540d10e021bafa14f8985
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/udev
+ SECTION:=utils
+ CATEGORY:=Utilities
+ DEPENDS:=@LINUX_2_6
+ TITLE:=Dynamic device management subsystem
+ URL:=http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
+endef
+
+define Package/udev/description
+ udev provides a dynamic device directory containing only the files for
+ actually present devices. It creates or removes device node files in
+ the /dev directory, or it renames network interfaces.
+endef
+
+define Package/udevtrigger
+$(call Package/udev)
+ SECTION:=base
+ CATEGORY:=Base system
+ TITLE:=Small utility to request kernel devices events for coldplug
+endef
-include $(TOPDIR)/package/rules.mk
+define Package/udevextras
+$(call Package/udev)
+ TITLE:=Utilities for udev scripts, for general device discovery
+ MENU:=1
+endef
-$(eval $(call PKG_template,UDEV,udev,$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+define Package/udevextras/config
+ source "$(SOURCE)/udevextras-config.in"
+endef
-$(PKG_BUILD_DIR)/.configured:
- touch $@
+UDEV_ALL_EXTRAS=ata_id cdrom_id dasd_id edd_id scsi_id path_id usb_id volume_id
+UDEV_EXTRAS=$(strip $(foreach e, $(UDEV_ALL_EXTRAS), \
+ $(if $(CONFIG_UDEVEXTRAS_$(e)),extras/$(e))))
-$(PKG_BUILD_DIR)/.built:
- rm -rf $(PKG_INSTALL_DIR)
- mkdir -p $(PKG_INSTALL_DIR)
+define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
- CROSS="$(TARGET_CROSS)" \
+ CROSS_COMPILE="$(TARGET_CROSS)" \
STRIP="/bin/true" \
OPTFLAGS="$(TARGET_CFLAGS)" \
DESTDIR="$(PKG_INSTALL_DIR)" \
+ INSTALL="install -c" \
+ EXTRAS="$(UDEV_EXTRAS)" \
+ VOLUME_ID_STATIC=true \
all install
- touch $@
-
-$(IPKG_UDEV):
- install -d -m0775 $(IDIR_UDEV)/etc/udev
- $(CP) $(PKG_INSTALL_DIR)/etc/udev/* $(IDIR_UDEV)/etc/udev/
- install -d -m0775 $(IDIR_UDEV)/lib/udev
- install -d -m0775 $(IDIR_UDEV)/sbin/
- $(CP) $(PKG_INSTALL_DIR)/sbin/udev $(IDIR_UDEV)/sbin/
- $(CP) $(PKG_INSTALL_DIR)/sbin/udevcontrol $(IDIR_UDEV)/sbin/
- $(CP) $(PKG_INSTALL_DIR)/sbin/udevd $(IDIR_UDEV)/sbin/
- $(CP) $(PKG_INSTALL_DIR)/sbin/udevsend $(IDIR_UDEV)/sbin/
- $(CP) $(PKG_INSTALL_DIR)/sbin/udevstart $(IDIR_UDEV)/sbin/
- install -d -m0775 $(IDIR_UDEV)/usr/bin/
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/udevinfo $(IDIR_UDEV)/usr/bin/
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/udevtest $(IDIR_UDEV)/usr/bin/
- install -d -m0775 $(IDIR_UDEV)/usr/sbin/
- $(CP) $(PKG_INSTALL_DIR)/usr/sbin/udevmonitor $(IDIR_UDEV)/usr/sbin/
- $(RSTRIP) $(IDIR_UDEV)
- $(IPKG_BUILD) $(IDIR_UDEV) $(PACKAGE_DIR)
-
-mostlyclean:
- -$(MAKE) -C $(PKG_BUILD_DIR) clean
- rm -f $(PKG_BUILD_DIR)/.built
+endef
+
+define Package/udev/install
+ install -d -m0775 $(1)/etc/udev
+ $(CP) $(PKG_INSTALL_DIR)/etc/udev/* $(1)/etc/udev/
+ install -d -m0775 $(1)/lib/udev
+ install -d -m0775 $(1)/sbin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/udevcontrol $(1)/sbin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/udevd $(1)/sbin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/udevsettle $(1)/sbin/
+ install -d -m0775 $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/udevinfo $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/udevtest $(1)/usr/bin/
+ install -d -m0775 $(1)/usr/sbin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/udevmonitor $(1)/usr/sbin/
+ install -d -m0775 $(1)/etc/udev/rules.d
+ $(CP) files/20-input-grouping.rules $(1)/etc/udev/rules.d/
+endef
+
+define Package/udevtrigger/install
+ $(INSTALL_DIR) $(1)/sbin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/udevtrigger $(1)/sbin/
+endef
+
+define Package/udevextras/install
+ $(INSTALL_DIR) $(1)/etc/udev
+ $(CP) $(PKG_BUILD_DIR)/etc/udev/rules.d $(1)/etc/udev/
+ $(INSTALL_DIR) $(1)/lib/udev
+ $$(foreach f, $$(shell $(FIND) $(PKG_INSTALL_DIR)/lib/udev/ -type f), \
+ $(CP) $$(f) $(1)/lib/udev/ ; \
+ )
+endef
+
+$(eval $(call BuildPackage,udev))
+$(eval $(call BuildPackage,udevtrigger))
+$(eval $(call BuildPackage,udevextras))