2 # Copyright (C) 2014-2016 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
14 PKG_SOURCE_URL
=$(PROJECT_GIT
)/project
/procd.git
15 PKG_SOURCE_DATE
:=2020-08-10
16 PKG_SOURCE_VERSION
:=fad899769e1411cc273785461f073a0f7931b9a0
17 PKG_MIRROR_HASH
:=f56b621f78f821f7070d85f63448f684af7e2fe0c85233a8d054683cc34f6d06
23 PKG_MAINTAINER
:=John Crispin
<john@phrozen.org
>
25 PKG_ASLR_PIE_REGULAR
:=1
26 PKG_CONFIG_DEPENDS
:= \
27 CONFIG_TARGET_INIT_PATH CONFIG_KERNEL_SECCOMP \
28 CONFIG_PROCD_SHOW_BOOT CONFIG_PROCD_ZRAM_TMPFS \
29 CONFIG_KERNEL_NAMESPACES CONFIG_PACKAGE_procd-ujail CONFIG_PACKAGE_procd-seccomp
31 include $(INCLUDE_DIR
)/package.mk
32 include $(INCLUDE_DIR
)/cmake.mk
35 STAMP_CONFIGURED
:=$(strip $(STAMP_CONFIGURED
))_
$(shell echo
$(CONFIG_TARGET_INIT_PATH
) | mkhash md5
)
38 CMAKE_OPTIONS
+= -DEARLY_PATH
="$(TARGET_INIT_PATH)"
39 TARGET_LDFLAGS
+= $(if
$(CONFIG_USE_GLIBC
),-lrt
)
41 TARGET_CFLAGS
+= -flto
42 TARGET_LDFLAGS
+= -flto
44 define Package
/procd
/Default
47 DEPENDS
:=+ubusd
+ubus
+libjson-script
+ubox
+USE_GLIBC
:librt
+libubox \
48 +libubus
+libblobmsg-json
+libjson-c
49 TITLE
:=OpenWrt system process manager
50 USERID
:=:dialout
=20 :audio
=29
54 $(call Package
/procd
/Default
)
56 CONFLICTS
:=procd-selinux
59 define Package
/procd-selinux
60 $(call Package
/procd
/Default
)
61 DEPENDS
+= +libselinux
62 TITLE
+= with SELinux support
67 define Package
/procd-ujail
70 DEPENDS
:=@KERNEL_NAMESPACES
+@KERNEL_UTS_NS
+@KERNEL_IPC_NS
+@KERNEL_PID_NS \
71 +libubox
+libubus
+libblobmsg-json
72 TITLE
:=OpenWrt process jail helper
75 define Package
/procd-ujail-console
78 DEPENDS
:=+procd-ujail
+libubus
+libubox
79 TITLE
:=OpenWrt process jail console
82 define Package
/procd-seccomp
85 DEPENDS
:=@
(arm||armeb||mips||mipsel||i386||powerpc||x86_64
) @
!TARGET_uml \
86 @KERNEL_SECCOMP
+libubox
+libblobmsg-json
87 TITLE
:=OpenWrt process seccomp helper
+ utrace
93 DEPENDS
:=+procd-ujail
+libubus
+libubox
+libblobmsg-json
94 TITLE
:=OpenWrt container management
95 MAINTAINER
:=Daniel Golle
<daniel@makrotopia.org
>
98 define Package
/procd
/config
100 depends on PACKAGE_procd || PACKAGE_procd-selinux
102 config PROCD_SHOW_BOOT
105 prompt
"Print the shutdown to the console as well as logging it to syslog"
107 config PROCD_ZRAM_TMPFS
110 prompt
"Mount /tmp using zram."
114 Package
/procd-selinux
/config
= $(Package
/procd
/config
)
116 ifeq ($(BUILD_VARIANT
),selinux
)
117 CMAKE_OPTIONS
+= -DSELINUX
=1
120 ifeq ($(CONFIG_PROCD_SHOW_BOOT
),y
)
121 CMAKE_OPTIONS
+= -DSHOW_BOOT_ON_CONSOLE
=1
124 ifeq ($(CONFIG_PROCD_ZRAM_TMPFS
),y
)
125 CMAKE_OPTIONS
+= -DZRAM_TMPFS
=1
128 ifdef CONFIG_PACKAGE_procd-ujail
129 CMAKE_OPTIONS
+= -DJAIL_SUPPORT
=1
132 SECCOMP
=$(if
$(CONFIG_PACKAGE_procd-seccomp
),1,0)
133 CMAKE_OPTIONS
+= -DSECCOMP_SUPPORT
=$(SECCOMP
) -DUTRACE_SUPPORT
=$(SECCOMP
)
135 define Package
/procd
/install
136 $(INSTALL_DIR
) $(1)/sbin
$(1)/etc
$(1)/lib
/functions
138 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/sbin
/{init
,procd
,askfirst
,udevtrigger
,upgraded
} $(1)/sbin
/
139 $(INSTALL_DATA
) $(PKG_INSTALL_DIR
)/usr
/lib
/libsetlbf.so
$(1)/lib
140 $(INSTALL_BIN
) .
/files
/reload_config
$(1)/sbin
/
141 $(INSTALL_CONF
) .
/files
/hotplug
*.json
$(1)/etc
/
142 $(INSTALL_DATA
) .
/files
/procd.sh
$(1)/lib
/functions
/
145 Package
/procd-selinux
/install = $(Package
/procd
/install)
147 define Package
/procd-ujail
/install
148 $(INSTALL_DIR
) $(1)/sbin
149 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/sbin
/ujail
$(1)/sbin
/
152 define Package
/procd-ujail-console
/install
153 $(INSTALL_DIR
) $(1)/sbin
154 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/sbin
/ujail-console
$(1)/sbin
/
157 define Package
/procd-seccomp
/install
158 $(INSTALL_DIR
) $(1)/sbin
$(1)/lib
159 $(INSTALL_DATA
) $(PKG_INSTALL_DIR
)/usr
/lib
/libpreload-seccomp.so
$(1)/lib
160 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/sbin
/utrace
$(1)/sbin
/
161 $(LN
) utrace
$(1)/sbin
/seccomp-trace
162 $(INSTALL_DATA
) $(PKG_INSTALL_DIR
)/usr
/lib
/libpreload-trace.so
$(1)/lib
165 define Package
/uxc
/conffiles
169 define Package
/uxc
/install
170 $(INSTALL_DIR
) $(1)/sbin
171 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/sbin
/uxc
$(1)/sbin
/
172 $(INSTALL_DIR
) $(1)/etc
/init.d
173 $(INSTALL_BIN
) .
/files
/uxc.init
$(1)/etc
/init.d
/uxc
176 $(eval
$(call BuildPackage
,procd
))
177 $(eval
$(call BuildPackage
,procd-selinux
))
178 $(eval
$(call BuildPackage
,procd-ujail
))
179 $(eval
$(call BuildPackage
,procd-ujail-console
))
180 $(eval
$(call BuildPackage
,procd-seccomp
))
181 $(eval
$(call BuildPackage
,uxc
))