* [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11
@ 2026-10-31 20:38 Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 01/17] selinux: add common version and URL Ladislav Michl
` (16 more replies)
0 siblings, 17 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
This serie was originally written for selinux-3.0 in 2019 when all the
patches were just version bumps with fixes. Now, once PTXdist dropped
most of them after quite some time in staging, every package is first
restored by a partial revert of its removal commit, followed by a version
bump that does the actual changes. Only the still needed files are
restored by each revert. This will hopefully make the serie easier
to review and keep a history in tree.
Tested on an ARMv7 target with glibc and python 3.13.
This is a second attempt, see changelog appended to patches.
Link to v1: https://lore.ptxdist.org/ptxdist/cover.1792491301.git.ladis@triops.cz/
Ladislav Michl (17):
selinux: add common version and URL
Revert "python: remove after more than one year in staging"
host-swig: version bump 4.0.1 -> 4.5.1
Revert "*libsepol: remove"
libsepol: version bump 2.1.8 -> 3.11
Revert "libselinux: remove after more than one year in staging"
libselinux: version bump 2.1.12 -> 3.11
audit: new package
Revert "libsemanage: remove after more than one year in staging"
libsemanage: version bump 2.1.9 -> 3.11
Revert "checkpolicy: remove after more than one year in staging"
checkpolicy: version bump 2.1.11 -> 3.11
Revert "policycoreutils: remove after more than one year in staging"
policycoreutils: version bump 2.1.13 -> 3.11
Revert "sepolgen: remove after one year in staging"
sepolgen: version bump 1.1.8 -> 3.11
selinux: restore the global option
patches/audit-userspace-4.2.1/autogen.sh | 1 +
...PyString_FromString-with-PyUnicode_F.patch | 48 ++++++
patches/libselinux-3.11/series | 4 +
rules/at.in | 1 +
rules/audit.in | 19 +++
rules/audit.make | 102 +++++++++++++
rules/busybox.in | 1 +
rules/casync.in | 1 +
rules/checkpolicy.in | 25 ++++
rules/checkpolicy.make | 59 ++++++++
rules/connman.in | 1 +
rules/core-selinux.in | 1 -
rules/coreutils.in | 1 +
rules/dbus.in | 6 +-
rules/dbus.make | 2 +-
rules/f2fs-tools.in | 1 +
rules/gnupg.in | 1 +
rules/host-swig.in | 6 +
rules/host-swig.make | 48 ++++++
rules/iproute2.in | 1 +
rules/iproute2.make | 3 +
rules/libselinux.in | 66 +++++++++
rules/libselinux.make | 126 ++++++++++++++++
rules/libsemanage.in | 24 +++
rules/libsemanage.make | 91 ++++++++++++
rules/libsepol.in | 11 ++
rules/libsepol.make | 60 ++++++++
rules/logrotate.in | 1 +
rules/lxc.in | 1 +
rules/mtd-utils.in | 1 +
rules/openssh.in | 1 +
rules/policycoreutils.in | 90 ++++++++++++
rules/policycoreutils.make | 138 ++++++++++++++++++
rules/pre/Rules.make | 6 -
rules/pre/selinux.make | 10 ++
rules/selinux-python.in | 12 ++
rules/selinux-python.make | 68 +++++++++
rules/shadow.in | 1 +
rules/strongswan.in | 1 +
rules/systemd.in | 1 +
40 files changed, 1028 insertions(+), 13 deletions(-)
create mode 120000 patches/audit-userspace-4.2.1/autogen.sh
create mode 100644 patches/libselinux-3.11/0001-libselinux-Replace-PyString_FromString-with-PyUnicode_F.patch
create mode 100644 patches/libselinux-3.11/series
create mode 100644 rules/audit.in
create mode 100644 rules/audit.make
create mode 100644 rules/checkpolicy.in
create mode 100644 rules/checkpolicy.make
create mode 100644 rules/host-swig.in
create mode 100644 rules/host-swig.make
create mode 100644 rules/libselinux.in
create mode 100644 rules/libselinux.make
create mode 100644 rules/libsemanage.in
create mode 100644 rules/libsemanage.make
create mode 100644 rules/libsepol.in
create mode 100644 rules/libsepol.make
create mode 100644 rules/policycoreutils.in
create mode 100644 rules/policycoreutils.make
create mode 100644 rules/pre/selinux.make
create mode 100644 rules/selinux-python.in
create mode 100644 rules/selinux-python.make
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 01/17] selinux: add common version and URL
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 02/17] Revert "python: remove after more than one year in staging" Ladislav Michl
` (15 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
All SELinux userspace components are released together, so keep the
version and download location in one place.
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: None
rules/pre/selinux.make | 10 ++++++++++
1 file changed, 10 insertions(+)
create mode 100644 rules/pre/selinux.make
diff --git a/rules/pre/selinux.make b/rules/pre/selinux.make
new file mode 100644
index 000000000..d996d4080
--- /dev/null
+++ b/rules/pre/selinux.make
@@ -0,0 +1,10 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2019 by Ladislav Michl <ladis@linux-mips.org>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+SELINUX_VERSION := 3.11
+SELINUX_URL := https://github.com/SELinuxProject/selinux/releases/download/$(SELINUX_VERSION)
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 02/17] Revert "python: remove after more than one year in staging"
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 01/17] selinux: add common version and URL Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 03/17] host-swig: version bump 4.0.1 -> 4.5.1 Ladislav Michl
` (14 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
This partially reverts commit 441d22b5ed7a4a7a87f952150222004ef989f8d6.
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: None
rules/host-swig.in | 23 ++++++++++++++++
rules/host-swig.make | 63 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 86 insertions(+)
create mode 100644 rules/host-swig.in
create mode 100644 rules/host-swig.make
diff --git a/rules/host-swig.in b/rules/host-swig.in
new file mode 100644
index 000000000..56a23fcce
--- /dev/null
+++ b/rules/host-swig.in
@@ -0,0 +1,23 @@
+## SECTION=hosttools_noprompt
+
+config HOST_SWIG
+ tristate
+ default y if ALLYES
+ select HOST_ZLIB
+ select HOST_LIBPCRE
+ select HOST_PYTHON if HOST_SWIG_PYTHON_SUPPORT
+ select HOST_PYTHON3 if HOST_SWIG_PYTHON3_SUPPORT
+ select HOST_SYSTEM_JDK if HOST_SWIG_JAVA_SUPPORT
+
+if HOST_SWIG
+
+config HOST_SWIG_JAVA_SUPPORT
+ bool
+
+config HOST_SWIG_PYTHON_SUPPORT
+ bool
+
+config HOST_SWIG_PYTHON3_SUPPORT
+ bool
+
+endif
diff --git a/rules/host-swig.make b/rules/host-swig.make
new file mode 100644
index 000000000..0bdfe858f
--- /dev/null
+++ b/rules/host-swig.make
@@ -0,0 +1,63 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2013 by Marc Kleine-Budde <mkl@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_SWIG) += host-swig
+
+#
+# Paths and names
+#
+HOST_SWIG_VERSION := 4.0.1
+HOST_SWIG_MD5 := 54cc40b3804816f7d38ab510b6f13b04
+HOST_SWIG := swig-$(HOST_SWIG_VERSION)
+HOST_SWIG_SUFFIX := tar.gz
+HOST_SWIG_URL := $(call ptx/mirror, SF, swig/$(HOST_SWIG).$(HOST_SWIG_SUFFIX))
+HOST_SWIG_SOURCE := $(SRCDIR)/$(HOST_SWIG).$(HOST_SWIG_SUFFIX)
+HOST_SWIG_DIR := $(HOST_BUILDDIR)/$(HOST_SWIG)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+HOST_SWIG_CONF_TOOL := autoconf
+HOST_SWIG_DEVPKG := NO
+
+# no := due to CROSS_PYTHON
+HOST_SWIG_CONF_OPT = \
+ $(HOST_AUTOCONF_SYSROOT) \
+ --without-boost \
+ --without-x \
+ --without-tcl \
+ $(call ptx/ifdef, PTXCONF_HOST_SWIG_PYTHON_SUPPORT, --with-python=$(CROSS_PYTHON), --without-python) \
+ $(call ptx/ifdef, PTXCONF_HOST_SWIG_PYTHON3_SUPPORT, --with-python=$(CROSS_PYTHON3), --without-python3) \
+ --without-perl5 \
+ --without-octave \
+ $(call ptx/ifdef, PTXCONF_HOST_SWIG_JAVA_SUPPORT, --with-java=$(PTXCONF_SETUP_JAVA_SDK), --without-java) \
+ --without-gcj \
+ --without-android \
+ --without-guile \
+ --without-mzscheme \
+ --without-ruby \
+ --without-php \
+ --without-ocaml \
+ --without-pike \
+ --without-chicken \
+ --without-csharp \
+ --without-lua \
+ --without-allegrocl \
+ --without-clisp \
+ --without-r \
+ --without-go \
+ --without-d
+
+# vim: syntax=make
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 03/17] host-swig: version bump 4.0.1 -> 4.5.1
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 01/17] selinux: add common version and URL Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 02/17] Revert "python: remove after more than one year in staging" Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 04/17] Revert "*libsepol: remove" Ladislav Michl
` (13 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
Only the code generator is needed for the SELinux python wrappers, so
disable all language checks.
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: None
rules/host-swig.in | 19 +---------------
rules/host-swig.make | 53 ++++++++++++++++----------------------------
2 files changed, 20 insertions(+), 52 deletions(-)
diff --git a/rules/host-swig.in b/rules/host-swig.in
index 56a23fcce..25a974d8f 100644
--- a/rules/host-swig.in
+++ b/rules/host-swig.in
@@ -3,21 +3,4 @@
config HOST_SWIG
tristate
default y if ALLYES
- select HOST_ZLIB
- select HOST_LIBPCRE
- select HOST_PYTHON if HOST_SWIG_PYTHON_SUPPORT
- select HOST_PYTHON3 if HOST_SWIG_PYTHON3_SUPPORT
- select HOST_SYSTEM_JDK if HOST_SWIG_JAVA_SUPPORT
-
-if HOST_SWIG
-
-config HOST_SWIG_JAVA_SUPPORT
- bool
-
-config HOST_SWIG_PYTHON_SUPPORT
- bool
-
-config HOST_SWIG_PYTHON3_SUPPORT
- bool
-
-endif
+ select HOST_PCRE2
diff --git a/rules/host-swig.make b/rules/host-swig.make
index 0bdfe858f..2aef23ba0 100644
--- a/rules/host-swig.make
+++ b/rules/host-swig.make
@@ -14,50 +14,35 @@ HOST_PACKAGES-$(PTXCONF_HOST_SWIG) += host-swig
#
# Paths and names
#
-HOST_SWIG_VERSION := 4.0.1
-HOST_SWIG_MD5 := 54cc40b3804816f7d38ab510b6f13b04
+HOST_SWIG_VERSION := 4.5.1
+HOST_SWIG_SHA256 := 7fec50b27deddab5455a9633780b6341eddfb96215a7619e93a76eb27178f653
HOST_SWIG := swig-$(HOST_SWIG_VERSION)
HOST_SWIG_SUFFIX := tar.gz
-HOST_SWIG_URL := $(call ptx/mirror, SF, swig/$(HOST_SWIG).$(HOST_SWIG_SUFFIX))
+HOST_SWIG_URL := $(call ptx/mirror, SF, swig/swig/$(HOST_SWIG)/$(HOST_SWIG).$(HOST_SWIG_SUFFIX))
HOST_SWIG_SOURCE := $(SRCDIR)/$(HOST_SWIG).$(HOST_SWIG_SUFFIX)
HOST_SWIG_DIR := $(HOST_BUILDDIR)/$(HOST_SWIG)
+HOST_SWIG_LICENSE := GPL-3.0-or-later AND BSD-3-Clause AND custom
+HOST_SWIG_LICENSE_FILES := \
+ file://LICENSE;md5=e7807a6282784a7dde4c846626b08fc6 \
+ file://LICENSE-GPL;md5=d32239bcb673463ab874e80d47fae504 \
+ file://LICENSE-UNIVERSITIES;md5=8ce9dcc8f7c994de4a408b205c72ba08
+HOST_SWIG_CVE_PRODUCT := swig_project:swig
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-#
-# autoconf
-#
-HOST_SWIG_CONF_TOOL := autoconf
-HOST_SWIG_DEVPKG := NO
-
-# no := due to CROSS_PYTHON
-HOST_SWIG_CONF_OPT = \
+HOST_SWIG_CONF_TOOL := autoconf
+HOST_SWIG_DEVPKG := NO
+HOST_SWIG_CONF_OPT := \
$(HOST_AUTOCONF_SYSROOT) \
+ --disable-ccache \
+ --disable-cpp11-testing \
+ --without-maximum-compile-warnings \
+ --with-pcre \
+ --with-pcre2-prefix=$(PTXDIST_SYSROOT_HOST)/usr \
+ --without-clang-format \
--without-boost \
- --without-x \
- --without-tcl \
- $(call ptx/ifdef, PTXCONF_HOST_SWIG_PYTHON_SUPPORT, --with-python=$(CROSS_PYTHON), --without-python) \
- $(call ptx/ifdef, PTXCONF_HOST_SWIG_PYTHON3_SUPPORT, --with-python=$(CROSS_PYTHON3), --without-python3) \
- --without-perl5 \
- --without-octave \
- $(call ptx/ifdef, PTXCONF_HOST_SWIG_JAVA_SUPPORT, --with-java=$(PTXCONF_SETUP_JAVA_SDK), --without-java) \
- --without-gcj \
- --without-android \
- --without-guile \
- --without-mzscheme \
- --without-ruby \
- --without-php \
- --without-ocaml \
- --without-pike \
- --without-chicken \
- --without-csharp \
- --without-lua \
- --without-allegrocl \
- --without-clisp \
- --without-r \
- --without-go \
- --without-d
+ --without-alllang
# vim: syntax=make
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 04/17] Revert "*libsepol: remove"
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
` (2 preceding siblings ...)
2026-10-31 20:38 ` [ptxdist] [PATCH v2 03/17] host-swig: version bump 4.0.1 -> 4.5.1 Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 05/17] libsepol: version bump 2.1.8 -> 3.11 Ladislav Michl
` (12 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
This partially reverts commit 43c4d983818f726dfe651ea72d4b5ddd6a5c91bc.
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: do not restore host-libsepol, nothing uses it. Host tools are
only needed to build a policy, so they should come back together
with a policy package.
rules/libsepol.in | 10 +++++++++
rules/libsepol.make | 55 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 65 insertions(+)
create mode 100644 rules/libsepol.in
create mode 100644 rules/libsepol.make
diff --git a/rules/libsepol.in b/rules/libsepol.in
new file mode 100644
index 000000000..4ac087610
--- /dev/null
+++ b/rules/libsepol.in
@@ -0,0 +1,10 @@
+## SECTION=selinux
+
+config LIBSEPOL
+ tristate
+ prompt "libsepol"
+ help
+ libsepol provides an API for the manipulation of SELinux binary policies.
+ It is used by checkpolicy (the policy compiler) and similar tools, as well
+ as by programs like load_policy that need to perform specific transformations
+ on binary policies such as customizing policy boolean settings.
diff --git a/rules/libsepol.make b/rules/libsepol.make
new file mode 100644
index 000000000..cf5f4ef4d
--- /dev/null
+++ b/rules/libsepol.make
@@ -0,0 +1,55 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2012 by Wolfram Sang <w.sang@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBSEPOL) += libsepol
+
+#
+# Paths and names
+#
+LIBSEPOL_VERSION := 2.1.8
+LIBSEPOL_MD5 := 56fa100ed85d7f06bd92f2892d92b3b0
+LIBSEPOL := libsepol-$(LIBSEPOL_VERSION)
+LIBSEPOL_SUFFIX := tar.gz
+LIBSEPOL_URL := https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20120924/$(LIBSEPOL).$(LIBSEPOL_SUFFIX)
+LIBSEPOL_SOURCE := $(SRCDIR)/$(LIBSEPOL).$(LIBSEPOL_SUFFIX)
+LIBSEPOL_DIR := $(BUILDDIR)/$(LIBSEPOL)
+LIBSEPOL_LICENSE := LGPL-2.1-or-later
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBSEPOL_CONF_TOOL := NO
+LIBSEPOL_MAKE_ENV := \
+ $(CROSS_ENV) \
+ SHLIBDIR=$(LIBSEPOL_PKGDIR)/usr/lib \
+ CFLAGS="-O2 -Wall -g"
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libsepol.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libsepol)
+ @$(call install_fixup, libsepol,PRIORITY,optional)
+ @$(call install_fixup, libsepol,SECTION,base)
+ @$(call install_fixup, libsepol,AUTHOR,"Wolfram Sang <w.sang@pengutronix.de>")
+ @$(call install_fixup, libsepol,DESCRIPTION,missing)
+
+ @$(call install_lib, libsepol, 0, 0, 0644, libsepol)
+
+ @$(call install_finish, libsepol)
+
+ @$(call touch)
+
+# vim: syntax=make
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 05/17] libsepol: version bump 2.1.8 -> 3.11
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
` (3 preceding siblings ...)
2026-10-31 20:38 ` [ptxdist] [PATCH v2 04/17] Revert "*libsepol: remove" Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 06/17] Revert "libselinux: remove after more than one year in staging" Ladislav Michl
` (11 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: drop host-libsepol update accordingly.
rules/libsepol.in | 1 +
rules/libsepol.make | 19 ++++++++++++-------
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/rules/libsepol.in b/rules/libsepol.in
index 4ac087610..08e0aba60 100644
--- a/rules/libsepol.in
+++ b/rules/libsepol.in
@@ -3,6 +3,7 @@
config LIBSEPOL
tristate
prompt "libsepol"
+ select HOST_FLEX
help
libsepol provides an API for the manipulation of SELinux binary policies.
It is used by checkpolicy (the policy compiler) and similar tools, as well
diff --git a/rules/libsepol.make b/rules/libsepol.make
index cf5f4ef4d..6e63b6b1a 100644
--- a/rules/libsepol.make
+++ b/rules/libsepol.make
@@ -14,24 +14,29 @@ PACKAGES-$(PTXCONF_LIBSEPOL) += libsepol
#
# Paths and names
#
-LIBSEPOL_VERSION := 2.1.8
-LIBSEPOL_MD5 := 56fa100ed85d7f06bd92f2892d92b3b0
+LIBSEPOL_VERSION := $(SELINUX_VERSION)
+LIBSEPOL_SHA256 := 79f3d2c88f44b7eb5cf54d9792e03232297e17f97a179163f2750099a00f164d
LIBSEPOL := libsepol-$(LIBSEPOL_VERSION)
LIBSEPOL_SUFFIX := tar.gz
-LIBSEPOL_URL := https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20120924/$(LIBSEPOL).$(LIBSEPOL_SUFFIX)
+LIBSEPOL_URL := $(SELINUX_URL)/$(LIBSEPOL).$(LIBSEPOL_SUFFIX)
LIBSEPOL_SOURCE := $(SRCDIR)/$(LIBSEPOL).$(LIBSEPOL_SUFFIX)
LIBSEPOL_DIR := $(BUILDDIR)/$(LIBSEPOL)
LIBSEPOL_LICENSE := LGPL-2.1-or-later
+LIBSEPOL_LICENSE_FILES := file://LICENSE;md5=a6f89e2100d9b6cdffcea4f398e37343
+LIBSEPOL_CVE_PRODUCT := selinuxproject:libsepol
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-LIBSEPOL_CONF_TOOL := NO
-LIBSEPOL_MAKE_ENV := \
- $(CROSS_ENV) \
- SHLIBDIR=$(LIBSEPOL_PKGDIR)/usr/lib \
+LIBSEPOL_CONF_TOOL := NO
+LIBSEPOL_MAKE_ENV := $(CROSS_ENV)
+LIBSEPOL_MAKE_OPT := \
+ SHLIBDIR=/usr/lib \
CFLAGS="-O2 -Wall -g"
+LIBSEPOL_INSTALL_OPT := \
+ $(LIBSEPOL_MAKE_OPT) \
+ install
# ----------------------------------------------------------------------------
# Target-Install
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 06/17] Revert "libselinux: remove after more than one year in staging"
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
` (4 preceding siblings ...)
2026-10-31 20:38 ` [ptxdist] [PATCH v2 05/17] libsepol: version bump 2.1.8 -> 3.11 Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 07/17] libselinux: version bump 2.1.12 -> 3.11 Ladislav Michl
` (10 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
This partially reverts commit f4b8d42822a645d4336f9c25090fc3281886ce7e.
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: None
rules/libselinux.in | 27 +++++++++++++
rules/libselinux.make | 94 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 121 insertions(+)
create mode 100644 rules/libselinux.in
create mode 100644 rules/libselinux.make
diff --git a/rules/libselinux.in b/rules/libselinux.in
new file mode 100644
index 000000000..6d6b1e655
--- /dev/null
+++ b/rules/libselinux.in
@@ -0,0 +1,27 @@
+## SECTION=staging
+## old section:
+### SECTION=selinux
+
+menuconfig LIBSELINUX
+ tristate
+ prompt "libselinux "
+ select LIBPCRE
+ select LIBSEPOL
+ select PYTHON if LIBSELINUX_PYTHON
+ select HOST_SWIG if LIBSELINUX_PYTHON
+ help
+ 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.
+
+ STAGING: remove in ptxdist-2020.12.0
+ Old version that need to be updated. Fails to build with gcc >= 9.x.
+
+if LIBSELINUX
+
+config LIBSELINUX_PYTHON
+ bool "python wrapper"
+ depends on STAGING
+
+endif
diff --git a/rules/libselinux.make b/rules/libselinux.make
new file mode 100644
index 000000000..9f6b6a62f
--- /dev/null
+++ b/rules/libselinux.make
@@ -0,0 +1,94 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2012 by Wolfram Sang <w.sang@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBSELINUX) += libselinux
+
+#
+# Paths and names
+#
+LIBSELINUX_VERSION := 2.1.12
+LIBSELINUX_MD5 := 73270f384a032fad34b5fe075fa05ce2
+LIBSELINUX := libselinux-$(LIBSELINUX_VERSION)
+LIBSELINUX_SUFFIX := tar.gz
+LIBSELINUX_URL := https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20120924/$(LIBSELINUX).$(LIBSELINUX_SUFFIX)
+LIBSELINUX_SOURCE := $(SRCDIR)/$(LIBSELINUX).$(LIBSELINUX_SUFFIX)
+LIBSELINUX_DIR := $(BUILDDIR)/$(LIBSELINUX)
+LIBSELINUX_LICENSE := public_domain
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBSELINUX_CONF_TOOL := NO
+# no := due to CROSS_PYTHON
+LIBSELINUX_MAKE_ENV = \
+ $(CROSS_ENV) \
+ CFLAGS="-O2 -Wall -g" \
+ PYTHON=$(CROSS_PYTHON)
+LIBSELINUX_MAKE_OPT := \
+ LIBDIR=$(PTXDIST_SYSROOT_TARGET)/usr/lib
+LIBSELINUX_INSTALL_OPT := \
+ install
+
+ifdef PTXCONF_LIBSELINUX_PYTHON
+LIBSELINUX_MAKE_OPT += pywrap
+LIBSELINUX_INSTALL_OPT += install-pywrap
+endif
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+LIBSELINUX_PROGS := \
+ avcstat \
+ compute_av \
+ compute_create \
+ compute_member \
+ compute_relabel \
+ compute_user \
+ getconlist \
+ getdefaultcon \
+ getenforce \
+ getfilecon \
+ getpidcon \
+ getsebool \
+ getseuser \
+ matchpathcon \
+ policyvers \
+ selinux_check_securetty_context \
+ selinuxenabled \
+ selinuxexeccon \
+ setenforce \
+ setfilecon \
+ togglesebool
+
+$(STATEDIR)/libselinux.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libselinux)
+ @$(call install_fixup, libselinux,PRIORITY,optional)
+ @$(call install_fixup, libselinux,SECTION,base)
+ @$(call install_fixup, libselinux,AUTHOR,"Wolfram Sang <w.sang@pengutronix.de>")
+ @$(call install_fixup, libselinux,DESCRIPTION,missing)
+
+ @$(call install_lib, libselinux, 0, 0, 0644, libselinux)
+
+ @$(foreach prog, $(LIBSELINUX_PROGS), \
+ $(call install_copy, libselinux, 0, 0, 0755, -, /usr/sbin/$(prog));)
+
+ifdef PTXCONF_LIBSELINUX_PYTHON
+ @$(call install_tree, libselinux, 0, 0, -, $(PYTHON_SITEPACKAGES))
+endif
+ @$(call install_finish, libselinux)
+
+ @$(call touch)
+
+# vim: syntax=make
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 07/17] libselinux: version bump 2.1.12 -> 3.11
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
` (5 preceding siblings ...)
2026-10-31 20:38 ` [ptxdist] [PATCH v2 06/17] Revert "libselinux: remove after more than one year in staging" Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 08/17] audit: new package Ladislav Michl
` (9 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: build with setrans and rpm support, libselinux exports their
symbols even when disabled, leading to undefined references
(e.g. selinux_raw_context_to_color in secon). Select LIBC_DL.
Make python wrapper depend on PYTHON3 instead of selecting it to
avoid Kconfig recursive dependency (PYTHON3 -> LIBUUID ->
UTIL_LINUX -> LIBSELINUX -> PYTHON3).
...PyString_FromString-with-PyUnicode_F.patch | 48 ++++++++++++
patches/libselinux-3.11/series | 4 +
rules/libselinux.in | 57 +++++++++++---
rules/libselinux.make | 76 +++++++++++++------
4 files changed, 154 insertions(+), 31 deletions(-)
create mode 100644 patches/libselinux-3.11/0001-libselinux-Replace-PyString_FromString-with-PyUnicode_F.patch
create mode 100644 patches/libselinux-3.11/series
diff --git a/patches/libselinux-3.11/0001-libselinux-Replace-PyString_FromString-with-PyUnicode_F.patch b/patches/libselinux-3.11/0001-libselinux-Replace-PyString_FromString-with-PyUnicode_F.patch
new file mode 100644
index 000000000..015ede608
--- /dev/null
+++ b/patches/libselinux-3.11/0001-libselinux-Replace-PyString_FromString-with-PyUnicode_F.patch
@@ -0,0 +1,48 @@
+From: Petr Lautrbach <lautrbach@redhat.com>
+Date: Thu, 6 Aug 2026 16:30:44 +0200
+Subject: [PATCH] libselinux: Replace PyString_FromString with
+ PyUnicode_FromString for SWIG 4.5.0 compatibility
+
+SWIG 4.5.0 removed Python 2 C API compatibility macros (PyInt_*,
+PyString_*, SWIG_Python_str_*) from its runtime header pyhead.swg.
+These macros previously mapped deprecated Python 2 C API names to their
+Python 3 equivalents.
+
+Fixes: https://github.com/SELinuxProject/selinux/issues/538
+Authored-by: Jitka Plesníková <jplesnik@redhat.com>
+Signed-off-by: Petr Lautrbach <lautrbach@redhat.com>
+Acked-by: Stephen Smalley <stephen.smalley.work@gmail.com>
+---
+ src/selinuxswig_python.i | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/selinuxswig_python.i b/src/selinuxswig_python.i
+--- a/src/selinuxswig_python.i
++++ b/src/selinuxswig_python.i
+@@ -69,7 +69,7 @@
+ PyObject* list = PyList_New(*$2);
+ int i;
+ for (i = 0; i < *$2; i++) {
+- PyList_SetItem(list, i, PyString_FromString((*$1)[i]));
++ PyList_SetItem(list, i, PyUnicode_FromString((*$1)[i]));
+ }
+ $result = SWIG_AppendOutput($result, list);
+ }
+@@ -102,7 +102,7 @@
+ len++;
+ plist = PyList_New(len);
+ for (i = 0; i < len; i++) {
+- PyList_SetItem(plist, i, PyString_FromString((*$1)[i]));
++ PyList_SetItem(plist, i, PyUnicode_FromString((*$1)[i]));
+ }
+ } else {
+ plist = PyList_New(0);
+@@ -119,7 +119,7 @@
+ if (*$1) {
+ plist = PyList_New(result);
+ for (i = 0; i < result; i++) {
+- PyList_SetItem(plist, i, PyString_FromString((*$1)[i]));
++ PyList_SetItem(plist, i, PyUnicode_FromString((*$1)[i]));
+ }
+ } else {
+ plist = PyList_New(0);
diff --git a/patches/libselinux-3.11/series b/patches/libselinux-3.11/series
new file mode 100644
index 000000000..9d79f21d8
--- /dev/null
+++ b/patches/libselinux-3.11/series
@@ -0,0 +1,4 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-libselinux-Replace-PyString_FromString-with-PyUnicode_F.patch
+# 9229b75b9f37589afb32a0e0c582e3b8 - git-ptx-patches magic
diff --git a/rules/libselinux.in b/rules/libselinux.in
index 6d6b1e655..0ff1358af 100644
--- a/rules/libselinux.in
+++ b/rules/libselinux.in
@@ -1,27 +1,66 @@
-## SECTION=staging
-## old section:
-### SECTION=selinux
+## SECTION=selinux
menuconfig LIBSELINUX
tristate
prompt "libselinux "
- select LIBPCRE
+ select LIBC_DL
+ select PCRE2
+ select PCRE2_8
select LIBSEPOL
- select PYTHON if LIBSELINUX_PYTHON
select HOST_SWIG if LIBSELINUX_PYTHON
+ select HOST_PYTHON3_PIP if LIBSELINUX_PYTHON
help
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.
- STAGING: remove in ptxdist-2020.12.0
- Old version that need to be updated. Fails to build with gcc >= 9.x.
-
if LIBSELINUX
+config LIBSELINUX_UTILS
+ bool "install utilities"
+
+if LIBSELINUX_UTILS
+
+config LIBSELINUX_GETENFORCE
+ bool "getenforce"
+ depends on !BUSYBOX_GETENFORCE || ALLYES
+
+comment "busybox' getenforce is selected!"
+ depends on BUSYBOX_GETENFORCE
+
+config LIBSELINUX_GETSEBOOL
+ bool "getsebool"
+ depends on !BUSYBOX_GETSEBOOL || ALLYES
+
+comment "busybox' getsebool is selected!"
+ depends on BUSYBOX_GETSEBOOL
+
+config LIBSELINUX_MATCHPATHCON
+ bool "matchpathcon"
+ depends on !BUSYBOX_MATCHPATHCON || ALLYES
+
+comment "busybox' matchpathcon is selected!"
+ depends on BUSYBOX_MATCHPATHCON
+
+config LIBSELINUX_SELINUXENABLED
+ bool "selinuxenabled"
+ depends on !BUSYBOX_SELINUXENABLED || ALLYES
+
+comment "busybox' selinuxenabled is selected!"
+ depends on BUSYBOX_SELINUXENABLED
+
+config LIBSELINUX_SETENFORCE
+ bool "setenforce"
+ depends on !BUSYBOX_SETENFORCE || ALLYES
+
+comment "busybox' setenforce is selected!"
+ depends on BUSYBOX_SETENFORCE
+
+endif
+
config LIBSELINUX_PYTHON
bool "python wrapper"
- depends on STAGING
+ depends on PYTHON3
endif
diff --git a/rules/libselinux.make b/rules/libselinux.make
index 9f6b6a62f..b7bf42854 100644
--- a/rules/libselinux.make
+++ b/rules/libselinux.make
@@ -14,62 +14,94 @@ PACKAGES-$(PTXCONF_LIBSELINUX) += libselinux
#
# Paths and names
#
-LIBSELINUX_VERSION := 2.1.12
-LIBSELINUX_MD5 := 73270f384a032fad34b5fe075fa05ce2
+LIBSELINUX_VERSION := $(SELINUX_VERSION)
+LIBSELINUX_SHA256 := 73d419c6e20e874adaa4019372cbd097eecf4d276e13f27ec5e67d35c0bd203c
LIBSELINUX := libselinux-$(LIBSELINUX_VERSION)
LIBSELINUX_SUFFIX := tar.gz
-LIBSELINUX_URL := https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20120924/$(LIBSELINUX).$(LIBSELINUX_SUFFIX)
+LIBSELINUX_URL := $(SELINUX_URL)/$(LIBSELINUX).$(LIBSELINUX_SUFFIX)
LIBSELINUX_SOURCE := $(SRCDIR)/$(LIBSELINUX).$(LIBSELINUX_SUFFIX)
LIBSELINUX_DIR := $(BUILDDIR)/$(LIBSELINUX)
LIBSELINUX_LICENSE := public_domain
+LIBSELINUX_LICENSE_FILES := file://LICENSE;md5=84b4d2c6ef954a2d4081e775a270d0d0
+LIBSELINUX_CVE_PRODUCT := selinuxproject:libselinux
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-LIBSELINUX_CONF_TOOL := NO
-# no := due to CROSS_PYTHON
-LIBSELINUX_MAKE_ENV = \
- $(CROSS_ENV) \
- CFLAGS="-O2 -Wall -g" \
- PYTHON=$(CROSS_PYTHON)
-LIBSELINUX_MAKE_OPT := \
- LIBDIR=$(PTXDIST_SYSROOT_TARGET)/usr/lib
-LIBSELINUX_INSTALL_OPT := \
+LIBSELINUX_CONF_TOOL := NO
+LIBSELINUX_MAKE_ENV := $(CROSS_ENV)
+LIBSELINUX_MAKE_OPT = \
+ PREFIX=/usr \
+ LIBDIR=/usr/lib \
+ SHLIBDIR=/usr/lib \
+ INCLUDEDIR=/usr/include \
+ SBINDIR=/usr/sbin \
+ USE_PCRE2=y \
+ USE_LFS=y \
+ DISABLE_SHARED=n \
+ DISABLE_BOOL=n \
+ DISABLE_SETRANS=n \
+ DISABLE_RPM=n \
+ DISABLE_X11=y \
+ ANDROID_HOST=n \
+ LABEL_BACKEND_ANDROID=n \
+ CFLAGS="-O2 -Wall -g"
+
+ifdef PTXCONF_LIBSELINUX_PYTHON
+LIBSELINUX_MAKE_OPT += \
+ PYTHON=$(CROSS_PYTHON3) \
+ PYTHONLIBDIR=$(PYTHON3_SITEPACKAGES)
+endif
+
+LIBSELINUX_INSTALL_OPT = \
+ $(LIBSELINUX_MAKE_OPT) \
install
ifdef PTXCONF_LIBSELINUX_PYTHON
-LIBSELINUX_MAKE_OPT += pywrap
LIBSELINUX_INSTALL_OPT += install-pywrap
endif
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libselinux.compile:
+ @$(call targetinfo)
+ @$(call world/compile, LIBSELINUX)
+ifdef PTXCONF_LIBSELINUX_PYTHON
+ @$(call compile, LIBSELINUX, $(LIBSELINUX_MAKE_OPT) pywrap)
+endif
+ @$(call touch)
+
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
-LIBSELINUX_PROGS := \
+LIBSELINUX_PROGS-$(PTXCONF_LIBSELINUX_UTILS) := \
avcstat \
compute_av \
compute_create \
compute_member \
compute_relabel \
- compute_user \
getconlist \
getdefaultcon \
- getenforce \
getfilecon \
getpidcon \
- getsebool \
getseuser \
- matchpathcon \
policyvers \
+ sefcontext_compile \
selinux_check_securetty_context \
- selinuxenabled \
selinuxexeccon \
- setenforce \
setfilecon \
togglesebool
+LIBSELINUX_PROGS-$(PTXCONF_LIBSELINUX_GETENFORCE) += getenforce
+LIBSELINUX_PROGS-$(PTXCONF_LIBSELINUX_GETSEBOOL) += getsebool
+LIBSELINUX_PROGS-$(PTXCONF_LIBSELINUX_MATCHPATHCON) += matchpathcon
+LIBSELINUX_PROGS-$(PTXCONF_LIBSELINUX_SELINUXENABLED) += selinuxenabled
+LIBSELINUX_PROGS-$(PTXCONF_LIBSELINUX_SETENFORCE) += setenforce
+
$(STATEDIR)/libselinux.targetinstall:
@$(call targetinfo)
@@ -81,11 +113,11 @@ $(STATEDIR)/libselinux.targetinstall:
@$(call install_lib, libselinux, 0, 0, 0644, libselinux)
- @$(foreach prog, $(LIBSELINUX_PROGS), \
+ @$(foreach prog, $(LIBSELINUX_PROGS-y), \
$(call install_copy, libselinux, 0, 0, 0755, -, /usr/sbin/$(prog));)
ifdef PTXCONF_LIBSELINUX_PYTHON
- @$(call install_tree, libselinux, 0, 0, -, $(PYTHON_SITEPACKAGES))
+ @$(call install_tree, libselinux, 0, 0, -, $(PYTHON3_SITEPACKAGES))
endif
@$(call install_finish, libselinux)
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 08/17] audit: new package
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
` (6 preceding siblings ...)
2026-10-31 20:38 ` [ptxdist] [PATCH v2 07/17] libselinux: version bump 2.1.12 -> 3.11 Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 09/17] Revert "libsemanage: remove after more than one year in staging" Ladislav Michl
` (8 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
Linux audit userspace, needed by libsemanage for libaudit.
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: install /etc/libaudit.conf and tmpfiles.d snippet with 0640
permissions, as upstream does.
patches/audit-userspace-4.2.1/autogen.sh | 1 +
rules/audit.in | 19 +++++
rules/audit.make | 102 +++++++++++++++++++++++
3 files changed, 122 insertions(+)
create mode 120000 patches/audit-userspace-4.2.1/autogen.sh
create mode 100644 rules/audit.in
create mode 100644 rules/audit.make
diff --git a/patches/audit-userspace-4.2.1/autogen.sh b/patches/audit-userspace-4.2.1/autogen.sh
new file mode 120000
index 000000000..9f8a4cb7d
--- /dev/null
+++ b/patches/audit-userspace-4.2.1/autogen.sh
@@ -0,0 +1 @@
+../autogen.sh
\ No newline at end of file
diff --git a/rules/audit.in b/rules/audit.in
new file mode 100644
index 000000000..2c2582d8e
--- /dev/null
+++ b/rules/audit.in
@@ -0,0 +1,19 @@
+## SECTION=security
+
+menuconfig AUDIT
+ tristate
+ prompt "audit "
+ select LIBCAP_NG
+ help
+ Linux audit userspace: libaudit, libauparse and the auditd
+ daemon with its tools.
+
+if AUDIT
+
+config AUDIT_TOOLS
+ bool
+ prompt "install auditd and tools"
+ help
+ Install auditd, auditctl, augenrules, ausearch and aureport.
+
+endif
diff --git a/rules/audit.make b/rules/audit.make
new file mode 100644
index 000000000..0353efd94
--- /dev/null
+++ b/rules/audit.make
@@ -0,0 +1,102 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2026 by Ladislav Michl <ladis@triops.cz>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_AUDIT) += audit
+
+#
+# Paths and names
+#
+AUDIT_VERSION := 4.2.1
+AUDIT_SHA256 := 42876d195ee2ded19e5f72d7664096eee314928aa36ad346719ba5b25818fc84
+AUDIT := audit-userspace-$(AUDIT_VERSION)
+AUDIT_SUFFIX := tar.gz
+AUDIT_URL := https://github.com/linux-audit/audit-userspace/archive/refs/tags/v$(AUDIT_VERSION).$(AUDIT_SUFFIX)
+AUDIT_SOURCE := $(SRCDIR)/$(AUDIT).$(AUDIT_SUFFIX)
+AUDIT_DIR := $(BUILDDIR)/$(AUDIT)
+AUDIT_LICENSE := GPL-2.0-or-later AND LGPL-2.1-or-later
+AUDIT_LICENSE_FILES := \
+ file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06
+AUDIT_CVE_PRODUCT := audit-userspace_project:audit-userspace
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+AUDIT_CONF_TOOL := autoconf
+AUDIT_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --runstatedir=/run \
+ --disable-listener \
+ --disable-zos-remote \
+ --disable-legacy-actions \
+ --disable-gssapi-krb5 \
+ --disable-tls \
+ --disable-experimental \
+ --without-python3 \
+ --without-golang \
+ --without-asan \
+ --$(call ptx/wwo, PTXCONF_ARCH_ARM)-arm \
+ --$(call ptx/wwo, PTXCONF_ARCH_ARM64)-aarch64 \
+ --$(call ptx/wwo, PTXCONF_ARCH_RISCV)-riscv \
+ --without-apparmor \
+ --without-libwrap \
+ --without-io_uring \
+ --without-nftables \
+ --with-libcap-ng
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/audit.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, audit)
+ @$(call install_fixup, audit,PRIORITY,optional)
+ @$(call install_fixup, audit,SECTION,base)
+ @$(call install_fixup, audit,AUTHOR,"Ladislav Michl <ladis@triops.cz>")
+ @$(call install_fixup, audit,DESCRIPTION,missing)
+
+ @$(call install_lib, audit, 0, 0, 0644, libaudit)
+ @$(call install_lib, audit, 0, 0, 0644, libauparse)
+ @$(call install_alternative, audit, 0, 0, 0640, /etc/libaudit.conf)
+
+ifdef PTXCONF_AUDIT_TOOLS
+ @$(call install_copy, audit, 0, 0, 0755, -, /usr/sbin/auditd)
+ @$(call install_copy, audit, 0, 0, 0755, -, /usr/sbin/auditctl)
+ @$(call install_copy, audit, 0, 0, 0755, -, /usr/sbin/augenrules)
+ @$(call install_copy, audit, 0, 0, 0755, -, /usr/sbin/aureport)
+ @$(call install_copy, audit, 0, 0, 0755, -, /usr/sbin/ausearch)
+ @$(call install_alternative, audit, 0, 0, 0640, /etc/audit/auditd.conf)
+ @$(call install_alternative, audit, 0, 0, 0640, /etc/audit/audit-stop.rules)
+ @$(call install_copy, audit, 0, 0, 0750, /etc/audit/rules.d)
+ @$(call install_copy, audit, 0, 0, 0700, /var/log/audit)
+
+ifdef PTXCONF_INITMETHOD_SYSTEMD
+ @$(call install_alternative, audit, 0, 0, 0644, /usr/lib/systemd/system/auditd.service)
+ @$(call install_link, audit, ../auditd.service, \
+ /usr/lib/systemd/system/multi-user.target.wants/auditd.service)
+ @$(call install_alternative, audit, 0, 0, 0644, /usr/lib/systemd/system/audit-rules.service)
+ @$(call install_link, audit, ../audit-rules.service, \
+ /usr/lib/systemd/system/multi-user.target.wants/audit-rules.service)
+ @$(call install_alternative, audit, 0, 0, 0640, /usr/lib/tmpfiles.d/audit.conf)
+endif
+endif
+
+ @$(call install_finish, audit)
+
+ @$(call touch)
+
+# vim: syntax=make
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 09/17] Revert "libsemanage: remove after more than one year in staging"
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
` (7 preceding siblings ...)
2026-10-31 20:38 ` [ptxdist] [PATCH v2 08/17] audit: new package Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 10/17] libsemanage: version bump 2.1.9 -> 3.11 Ladislav Michl
` (7 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
This partially reverts commit 9de860c283e9c33727aa35bf3c766dfd4a37f9bd.
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: None
rules/libsemanage.in | 29 +++++++++++++++++
rules/libsemanage.make | 70 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 99 insertions(+)
create mode 100644 rules/libsemanage.in
create mode 100644 rules/libsemanage.make
diff --git a/rules/libsemanage.in b/rules/libsemanage.in
new file mode 100644
index 000000000..9d7ebf03d
--- /dev/null
+++ b/rules/libsemanage.in
@@ -0,0 +1,29 @@
+## SECTION=staging
+## old section:
+### SECTION=selinux
+
+menuconfig LIBSEMANAGE
+ tristate
+ prompt "libsemanage "
+ select BZIP2
+ select BZIP2_LIBBZ2
+ select LIBSEPOL
+ select LIBSELINUX
+ select USTR
+ select PYTHON if LIBSEMANAGE_PYTHON
+ select HOST_SWIG if LIBSEMANAGE_PYTHON
+ help
+ This package provides the shared libraries for SELinux policy management.
+ It uses libsepol for binary policy manipulation and libselinux for
+ interacting with the SELinux system.
+
+ STAGING: remove in ptxdist-2020.12.0
+ Old version that need to be updated. Moved to staging with libselinux.
+
+if LIBSEMANAGE
+
+config LIBSEMANAGE_PYTHON
+ bool "python wrapper"
+ depends on STAGING
+
+endif
diff --git a/rules/libsemanage.make b/rules/libsemanage.make
new file mode 100644
index 000000000..9e8a641e9
--- /dev/null
+++ b/rules/libsemanage.make
@@ -0,0 +1,70 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2012 by Wolfram Sang <w.sang@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBSEMANAGE) += libsemanage
+
+#
+# Paths and names
+#
+LIBSEMANAGE_VERSION := 2.1.9
+LIBSEMANAGE_MD5 := 209e11da5b36c595a796751583f016f8
+LIBSEMANAGE := libsemanage-$(LIBSEMANAGE_VERSION)
+LIBSEMANAGE_SUFFIX := tar.gz
+LIBSEMANAGE_URL := https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20120924/$(LIBSEMANAGE).$(LIBSEMANAGE_SUFFIX)
+LIBSEMANAGE_SOURCE := $(SRCDIR)/$(LIBSEMANAGE).$(LIBSEMANAGE_SUFFIX)
+LIBSEMANAGE_DIR := $(BUILDDIR)/$(LIBSEMANAGE)
+LIBSEMANAGE_LICENSE := LGPL-2.1-or-later
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBSEMANAGE_CONF_TOOL := NO
+# no := due to CROSS_PYTHON
+LIBSEMANAGE_MAKE_ENV = \
+ $(CROSS_ENV) \
+ CFLAGS="-O2 -Wall -g" \
+ PYTHON=$(CROSS_PYTHON)
+
+LIBSEMANAGE_MAKE_OPT := \
+ LIBDIR=$(PTXDIST_SYSROOT_TARGET)/usr/lib
+LIBSEMANAGE_INSTALL_OPT := \
+ install
+
+ifdef PTXCONF_LIBSEMANAGE_PYTHON
+LIBSEMANAGE_MAKE_OPT += pywrap
+LIBSEMANAGE_INSTALL_OPT += install-pywrap
+endif
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libsemanage.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, libsemanage)
+ @$(call install_fixup, libsemanage,PRIORITY,optional)
+ @$(call install_fixup, libsemanage,SECTION,base)
+ @$(call install_fixup, libsemanage,AUTHOR,"Wolfram Sang <w.sang@pengutronix.de>")
+ @$(call install_fixup, libsemanage,DESCRIPTION,missing)
+
+ @$(call install_lib, libsemanage, 0, 0, 0644, libsemanage)
+ @$(call install_alternative, libsemanage, 0, 0, 0644, /etc/selinux/semanage.conf)
+
+ifdef PTXCONF_LIBSEMANAGE_PYTHON
+ @$(call install_tree, libsemanage, 0, 0, -, $(PYTHON_SITEPACKAGES))
+endif
+ @$(call install_finish, libsemanage)
+
+ @$(call touch)
+
+# vim: syntax=make
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 10/17] libsemanage: version bump 2.1.9 -> 3.11
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
` (8 preceding siblings ...)
2026-10-31 20:38 ` [ptxdist] [PATCH v2 09/17] Revert "libsemanage: remove after more than one year in staging" Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 11/17] Revert "checkpolicy: remove after more than one year in staging" Ladislav Michl
` (6 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: make python wrapper depend on PYTHON3 instead of selecting it.
rules/libsemanage.in | 13 ++++-------
rules/libsemanage.make | 49 ++++++++++++++++++++++++++++++------------
2 files changed, 39 insertions(+), 23 deletions(-)
diff --git a/rules/libsemanage.in b/rules/libsemanage.in
index 9d7ebf03d..aaf46c4a9 100644
--- a/rules/libsemanage.in
+++ b/rules/libsemanage.in
@@ -1,29 +1,24 @@
-## SECTION=staging
-## old section:
-### SECTION=selinux
+## SECTION=selinux
menuconfig LIBSEMANAGE
tristate
prompt "libsemanage "
+ select AUDIT
select BZIP2
select BZIP2_LIBBZ2
select LIBSEPOL
select LIBSELINUX
- select USTR
- select PYTHON if LIBSEMANAGE_PYTHON
+ select HOST_FLEX
select HOST_SWIG if LIBSEMANAGE_PYTHON
help
This package provides the shared libraries for SELinux policy management.
It uses libsepol for binary policy manipulation and libselinux for
interacting with the SELinux system.
- STAGING: remove in ptxdist-2020.12.0
- Old version that need to be updated. Moved to staging with libselinux.
-
if LIBSEMANAGE
config LIBSEMANAGE_PYTHON
bool "python wrapper"
- depends on STAGING
+ depends on PYTHON3
endif
diff --git a/rules/libsemanage.make b/rules/libsemanage.make
index 9e8a641e9..c9972c474 100644
--- a/rules/libsemanage.make
+++ b/rules/libsemanage.make
@@ -14,36 +14,57 @@ PACKAGES-$(PTXCONF_LIBSEMANAGE) += libsemanage
#
# Paths and names
#
-LIBSEMANAGE_VERSION := 2.1.9
-LIBSEMANAGE_MD5 := 209e11da5b36c595a796751583f016f8
+LIBSEMANAGE_VERSION := $(SELINUX_VERSION)
+LIBSEMANAGE_SHA256 := e76160286bbfb0821602c6c0c3220ebcf366ad3246d3b9d0a0fbefcd35e86043
LIBSEMANAGE := libsemanage-$(LIBSEMANAGE_VERSION)
LIBSEMANAGE_SUFFIX := tar.gz
-LIBSEMANAGE_URL := https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20120924/$(LIBSEMANAGE).$(LIBSEMANAGE_SUFFIX)
+LIBSEMANAGE_URL := $(SELINUX_URL)/$(LIBSEMANAGE).$(LIBSEMANAGE_SUFFIX)
LIBSEMANAGE_SOURCE := $(SRCDIR)/$(LIBSEMANAGE).$(LIBSEMANAGE_SUFFIX)
LIBSEMANAGE_DIR := $(BUILDDIR)/$(LIBSEMANAGE)
LIBSEMANAGE_LICENSE := LGPL-2.1-or-later
+LIBSEMANAGE_LICENSE_FILES := file://LICENSE;md5=03068f550c635f6520e0f0252da412fc
+LIBSEMANAGE_CVE_PRODUCT := selinuxproject:libsemanage
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-LIBSEMANAGE_CONF_TOOL := NO
-# no := due to CROSS_PYTHON
-LIBSEMANAGE_MAKE_ENV = \
- $(CROSS_ENV) \
- CFLAGS="-O2 -Wall -g" \
- PYTHON=$(CROSS_PYTHON)
+LIBSEMANAGE_CONF_TOOL := NO
+LIBSEMANAGE_MAKE_ENV := $(CROSS_ENV)
+LIBSEMANAGE_MAKE_OPT = \
+ PREFIX=/usr \
+ LIBDIR=/usr/lib \
+ INCLUDEDIR=/usr/include \
+ SYSCONFDIR=/etc \
+ DISABLE_SHARED=n \
+ CFLAGS="-O2 -Wall -g"
-LIBSEMANAGE_MAKE_OPT := \
- LIBDIR=$(PTXDIST_SYSROOT_TARGET)/usr/lib
-LIBSEMANAGE_INSTALL_OPT := \
+ifdef PTXCONF_LIBSEMANAGE_PYTHON
+LIBSEMANAGE_MAKE_OPT += \
+ PYTHON=$(CROSS_PYTHON3) \
+ PYTHONLIBDIR=$(PYTHON3_SITEPACKAGES)
+endif
+
+LIBSEMANAGE_INSTALL_OPT = \
+ $(LIBSEMANAGE_MAKE_OPT) \
install
ifdef PTXCONF_LIBSEMANAGE_PYTHON
-LIBSEMANAGE_MAKE_OPT += pywrap
LIBSEMANAGE_INSTALL_OPT += install-pywrap
endif
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libsemanage.compile:
+ @$(call targetinfo)
+ @$(call world/compile, LIBSEMANAGE)
+ifdef PTXCONF_LIBSEMANAGE_PYTHON
+ @$(call compile, LIBSEMANAGE, $(LIBSEMANAGE_MAKE_OPT) pywrap)
+endif
+ @$(call touch)
+
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
@@ -61,7 +82,7 @@ $(STATEDIR)/libsemanage.targetinstall:
@$(call install_alternative, libsemanage, 0, 0, 0644, /etc/selinux/semanage.conf)
ifdef PTXCONF_LIBSEMANAGE_PYTHON
- @$(call install_tree, libsemanage, 0, 0, -, $(PYTHON_SITEPACKAGES))
+ @$(call install_tree, libsemanage, 0, 0, -, $(PYTHON3_SITEPACKAGES))
endif
@$(call install_finish, libsemanage)
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 11/17] Revert "checkpolicy: remove after more than one year in staging"
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
` (9 preceding siblings ...)
2026-10-31 20:38 ` [ptxdist] [PATCH v2 10/17] libsemanage: version bump 2.1.9 -> 3.11 Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 12/17] checkpolicy: version bump 2.1.11 -> 3.11 Ladislav Michl
` (5 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
This partially reverts commit be09c6089c7c6c818b17701af5127ed47160d625.
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: None
rules/checkpolicy.in | 36 ++++++++++++++++++++++++++
rules/checkpolicy.make | 59 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 95 insertions(+)
create mode 100644 rules/checkpolicy.in
create mode 100644 rules/checkpolicy.make
diff --git a/rules/checkpolicy.in b/rules/checkpolicy.in
new file mode 100644
index 000000000..b1e8bca01
--- /dev/null
+++ b/rules/checkpolicy.in
@@ -0,0 +1,36 @@
+## SECTION=staging
+## old section:
+### SECTION=selinux
+
+config CHECKPOLICY
+ tristate
+ prompt "checkpolicy"
+ #
+ # The target package is not functional yet, but we need the host
+ # package. Depend on broken for now.
+ #
+ depends on BROKEN
+ select LIBSELINUX
+ select LIBSEPOL
+ select FLEX
+ help
+ Security-enhanced Linux is a patch of the Linux kernel and a
+ number of utilities with enhanced security functionality
+ designed to add mandatory access controls to Linux. The
+ Security-enhanced Linux kernel contains new architectural
+ components originally developed to improve the security of
+ the Flask operating system. These architectural components
+ provide general support for the enforcement of many kinds of
+ mandatory access control policies, including those based on
+ the concepts of Type Enforcement, Role-based Access Control,
+ and Multi-level Security.
+
+ This package contains checkpolicy, the SELinux policy
+ compiler. Only required for building policies. It uses
+ libsepol to generate the binary policy. checkpolicy uses
+ the static libsepol since it deals with low level details of
+ the policy that have not been encapsulated/abstracted by a
+ proper shared library interface.
+
+ STAGING: remove in ptxdist-2020.12.0
+ Old version that need to be updated. Moved to staging with libselinux.
diff --git a/rules/checkpolicy.make b/rules/checkpolicy.make
new file mode 100644
index 000000000..6946fcecd
--- /dev/null
+++ b/rules/checkpolicy.make
@@ -0,0 +1,59 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2013 by Marc Kleine-Budde <mkl@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_CHECKPOLICY) += checkpolicy
+
+#
+# Paths and names
+#
+CHECKPOLICY_VERSION := 2.1.11
+CHECKPOLICY_MD5 := 046b590de004f8a6cee655c4e95a7970
+CHECKPOLICY := checkpolicy-$(CHECKPOLICY_VERSION)
+CHECKPOLICY_SUFFIX := tar.gz
+CHECKPOLICY_URL := https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20120924/$(CHECKPOLICY).$(CHECKPOLICY_SUFFIX)
+CHECKPOLICY_SOURCE := $(SRCDIR)/$(CHECKPOLICY).$(CHECKPOLICY_SUFFIX)
+CHECKPOLICY_DIR := $(BUILDDIR)/$(CHECKPOLICY)
+CHECKPOLICY_LICENSE := unknown
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+CHECKPOLICY_CONF_TOOL := NO
+CHECKPOLICY_MAKE_ENV := $(CROSS_ENV)
+CHECKPOLICY_MAKE_OPT := LIBDIR=$(PTXDIST_SYSROOT_TARGET)/usr/lib
+CHECKPOLICY_INSTALL_OPT = \
+ PREFIX=$(CHECKPOLICY_PKGDIR) \
+ install
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/checkpolicy.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, checkpolicy)
+ @$(call install_fixup, checkpolicy,PRIORITY,optional)
+ @$(call install_fixup, checkpolicy,SECTION,base)
+ @$(call install_fixup, checkpolicy,AUTHOR,"Marc Kleine-Budde <mkl@pengutronix.de>")
+ @$(call install_fixup, checkpolicy,DESCRIPTION,missing)
+
+ @$(call install_copy, checkpolicy, 0, 0, 0755, $(CHECKPOLICY_DIR)/foobar, /dev/null)
+
+ @$(call install_finish, checkpolicy)
+
+ @$(call touch)
+
+# vim: syntax=make
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 12/17] checkpolicy: version bump 2.1.11 -> 3.11
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
` (10 preceding siblings ...)
2026-10-31 20:38 ` [ptxdist] [PATCH v2 11/17] Revert "checkpolicy: remove after more than one year in staging" Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 13/17] Revert "policycoreutils: remove after more than one year in staging" Ladislav Michl
` (4 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: None
rules/checkpolicy.in | 15 ++-------------
rules/checkpolicy.make | 26 +++++++++++++-------------
2 files changed, 15 insertions(+), 26 deletions(-)
diff --git a/rules/checkpolicy.in b/rules/checkpolicy.in
index b1e8bca01..6b51dd6be 100644
--- a/rules/checkpolicy.in
+++ b/rules/checkpolicy.in
@@ -1,18 +1,10 @@
-## SECTION=staging
-## old section:
-### SECTION=selinux
+## SECTION=selinux
config CHECKPOLICY
tristate
prompt "checkpolicy"
- #
- # The target package is not functional yet, but we need the host
- # package. Depend on broken for now.
- #
- depends on BROKEN
- select LIBSELINUX
select LIBSEPOL
- select FLEX
+ select HOST_FLEX
help
Security-enhanced Linux is a patch of the Linux kernel and a
number of utilities with enhanced security functionality
@@ -31,6 +23,3 @@ config CHECKPOLICY
the static libsepol since it deals with low level details of
the policy that have not been encapsulated/abstracted by a
proper shared library interface.
-
- STAGING: remove in ptxdist-2020.12.0
- Old version that need to be updated. Moved to staging with libselinux.
diff --git a/rules/checkpolicy.make b/rules/checkpolicy.make
index 6946fcecd..1cbf427d7 100644
--- a/rules/checkpolicy.make
+++ b/rules/checkpolicy.make
@@ -14,27 +14,26 @@ PACKAGES-$(PTXCONF_CHECKPOLICY) += checkpolicy
#
# Paths and names
#
-CHECKPOLICY_VERSION := 2.1.11
-CHECKPOLICY_MD5 := 046b590de004f8a6cee655c4e95a7970
+CHECKPOLICY_VERSION := $(SELINUX_VERSION)
+CHECKPOLICY_SHA256 := 9b81bfceef7fa9d02f9872e56a786f343dc58ef4b5713dce0d5c416e5b84cefa
CHECKPOLICY := checkpolicy-$(CHECKPOLICY_VERSION)
CHECKPOLICY_SUFFIX := tar.gz
-CHECKPOLICY_URL := https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20120924/$(CHECKPOLICY).$(CHECKPOLICY_SUFFIX)
+CHECKPOLICY_URL := $(SELINUX_URL)/$(CHECKPOLICY).$(CHECKPOLICY_SUFFIX)
CHECKPOLICY_SOURCE := $(SRCDIR)/$(CHECKPOLICY).$(CHECKPOLICY_SUFFIX)
CHECKPOLICY_DIR := $(BUILDDIR)/$(CHECKPOLICY)
-CHECKPOLICY_LICENSE := unknown
+CHECKPOLICY_LICENSE := GPL-2.0-only AND LGPL-2.1-or-later
+CHECKPOLICY_LICENSE_FILES := file://LICENSE;md5=393a5ca445f6965873eca0259a17f833
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-#
-# autoconf
-#
-CHECKPOLICY_CONF_TOOL := NO
-CHECKPOLICY_MAKE_ENV := $(CROSS_ENV)
-CHECKPOLICY_MAKE_OPT := LIBDIR=$(PTXDIST_SYSROOT_TARGET)/usr/lib
-CHECKPOLICY_INSTALL_OPT = \
- PREFIX=$(CHECKPOLICY_PKGDIR) \
+CHECKPOLICY_CONF_TOOL := NO
+CHECKPOLICY_MAKE_ENV := $(CROSS_ENV)
+CHECKPOLICY_MAKE_OPT := \
+ CFLAGS="-O2 -Wall -g"
+CHECKPOLICY_INSTALL_OPT := \
+ $(CHECKPOLICY_MAKE_OPT) \
install
# ----------------------------------------------------------------------------
@@ -50,7 +49,8 @@ $(STATEDIR)/checkpolicy.targetinstall:
@$(call install_fixup, checkpolicy,AUTHOR,"Marc Kleine-Budde <mkl@pengutronix.de>")
@$(call install_fixup, checkpolicy,DESCRIPTION,missing)
- @$(call install_copy, checkpolicy, 0, 0, 0755, $(CHECKPOLICY_DIR)/foobar, /dev/null)
+ @$(call install_copy, checkpolicy, 0, 0, 0755, -, /usr/bin/checkpolicy)
+ @$(call install_copy, checkpolicy, 0, 0, 0755, -, /usr/bin/checkmodule)
@$(call install_finish, checkpolicy)
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 13/17] Revert "policycoreutils: remove after more than one year in staging"
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
` (11 preceding siblings ...)
2026-10-31 20:38 ` [ptxdist] [PATCH v2 12/17] checkpolicy: version bump 2.1.11 -> 3.11 Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 14/17] policycoreutils: version bump 2.1.13 -> 3.11 Ladislav Michl
` (3 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
This partially reverts commit a7faf563f3149944b772a0e7c9540c03867d29dd.
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: None
rules/policycoreutils.in | 111 ++++++++++++++++++++++++++
rules/policycoreutils.make | 159 +++++++++++++++++++++++++++++++++++++
2 files changed, 270 insertions(+)
create mode 100644 rules/policycoreutils.in
create mode 100644 rules/policycoreutils.make
diff --git a/rules/policycoreutils.in b/rules/policycoreutils.in
new file mode 100644
index 000000000..fce42b002
--- /dev/null
+++ b/rules/policycoreutils.in
@@ -0,0 +1,111 @@
+## SECTION=staging
+## old section:
+### SECTION=selinux
+
+menuconfig POLICYCOREUTILS
+ tristate
+ prompt "policycoreutils "
+ select LIBCAP_NG
+ select LIBCGROUP
+ select LIBSELINUX
+ select LIBSEMANAGE
+ select LIBSEPOL
+ select DBUS_GLIB if POLICYCOREUTILS_RESTORECOND
+ select BUSYBOX_FEATURE_FIND_DEPTH if BUSYBOX_FIND
+ select BUSYBOX_FEATURE_FIND_DELETE if BUSYBOX_FIND
+ select BUSYBOX_SELINUX if BUSYBOX_FIND
+ select BUSYBOX_FEATURE_FIND_CONTEXT if BUSYBOX_FIND
+ help
+ This package contains the core policy utilities that are required
+ for basic operation of an SELinux system. These utilities include
+ load_policy to load policies, setfiles to label filesystems, newrole
+ to switch roles, and run_init to run /etc/init.d scripts in the proper
+ context.
+
+ STAGING: remove in ptxdist-2020.12.0
+ Old version that need to be updated. Moved to staging with libselinux.
+
+if POLICYCOREUTILS
+
+menuconfig POLICYCOREUTILS_PYTHON
+ # needs sepolgen
+ depends on BROKEN
+ bool "python based tools"
+
+if POLICYCOREUTILS_PYTHON
+
+config POLICYCOREUTILS_AUDIT2ALLOW
+ bool "audit2allow"
+
+config POLICYCOREUTILS_SEPOLGEN_IFGEN
+ select POLICYCOREUTILS_AUDIT2ALLOW
+ bool "sepolgen-ifgen"
+
+config POLICYCOREUTILS_AUDIT2WHY
+ select POLICYCOREUTILS_AUDIT2ALLOW
+ bool "audit2why"
+
+config POLICYCOREUTILS_SANDBOX
+ bool "sandbox"
+ depends on BROKEN
+
+config POLICYCOREUTILS_CHCAT
+ select LIBSEMANAGE_PYTHON
+ depends on BROKEN
+ bool "chcat"
+
+config POLICYCOREUTILS_SEMANAGE
+ select LIBSEMANAGE_PYTHON
+ depends on BROKEN
+ bool "semanage"
+
+endif
+
+config POLICYCOREUTILS_LOAD_POLICY
+ bool "load_policy"
+
+config POLICYCOREUTILS_NEWROLE
+ bool "newrole"
+
+config POLICYCOREUTILS_RESTORECOND
+ bool "restorecond"
+ depends on BROKEN
+
+config POLICYCOREUTILS_RUN_INIT
+ bool "run_init/open_init_pty"
+
+config POLICYCOREUTILS_FIXFILES
+ bool "fixfiles"
+
+config POLICYCOREUTILS_GENHOMEDIRCON
+ select POLICYCOREUTILS_SEMODULE
+ bool "genhomedircon"
+
+config POLICYCOREUTILS_SECON
+ bool "secon"
+
+config POLICYCOREUTILS_SEMODULE
+ bool "semodule"
+
+config POLICYCOREUTILS_SEMODULE_DEPS
+ bool "semodule_deps"
+
+config POLICYCOREUTILS_SEMODULE_EXPAND
+ bool "semodule_expand"
+
+config POLICYCOREUTILS_SEMODULE_LINK
+ bool "semodule_link"
+
+config POLICYCOREUTILS_SEMODULE_PACKAGE
+ bool "semodule_package"
+
+config POLICYCOREUTILS_SESTATUS
+ bool "sestatus"
+
+config POLICYCOREUTILS_SETFILES
+ bool "setfiles/restorecon"
+
+config POLICYCOREUTILS_SETSEBOOL
+ bool "setsebool"
+
+endif
diff --git a/rules/policycoreutils.make b/rules/policycoreutils.make
new file mode 100644
index 000000000..07baaebe8
--- /dev/null
+++ b/rules/policycoreutils.make
@@ -0,0 +1,159 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2012 by Wolfram Sang <w.sang@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_POLICYCOREUTILS) += policycoreutils
+
+#
+# Paths and names
+#
+POLICYCOREUTILS_VERSION := 2.1.13
+POLICYCOREUTILS_MD5 := 97c0b828599fe608f37894989820d71d
+POLICYCOREUTILS := policycoreutils-$(POLICYCOREUTILS_VERSION)
+POLICYCOREUTILS_SUFFIX := tar.gz
+POLICYCOREUTILS_URL := https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20120924/$(POLICYCOREUTILS).$(POLICYCOREUTILS_SUFFIX)
+POLICYCOREUTILS_SOURCE := $(SRCDIR)/$(POLICYCOREUTILS).$(POLICYCOREUTILS_SUFFIX)
+POLICYCOREUTILS_DIR := $(BUILDDIR)/$(POLICYCOREUTILS)
+POLICYCOREUTILS_LICENSE := GPL-2.0-or-later
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+POLICYCOREUTILS_SUBDIRS_y := \
+ man \
+ po \
+ scripts
+
+POLICYCOREUTILS_PROGS_y :=
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_AUDIT2ALLOW) += audit2allow
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_AUDIT2ALLOW) += /usr/bin/audit2allow
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SEPOLGEN_IFGEN) += sepolgen-ifgen
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEPOLGEN_IFGEN) += /usr/bin/sepolgen-ifgen
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEPOLGEN_IFGEN) += /usr/bin/sepolgen-ifgen-attr-helper
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_AUDIT2WHY) += audit2why
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_AUDIT2WHY) += /usr/bin/audit2why
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_LOAD_POLICY) += load_policy
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_LOAD_POLICY) += /usr/sbin/load_policy
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_NEWROLE) += newrole
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_NEWROLE) += /usr/bin/newrole
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_RESTORECOND) += restorecond
+#POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_RESTORECOND) +=
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_RUN_INIT) += run_init
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_RUN_INIT) += /usr/sbin/run_init
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_RUN_INIT) += /usr/sbin/open_init_pty
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SANDBOX) += sandbox
+#POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SANDBOX) +=
+
+# no SUBDIRS needed for scripts
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_CHCAT) += /usr/bin/chcat
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_FIXFILES) += /usr/sbin/fixfiles
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_GENHOMEDIRCON) += /usr/sbin/genhomedircon
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SECON) += secon
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SECON) += /usr/bin/secon
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SEMANAGE) += semanage
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMANAGE) += /usr/sbin/semanage
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SEMODULE) += semodule
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMODULE) += /usr/sbin/semodule
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_DEPS) += semodule_deps
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_DEPS) += /usr/bin/semodule_deps
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_EXPAND) += semodule_expand
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_EXPAND) += /usr/bin/semodule_expand
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_LINK) += semodule_link
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_LINK) += /usr/bin/semodule_link
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_PACKAGE) += semodule_package
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_PACKAGE) += /usr/bin/semodule_package
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_PACKAGE) += /usr/bin/semodule_unpackage
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SESTATUS) += sestatus
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SESTATUS) += /usr/sbin/sestatus
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SETFILES) += setfiles
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SETFILES) += /usr/sbin/setfiles
+
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SETSEBOOL) += setsebool
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SETSEBOOL) += /usr/sbin/setsebool
+
+POLICYCOREUTILS_CONF_TOOL := NO
+
+# no ':=' because of $(PYTHON_SITEPACKAGES)
+POLICYCOREUTILS_MAKE_ENV = \
+ $(CROSS_ENV) \
+ SBINDIR=$(POLICYCOREUTILS_PKGDIR)/usr/sbin \
+ PYTHONLIBDIR=$(POLICYCOREUTILS_PKGDIR)$(PYTHON_SITEPACKAGES)/.. \
+ CFLAGS="-O2 -Wall" \
+ INOTIFYH="/usr/include/sys/inotify.h" \
+ PAMH="" \
+ AUDITH=""
+#
+# We don't have PAM or AUDIT, so turn off.
+#
+# Use the following to turn on:
+# (Use these paths, as of version 2.1.13)
+#
+# PAMH=/usr/include/security/pam_appl.h
+# AUDITH=/usr/include/libaudit.h
+#
+
+POLICYCOREUTILS_MAKE_OPT := \
+ SUBDIRS="$(POLICYCOREUTILS_SUBDIRS_y)" \
+ LIBDIR=$(PTXDIST_SYSROOT_TARGET)/usr/lib
+POLICYCOREUTILS_INSTALL_OPT := \
+ SUBDIRS="$(POLICYCOREUTILS_SUBDIRS_y)" \
+ install
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/policycoreutils.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, policycoreutils)
+ @$(call install_fixup, policycoreutils,PRIORITY,optional)
+ @$(call install_fixup, policycoreutils,SECTION,base)
+ @$(call install_fixup, policycoreutils,AUTHOR,"Wolfram Sang <w.sang@pengutronix.de>")
+ @$(call install_fixup, policycoreutils,DESCRIPTION,missing)
+
+ @$(foreach prog, $(POLICYCOREUTILS_PROGS_y), \
+ $(call install_copy, policycoreutils, 0, 0, 0755, -, $(prog));)
+
+ifdef PTXCONF_POLICYCOREUTILS_SETFILES
+ @$(call install_link, policycoreutils, setfiles, /usr/sbin/restorecon)
+endif
+
+ifdef PTXCONF_POLICYCOREUTILS_SEMANAGE
+ @$(call install_copy, policycoreutils, 0, 0, 0644, -, $(PYTHON_SITEPACKAGES)/seobject.py)
+endif
+
+ifdef PTXCONF_POLICYCOREUTILS_SESTATUS
+ @$(call install_alternative, policycoreutils, 0, 0, 0644, /etc/sestatus.conf)
+endif
+
+ @$(call install_finish, policycoreutils)
+
+ @$(call touch)
+
+# vim: syntax=make
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 14/17] policycoreutils: version bump 2.1.13 -> 3.11
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
` (12 preceding siblings ...)
2026-10-31 20:38 ` [ptxdist] [PATCH v2 13/17] Revert "policycoreutils: remove after more than one year in staging" Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 15/17] Revert "sepolgen: remove after one year in staging" Ladislav Michl
` (2 subsequent siblings)
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
Upstream moved the python tools to selinux-python and the semodule_*
tools to semodule-utils. While there also add PAM support.
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: use full PTXCONF_ variable names in ptx/ifdef and ifdef, so PAM,
audit and PAM config files actually work. Select needed libc
parts (crypt, dl, util, pthread). Drop BusyBox find selects and
document fixfiles requirements in help text instead.
rules/policycoreutils.in | 113 +++++++++++---------------
rules/policycoreutils.make | 159 ++++++++++++++++---------------------
2 files changed, 115 insertions(+), 157 deletions(-)
diff --git a/rules/policycoreutils.in b/rules/policycoreutils.in
index fce42b002..52208c2e4 100644
--- a/rules/policycoreutils.in
+++ b/rules/policycoreutils.in
@@ -1,20 +1,18 @@
-## SECTION=staging
-## old section:
-### SECTION=selinux
+## SECTION=selinux
menuconfig POLICYCOREUTILS
tristate
prompt "policycoreutils "
- select LIBCAP_NG
- select LIBCGROUP
select LIBSELINUX
- select LIBSEMANAGE
select LIBSEPOL
- select DBUS_GLIB if POLICYCOREUTILS_RESTORECOND
- select BUSYBOX_FEATURE_FIND_DEPTH if BUSYBOX_FIND
- select BUSYBOX_FEATURE_FIND_DELETE if BUSYBOX_FIND
- select BUSYBOX_SELINUX if BUSYBOX_FIND
- select BUSYBOX_FEATURE_FIND_CONTEXT if BUSYBOX_FIND
+ select LIBSEMANAGE if POLICYCOREUTILS_SEMODULE
+ select LIBSEMANAGE if POLICYCOREUTILS_SETSEBOOL
+ select AUDIT if POLICYCOREUTILS_AUDIT
+ select PAM if GLOBAL_PAM
+ select LIBC_CRYPT if !GLOBAL_PAM && (POLICYCOREUTILS_NEWROLE || POLICYCOREUTILS_RUN_INIT)
+ select LIBC_DL if POLICYCOREUTILS_RUN_INIT
+ select LIBC_UTIL if POLICYCOREUTILS_RUN_INIT
+ select LIBC_PTHREAD if POLICYCOREUTILS_SETFILES
help
This package contains the core policy utilities that are required
for basic operation of an SELinux system. These utilities include
@@ -22,90 +20,71 @@ menuconfig POLICYCOREUTILS
to switch roles, and run_init to run /etc/init.d scripts in the proper
context.
- STAGING: remove in ptxdist-2020.12.0
- Old version that need to be updated. Moved to staging with libselinux.
-
if POLICYCOREUTILS
-menuconfig POLICYCOREUTILS_PYTHON
- # needs sepolgen
- depends on BROKEN
- bool "python based tools"
-
-if POLICYCOREUTILS_PYTHON
-
-config POLICYCOREUTILS_AUDIT2ALLOW
- bool "audit2allow"
-
-config POLICYCOREUTILS_SEPOLGEN_IFGEN
- select POLICYCOREUTILS_AUDIT2ALLOW
- bool "sepolgen-ifgen"
-
-config POLICYCOREUTILS_AUDIT2WHY
- select POLICYCOREUTILS_AUDIT2ALLOW
- bool "audit2why"
-
-config POLICYCOREUTILS_SANDBOX
- bool "sandbox"
- depends on BROKEN
-
-config POLICYCOREUTILS_CHCAT
- select LIBSEMANAGE_PYTHON
- depends on BROKEN
- bool "chcat"
-
-config POLICYCOREUTILS_SEMANAGE
- select LIBSEMANAGE_PYTHON
- depends on BROKEN
- bool "semanage"
-
-endif
+config POLICYCOREUTILS_AUDIT
+ bool "audit support"
+ help
+ Let newrole, run_init and setfiles log to the audit subsystem.
config POLICYCOREUTILS_LOAD_POLICY
bool "load_policy"
+ depends on !BUSYBOX_LOAD_POLICY || ALLYES
+
+comment "busybox' load_policy is selected!"
+ depends on BUSYBOX_LOAD_POLICY
config POLICYCOREUTILS_NEWROLE
bool "newrole"
-config POLICYCOREUTILS_RESTORECOND
- bool "restorecond"
- depends on BROKEN
+config POLICYCOREUTILS_NEWROLE_PAM_CFG
+ bool "install /etc/pam.d/newrole"
+ depends on POLICYCOREUTILS_NEWROLE && GLOBAL_PAM
config POLICYCOREUTILS_RUN_INIT
bool "run_init/open_init_pty"
+config POLICYCOREUTILS_RUN_INIT_PAM_CFG
+ bool "install /etc/pam.d/run_init"
+ depends on POLICYCOREUTILS_RUN_INIT && GLOBAL_PAM
+
config POLICYCOREUTILS_FIXFILES
bool "fixfiles"
-
-config POLICYCOREUTILS_GENHOMEDIRCON
- select POLICYCOREUTILS_SEMODULE
- bool "genhomedircon"
+ help
+ fixfiles script needs a 'find' supporting -context, -delete,
+ -mindepth, -exec, -type, -print0 and parentheses, plus
+ 'chcon --reference'. BusyBox can provide these with SELinux
+ support enabled, but 'fixfiles -N' additionally requires
+ -mount and -newermt only provided by GNU findutils.
config POLICYCOREUTILS_SECON
bool "secon"
config POLICYCOREUTILS_SEMODULE
- bool "semodule"
-
-config POLICYCOREUTILS_SEMODULE_DEPS
- bool "semodule_deps"
-
-config POLICYCOREUTILS_SEMODULE_EXPAND
- bool "semodule_expand"
-
-config POLICYCOREUTILS_SEMODULE_LINK
- bool "semodule_link"
-
-config POLICYCOREUTILS_SEMODULE_PACKAGE
- bool "semodule_package"
+ bool "semodule/genhomedircon"
config POLICYCOREUTILS_SESTATUS
bool "sestatus"
+ depends on !BUSYBOX_SESTATUS || ALLYES
+
+comment "busybox' sestatus is selected!"
+ depends on BUSYBOX_SESTATUS
config POLICYCOREUTILS_SETFILES
bool "setfiles/restorecon"
+ depends on !BUSYBOX_SETFILES && !BUSYBOX_RESTORECON || ALLYES
+
+comment "busybox' setfiles/restorecon is selected!"
+ depends on BUSYBOX_SETFILES || BUSYBOX_RESTORECON
config POLICYCOREUTILS_SETSEBOOL
bool "setsebool"
+ depends on !BUSYBOX_SETSEBOOL || ALLYES
+
+comment "busybox' setsebool is selected!"
+ depends on BUSYBOX_SETSEBOOL
+
+config POLICYCOREUTILS_UNSETFILES
+ bool "unsetfiles"
endif
diff --git a/rules/policycoreutils.make b/rules/policycoreutils.make
index 07baaebe8..a5ca327bf 100644
--- a/rules/policycoreutils.make
+++ b/rules/policycoreutils.make
@@ -14,116 +14,88 @@ PACKAGES-$(PTXCONF_POLICYCOREUTILS) += policycoreutils
#
# Paths and names
#
-POLICYCOREUTILS_VERSION := 2.1.13
-POLICYCOREUTILS_MD5 := 97c0b828599fe608f37894989820d71d
+POLICYCOREUTILS_VERSION := $(SELINUX_VERSION)
+POLICYCOREUTILS_SHA256 := 054e41ec039731a5ee6b797a8e0b8d6e346ee1d0a9bac2f252db48c23f9a8b1b
POLICYCOREUTILS := policycoreutils-$(POLICYCOREUTILS_VERSION)
POLICYCOREUTILS_SUFFIX := tar.gz
-POLICYCOREUTILS_URL := https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20120924/$(POLICYCOREUTILS).$(POLICYCOREUTILS_SUFFIX)
+POLICYCOREUTILS_URL := $(SELINUX_URL)/$(POLICYCOREUTILS).$(POLICYCOREUTILS_SUFFIX)
POLICYCOREUTILS_SOURCE := $(SRCDIR)/$(POLICYCOREUTILS).$(POLICYCOREUTILS_SUFFIX)
POLICYCOREUTILS_DIR := $(BUILDDIR)/$(POLICYCOREUTILS)
-POLICYCOREUTILS_LICENSE := GPL-2.0-or-later
+POLICYCOREUTILS_LICENSE := GPL-2.0-only
+POLICYCOREUTILS_LICENSE_FILES := file://LICENSE;md5=393a5ca445f6965873eca0259a17f833
+POLICYCOREUTILS_CVE_PRODUCT := selinuxproject:policycoreutils
# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------
-POLICYCOREUTILS_SUBDIRS_y := \
- man \
- po \
- scripts
-
+POLICYCOREUTILS_SUBDIRS_y :=
POLICYCOREUTILS_PROGS_y :=
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_AUDIT2ALLOW) += audit2allow
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_AUDIT2ALLOW) += /usr/bin/audit2allow
-
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SEPOLGEN_IFGEN) += sepolgen-ifgen
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEPOLGEN_IFGEN) += /usr/bin/sepolgen-ifgen
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEPOLGEN_IFGEN) += /usr/bin/sepolgen-ifgen-attr-helper
-
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_AUDIT2WHY) += audit2why
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_AUDIT2WHY) += /usr/bin/audit2why
-
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_LOAD_POLICY) += load_policy
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_LOAD_POLICY) += /usr/sbin/load_policy
-
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_NEWROLE) += newrole
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_NEWROLE) += /usr/bin/newrole
-
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_RESTORECOND) += restorecond
-#POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_RESTORECOND) +=
-
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_RUN_INIT) += run_init
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_RUN_INIT) += /usr/sbin/run_init
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_RUN_INIT) += /usr/sbin/open_init_pty
-
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SANDBOX) += sandbox
-#POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SANDBOX) +=
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_LOAD_POLICY) += load_policy
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_LOAD_POLICY) += /usr/sbin/load_policy
-# no SUBDIRS needed for scripts
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_CHCAT) += /usr/bin/chcat
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_FIXFILES) += /usr/sbin/fixfiles
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_GENHOMEDIRCON) += /usr/sbin/genhomedircon
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_NEWROLE) += newrole
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_NEWROLE) += /usr/bin/newrole
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SECON) += secon
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SECON) += /usr/bin/secon
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_RUN_INIT) += run_init
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_RUN_INIT) += /usr/sbin/run_init
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_RUN_INIT) += /usr/sbin/open_init_pty
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SEMANAGE) += semanage
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMANAGE) += /usr/sbin/semanage
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_FIXFILES) += scripts
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_FIXFILES) += /usr/sbin/fixfiles
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SEMODULE) += semodule
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMODULE) += /usr/sbin/semodule
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SECON) += secon
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SECON) += /usr/bin/secon
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_DEPS) += semodule_deps
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_DEPS) += /usr/bin/semodule_deps
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SEMODULE) += semodule hll/pp
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMODULE) += /usr/sbin/semodule
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMODULE) += /usr/libexec/selinux/hll/pp
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_EXPAND) += semodule_expand
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_EXPAND) += /usr/bin/semodule_expand
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SESTATUS) += sestatus
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SESTATUS) += /usr/bin/sestatus
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_LINK) += semodule_link
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_LINK) += /usr/bin/semodule_link
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SETFILES) += setfiles
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SETFILES) += /usr/sbin/setfiles
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SETFILES) += /usr/sbin/restorecon_xattr
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_PACKAGE) += semodule_package
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_PACKAGE) += /usr/bin/semodule_package
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SEMODULE_PACKAGE) += /usr/bin/semodule_unpackage
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SETSEBOOL) += setsebool
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SETSEBOOL) += /usr/sbin/setsebool
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SESTATUS) += sestatus
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SESTATUS) += /usr/sbin/sestatus
-
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SETFILES) += setfiles
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SETFILES) += /usr/sbin/setfiles
-
-POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_SETSEBOOL) += setsebool
-POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_SETSEBOOL) += /usr/sbin/setsebool
-
-POLICYCOREUTILS_CONF_TOOL := NO
-
-# no ':=' because of $(PYTHON_SITEPACKAGES)
-POLICYCOREUTILS_MAKE_ENV = \
- $(CROSS_ENV) \
- SBINDIR=$(POLICYCOREUTILS_PKGDIR)/usr/sbin \
- PYTHONLIBDIR=$(POLICYCOREUTILS_PKGDIR)$(PYTHON_SITEPACKAGES)/.. \
- CFLAGS="-O2 -Wall" \
- INOTIFYH="/usr/include/sys/inotify.h" \
- PAMH="" \
- AUDITH=""
-#
-# We don't have PAM or AUDIT, so turn off.
-#
-# Use the following to turn on:
-# (Use these paths, as of version 2.1.13)
-#
-# PAMH=/usr/include/security/pam_appl.h
-# AUDITH=/usr/include/libaudit.h
-#
+POLICYCOREUTILS_SUBDIRS_$(PTXCONF_POLICYCOREUTILS_UNSETFILES) += unsetfiles
+POLICYCOREUTILS_PROGS_$(PTXCONF_POLICYCOREUTILS_UNSETFILES) += /usr/sbin/unsetfiles
-POLICYCOREUTILS_MAKE_OPT := \
- SUBDIRS="$(POLICYCOREUTILS_SUBDIRS_y)" \
- LIBDIR=$(PTXDIST_SYSROOT_TARGET)/usr/lib
-POLICYCOREUTILS_INSTALL_OPT := \
+POLICYCOREUTILS_CONF_TOOL := NO
+POLICYCOREUTILS_MAKE_ENV := $(CROSS_ENV)
+POLICYCOREUTILS_MAKE_OPT := \
SUBDIRS="$(POLICYCOREUTILS_SUBDIRS_y)" \
+ PREFIX=/usr \
+ BINDIR=/usr/bin \
+ SBINDIR=/usr/sbin \
+ ETCDIR=/etc \
+ LOCALEDIR=/usr/share/locale \
+ PAMH=$(call ptx/ifdef, PTXCONF_GLOBAL_PAM, y, n) \
+ AUDITH=$(call ptx/ifdef, PTXCONF_POLICYCOREUTILS_AUDIT, y, n) \
+ AUDIT_LOG_PRIV=n \
+ NAMESPACE_PRIV=n \
+ LSPP_PRIV=n \
+ CFLAGS="-O2 -Wall -g"
+POLICYCOREUTILS_INSTALL_OPT := \
+ $(POLICYCOREUTILS_MAKE_OPT) \
install
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/policycoreutils.install:
+ @$(call targetinfo)
+ifdef PTXCONF_GLOBAL_PAM
+ @mkdir -p $(POLICYCOREUTILS_PKGDIR)/etc/pam.d
+endif
+ @$(call world/install, POLICYCOREUTILS)
+ @$(call touch)
+
# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------
@@ -137,15 +109,22 @@ $(STATEDIR)/policycoreutils.targetinstall:
@$(call install_fixup, policycoreutils,AUTHOR,"Wolfram Sang <w.sang@pengutronix.de>")
@$(call install_fixup, policycoreutils,DESCRIPTION,missing)
+ifdef PTXCONF_POLICYCOREUTILS_NEWROLE_PAM_CFG
+ @$(call install_alternative, policycoreutils, 0, 0, 0644, /etc/pam.d/newrole)
+endif
+ifdef PTXCONF_POLICYCOREUTILS_RUN_INIT_PAM_CFG
+ @$(call install_alternative, policycoreutils, 0, 0, 0644, /etc/pam.d/run_init)
+endif
+
@$(foreach prog, $(POLICYCOREUTILS_PROGS_y), \
$(call install_copy, policycoreutils, 0, 0, 0755, -, $(prog));)
-ifdef PTXCONF_POLICYCOREUTILS_SETFILES
- @$(call install_link, policycoreutils, setfiles, /usr/sbin/restorecon)
+ifdef PTXCONF_POLICYCOREUTILS_SEMODULE
+ @$(call install_link, policycoreutils, semodule, /usr/sbin/genhomedircon)
endif
-ifdef PTXCONF_POLICYCOREUTILS_SEMANAGE
- @$(call install_copy, policycoreutils, 0, 0, 0644, -, $(PYTHON_SITEPACKAGES)/seobject.py)
+ifdef PTXCONF_POLICYCOREUTILS_SETFILES
+ @$(call install_link, policycoreutils, setfiles, /usr/sbin/restorecon)
endif
ifdef PTXCONF_POLICYCOREUTILS_SESTATUS
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 15/17] Revert "sepolgen: remove after one year in staging"
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
` (13 preceding siblings ...)
2026-10-31 20:38 ` [ptxdist] [PATCH v2 14/17] policycoreutils: version bump 2.1.13 -> 3.11 Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 16/17] sepolgen: version bump 1.1.8 -> 3.11 Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 17/17] selinux: restore the global option Ladislav Michl
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
This partially reverts commit 9fe5462616de2ce93663f409f471ea83a6d5fbb5.
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: None
rules/sepolgen.in | 29 ++++++++++++++++++++++++
rules/sepolgen.make | 54 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 83 insertions(+)
create mode 100644 rules/sepolgen.in
create mode 100644 rules/sepolgen.make
diff --git a/rules/sepolgen.in b/rules/sepolgen.in
new file mode 100644
index 000000000..94f2ce071
--- /dev/null
+++ b/rules/sepolgen.in
@@ -0,0 +1,29 @@
+## SECTION=staging
+## old section:
+### SECTION=selinux
+
+config SEPOLGEN
+ tristate
+ prompt "sepolgen"
+ select PYTHON
+ select LIBSELINUX
+ select LIBSELINUX_PYTHON
+ help
+ A Python module used in SELinux policy generation
+
+ This package contains a Python module that forms the core of
+ the modern audit2allow (which is a part of the package
+ policycoreutils). The sepolgen library is structured to give
+ flexibility to the application using it. The library
+ contains: Reference Policy Representation, which are Objects
+ for representing policies and the reference policy
+ interfaces. Secondly, it has objects and algorithms for
+ representing access and sets of access in an abstract way
+ and searching that access. It also has a parser for
+ reference policy "headers". It contains infrastructure for
+ parsing SELinux related messages as produced by the audit
+ system. It has facilities for generating policy based on
+ required access.
+
+ STAGING: remove in ptxdist-2020.06.0
+ Old version that needs to be updated.
diff --git a/rules/sepolgen.make b/rules/sepolgen.make
new file mode 100644
index 000000000..7084e1d1d
--- /dev/null
+++ b/rules/sepolgen.make
@@ -0,0 +1,54 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2013 by Marc Kleine-Budde <mkl@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_SEPOLGEN) += sepolgen
+
+#
+# Paths and names
+#
+SEPOLGEN_VERSION := 1.1.8
+SEPOLGEN_MD5 := d734ff236639cc1bd3a33901774fa98d
+SEPOLGEN := sepolgen-$(SEPOLGEN_VERSION)
+SEPOLGEN_SUFFIX := tar.gz
+SEPOLGEN_URL := https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20120924/$(SEPOLGEN).$(SEPOLGEN_SUFFIX)
+SEPOLGEN_SOURCE := $(SRCDIR)/$(SEPOLGEN).$(SEPOLGEN_SUFFIX)
+SEPOLGEN_DIR := $(BUILDDIR)/$(SEPOLGEN)
+SEPOLGEN_LICENSE := GPL-2.0-only
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+SEPOLGEN_CONF_TOOL := NO
+# no ':=' because of $(PYTHON_SITEPACKAGES)
+SEPOLGEN_MAKE_ENV = PYTHONLIBDIR=$(PYTHON_SITEPACKAGES)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/sepolgen.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, sepolgen)
+ @$(call install_fixup, sepolgen,PRIORITY,optional)
+ @$(call install_fixup, sepolgen,SECTION,base)
+ @$(call install_fixup, sepolgen,AUTHOR,"Marc Kleine-Budde <mkl@pengutronix.de>")
+ @$(call install_fixup, sepolgen,DESCRIPTION,missing)
+
+ @$(call install_tree, sepolgen, 0, 0, -, $(PYTHON_SITEPACKAGES))
+ @$(call install_alternative, sepolgen, 0, 0, 0644, /var/lib/sepolgen/perm_map)
+
+ @$(call install_finish, sepolgen)
+
+ @$(call touch)
+
+# vim: syntax=make
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 16/17] sepolgen: version bump 1.1.8 -> 3.11
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
` (14 preceding siblings ...)
2026-10-31 20:38 ` [ptxdist] [PATCH v2 15/17] Revert "sepolgen: remove after one year in staging" Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 17/17] selinux: restore the global option Ladislav Michl
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
Since SELinux userspace 2.8, the sepolgen python module is shipped in the
selinux-python tarball together with audit2allow, so rename the package
to selinux-python.
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: pass PREFIX, BINDIR, PYTHON, PYTHONLIBDIR and CFLAGS as make
options instead of environment, so they apply to install as well.
rules/selinux-python.in | 12 +++++++
rules/selinux-python.make | 68 +++++++++++++++++++++++++++++++++++++++
rules/sepolgen.in | 29 -----------------
rules/sepolgen.make | 54 -------------------------------
4 files changed, 80 insertions(+), 83 deletions(-)
create mode 100644 rules/selinux-python.in
create mode 100644 rules/selinux-python.make
delete mode 100644 rules/sepolgen.in
delete mode 100644 rules/sepolgen.make
diff --git a/rules/selinux-python.in b/rules/selinux-python.in
new file mode 100644
index 000000000..d2f6eb655
--- /dev/null
+++ b/rules/selinux-python.in
@@ -0,0 +1,12 @@
+## SECTION=selinux
+
+config SELINUX_PYTHON
+ tristate
+ prompt "selinux-python"
+ select PYTHON3
+ select LIBSEPOL
+ select LIBSELINUX
+ select LIBSELINUX_PYTHON
+ help
+ audit2allow and the sepolgen python module it uses to
+ generate SELinux policy from audit messages.
diff --git a/rules/selinux-python.make b/rules/selinux-python.make
new file mode 100644
index 000000000..89e4c0f32
--- /dev/null
+++ b/rules/selinux-python.make
@@ -0,0 +1,68 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2013 by Marc Kleine-Budde <mkl@pengutronix.de>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_SELINUX_PYTHON) += selinux-python
+
+#
+# Paths and names
+#
+SELINUX_PYTHON_VERSION := $(SELINUX_VERSION)
+SELINUX_PYTHON_SHA256 := f854d7fe67981d80c612067e97c1804f641a9dfcca2d38baeb3efe52b7875398
+SELINUX_PYTHON := selinux-python-$(SELINUX_PYTHON_VERSION)
+SELINUX_PYTHON_SUFFIX := tar.gz
+SELINUX_PYTHON_URL := $(SELINUX_URL)/$(SELINUX_PYTHON).$(SELINUX_PYTHON_SUFFIX)
+SELINUX_PYTHON_SOURCE := $(SRCDIR)/$(SELINUX_PYTHON).$(SELINUX_PYTHON_SUFFIX)
+SELINUX_PYTHON_DIR := $(BUILDDIR)/$(SELINUX_PYTHON)
+SELINUX_PYTHON_LICENSE := GPL-2.0-only
+SELINUX_PYTHON_LICENSE_FILES := file://LICENSE;md5=393a5ca445f6965873eca0259a17f833
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+SELINUX_PYTHON_CONF_TOOL := NO
+SELINUX_PYTHON_MAKE_ENV := $(CROSS_ENV)
+SELINUX_PYTHON_MAKE_OPT = \
+ SUBDIRS="sepolgen audit2allow" \
+ PREFIX=/usr \
+ BINDIR=/usr/bin \
+ PYTHON=$(CROSS_PYTHON3) \
+ PYTHONLIBDIR=$(PYTHON3_SITEPACKAGES) \
+ CFLAGS="-O2 -Wall -g"
+SELINUX_PYTHON_INSTALL_OPT = \
+ $(SELINUX_PYTHON_MAKE_OPT) \
+ install
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/selinux-python.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, selinux-python)
+ @$(call install_fixup, selinux-python,PRIORITY,optional)
+ @$(call install_fixup, selinux-python,SECTION,base)
+ @$(call install_fixup, selinux-python,AUTHOR,"Marc Kleine-Budde <mkl@pengutronix.de>")
+ @$(call install_fixup, selinux-python,DESCRIPTION,missing)
+
+ @$(call install_tree, selinux-python, 0, 0, -, $(PYTHON3_SITEPACKAGES))
+ @$(call install_alternative, selinux-python, 0, 0, 0644, /var/lib/sepolgen/perm_map)
+ @$(call install_copy, selinux-python, 0, 0, 0755, -, /usr/bin/audit2allow)
+ @$(call install_link, selinux-python, audit2allow, /usr/bin/audit2why)
+ @$(call install_copy, selinux-python, 0, 0, 0755, -, /usr/bin/sepolgen-ifgen)
+ @$(call install_copy, selinux-python, 0, 0, 0755, -, /usr/bin/sepolgen-ifgen-attr-helper)
+
+ @$(call install_finish, selinux-python)
+
+ @$(call touch)
+
+# vim: syntax=make
diff --git a/rules/sepolgen.in b/rules/sepolgen.in
deleted file mode 100644
index 94f2ce071..000000000
--- a/rules/sepolgen.in
+++ /dev/null
@@ -1,29 +0,0 @@
-## SECTION=staging
-## old section:
-### SECTION=selinux
-
-config SEPOLGEN
- tristate
- prompt "sepolgen"
- select PYTHON
- select LIBSELINUX
- select LIBSELINUX_PYTHON
- help
- A Python module used in SELinux policy generation
-
- This package contains a Python module that forms the core of
- the modern audit2allow (which is a part of the package
- policycoreutils). The sepolgen library is structured to give
- flexibility to the application using it. The library
- contains: Reference Policy Representation, which are Objects
- for representing policies and the reference policy
- interfaces. Secondly, it has objects and algorithms for
- representing access and sets of access in an abstract way
- and searching that access. It also has a parser for
- reference policy "headers". It contains infrastructure for
- parsing SELinux related messages as produced by the audit
- system. It has facilities for generating policy based on
- required access.
-
- STAGING: remove in ptxdist-2020.06.0
- Old version that needs to be updated.
diff --git a/rules/sepolgen.make b/rules/sepolgen.make
deleted file mode 100644
index 7084e1d1d..000000000
--- a/rules/sepolgen.make
+++ /dev/null
@@ -1,54 +0,0 @@
-# -*-makefile-*-
-#
-# Copyright (C) 2013 by Marc Kleine-Budde <mkl@pengutronix.de>
-#
-# For further information about the PTXdist project and license conditions
-# see the README file.
-#
-
-#
-# We provide this package
-#
-PACKAGES-$(PTXCONF_SEPOLGEN) += sepolgen
-
-#
-# Paths and names
-#
-SEPOLGEN_VERSION := 1.1.8
-SEPOLGEN_MD5 := d734ff236639cc1bd3a33901774fa98d
-SEPOLGEN := sepolgen-$(SEPOLGEN_VERSION)
-SEPOLGEN_SUFFIX := tar.gz
-SEPOLGEN_URL := https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/20120924/$(SEPOLGEN).$(SEPOLGEN_SUFFIX)
-SEPOLGEN_SOURCE := $(SRCDIR)/$(SEPOLGEN).$(SEPOLGEN_SUFFIX)
-SEPOLGEN_DIR := $(BUILDDIR)/$(SEPOLGEN)
-SEPOLGEN_LICENSE := GPL-2.0-only
-
-# ----------------------------------------------------------------------------
-# Prepare
-# ----------------------------------------------------------------------------
-
-SEPOLGEN_CONF_TOOL := NO
-# no ':=' because of $(PYTHON_SITEPACKAGES)
-SEPOLGEN_MAKE_ENV = PYTHONLIBDIR=$(PYTHON_SITEPACKAGES)
-
-# ----------------------------------------------------------------------------
-# Target-Install
-# ----------------------------------------------------------------------------
-
-$(STATEDIR)/sepolgen.targetinstall:
- @$(call targetinfo)
-
- @$(call install_init, sepolgen)
- @$(call install_fixup, sepolgen,PRIORITY,optional)
- @$(call install_fixup, sepolgen,SECTION,base)
- @$(call install_fixup, sepolgen,AUTHOR,"Marc Kleine-Budde <mkl@pengutronix.de>")
- @$(call install_fixup, sepolgen,DESCRIPTION,missing)
-
- @$(call install_tree, sepolgen, 0, 0, -, $(PYTHON_SITEPACKAGES))
- @$(call install_alternative, sepolgen, 0, 0, 0644, /var/lib/sepolgen/perm_map)
-
- @$(call install_finish, sepolgen)
-
- @$(call touch)
-
-# vim: syntax=make
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [ptxdist] [PATCH v2 17/17] selinux: restore the global option
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
` (15 preceding siblings ...)
2026-10-31 20:38 ` [ptxdist] [PATCH v2 16/17] sepolgen: version bump 1.1.8 -> 3.11 Ladislav Michl
@ 2026-10-31 20:38 ` Ladislav Michl
16 siblings, 0 replies; 18+ messages in thread
From: Ladislav Michl @ 2026-10-31 20:38 UTC (permalink / raw)
To: ptxdist
From: Ladislav Michl <ladis@triops.cz>
Restore the GLOBAL_SELINUX option in its former glory.
As GLOBAL_SELINUX_OPTION has no users, drop it.
Signed-off-by: Ladislav Michl <ladis@triops.cz>
---
CHANGES:
- v2: wire GLOBAL_SELINUX also into dbus (replacing BROKEN DBUS_SELINUX)
and iproute2.
rules/at.in | 1 +
rules/busybox.in | 1 +
rules/casync.in | 1 +
rules/connman.in | 1 +
rules/core-selinux.in | 1 -
rules/coreutils.in | 1 +
rules/dbus.in | 6 +-----
rules/dbus.make | 2 +-
rules/f2fs-tools.in | 1 +
rules/gnupg.in | 1 +
rules/iproute2.in | 1 +
rules/iproute2.make | 3 +++
rules/logrotate.in | 1 +
rules/lxc.in | 1 +
rules/mtd-utils.in | 1 +
rules/openssh.in | 1 +
rules/pre/Rules.make | 6 ------
rules/shadow.in | 1 +
rules/strongswan.in | 1 +
rules/systemd.in | 1 +
20 files changed, 20 insertions(+), 13 deletions(-)
diff --git a/rules/at.in b/rules/at.in
index 13a1916c6..567324300 100644
--- a/rules/at.in
+++ b/rules/at.in
@@ -9,6 +9,7 @@ menuconfig AT
select ROOTFS_VAR_SPOOL_CRON
select BUSYBOX_START_STOP_DAEMON if AT_STARTSCRIPT
select BUSYBOX_FEATURE_START_STOP_DAEMON_FANCY if AT_STARTSCRIPT
+ select LIBSELINUX if GLOBAL_SELINUX
help
Delayed job execution and batch processing
diff --git a/rules/busybox.in b/rules/busybox.in
index 6bb60145d..612e21ade 100644
--- a/rules/busybox.in
+++ b/rules/busybox.in
@@ -10,6 +10,7 @@ menuconfig BUSYBOX
select GCCLIBS_GCC_S if !BUSYBOX_STATIC
select PAM if GLOBAL_PAM
select BUSYBOX_PAM if GLOBAL_PAM
+ select LIBSELINUX if BUSYBOX_SELINUX
select LIBTIRPC if BUSYBOX_NEED_LIBTIRPC
select BUSYBOX_INSTALL_NO_USR
help
diff --git a/rules/casync.in b/rules/casync.in
index 2135e84ff..b11b8c5ce 100644
--- a/rules/casync.in
+++ b/rules/casync.in
@@ -16,6 +16,7 @@ menuconfig CASYNC
select UDEV_LIBUDEV if CASYNC_UDEV
select XZ if CASYNC_LZMA
select ZLIB if CASYNC_ZLIB
+ select LIBSELINUX if GLOBAL_SELINUX
help
casync - Content Addressable Data Synchronizer.
diff --git a/rules/connman.in b/rules/connman.in
index a051e66f7..53738fcf0 100644
--- a/rules/connman.in
+++ b/rules/connman.in
@@ -14,6 +14,7 @@ menuconfig CONNMAN
select WPA_SUPPLICANT_CTRL_IFACE_DBUS if CONNMAN_WIFI
select BUSYBOX_START_STOP_DAEMON if CONNMAN_STARTSCRIPT && RUNTIME
select ROOTFS_VAR_LIB if RUNTIME
+ select LIBSELINUX if GLOBAL_SELINUX
prompt "connman "
help
The Connection Manager project provides a daemon for
diff --git a/rules/core-selinux.in b/rules/core-selinux.in
index 2a5cb87ef..236c77441 100644
--- a/rules/core-selinux.in
+++ b/rules/core-selinux.in
@@ -5,7 +5,6 @@ config GLOBAL_SELINUX
select BUSYBOX_SELINUX if BUSYBOX
select BUSYBOX_BUILD_LIBBUSYBOX if BUSYBOX
select BUSYBOX_FEATURE_INDIVIDUAL if BUSYBOX
- depends on BROKEN
prompt "SELinux support"
help
This will enable SELinux for all packages with optional
diff --git a/rules/coreutils.in b/rules/coreutils.in
index 504283736..c3aee2786 100644
--- a/rules/coreutils.in
+++ b/rules/coreutils.in
@@ -8,6 +8,7 @@ menuconfig COREUTILS
select GCCLIBS_GCC_S
select ATTR if COREUTILS_XATTR
select SYSTEMD if COREUTILS_SYSTEMD
+ select LIBSELINUX if GLOBAL_SELINUX
help
This package contains the essential basic system utilities.
diff --git a/rules/dbus.in b/rules/dbus.in
index b205ee62f..d4776a5d1 100644
--- a/rules/dbus.in
+++ b/rules/dbus.in
@@ -8,6 +8,7 @@ menuconfig DBUS
select XORG_LIB_X11 if DBUS_X
select MACHINE_ID if RUNTIME
select SYSTEMD if DBUS_SYSTEMD
+ select LIBSELINUX if GLOBAL_SELINUX
select LIBC_PTHREAD
select LIBC_RT
help
@@ -27,11 +28,6 @@ menuconfig DBUS
if DBUS
-config DBUS_SELINUX
- prompt "selinux support [BROKEN]"
- depends on BROKEN
- bool
-
config DBUS_SYSTEMD
bool
default INITMETHOD_SYSTEMD
diff --git a/rules/dbus.make b/rules/dbus.make
index db5b9d0b6..fd0f3fb1e 100644
--- a/rules/dbus.make
+++ b/rules/dbus.make
@@ -62,7 +62,7 @@ DBUS_CONF_OPT := \
-Dmodular_tests=disabled \
-Dqt_help=disabled \
-Drelocation=disabled \
- -Dselinux=$(call ptx/endis, PTXCONF_DBUS_SELINUX)d \
+ -Dselinux=$(call ptx/endis, PTXCONF_GLOBAL_SELINUX)d \
-Dstats=false \
-Dsystemd=$(call ptx/endis, PTXCONF_DBUS_SYSTEMD)d \
-Dsystemd_system_unitdir=/usr/lib/systemd/system \
diff --git a/rules/f2fs-tools.in b/rules/f2fs-tools.in
index dbcdb9d96..5d2ba5f41 100644
--- a/rules/f2fs-tools.in
+++ b/rules/f2fs-tools.in
@@ -5,6 +5,7 @@ config F2FS_TOOLS
prompt "f2fs-tools"
select LIBUUID
select LIBBLKID
+ select LIBSELINUX if GLOBAL_SELINUX
help
The f2fs-tools package provides the filesystem utilities for use
with the f2fs filesystem (flash-friendly filesystem)
diff --git a/rules/gnupg.in b/rules/gnupg.in
index 2bad06187..9b731efc0 100644
--- a/rules/gnupg.in
+++ b/rules/gnupg.in
@@ -15,6 +15,7 @@ menuconfig GNUPG
select BZIP2_LIBBZ2 if GNUPG_GPG_BZIP2
# disabling GNUPG_GPG_EDDSA is broken
select GNUPG_GPG_EDDSA
+ select LIBSELINUX if GLOBAL_SELINUX
help
GnuPG - The GNU Privacy Guard suite of programs
diff --git a/rules/iproute2.in b/rules/iproute2.in
index 48e44fb3b..03a7bf4a1 100644
--- a/rules/iproute2.in
+++ b/rules/iproute2.in
@@ -11,6 +11,7 @@ menuconfig IPROUTE2
select LIBC_PTHREAD if IPROUTE2_ARPD
select LIBC_RESOLV
select LIBMNL if IPROUTE2_DEVLINK || IPROUTE2_DCB
+ select LIBSELINUX if GLOBAL_SELINUX
select PYTHON3 if IPROUTE2_ROUTEL && RUNTIME
help
Networking and traffic control tools
diff --git a/rules/iproute2.make b/rules/iproute2.make
index 18222d792..706d31089 100644
--- a/rules/iproute2.make
+++ b/rules/iproute2.make
@@ -39,6 +39,9 @@ $(STATEDIR)/iproute2.prepare:
@echo 'TC_CONFIG_ATM:=n' >> $(IPROUTE2_DIR)/config.mk
ifndef PTXCONF_IPROUTE2_ARPD
@echo 'HAVE_BERKELEY_DB:=n' >> $(IPROUTE2_DIR)/config.mk
+endif
+ifndef PTXCONF_GLOBAL_SELINUX
+ @echo 'HAVE_SELINUX:=n' >> $(IPROUTE2_DIR)/config.mk
endif
@$(call touch)
diff --git a/rules/logrotate.in b/rules/logrotate.in
index f3b465b87..9f13695d3 100644
--- a/rules/logrotate.in
+++ b/rules/logrotate.in
@@ -6,6 +6,7 @@ menuconfig LOGROTATE
select LIBPOPT
select ACL if LOGROTATE_ACL
select ROOTFS_VAR_LIB if RUNTIME
+ select LIBSELINUX if GLOBAL_SELINUX
help
The logrotate utility is designed to simplify the
administration of log files on a system which generates a lot
diff --git a/rules/lxc.in b/rules/lxc.in
index e8dc765e6..3a06c8724 100644
--- a/rules/lxc.in
+++ b/rules/lxc.in
@@ -13,6 +13,7 @@ menuconfig LXC
select IPTABLES_IPV4 if LXC_SYSTEMD_UNIT
select IPTABLES_IPV6 if LXC_SYSTEMD_UNIT
select IPTABLES_INSTALL_TOOLS if LXC_SYSTEMD_UNIT
+ select LIBSELINUX if GLOBAL_SELINUX
help
LXC is a userspace interface for the Linux kernel containment
features. Through a powerful API and simple tools, it lets
diff --git a/rules/mtd-utils.in b/rules/mtd-utils.in
index d3143e2d5..265279f72 100644
--- a/rules/mtd-utils.in
+++ b/rules/mtd-utils.in
@@ -8,6 +8,7 @@ menuconfig MTD_UTILS
select ZLIB
select LIBUUID if MTD_UTILS_UBIFS
select LIBLZO if MTD_UTILS_USE_LIBLZO
+ select LIBSELINUX if GLOBAL_SELINUX
help
Memory Technology Device Utilities
diff --git a/rules/openssh.in b/rules/openssh.in
index afbd19675..e73b3343e 100644
--- a/rules/openssh.in
+++ b/rules/openssh.in
@@ -9,6 +9,7 @@ menuconfig OPENSSH
select RC_ONCE if OPENSSH_SSHD_GENKEYS && RUNTIME
select BUSYBOX_START_STOP_DAEMON if OPENSSH_SSHD_STARTSCRIPT
select OPENSSH_KEYGEN if OPENSSH_SSHD_GENKEYS
+ select LIBSELINUX if GLOBAL_SELINUX
prompt "openssh "
help
secure shell client/server, an rlogin/rsh/rcp replacement
diff --git a/rules/pre/Rules.make b/rules/pre/Rules.make
index fd5ddfe55..89b4e9c02 100644
--- a/rules/pre/Rules.make
+++ b/rules/pre/Rules.make
@@ -296,12 +296,6 @@ else
GLOBAL_PAM_OPTION := --disable-pam
endif
-ifdef PTXCONF_GLOBAL_SELINUX
-GLOBAL_SELINUX_OPTION := --enable-selinux
-else
-GLOBAL_SELINUX_OPTION := --disable-selinux
-endif
-
# ----------------------------------------------------------------------------
# HOST stuff
# ----------------------------------------------------------------------------
diff --git a/rules/shadow.in b/rules/shadow.in
index b3979ebd3..3313d3771 100644
--- a/rules/shadow.in
+++ b/rules/shadow.in
@@ -7,6 +7,7 @@ menuconfig SHADOW
depends on (!BUSYBOX_ADDUSER && !BUSYBOX_ADDGROUP && !BUSYBOX_LOGIN && !BUSYBOX_PASSWD && !BUSYBOX_SU) || ALLYES
select LIBC_CRYPT
select PAM if GLOBAL_PAM
+ select LIBSELINUX if GLOBAL_SELINUX
prompt "shadow "
help
Password and account management tool suite with support
diff --git a/rules/strongswan.in b/rules/strongswan.in
index dca4cac99..78ddbd526 100644
--- a/rules/strongswan.in
+++ b/rules/strongswan.in
@@ -7,6 +7,7 @@ menuconfig STRONGSWAN
select LIBCURL if STRONGSWAN_LIBCURL
select OPENSSL if STRONGSWAN_OPENSSL
select SYSTEMD if STRONGSWAN_SYSTEMD_UNIT
+ select LIBSELINUX if GLOBAL_SELINUX
help
strongSwan is a complete IPsec implementation.
Please keep in mind to configure the kernel accordingly to fulfill
diff --git a/rules/systemd.in b/rules/systemd.in
index cfe4d40b5..cc1fda27e 100644
--- a/rules/systemd.in
+++ b/rules/systemd.in
@@ -35,6 +35,7 @@ config SYSTEMD
select LZ4 if SYSTEMD_LZ4
select ZSTD if SYSTEMD_ZSTD
select PCRE2 if SYSTEMD_PCRE2
+ select LIBSELINUX if GLOBAL_SELINUX
select LIBMICROHTTPD if SYSTEMD_MICROHTTPD
select LIBSECCOMP if SYSTEMD_SECCOMP
select IPTABLES if SYSTEMD_IPMASQUERADE
--
2.47.3
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2026-10-31 20:39 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-31 20:38 [ptxdist] [PATCH v2 00/17] selinux: back at version 3.11 Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 01/17] selinux: add common version and URL Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 02/17] Revert "python: remove after more than one year in staging" Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 03/17] host-swig: version bump 4.0.1 -> 4.5.1 Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 04/17] Revert "*libsepol: remove" Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 05/17] libsepol: version bump 2.1.8 -> 3.11 Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 06/17] Revert "libselinux: remove after more than one year in staging" Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 07/17] libselinux: version bump 2.1.12 -> 3.11 Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 08/17] audit: new package Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 09/17] Revert "libsemanage: remove after more than one year in staging" Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 10/17] libsemanage: version bump 2.1.9 -> 3.11 Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 11/17] Revert "checkpolicy: remove after more than one year in staging" Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 12/17] checkpolicy: version bump 2.1.11 -> 3.11 Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 13/17] Revert "policycoreutils: remove after more than one year in staging" Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 14/17] policycoreutils: version bump 2.1.13 -> 3.11 Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 15/17] Revert "sepolgen: remove after one year in staging" Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 16/17] sepolgen: version bump 1.1.8 -> 3.11 Ladislav Michl
2026-10-31 20:38 ` [ptxdist] [PATCH v2 17/17] selinux: restore the global option Ladislav Michl
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox