a237542be60cc8c4f48efc67fc39364c963fb5a5
[openwrt/staging/jow.git] / package / utils / policycoreutils / Makefile
1 #
2 # This is free software, licensed under the GNU General Public License v2.
3 # See /LICENSE for more information.
4 #
5
6 include $(TOPDIR)/rules.mk
7
8 PKG_NAME:=policycoreutils
9 PKG_VERSION:=3.1
10 PKG_RELEASE:=4
11
12 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
13 PKG_SOURCE_URL:=https://github.com/SELinuxProject/selinux/releases/download/20200710
14 PKG_HASH:=c889f62ee80f8b6a369469a9b8af51f5b797975aeaa291f5c5960cc12eed1934
15 PKG_INSTALL:=1
16 HOST_BUILD_DEPENDS:=libsemanage/host
17 PKG_BUILD_DEPENDS:=BUSYBOX_CONFIG_PAM:libpam
18
19 PKG_MAINTAINER:=Thomas Petazzoni <thomas.petazzoni@bootlin.com>
20 PKG_CPE_ID:=cpe:/a:selinuxproject:policycoreutils
21 PKG_LICENSE:=GPL-2.0-or-later
22 PKG_LICENSE_FILES:=COPYING
23
24 include $(INCLUDE_DIR)/package.mk
25 include $(INCLUDE_DIR)/nls.mk
26 include $(INCLUDE_DIR)/host-build.mk
27
28 DIR_SBIN:= \
29 restorecon \
30 setfiles
31
32 DIR_USR_BIN:= \
33 newrole \
34 secon
35
36 DIR_USR_SBIN:= \
37 load_policy \
38 sestatus \
39 setsebool
40
41 LIBEXEC_UTILS := \
42 pp
43
44 SBIN_UTILS:= \
45 restorecon_xattr \
46 restorecon \
47 setfiles
48
49 USR_BIN_UTILS:= \
50 newrole \
51 secon
52
53 USR_SBIN_UTILS:= \
54 fixfiles \
55 genhomedircon \
56 open_init_pty \
57 run_init \
58 semodule \
59 load_policy \
60 sestatus \
61 setsebool
62
63 TARGET_LDFLAGS += $(INTL_LDFLAGS) $(if $(INTL_FULL),-lintl)
64
65 MAKE_FLAGS += \
66 PAMH=$(CONFIG_BUSYBOX_CONFIG_PAM)
67
68 HOST_MAKE_FLAGS += \
69 PAMH=$(CONFIG_BUSYBOX_CONFIG_PAM) \
70 DESTDIR=$(STAGING_DIR_HOST) \
71 PREFIX= \
72 SBINDIR=/bin
73
74 HOST_LDFLAGS += -Wl,-rpath=$(STAGING_DIR_HOSTPKG)/lib
75
76 $(eval $(foreach a,$(DIR_SBIN),ALTS_$(a):=300:/sbin/$(a):/sbin/policycoreutils-$(a)$(newline)))
77 $(eval $(foreach a,$(DIR_USR_BIN),ALTS_$(a):=300:/usr/bin/$(a):/usr/bin/policycoreutils-$(a)$(newline)))
78 $(eval $(foreach a,$(DIR_USR_SBIN),ALTS_$(a):=300:/usr/sbin/$(a):/usr/sbin/policycoreutils-$(a)$(newline)))
79
80 DEPENDS_genhomedircon:=+libsemanage $(INTL_DEPENDS)
81 DEPENDS_load_policy:=+libselinux $(INTL_DEPENDS)
82 DEPENDS_newrole:=+libselinux +libaudit +BUSYBOX_CONFIG_PAM:libpam $(INTL_DEPENDS)
83 DEPENDS_open_init_pty:=$(INTL_DEPENDS)
84 DEPENDS_pp:=+libsepol $(INTL_DEPENDS)
85 DEPENDS_restorecon_xattr:=+libselinux +libsepol +libaudit $(INTL_DEPENDS)
86 DEPENDS_restorecon:=+libselinux +libsepol +libaudit $(INTL_DEPENDS)
87 DEPENDS_run_init:=+libselinux +libaudit +BUSYBOX_CONFIG_PAM:libpam $(INTL_DEPENDS)
88 DEPENDS_secon:=+libselinux $(INTL_DEPENDS)
89 DEPENDS_semanage:=+libsemanage
90 DEPENDS_semodule:=+libsemanage $(INTL_DEPENDS)
91 DEPENDS_sestatus:=+libselinux $(INTL_DEPENDS)
92 DEPENDS_setfiles:=+libselinux +libsepol +libaudit $(INTL_DEPENDS)
93 DEPENDS_setsebool:=+libsemanage $(INTL_DEPENDS)
94
95 define Package/policycoreutils/Default
96 SECTION:=utils
97 CATEGORY:=Utilities
98 TITLE:=SELinux policy utility
99 URL:=http://selinuxproject.org/page/Main_Page
100 endef
101
102 define Package/policycoreutils
103 $(call Package/policycoreutils/Default)
104 MENU:=1
105 TITLE+= common files
106 endef
107
108 define GenUtilPkg
109 define Package/$(1)
110 $(call Package/policycoreutils/Default)
111 DEPENDS+= policycoreutils $(DEPENDS_$(2))
112 TITLE+= $(2)
113 ALTERNATIVES:=$(ALTS_$(2))
114 endef
115
116 define Package/$(1)/description
117 Policycoreutils is a collection of policy utilities
118 (originally the "core" set of utilities needed to use
119 SELinux, although it has grown a bit over time).
120
121 This package provides the $(2) utility.
122 endef
123 endef
124
125 $(foreach a,$(LIBEXEC_UTILS) $(SBIN_UTILS) $(USR_BIN_UTILS) $(USR_SBIN_UTILS),$(eval $(call GenUtilPkg,policycoreutils-$(a),$(a))))
126
127 define Package/policycoreutils/install
128 $(INSTALL_DIR) $(1)/etc
129 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/sestatus.conf $(1)/etc
130 ifdef CONFIG_BUSYBOX_CONFIG_PAM
131 $(INSTALL_DIR) $(1)/etc/pam.d
132 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/pam.d/run_init $(1)/etc/pam.d
133 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/pam.d/newrole $(1)/etc/pam.d
134 endif
135 endef
136
137 define BuildUtil
138 define Package/$(1)/install
139 $(INSTALL_DIR) $$(1)$(2)
140 $(INSTALL_BIN) $$(PKG_INSTALL_DIR)$(2)/$(3) $$(1)$(2)/$(if $(ALTS_$(3)),policycoreutils-$(3),$(3))
141 endef
142
143 $$(eval $$(call BuildPackage,$(1)))
144 endef
145
146 $(eval $(call BuildPackage,policycoreutils))
147 $(foreach a,$(SBIN_UTILS),$(eval $(call BuildUtil,policycoreutils-$(a),/sbin,$(a))))
148 $(foreach a,$(USR_BIN_UTILS),$(eval $(call BuildUtil,policycoreutils-$(a),/usr/bin,$(a))))
149 $(foreach a,$(USR_SBIN_UTILS),$(eval $(call BuildUtil,policycoreutils-$(a),/usr/sbin,$(a))))
150 $(foreach a,$(LIBEXEC_UTILS),$(eval $(call BuildUtil,policycoreutils-$(a),/usr/libexec/selinux/hll,$(a))))
151 $(eval $(call HostBuild))