summaryrefslogtreecommitdiffstats
path: root/recipes-security/selinux/libselinux-python_3.2.bb
blob: b74144951f42382d8ac00a8bde22d6e25e30bbf7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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 python3native python3targetconfig

FILESEXTRAPATHS_prepend := "${THISDIR}/libselinux:"
SRC_URI += "\
        file://0001-Makefile-fix-python-modules-install-path-for-multili.patch \
        file://0001-Do-not-use-PYCEXT-and-rely-on-the-installed-file-nam.patch \
        "

S = "${WORKDIR}/git/libselinux"

DEPENDS += "python3 swig-native libpcre libsepol"
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 += "LDFLAGS='${LDFLAGS} -lpcre' LIBSEPOLA='${STAGING_LIBDIR}/libsepol.a'"
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'
}