diff options
Diffstat (limited to 'recipes-security/selinux/policycoreutils_3.3.bb')
-rw-r--r-- | recipes-security/selinux/policycoreutils_3.3.bb | 179 |
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 @@ | |||
1 | SUMMARY = "SELinux policy core utilities" | ||
2 | DESCRIPTION = "policycoreutils contains the policy core utilities that are required \ | ||
3 | for basic operation of a SELinux system. These utilities include \ | ||
4 | load_policy to load policies, setfiles to label filesystems, newrole \ | ||
5 | to switch roles, and run_init to run /etc/init.d scripts in the proper \ | ||
6 | context." | ||
7 | SECTION = "base" | ||
8 | LICENSE = "GPLv2+" | ||
9 | LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=393a5ca445f6965873eca0259a17f833" | ||
10 | |||
11 | require selinux_common.inc | ||
12 | |||
13 | SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ | ||
14 | file://policycoreutils-fixfiles-de-bashify.patch \ | ||
15 | " | ||
16 | |||
17 | PAM_SRC_URI = "file://pam.d/newrole \ | ||
18 | file://pam.d/run_init \ | ||
19 | " | ||
20 | |||
21 | DEPENDS += "libsepol libselinux libsemanage libcap gettext-native" | ||
22 | EXTRA_DEPENDS = "libcap-ng libcgroup" | ||
23 | DEPENDS += "${@['', '${EXTRA_DEPENDS}']['${PN}' != '${BPN}-native']}" | ||
24 | |||
25 | S = "${WORKDIR}/git/policycoreutils" | ||
26 | |||
27 | inherit selinux python3native | ||
28 | |||
29 | RDEPENDS:${BPN}-fixfiles += "\ | ||
30 | ${BPN}-setfiles \ | ||
31 | grep \ | ||
32 | findutils \ | ||
33 | " | ||
34 | RDEPENDS:${BPN}-genhomedircon += "\ | ||
35 | ${BPN}-semodule \ | ||
36 | " | ||
37 | RDEPENDS:${BPN}-loadpolicy += "\ | ||
38 | libselinux \ | ||
39 | libsepol \ | ||
40 | " | ||
41 | RDEPENDS:${BPN}-newrole += "\ | ||
42 | libcap-ng \ | ||
43 | libselinux \ | ||
44 | " | ||
45 | RDEPENDS:${BPN}-runinit += "libselinux" | ||
46 | RDEPENDS:${BPN}-secon += "libselinux" | ||
47 | RDEPENDS:${BPN}-semodule += "\ | ||
48 | libsepol \ | ||
49 | libselinux \ | ||
50 | libsemanage \ | ||
51 | " | ||
52 | RDEPENDS:${BPN}-sestatus += "libselinux" | ||
53 | RDEPENDS:${BPN}-setfiles += "\ | ||
54 | libselinux \ | ||
55 | libsepol \ | ||
56 | " | ||
57 | RDEPENDS:${BPN}-setsebool += "\ | ||
58 | libsepol \ | ||
59 | libselinux \ | ||
60 | libsemanage \ | ||
61 | " | ||
62 | RDEPENDS:${BPN} += "selinux-python" | ||
63 | |||
64 | PACKAGES =+ "\ | ||
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 | " | ||
77 | FILES:${PN}-fixfiles += "${base_sbindir}/fixfiles" | ||
78 | FILES:${PN}-genhomedircon += "${base_sbindir}/genhomedircon" | ||
79 | FILES:${PN}-loadpolicy += "\ | ||
80 | ${base_sbindir}/load_policy \ | ||
81 | " | ||
82 | FILES:${PN}-newrole += "\ | ||
83 | ${bindir}/newrole \ | ||
84 | ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${sysconfdir}/pam.d/newrole', '', d)} \ | ||
85 | " | ||
86 | FILES:${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 | " | ||
91 | FILES:${PN}-dbg += "${prefix}/libexec/selinux/hll/.debug" | ||
92 | FILES:${PN}-secon += "${bindir}/secon" | ||
93 | FILES:${PN}-semodule += "${base_sbindir}/semodule" | ||
94 | FILES:${PN}-hll += "${prefix}/libexec/selinux/hll/*" | ||
95 | FILES:${PN}-sestatus += "\ | ||
96 | ${base_sbindir}/sestatus \ | ||
97 | ${sysconfdir}/sestatus.conf \ | ||
98 | " | ||
99 | FILES:${PN}-setfiles += "\ | ||
100 | ${base_sbindir}/restorecon \ | ||
101 | ${base_sbindir}/restorecon_xattr \ | ||
102 | ${base_sbindir}/setfiles \ | ||
103 | " | ||
104 | FILES:${PN}-setsebool += "\ | ||
105 | ${base_sbindir}/setsebool \ | ||
106 | ${datadir}/bash-completion/completions/setsebool \ | ||
107 | " | ||
108 | |||
109 | export STAGING_INCDIR | ||
110 | export STAGING_LIBDIR | ||
111 | export BUILD_SYS | ||
112 | export HOST_SYS | ||
113 | |||
114 | PACKAGECONFIG:class-target ?= "\ | ||
115 | ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} \ | ||
116 | audit \ | ||
117 | " | ||
118 | |||
119 | PACKAGECONFIG[libpam] = ",,libpam," | ||
120 | PACKAGECONFIG[audit] = ",,audit," | ||
121 | |||
122 | EXTRA_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 | |||
130 | BBCLASSEXTEND = "native" | ||
131 | |||
132 | PCU_NATIVE_CMDS = "setfiles semodule hll" | ||
133 | |||
134 | do_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 | |||
142 | sysroot_stage_dirs:append:class-native() { | ||
143 | cp -R $from/${prefix}/libexec $to/${prefix}/libexec | ||
144 | } | ||
145 | |||
146 | do_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 | |||
154 | do_install:prepend() { | ||
155 | export PYTHON=python3 | ||
156 | export SBINDIR="${D}/${base_sbindir}" | ||
157 | } | ||
158 | |||
159 | do_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 | |||
168 | do_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 | } | ||