From 7c0d8121c336a7a3ea4bef97626ba1ea5684fac4 Mon Sep 17 00:00:00 2001 From: Yi Zhao Date: Sat, 11 Mar 2023 21:12:57 +0800 Subject: libselinux-python: upgrade 3.4 -> 3.5 * Add dependency python3-setuptools-scm-native to fix build error. * Refresh patches. Signed-off-by: Yi Zhao Signed-off-by: Joe MacDonald --- recipes-security/selinux/libselinux-python_3.4.bb | 51 -------------------- recipes-security/selinux/libselinux-python_3.5.bb | 55 ++++++++++++++++++++++ ...x-python-modules-install-path-for-multili.patch | 10 ++-- ...PYCEXT-and-rely-on-the-installed-file-nam.patch | 10 ++-- 4 files changed, 65 insertions(+), 61 deletions(-) delete mode 100644 recipes-security/selinux/libselinux-python_3.4.bb create mode 100644 recipes-security/selinux/libselinux-python_3.5.bb diff --git a/recipes-security/selinux/libselinux-python_3.4.bb b/recipes-security/selinux/libselinux-python_3.4.bb deleted file mode 100644 index a850369..0000000 --- a/recipes-security/selinux/libselinux-python_3.4.bb +++ /dev/null @@ -1,51 +0,0 @@ -SUMMARY = "SELinux library and simple utilities" -DESCRIPTION = "libselinux provides an API for SELinux applications to get and set \ -process and file security contexts and to obtain security policy \ -decisions. Required for any applications that use the SELinux API." -SECTION = "base" -LICENSE = "PD" -LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=84b4d2c6ef954a2d4081e775a270d0d0" - -require selinux_common.inc - -inherit python3targetconfig pkgconfig - -FILESEXTRAPATHS:prepend := "${THISDIR}/libselinux:" -SRC_URI += "\ - file://0001-Makefile-fix-python-modules-install-path-for-multili.patch \ - file://0002-Do-not-use-PYCEXT-and-rely-on-the-installed-file-nam.patch \ - " - -S = "${WORKDIR}/git/libselinux" - -DEPENDS = "libsepol libpcre2 swig-native" -DEPENDS:append:libc-musl = " fts" - -RDEPENDS:${PN} = "libselinux python3-core python3-shell" - -def get_policyconfigarch(d): - import re - target = d.getVar('TARGET_ARCH') - p = re.compile('i.86') - target = p.sub('i386',target) - return "ARCH=%s" % (target) - -EXTRA_OEMAKE = "${@get_policyconfigarch(d)}" -EXTRA_OEMAKE:append:libc-musl = " FTS_LDLIBS=-lfts" - -FILES:${PN} = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*" -INSANE_SKIP:${PN} = "dev-so" - -do_compile() { - oe_runmake pywrap -j1 \ - PYLIBVER='python${PYTHON_BASEVERSION}${PYTHON_ABI}' \ - PYINC='-I${STAGING_INCDIR}/${PYLIBVER}' \ - PYLIBS='-L${STAGING_LIBDIR}/${PYLIBVER} -l${PYLIBVER}' -} - -do_install() { - oe_runmake install-pywrap \ - DESTDIR=${D} \ - PYLIBVER='python${PYTHON_BASEVERSION}${PYTHON_ABI}' \ - PYTHONLIBDIR='${libdir}/python${PYTHON_BASEVERSION}/site-packages' -} diff --git a/recipes-security/selinux/libselinux-python_3.5.bb b/recipes-security/selinux/libselinux-python_3.5.bb new file mode 100644 index 0000000..3555a72 --- /dev/null +++ b/recipes-security/selinux/libselinux-python_3.5.bb @@ -0,0 +1,55 @@ +SUMMARY = "SELinux library and simple utilities" +DESCRIPTION = "libselinux provides an API for SELinux applications to get and set \ +process and file security contexts and to obtain security policy \ +decisions. Required for any applications that use the SELinux API." +SECTION = "base" +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=84b4d2c6ef954a2d4081e775a270d0d0" + +require selinux_common.inc + +inherit python3targetconfig pkgconfig + +FILESEXTRAPATHS:prepend := "${THISDIR}/libselinux:" +SRC_URI += "\ + file://0001-Makefile-fix-python-modules-install-path-for-multili.patch \ + file://0002-Do-not-use-PYCEXT-and-rely-on-the-installed-file-nam.patch \ + " + +S = "${WORKDIR}/git/libselinux" + +DEPENDS = "libsepol libpcre2 swig-native python3-setuptools-scm-native" +DEPENDS:append:libc-musl = " fts" + +RDEPENDS:${PN} = "libselinux python3-core python3-shell" + +def get_policyconfigarch(d): + import re + target = d.getVar('TARGET_ARCH') + p = re.compile('i.86') + target = p.sub('i386',target) + return "ARCH=%s" % (target) + +EXTRA_OEMAKE = "${@get_policyconfigarch(d)}" +EXTRA_OEMAKE:append:libc-musl = " FTS_LDLIBS=-lfts" + +FILES:${PN} = "${PYTHON_SITEPACKAGES_DIR}/*" +INSANE_SKIP:${PN} = "dev-so" + +do_compile() { + oe_runmake pywrap -j1 \ + PYLIBVER='python${PYTHON_BASEVERSION}' \ + PYINC='-I${STAGING_INCDIR}/${PYLIBVER}' \ + PYLIBS='-L${STAGING_LIBDIR}/${PYLIBVER} -l${PYLIBVER}' +} + +do_install() { + oe_runmake install-pywrap \ + DESTDIR=${D} \ + PYLIBVER='python${PYTHON_BASEVERSION}' \ + PYTHONLIBDIR='${PYTHON_SITEPACKAGES_DIR}' + + # Fix buildpaths issue + sed -i -e 's,${WORKDIR},,g' \ + ${D}${PYTHON_SITEPACKAGES_DIR}/selinux-${PV}.dist-info/direct_url.json +} diff --git a/recipes-security/selinux/libselinux/0001-Makefile-fix-python-modules-install-path-for-multili.patch b/recipes-security/selinux/libselinux/0001-Makefile-fix-python-modules-install-path-for-multili.patch index 9750cd6..1b9dfbb 100644 --- a/recipes-security/selinux/libselinux/0001-Makefile-fix-python-modules-install-path-for-multili.patch +++ b/recipes-security/selinux/libselinux/0001-Makefile-fix-python-modules-install-path-for-multili.patch @@ -1,4 +1,4 @@ -From 1ff60a36bb0bfc95ce33cf950f58e121548a3c8a Mon Sep 17 00:00:00 2001 +From 57a087de68d6f7fe955268ee36b523cbe7c0c6db Mon Sep 17 00:00:00 2001 From: Yi Zhao Date: Mon, 13 Apr 2020 12:44:23 +0800 Subject: [PATCH] Makefile: fix python modules install path for multilib @@ -11,15 +11,15 @@ Signed-off-by: Yi Zhao 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile b/src/Makefile -index 04bf4f2..81ae6a2 100644 +index 36d5712..983f8af 100644 --- a/src/Makefile +++ b/src/Makefile -@@ -181,7 +181,7 @@ install: all +@@ -187,7 +187,7 @@ install: all ln -sf --relative $(DESTDIR)$(SHLIBDIR)/$(LIBSO) $(DESTDIR)$(LIBDIR)/$(TARGET) install-pywrap: pywrap -- $(PYTHON) setup.py install --prefix=$(PREFIX) `test -n "$(DESTDIR)" && echo --root $(DESTDIR)` $(PYTHON_SETUP_ARGS) -+ $(PYTHON) setup.py install --prefix=$(PREFIX) --root=$(DESTDIR) --install-lib=$(PYTHONLIBDIR) $(PYTHON_SETUP_ARGS) +- $(PYTHON) -m pip install --prefix=$(PREFIX) `test -n "$(DESTDIR)" && echo --root $(DESTDIR) --ignore-installed --no-deps` $(PYTHON_SETUP_ARGS) . ++ $(PYTHON) -m pip install --prefix=$(PREFIX) --root $(DESTDIR) --ignore-installed --no-deps $(PYTHON_SETUP_ARGS) . install -m 644 $(SWIGPYOUT) $(DESTDIR)$(PYTHONLIBDIR)/selinux/__init__.py ln -sf --relative $(DESTDIR)$(PYTHONLIBDIR)/selinux/_selinux$(PYCEXT) $(DESTDIR)$(PYTHONLIBDIR)/_selinux$(PYCEXT) diff --git a/recipes-security/selinux/libselinux/0002-Do-not-use-PYCEXT-and-rely-on-the-installed-file-nam.patch b/recipes-security/selinux/libselinux/0002-Do-not-use-PYCEXT-and-rely-on-the-installed-file-nam.patch index db7d68f..cd5510d 100644 --- a/recipes-security/selinux/libselinux/0002-Do-not-use-PYCEXT-and-rely-on-the-installed-file-nam.patch +++ b/recipes-security/selinux/libselinux/0002-Do-not-use-PYCEXT-and-rely-on-the-installed-file-nam.patch @@ -1,4 +1,4 @@ -From dae53d7cd4d7875f7fb7aba016a0331559044eea Mon Sep 17 00:00:00 2001 +From 1454521f2b9f2cbc3c40177aae9c260ec8966ae0 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Fri, 25 Oct 2019 13:37:14 +0200 Subject: [PATCH] Do not use PYCEXT, and rely on the installed file name @@ -27,20 +27,20 @@ Signed-off-by: Changqing Li 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Makefile b/src/Makefile -index 81ae6a2..37399e1 100644 +index 983f8af..3d777bb 100644 --- a/src/Makefile +++ b/src/Makefile @@ -15,7 +15,6 @@ INCLUDEDIR ?= $(PREFIX)/include PYINC ?= $(shell $(PKG_CONFIG) --cflags $(PYPREFIX)) PYLIBS ?= $(shell $(PKG_CONFIG) --libs $(PYPREFIX)) - PYTHONLIBDIR ?= $(shell $(PYTHON) -c "from distutils.sysconfig import *; print(get_python_lib(plat_specific=1, prefix='$(PREFIX)'))") + PYTHONLIBDIR ?= $(shell $(PYTHON) -c "import sysconfig; print(sysconfig.get_path('platlib', vars={'platbase': '$(PREFIX)', 'base': '$(PREFIX)'}))") -PYCEXT ?= $(shell $(PYTHON) -c 'import importlib.machinery;print(importlib.machinery.EXTENSION_SUFFIXES[0])') RUBYINC ?= $(shell $(RUBY) -e 'puts "-I" + RbConfig::CONFIG["rubyarchhdrdir"] + " -I" + RbConfig::CONFIG["rubyhdrdir"]') RUBYLIBS ?= $(shell $(RUBY) -e 'puts "-L" + RbConfig::CONFIG["libdir"] + " -L" + RbConfig::CONFIG["archlibdir"] + " " + RbConfig::CONFIG["LIBRUBYARG_SHARED"]') RUBYINSTALL ?= $(shell $(RUBY) -e 'puts RbConfig::CONFIG["vendorarchdir"]') -@@ -183,7 +182,7 @@ install: all +@@ -189,7 +188,7 @@ install: all install-pywrap: pywrap - $(PYTHON) setup.py install --prefix=$(PREFIX) --root=$(DESTDIR) --install-lib=$(PYTHONLIBDIR) $(PYTHON_SETUP_ARGS) + $(PYTHON) -m pip install --prefix=$(PREFIX) --root $(DESTDIR) --ignore-installed --no-deps $(PYTHON_SETUP_ARGS) . install -m 644 $(SWIGPYOUT) $(DESTDIR)$(PYTHONLIBDIR)/selinux/__init__.py - ln -sf --relative $(DESTDIR)$(PYTHONLIBDIR)/selinux/_selinux$(PYCEXT) $(DESTDIR)$(PYTHONLIBDIR)/_selinux$(PYCEXT) + ln -sf --relative $(DESTDIR)$(PYTHONLIBDIR)/selinux/_selinux*.so $(DESTDIR)$(PYTHONLIBDIR)/ -- cgit v1.2.3-54-g00ecf