meta-selinux/recipes-security/selinux/selinux-python_3.9.bb
Anuj Mittal 9894597022 selinux-python: make semanage RDEPENDS on sepolgen
Make the dependency explicit, otherwise when it leads to errors when it
is not included.

| ~ # semanage permissive
| Traceback (most recent call last):
|   File "/sbin/semanage", line 29, in <module>
|     import seobject
|   File "/usr/lib/python3.13/site-packages/seobject.py", line 33, in <module>
|     import sepolicy
|   File "/usr/lib/python3.13/site-packages/sepolicy/__init__.py", line 8, in <module>
|     import sepolgen.defaults as defaults
| ModuleNotFoundError: No module named 'sepolgen'

Signed-off-by: Anuj Mittal <anuj.mittal@oss.qualcomm.com>
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
2025-11-19 15:12:44 +08:00

129 lines
3.3 KiB
BlitzBasic

SUMMARY = "Python modules and various SELinux utilities."
DESCRIPTION = "\
This package contains Python modules sepolgen, sepolicy; And the \
SELinux utilities audit2allow, chcat, semanage ..."
SECTION = "base"
LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=393a5ca445f6965873eca0259a17f833"
require selinux_common.inc
inherit python3targetconfig
SRC_URI += "file://0001-sepolicy-fix-install-path-for-new-pymodule-sepolicy.patch;patchdir=.. \
file://0002-sepolicy-set-conf.substitutions-releasever-to-empty-.patch;patchdir=.. \
"
S = "${UNPACKDIR}/${BP}/python"
DEPENDS = "libsepol libselinux gettext-native python3-setuptools-scm-native python3-pip-native"
RDEPENDS:${PN} = "\
python3-core \
python3-codecs \
python3-io \
python3-ipy \
python3-stringold \
python3-syslog \
python3-unixadmin \
libselinux-python \
libsemanage-python \
setools \
"
RDEPENDS:${PN}-audit2allow = "\
python3-core \
libselinux-python \
${PN}-sepolgen \
"
RDEPENDS:${PN}-chcat = "\
python3-core \
python3-codecs \
python3-shell \
python3-stringold \
python3-unixadmin \
libselinux-python \
${PN} \
"
RDEPENDS:${PN}-semanage = "\
python3-core \
python3-ipy \
python3-compression \
python3-xml \
python3-misc \
libselinux-python \
audit-python \
${PN} \
${PN}-sepolgen \
"
PACKAGECONFIG ??= "sepolicy-generate"
PACKAGECONFIG[sepolicy-generate] = ",,,"
RDEPENDS:${PN}-sepolicy = "\
${@bb.utils.contains('PACKAGECONFIG', 'sepolicy-generate', 'binutils', '', d)} \
python3-core \
python3-codecs \
python3-distro \
python3-syslog \
python3-multiprocessing \
${PN} \
"
RDEPENDS:${PN}-sepolgen-ifgen = "\
python3-core \
libselinux-python \
"
PACKAGES =+ "\
${PN}-audit2allow \
${PN}-sepolgen-ifgen \
${PN}-chcat \
${PN}-semanage \
${PN}-sepolgen \
${PN}-sepolicy \
"
FILES:${PN}-audit2allow = "\
${bindir}/audit2allow \
${bindir}/audit2why \
"
FILES:${PN}-chcat = "\
${bindir}/chcat \
"
FILES:${PN}-semanage = "\
${sbindir}/semanage \
${datadir}/bash-completion/completions/semanage \
"
# The ${bindir}/sepolgen is a symlink to ${bindir}/sepolicy
FILES:${PN}-sepolicy = "\
${bindir}/sepolgen \
${bindir}/sepolicy \
${datadir}/bash-completion/completions/sepolicy \
"
FILES:${PN}-sepolgen-ifgen = "\
${bindir}/sepolgen-ifgen \
${bindir}/sepolgen-ifgen-attr-helper \
"
FILES:${PN}-sepolgen = "\
${PYTHON_SITEPACKAGES_DIR}/sepolgen* \
${localstatedir}/lib/sepolgen/perm_map \
"
FILES:${PN} += "\
${PYTHON_SITEPACKAGES_DIR}/seobject.py* \
${PYTHON_SITEPACKAGES_DIR}/sepolicy*.dist-info \
${PYTHON_SITEPACKAGES_DIR}/sepolicy/* \
"
do_install() {
oe_runmake \
DESTDIR="${D}" \
PREFIX=${prefix} \
PYLIBVER='python${PYTHON_BASEVERSION}' \
PYTHONLIBDIR='${PYTHON_SITEPACKAGES_DIR}' \
install
# Remove .pyc files
find ${D} -name *.pyc -delete
# Fix buildpaths issue
sed -i -e 's,${WORKDIR},,g' \
${D}${PYTHON_SITEPACKAGES_DIR}/sepolicy-${PV}.dist-info/direct_url.json
}