diff options
-rw-r--r-- | package/procd/Makefile | 19 | ||||
-rw-r--r-- | package/procd/files/hotplug-preinit.json | 21 | ||||
-rw-r--r-- | package/procd/files/hotplug.json | 80 |
3 files changed, 117 insertions, 3 deletions
diff --git a/package/procd/Makefile b/package/procd/Makefile index 0330905577..25b0271b37 100644 --- a/package/procd/Makefile +++ b/package/procd/Makefile @@ -1,19 +1,21 @@ include $(TOPDIR)/rules.mk PKG_NAME:=procd -PKG_VERSION:=2012-12-20 +PKG_VERSION:=2012-03-13 PKG_RELEASE=$(PKG_SOURCE_VERSION) PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=git://nbd.name/luci2/procd.git PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_VERSION:=d343dd9e9a64d4ae7d225ea29169e97fa8d116a1 +PKG_SOURCE_VERSION:=8158e9052afbf2ee47de645167b90b6e7fc7d86d PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz CMAKE_INSTALL:=1 PKG_LICENSE:=GPLv2 PKG_LICENSE_FILES:= +PKG_CONFIG_DEPENDS:=CONFIG_PROCD_INIT + PKG_MAINTAINER:=Felix Fietkau <nbd@openwrt.org> include $(INCLUDE_DIR)/package.mk @@ -22,10 +24,20 @@ include $(INCLUDE_DIR)/cmake.mk define Package/procd SECTION:=base CATEGORY:=Base system - DEPENDS:=+ubusd +ubus + DEPENDS:=+ubusd +ubus +libjson_script TITLE:=OpenWrt system process manager endef +ifneq ($(CONFIG_PROCD_INIT),) +define Package/procd/install + $(INSTALL_DIR) $(1)/sbin $(1)/lib/functions $(1)/etc + + $(CP) $(PKG_INSTALL_DIR)/usr/sbin/{procd,askfirst,udevtrigger,logread} $(1)/sbin/ + $(INSTALL_DATA) ./files/hotplug*.json $(1)/etc/ + $(INSTALL_DATA) ./files/procd.sh $(1)/lib/functions/ + ln -s /sbin/procd $(1)/sbin/init +endef +else define Package/procd/install $(INSTALL_DIR) $(1)/sbin $(1)/lib/functions $(1)/etc/init.d @@ -33,5 +45,6 @@ define Package/procd/install $(INSTALL_BIN) ./files/procd.init $(1)/etc/init.d/procd $(INSTALL_DATA) ./files/procd.sh $(1)/lib/functions/ endef +endif $(eval $(call BuildPackage,procd)) diff --git a/package/procd/files/hotplug-preinit.json b/package/procd/files/hotplug-preinit.json new file mode 100644 index 0000000000..d212b22fac --- /dev/null +++ b/package/procd/files/hotplug-preinit.json @@ -0,0 +1,21 @@ +[ + [ "case", "ACTION", { + "add": [ + [ "if", + [ "has", "FIRMWARE" ], + [ + [ "exec", "/sbin/hotplug-call", "%SUBSYSTEM%" ], + [ "load-firmware", "/lib/firmware" ], + [ "return" ] + ] + ], + ], + }, ], + [ "if", + [ "and", + [ "eq", "SUBSYSTEM", "button" ], + [ "eq", "BUTTON", "reset" ], + ], + [ "exec", "/etc/rc.button/failsafe" ] + ], +] diff --git a/package/procd/files/hotplug.json b/package/procd/files/hotplug.json new file mode 100644 index 0000000000..43fec0c0d3 --- /dev/null +++ b/package/procd/files/hotplug.json @@ -0,0 +1,80 @@ +[ + [ "case", "ACTION", { + "add": [ + [ "if", + [ "and", + [ "has", "MAJOR" ], + [ "has", "MINOR" ], + ], + [ + [ "if", + [ "or", + [ "eq", "DEVNAME", + [ "null", "full", "ptmx", "zero" ], + ], + [ "regex", "DEVNAME", + [ "^gpio", "^hvc", "^tty" ], + ], + ], + [ + [ "makedev", "/dev/%DEVNAME%", "0666" ], + [ "return" ], + ] + ], + [ "if", + [ "or", + [ "eq", "DEVNAME", "mapper/control" ], + [ "regex", "DEVPATH", "^ppp" ], + ], + [ + [ "makedev", "/dev/%DEVNAME%", "0600" ], + [ "return" ], + ], + ], + [ "if", + [ "has", "DEVNAME" ], + [ + [ "makedev", "/dev/%DEVNAME%", "0644" ], + [ "return" ], + ], + ], + ], + ], + [ "if", + [ "has", "FIRMWARE" ], + [ + [ "exec", "/sbin/hotplug-call", "%SUBSYSTEM%" ], + [ "load-firmware", "/lib/firmware" ], + [ "return" ] + ] + ], + ], + "remove" : [ + [ "if", + [ "and", + [ "has", "DEVNAME" ], + [ "has", "MAJOR" ], + [ "has", "MINOR" ], + ], + [ "rm", "/dev/%DEVNAME%" ] + ] + ] + } ], + [ "if", + [ "eq", "SUBSYSTEM", "platform" ], + [ "exec", "/sbin/hotplug-call", "%SUBSYSTEM%" ] + ], + [ "if", + [ "and", + [ "has", "BUTTON" ], + [ "eq", "SUBSYSTEM", "button" ], + ], + [ "exec", "/etc/rc.button/%BUTTON%" ] + ], + [ "if", + [ "eq", "SUBSYSTEM", + [ "net", "input", "usb", "ieee1394", "block", "atm", "zaptel", "tty" ] + ], + [ "exec", "/sbin/hotplug-call", "%SUBSYSTEM%" ] + ], +] |