summaryrefslogtreecommitdiffstats
path: root/recipes-security/selinux/policycoreutils_3.3.bb
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-security/selinux/policycoreutils_3.3.bb')
-rw-r--r--recipes-security/selinux/policycoreutils_3.3.bb179
1 files changed, 179 insertions, 0 deletions
diff --git a/recipes-security/selinux/policycoreutils_3.3.bb b/recipes-security/selinux/policycoreutils_3.3.bb
new file mode 100644
index 0000000..04f8ef7
--- /dev/null
+++ b/recipes-security/selinux/policycoreutils_3.3.bb
@@ -0,0 +1,179 @@
1SUMMARY = "SELinux policy core utilities"
2DESCRIPTION = "policycoreutils contains the policy core utilities that are required \
3for basic operation of a SELinux system. These utilities include \
4load_policy to load policies, setfiles to label filesystems, newrole \
5to switch roles, and run_init to run /etc/init.d scripts in the proper \
6context."
7SECTION = "base"
8LICENSE = "GPLv2+"
9LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=393a5ca445f6965873eca0259a17f833"
10
11require selinux_common.inc
12
13SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
14 file://policycoreutils-fixfiles-de-bashify.patch \
15 "
16
17PAM_SRC_URI = "file://pam.d/newrole \
18 file://pam.d/run_init \
19 "
20
21DEPENDS += "libsepol libselinux libsemanage libcap gettext-native"
22EXTRA_DEPENDS = "libcap-ng libcgroup"
23DEPENDS += "${@['', '${EXTRA_DEPENDS}']['${PN}' != '${BPN}-native']}"
24
25S = "${WORKDIR}/git/policycoreutils"
26
27inherit selinux python3native
28
29RDEPENDS:${BPN}-fixfiles += "\
30 ${BPN}-setfiles \
31 grep \
32 findutils \
33"
34RDEPENDS:${BPN}-genhomedircon += "\
35 ${BPN}-semodule \
36"
37RDEPENDS:${BPN}-loadpolicy += "\
38 libselinux \
39 libsepol \
40"
41RDEPENDS:${BPN}-newrole += "\
42 libcap-ng \
43 libselinux \
44"
45RDEPENDS:${BPN}-runinit += "libselinux"
46RDEPENDS:${BPN}-secon += "libselinux"
47RDEPENDS:${BPN}-semodule += "\
48 libsepol \
49 libselinux \
50 libsemanage \
51"
52RDEPENDS:${BPN}-sestatus += "libselinux"
53RDEPENDS:${BPN}-setfiles += "\
54 libselinux \
55 libsepol \
56"
57RDEPENDS:${BPN}-setsebool += "\
58 libsepol \
59 libselinux \
60 libsemanage \
61"
62RDEPENDS:${BPN} += "selinux-python"
63
64PACKAGES =+ "\
65 ${PN}-fixfiles \
66 ${PN}-genhomedircon \
67 ${PN}-hll \
68 ${PN}-loadpolicy \
69 ${PN}-newrole \
70 ${PN}-runinit \
71 ${PN}-secon \
72 ${PN}-semodule \
73 ${PN}-sestatus \
74 ${PN}-setfiles \
75 ${PN}-setsebool \
76"
77FILES:${PN}-fixfiles += "${base_sbindir}/fixfiles"
78FILES:${PN}-genhomedircon += "${base_sbindir}/genhomedircon"
79FILES:${PN}-loadpolicy += "\
80 ${base_sbindir}/load_policy \
81"
82FILES:${PN}-newrole += "\
83 ${bindir}/newrole \
84 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${sysconfdir}/pam.d/newrole', '', d)} \
85"
86FILES:${PN}-runinit += "\
87 ${base_sbindir}/run_init \
88 ${base_sbindir}/open_init_pty \
89 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${sysconfdir}/pam.d/run_init', '', d)} \
90"
91FILES:${PN}-dbg += "${prefix}/libexec/selinux/hll/.debug"
92FILES:${PN}-secon += "${bindir}/secon"
93FILES:${PN}-semodule += "${base_sbindir}/semodule"
94FILES:${PN}-hll += "${prefix}/libexec/selinux/hll/*"
95FILES:${PN}-sestatus += "\
96 ${base_sbindir}/sestatus \
97 ${sysconfdir}/sestatus.conf \
98"
99FILES:${PN}-setfiles += "\
100 ${base_sbindir}/restorecon \
101 ${base_sbindir}/restorecon_xattr \
102 ${base_sbindir}/setfiles \
103"
104FILES:${PN}-setsebool += "\
105 ${base_sbindir}/setsebool \
106 ${datadir}/bash-completion/completions/setsebool \
107"
108
109export STAGING_INCDIR
110export STAGING_LIBDIR
111export BUILD_SYS
112export HOST_SYS
113
114PACKAGECONFIG:class-target ?= "\
115 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} \
116 audit \
117"
118
119PACKAGECONFIG[libpam] = ",,libpam,"
120PACKAGECONFIG[audit] = ",,audit,"
121
122EXTRA_OEMAKE += "\
123 ${@bb.utils.contains('PACKAGECONFIG', 'libpam', 'PAMH=y', 'PAMH=', d)} \
124 ${@bb.utils.contains('PACKAGECONFIG', 'audit', 'AUDITH=y', 'AUDITH=', d)} \
125 INOTIFYH=n \
126 PREFIX=${prefix} \
127 SBINDIR=${base_sbindir} \
128"
129
130BBCLASSEXTEND = "native"
131
132PCU_NATIVE_CMDS = "setfiles semodule hll"
133
134do_compile:class-native() {
135 for PCU_CMD in ${PCU_NATIVE_CMDS} ; do
136 oe_runmake -C $PCU_CMD \
137 INCLUDEDIR='${STAGING_INCDIR}' \
138 LIBDIR='${STAGING_LIBDIR}'
139 done
140}
141
142sysroot_stage_dirs:append:class-native() {
143 cp -R $from/${prefix}/libexec $to/${prefix}/libexec
144}
145
146do_compile:prepend() {
147 export PYTHON=python3
148 export PYLIBVER='python${PYTHON_BASEVERSION}'
149 export PYTHON_CPPFLAGS="-I${STAGING_INCDIR}/${PYLIBVER}"
150 export PYTHON_LDFLAGS="${STAGING_LIBDIR}/lib${PYLIBVER}.so"
151 export PYTHON_SITE_PKG="${libdir}/${PYLIBVER}/site-packages"
152}
153
154do_install:prepend() {
155 export PYTHON=python3
156 export SBINDIR="${D}/${base_sbindir}"
157}
158
159do_install:class-native() {
160 for PCU_CMD in ${PCU_NATIVE_CMDS} ; do
161 oe_runmake -C $PCU_CMD install \
162 DESTDIR="${D}" \
163 PREFIX="${prefix}" \
164 SBINDIR="${base_sbindir}"
165 done
166}
167
168do_install:append:class-target() {
169 if [ -e ${WORKDIR}/pam.d ]; then
170 install -d ${D}${sysconfdir}/pam.d/
171 install -m 0644 ${WORKDIR}/pam.d/* ${D}${sysconfdir}/pam.d/
172 fi
173
174 # /var/lib/selinux is involved by seobject.py:
175 # + dirname = "/var/lib/selinux"
176 # and it's required for running command:
177 # $ semanage permissive [OPTS]
178 install -d ${D}${localstatedir}/lib/selinux
179}