aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/procd/Makefile19
-rw-r--r--package/procd/files/hotplug-preinit.json21
-rw-r--r--package/procd/files/hotplug.json80
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%" ]
+ ],
+]