policycoreutils: fix ALTERNATIVES install location
[openwrt/staging/yousong.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:=3
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 PREFIX=$(STAGING_DIR_HOSTPKG) \
71 SBINDIR=$(STAGING_DIR_HOSTPKG)/sbin \
72 ETCDIR=$(STAGING_DIR_HOSTPKG)/etc
73
74 $(eval $(foreach a,$(DIR_SBIN),ALTS_$(a):=300:/sbin/$(a):/sbin/policycoreutils-$(a)$(newline)))
75 $(eval $(foreach a,$(DIR_USR_BIN),ALTS_$(a):=300:/usr/bin/$(a):/usr/bin/policycoreutils-$(a)$(newline)))
76 $(eval $(foreach a,$(DIR_USR_SBIN),ALTS_$(a):=300:/usr/sbin/$(a):/usr/sbin/policycoreutils-$(a)$(newline)))
77
78 DEPENDS_genhomedircon:=+libsemanage $(INTL_DEPENDS)
79 DEPENDS_load_policy:=+libselinux $(INTL_DEPENDS)
80 DEPENDS_newrole:=+libselinux +libaudit +BUSYBOX_CONFIG_PAM:libpam $(INTL_DEPENDS)
81 DEPENDS_open_init_pty:=$(INTL_DEPENDS)
82 DEPENDS_pp:=+libsepol $(INTL_DEPENDS)
83 DEPENDS_restorecon_xattr:=+libselinux +libsepol +libaudit $(INTL_DEPENDS)
84 DEPENDS_restorecon:=+libselinux +libsepol +libaudit $(INTL_DEPENDS)
85 DEPENDS_run_init:=+libselinux +libaudit +BUSYBOX_CONFIG_PAM:libpam $(INTL_DEPENDS)
86 DEPENDS_secon:=+libselinux $(INTL_DEPENDS)
87 DEPENDS_semanage:=+libsemanage
88 DEPENDS_semodule:=+libsemanage $(INTL_DEPENDS)
89 DEPENDS_sestatus:=+libselinux $(INTL_DEPENDS)
90 DEPENDS_setfiles:=+libselinux +libsepol +libaudit $(INTL_DEPENDS)
91 DEPENDS_setsebool:=+libsemanage $(INTL_DEPENDS)
92
93 define Package/policycoreutils/Default
94 SECTION:=utils
95 CATEGORY:=Utilities
96 TITLE:=SELinux policy utility
97 URL:=http://selinuxproject.org/page/Main_Page
98 endef
99
100 define Package/policycoreutils
101 $(call Package/policycoreutils/Default)
102 MENU:=1
103 TITLE+= common files
104 endef
105
106 define GenUtilPkg
107 define Package/$(1)
108 $(call Package/policycoreutils/Default)
109 DEPENDS+= policycoreutils $(DEPENDS_$(2))
110 TITLE+= $(2)
111 ALTERNATIVES:=$(ALTS_$(2))
112 endef
113
114 define Package/$(1)/description
115 Policycoreutils is a collection of policy utilities
116 (originally the "core" set of utilities needed to use
117 SELinux, although it has grown a bit over time).
118
119 This package provides the $(2) utility.
120 endef
121 endef
122
123 $(foreach a,$(LIBEXEC_UTILS) $(SBIN_UTILS) $(USR_BIN_UTILS) $(USR_SBIN_UTILS),$(eval $(call GenUtilPkg,policycoreutils-$(a),$(a))))
124
125 define Package/policycoreutils/install
126 $(INSTALL_DIR) $(1)/etc
127 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/sestatus.conf $(1)/etc
128 ifdef CONFIG_BUSYBOX_CONFIG_PAM
129 $(INSTALL_DIR) $(1)/etc/pam.d
130 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/pam.d/run_init $(1)/etc/pam.d
131 $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/pam.d/newrole $(1)/etc/pam.d
132 endif
133 endef
134
135 define BuildUtil
136 define Package/$(1)/install
137 $(INSTALL_DIR) $$(1)$(2)
138 $(INSTALL_BIN) $$(PKG_INSTALL_DIR)$(2)/$(3) $$(1)$(2)/$(if $(ALTS_$(3)),policycoreutils-$(3),$(3))
139 endef
140
141 $$(eval $$(call BuildPackage,$(1)))
142 endef
143
144 $(eval $(call BuildPackage,policycoreutils))
145 $(foreach a,$(SBIN_UTILS),$(eval $(call BuildUtil,policycoreutils-$(a),/sbin,$(a))))
146 $(foreach a,$(USR_BIN_UTILS),$(eval $(call BuildUtil,policycoreutils-$(a),/usr/bin,$(a))))
147 $(foreach a,$(USR_SBIN_UTILS),$(eval $(call BuildUtil,policycoreutils-$(a),/usr/sbin,$(a))))
148 $(foreach a,$(LIBEXEC_UTILS),$(eval $(call BuildUtil,policycoreutils-$(a),/usr/libexec/selinux/hll,$(a))))
149 $(eval $(call HostBuild))