aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorTianling Shen <cnsztl@immortalwrt.org>2023-06-25 17:04:14 +0800
committerGitHub <noreply@github.com>2023-06-25 17:04:14 +0800
commit7414d8c6dd5e67844665527e56695dc84360a22f (patch)
tree0c432a38830aabb2622ba4ef523942a40592952e /utils
parent534bd518f3fff6c31656a1edcd7e10922f3e06e5 (diff)
parentaa4085a13f224e8bf5917aace318ae21b49adf2a (diff)
Merge pull request #21405 from jefferyto/selinux-update
selinux: Update selinux packages to 3.5, setools to 4.4.2, reorganize packages
Diffstat (limited to 'utils')
-rw-r--r--utils/selinux-python/Makefile242
-rw-r--r--utils/selinux-python/patches/0001-sepolgen-adjust-data_dir.patch4
-rw-r--r--utils/selinux-python/patches/0003-sepolicy-no-gui.patch23
-rw-r--r--utils/selinux-python/patches/0004-sepolicy-fix-get_os_version-except.patch39
-rw-r--r--utils/selinux-python/patches/0005-no-translations.patch8
-rw-r--r--utils/semodule-utils/Makefile64
-rw-r--r--utils/setools/Makefile95
-rw-r--r--utils/setools/patches/010-no-gui.patch16
-rw-r--r--utils/setools/patches/030-remove-host-paths.patch5
9 files changed, 408 insertions, 88 deletions
diff --git a/utils/selinux-python/Makefile b/utils/selinux-python/Makefile
index ffaa99c7f..ababbae95 100644
--- a/utils/selinux-python/Makefile
+++ b/utils/selinux-python/Makefile
@@ -6,18 +6,20 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=selinux-python
-PKG_VERSION:=3.2
+PKG_VERSION:=3.5
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/SELinuxProject/selinux/releases/download/$(PKG_VERSION)
-PKG_HASH:=770855ea8120ef23007fdb9db94b1ed6e8cd77917b584ed8877bbee9c16e74fb
+PKG_HASH:=8245bb4dae59333461f19ca0c79a829081f07972fa5e3ad4c2b2b917dd71d96b
PKG_MAINTAINER:=Thomas Petazzoni <thomas.petazzoni@bootlin.com>
PKG_LICENSE:=GPL-2.0-only
-PKG_LICENSE_FILES:=COPYING
-PYTHON3_PKG_BUILD:=0
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
+PYTHON3_PKG_BUILD:=0
include $(INCLUDE_DIR)/package.mk
include ../../lang/python/python3-package.mk
@@ -27,44 +29,134 @@ include ../../lang/python/python3-package.mk
#
define Package/selinux-python/Default
+ URL:=http://selinuxproject.org/page/Main_Page
+ DEPENDS:=+python3-light
+endef
+
+define Package/selinux-python/Default/python
+$(call Package/selinux-python/Default)
+ SUBMENU:=Python
+ SECTION:=lang
+ CATEGORY:=Languages
+endef
+
+define Package/selinux-python/Default/util
+$(call Package/selinux-python/Default)
SECTION:=utils
- DEPENDS:=+python3 +python3-libselinux
CATEGORY:=Utilities
- URL:=http://selinuxproject.org/page/Main_Page
+ TITLE:=SELinux management utility
endef
define Package/selinux-python/Default/description
- A set of SELinux tools written in python that help with
- managing a system with SELinux enabled.
+A set of SELinux tools written in Python that help with managing a
+system with SELinux enabled.
endef
MAKE_VARS = \
- PYTHON=$(HOST_PYTHON3_BIN) \
- PYTHONLIBDIR=$(PYTHON3_PKG_DIR) \
- $(PYTHON3_VARS)
+ $(PYTHON3_VARS) \
+ $(HOST_PYTHON3_PIP_VARS) \
+ PYTHON_SETUP_ARGS=--no-compile
define Build/Compile
$(call Build/Compile/Default,all)
endef
#
+# python3-seobject
+#
+
+define Package/python3-seobject
+$(call Package/selinux-python/Default/python)
+ TITLE:=SELinux seobject library
+ DEPENDS+= +python3-selinux +python3-semanage +python3-sepolicy +python3-setools
+endef
+
+define Package/python3-seobject/description
+$(call Package/selinux-python/Default/description)
+
+This package contains the seobject library.
+endef
+
+define Py3Package/python3-seobject/filespec
++|$(PYTHON3_PKG_DIR)/seobject.py
+endef
+
+Py3Package/python3-seobject/install:=:
+
+#
+# python3-sepolgen
+#
+
+define Package/python3-sepolgen
+$(call Package/selinux-python/Default/python)
+ TITLE:=SELinux policy generation library
+ DEPENDS+= +python3-selinux
+endef
+
+define Package/python3-sepolgen/description
+$(call Package/selinux-python/Default/description)
+
+This package contains the SELinux policy generation Python library.
+endef
+
+define Package/python3-sepolgen/conffiles
+/etc/sepolgen/
+endef
+
+define Py3Package/python3-sepolgen/filespec
++|$(PYTHON3_PKG_DIR)/sepolgen
+endef
+
+define Py3Package/python3-sepolgen/install
+ $(INSTALL_DIR) $(1)/etc/sepolgen
+ $(INSTALL_DATA) $(PKG_INSTALL_DIR)/var/lib/sepolgen/perm_map $(1)/etc/sepolgen/
+endef
+
+#
+# python3-sepolicy
+#
+
+define Package/python3-sepolicy
+$(call Package/selinux-python/Default/python)
+ TITLE:=SELinux Policy Analyses binding
+ DEPENDS+= +python3-selinux +python3-sepolgen +python3-xml +python3-setools
+endef
+
+define Package/python3-sepolicy/description
+$(call Package/selinux-python/Default/description)
+
+This package contains a Python binding for SELinux Policy Analyses.
+endef
+
+define Py3Package/python3-sepolicy/filespec
++|$(PYTHON3_PKG_DIR)/sepolicy
+-|$(PYTHON3_PKG_DIR)/sepolicy/gui.py
+-|$(PYTHON3_PKG_DIR)/sepolicy/sedbus.py
++|$(PYTHON3_PKG_DIR)/sepolicy-$(PKG_VERSION).dist-info
+endef
+
+Py3Package/python3-sepolicy/install:=:
+
+#
# selinux-audit2allow
#
define Package/selinux-audit2allow
-$(call Package/selinux-python/Default)
- TITLE:=selinux-audit2allow
- DEPENDS+=+python3-sepolgen +libselinux +libsepol
+$(call Package/selinux-python/Default/util)
+ TITLE+= audit2allow
+ DEPENDS+= +python3-selinux +python3-sepolgen
endef
define Package/selinux-audit2allow/description
$(call Package/selinux-python/Default/description)
- This package contains the audit2allow and audit2why tools.
+
+This package contains the audit2allow and audit2why tools.
endef
define Package/selinux-audit2allow/install
- $(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR)/audit2allow DESTDIR=$(1) install
- rm -rf $(1)/usr/share/man
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/audit2allow $(1)/usr/bin/
+ $(LN) audit2allow $(1)/usr/bin/audit2why
endef
#
@@ -72,88 +164,126 @@ endef
#
define Package/selinux-chcat
-$(call Package/selinux-python/Default)
- TITLE:=selinux-chcat
+$(call Package/selinux-python/Default/util)
+ TITLE+= chcat
+ DEPENDS+= +python3-selinux +python3-seobject +selinux-semanage
endef
define Package/selinux-chcat/description
$(call Package/selinux-python/Default/description)
- This package contains the chcat tool.
+
+This package contains the chcat tool.
endef
define Package/selinux-chcat/install
- $(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR)/chcat DESTDIR=$(1) install
- rm -rf $(1)/usr/share
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/chcat $(1)/usr/bin/
+endef
+
+#
+# selinux-python
+#
+
+define Package/selinux-python
+$(call Package/selinux-python/Default/util)
+ TITLE+= meta-package
+ DEPENDS:= \
+ +selinux-audit2allow \
+ +selinux-chcat \
+ +selinux-semanage \
+ +selinux-sepolgen-ifgen \
+ +selinux-sepolicy
endef
+define Package/selinux-python/description
+$(call Package/selinux-python/Default/description)
+
+This is a meta-package that installs all of the SELinux management
+utilities.
+endef
+
+Package/selinux-python/install:=:
+
#
# selinux-semanage
#
define Package/selinux-semanage
-$(call Package/selinux-python/Default)
- TITLE:=selinux-semanage
- DEPENDS+=+python3-sepolicy +python3-libsemanage +setools
+$(call Package/selinux-python/Default/util)
+ TITLE+= semanage
+ DEPENDS+= +python3-seobject
endef
define Package/selinux-semanage/description
$(call Package/selinux-python/Default/description)
- This package contains the semanage tool.
+
+This package contains the semanage tool.
endef
define Package/selinux-semanage/install
- $(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR)/semanage DESTDIR=$(1) install
- rm -rf $(1)/usr/share
+ $(INSTALL_DIR) $(1)/usr/sbin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/semanage $(1)/usr/sbin/
endef
#
-# python3-sepolgen
+# selinux-sepolgen-ifgen
#
-define Package/python3-sepolgen
-$(call Package/selinux-python/Default)
- SUBMENU:=Python
- SECTION:=lang
- CATEGORY:=Languages
- TITLE:=python3-sepolgen
+define Package/selinux-sepolgen-ifgen
+$(call Package/selinux-python/Default/util)
+ TITLE+= sepolgen-ifgen
+ DEPENDS+= +python3-selinux +python3-sepolgen +libselinux
endef
-define Package/python3-sepolgen/description
+define Package/selinux-sepolgen-iften/description
$(call Package/selinux-python/Default/description)
- This package contains the sepolgen Python library.
+
+This package contains the sepolgen-ifgen tool.
endef
-define Package/python3-sepolgen/install
- $(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR)/sepolgen DESTDIR=$(1) install
- $(INSTALL_DIR) $(1)/usr/share/sepolgen/
- $(INSTALL_DATA) $(1)/var/lib/sepolgen/perm_map $(1)/usr/share/sepolgen/perm_map
- $(RM) -rf $(1)/var
+define Package/selinux-sepolgen-ifgen/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sepolgen-ifgen $(1)/usr/bin/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sepolgen-ifgen-attr-helper $(1)/usr/bin/
endef
#
-# python3-sepolicy
+# selinux-sepolicy
#
-define Package/python3-sepolicy
-$(call Package/selinux-python/Default)
- SUBMENU:=Python
- SECTION:=lang
- CATEGORY:=Languages
- TITLE:=python3-sepolicy
+define Package/selinux-sepolicy
+$(call Package/selinux-python/Default/util)
+ TITLE+= sepolicy
+ DEPENDS+= +python3-multiprocessing +python3-selinux +python3-sepolicy
endef
-define Package/python3-sepolicy/description
+define Package/selinux-sepolicy/description
$(call Package/selinux-python/Default/description)
- This package contains the sepolicy Python library.
+
+This package contains the sepolicy and sepolgen tools.
endef
-define Package/python3-sepolicy/install
- $(MAKE_VARS) $(MAKE) -C $(PKG_BUILD_DIR)/sepolicy DESTDIR=$(1) install
- rm -rf $(1)/usr/share
+define Package/selinux-sepolicy/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/sepolicy $(1)/usr/bin/
+ $(LN) sepolicy $(1)/usr/bin/sepolgen
endef
+$(eval $(call Py3Package,python3-seobject))
+$(eval $(call Py3Package,python3-sepolgen))
+$(eval $(call Py3Package,python3-sepolicy))
+
+$(eval $(call BuildPackage,python3-seobject))
+$(eval $(call BuildPackage,python3-sepolgen))
+$(eval $(call BuildPackage,python3-sepolicy))
+
+$(eval $(call BuildPackage,python3-seobject-src))
+$(eval $(call BuildPackage,python3-sepolgen-src))
+$(eval $(call BuildPackage,python3-sepolicy-src))
+
$(eval $(call BuildPackage,selinux-audit2allow))
$(eval $(call BuildPackage,selinux-chcat))
+$(eval $(call BuildPackage,selinux-python))
$(eval $(call BuildPackage,selinux-semanage))
-$(eval $(call BuildPackage,python3-sepolgen))
-$(eval $(call BuildPackage,python3-sepolicy))
+$(eval $(call BuildPackage,selinux-sepolgen-ifgen))
+$(eval $(call BuildPackage,selinux-sepolicy))
diff --git a/utils/selinux-python/patches/0001-sepolgen-adjust-data_dir.patch b/utils/selinux-python/patches/0001-sepolgen-adjust-data_dir.patch
index 2589f2f99..5b866f199 100644
--- a/utils/selinux-python/patches/0001-sepolgen-adjust-data_dir.patch
+++ b/utils/selinux-python/patches/0001-sepolgen-adjust-data_dir.patch
@@ -4,6 +4,8 @@ Date: Wed, 2 Oct 2019 12:04:24 +0200
Subject: [PATCH] sepolgen: adjust data_dir()
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+(changed data_dir prefix from /usr/share to /etc)
+Signed-off-by: Jeffery To <jeffery.to@gmail.com>
---
sepolgen/src/sepolgen/defaults.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -15,7 +17,7 @@ Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
def data_dir():
- return "/var/lib/sepolgen"
-+ return "/usr/share/sepolgen"
++ return "/etc/sepolgen"
def perm_map():
return data_dir() + "/perm_map"
diff --git a/utils/selinux-python/patches/0003-sepolicy-no-gui.patch b/utils/selinux-python/patches/0003-sepolicy-no-gui.patch
new file mode 100644
index 000000000..a822d4c5f
--- /dev/null
+++ b/utils/selinux-python/patches/0003-sepolicy-no-gui.patch
@@ -0,0 +1,23 @@
+--- a/sepolicy/sepolicy.py
++++ b/sepolicy/sepolicy.py
+@@ -685,7 +685,6 @@ if __name__ == '__main__':
+ gen_booleans_args(subparsers)
+ gen_communicate_args(subparsers)
+ gen_generate_args(subparsers)
+- gen_gui_args(subparsers)
+ gen_interface_args(subparsers)
+ gen_manpage_args(subparsers)
+ gen_network_args(subparsers)
+--- a/sepolicy/setup.py
++++ b/sepolicy/setup.py
+@@ -13,10 +13,5 @@ setup(
+ packages=[
+ "sepolicy",
+ "sepolicy.templates",
+- "sepolicy.help"
+ ],
+- package_data={
+- 'sepolicy': ['*.glade'],
+- 'sepolicy.help': ['*.txt', '*.png']
+- }
+ )
diff --git a/utils/selinux-python/patches/0004-sepolicy-fix-get_os_version-except.patch b/utils/selinux-python/patches/0004-sepolicy-fix-get_os_version-except.patch
new file mode 100644
index 000000000..f035846d5
--- /dev/null
+++ b/utils/selinux-python/patches/0004-sepolicy-fix-get_os_version-except.patch
@@ -0,0 +1,39 @@
+commit 80ba6c49dec9c2c48775e70a4d4564ba5e59eea1
+Author: Jeffery To <jeffery.to@gmail.com>
+Date: Mon Jun 19 14:15:45 2023 +0800
+
+ python/sepolicy: Fix get_os_version except clause
+
+ This adds more exceptions to be handled by the except clause in
+ `get_os_version()`:
+
+ * If the `distro` package is not installed, then `import distro` raises
+ a `ModuleNotFoundError` exception.
+
+ * The distro documentation[1] lists `OSError` and `UnicodeError` as
+ exceptions that can be raised.
+
+ * Older versions of distro (<= 1.6.0) may also raise
+ `subprocessCalledProcessError`[2].
+
+ [1]: https://github.com/python-distro/distro/blob/v1.8.0/src/distro/distro.py#L749-L753
+ [2]: https://github.com/python-distro/distro/blob/v1.6.0/distro.py#L726-L728
+
+ Signed-off-by: Jeffery To <jeffery.to@gmail.com>
+
+--- a/sepolicy/sepolicy/__init__.py
++++ b/sepolicy/sepolicy/__init__.py
+@@ -1240,11 +1240,12 @@ def boolean_desc(boolean):
+
+
+ def get_os_version():
++ import subprocess
+ system_release = ""
+ try:
+ import distro
+ system_release = distro.name(pretty=True)
+- except IOError:
++ except (ModuleNotFoundError, OSError, IOError, UnicodeError, subprocess.CalledProcessError):
+ system_release = "Misc"
+
+ return system_release
diff --git a/utils/selinux-python/patches/0005-no-translations.patch b/utils/selinux-python/patches/0005-no-translations.patch
new file mode 100644
index 000000000..9b1cb8cfe
--- /dev/null
+++ b/utils/selinux-python/patches/0005-no-translations.patch
@@ -0,0 +1,8 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1,4 +1,4 @@
+-SUBDIRS = sepolicy audit2allow semanage sepolgen chcat po
++SUBDIRS = sepolicy audit2allow semanage sepolgen chcat
+
+ all install relabel clean indent test:
+ @for subdir in $(SUBDIRS); do \
diff --git a/utils/semodule-utils/Makefile b/utils/semodule-utils/Makefile
index 99ccf4d51..bfd94baac 100644
--- a/utils/semodule-utils/Makefile
+++ b/utils/semodule-utils/Makefile
@@ -6,46 +6,76 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=semodule-utils
-PKG_VERSION:=3.3
+PKG_VERSION:=3.5
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/SELinuxProject/selinux/releases/download/$(PKG_VERSION)
-PKG_HASH:=3098ec5e5f04a1dbbf4aa569b63a4570750a9fe0d4da14ce45954aa300a17063
+PKG_HASH:=c9a550a737051ebaf2c102f665c7ec2f85e7232870980aa0067998459b414283
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
PKG_LICENSE:=GPL-2.0-only
-PKG_LICENSE_FILES:=COPYING
+PKG_LICENSE_FILES:=LICENSE
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
-HOST_BUILD_DEPENDS:=libsemanage/host
include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/host-build.mk
-define Package/semodule-utils
+define Package/semodule-utils/Default
SECTION:=utils
CATEGORY:=Utilities
DEPENDS:=+libsepol
- TITLE:=SELinux policy utilities for dealing with modules
+ TITLE:=SELinux policy module utility
URL:=http://selinuxproject.org/page/Main_Page
endef
+define Package/semodule-utils/Default/description
+semodule-utils is a collection of utilities for dealing with policy
+modules.
+endef
+
+define Package/semodule-utils
+$(call Package/semodule-utils/Default)
+ TITLE+= meta-package
+ DEPENDS:= \
+ semodule-expand \
+ semodule-link \
+ semodule-package \
+ semodule-unpackage
+endef
+
define Package/semodule-utils/description
- Semodule-utils is a collection of utilities for dealing with
- policy modules.
+$(call Package/semodule-utils/Default/description)
+
+This is a meta-package that installs all of the semodule-utils tools.
endef
-HOST_MAKE_FLAGS += \
- PREFIX=$(STAGING_DIR_HOSTPKG) \
- SBINDIR=$(STAGING_DIR_HOSTPKG)/sbin \
- ETCDIR=$(STAGING_DIR_HOSTPKG)/etc
+Package/semodule-utils/install:=:
+
+define BuildUtil
+ define Package/semodule-$(1)
+ $(call Package/semodule-utils/Default)
+ TITLE+= semodule_$(1)
+ endef
+
+ define Package/semodule-$(1)/description
+$(call Package/semodule-utils/Default/description)
-define Package/semodule-utils/install
- $(INSTALL_DIR) $(1)/usr/bin
- $(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
+This contains the semodule_$(1) tool.
+ endef
+
+ define Package/semodule-$(1)/install
+ $$(INSTALL_DIR) $$(1)/usr/bin
+ $$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/usr/bin/semodule_$(1) $$(1)/usr/bin/
+ endef
+
+ $$(eval $$(call BuildPackage,semodule-$(1)))
endef
-$(eval $(call HostBuild))
$(eval $(call BuildPackage,semodule-utils))
+
+$(eval $(call BuildUtil,expand))
+$(eval $(call BuildUtil,link))
+$(eval $(call BuildUtil,package))
+$(eval $(call BuildUtil,unpackage))
diff --git a/utils/setools/Makefile b/utils/setools/Makefile
index 2e6d3f915..2bb4c7ff4 100644
--- a/utils/setools/Makefile
+++ b/utils/setools/Makefile
@@ -6,36 +6,109 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=setools
-PKG_VERSION:=4.4.0
-PKG_RELEASE:=2
+PKG_VERSION:=4.4.2
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://github.com/SELinuxProject/setools/releases/download/$(PKG_VERSION)
-PKG_HASH:=f3786677e40b7f16a226f48f233dcf835e700739614a7dbed2ff61cc9607814e
-PKG_BUILD_DIR:=$(BUILD_DIR)/setools
+PKG_HASH:=f23e3c8635aa289096ca0218ca6f4568a4346e088bc46f374cb0917b7fb66f05
PKG_BUILD_DEPENDS:=python-cython/host # Cython>=0.27
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
-PKG_LICENSE:=GPL-2.0-or-later LGPL-2.1-or-later
+PKG_LICENSE:=GPL-2.0-only LGPL-2.1-only
PKG_LICENSE_FILES:=COPYING COPYING.GPL COPYING.LGPL
PKG_CPE_ID:=cpe:/a:selinuxproject:setools
include $(INCLUDE_DIR)/package.mk
include ../../lang/python/python3-package.mk
-define Package/setools
+TAR_OPTIONS+= --strip-components 1
+TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
+
+define Package/setools/Default
SECTION:=utils
CATEGORY:=Utilities
- DEPENDS:=+python3 +python3-pkg-resources +python3-networkx +libselinux +libsepol
- TITLE:=Policy analysis tools for SELinux
+ TITLE:=SELinux policy analysis tool
+ URL:=http://selinuxproject.org/page/Main_Page
+ DEPENDS:=+python3-light +python3-logging +python3-setools
+endef
+
+define Package/setools/Default/description
+SETools is a collection of tools and libraries designed to facilitate
+SELinux policy analysis.
+endef
+
+define Package/python3-setools
+ SECTION:=lang
+ CATEGORY:=Languages
+ SUBMENU:=Python
+ TITLE:=SETools Python bindings
URL:=http://selinuxproject.org/page/Main_Page
+ DEPENDS:=+python3-light +python3-logging +python3-pkg-resources +libselinux +libsepol
+endef
+
+define Package/python3-setools/description
+$(call Package/setools/Default/description)
+
+This contains the SETools Python binding.
+endef
+
+Py3Package/python3-setools/install:=:
+
+define Package/setools
+$(call Package/setools/Default)
+ TITLE+= meta-package
+ DEPENDS:= \
+ setools-sechecker \
+ setools-sediff \
+ setools-sedta \
+ setools-seinfo \
+ setools-seinfoflow \
+ setools-sesearch
endef
define Package/setools/description
- SETools is a collection of tools and libraries designed to facilitate
- SELinux policy analysis.
+$(call Package/setools/Default/description)
+
+This is a meta-package that installs all of the SETools tools.
+endef
+
+Package/setools/install:=:
+
+define BuildUtil
+ define Package/setools-$(1)
+ $(call Package/setools/Default)
+ TITLE+= $(1)
+ DEPENDS+= $(2)
+ endef
+
+ define Package/setools-$(1)/description
+$(call Package/setools/Default/description)
+
+This contains the $(1) tool.
+ endef
+
+ define Py3Package/setools-$(1)/install
+ $$(INSTALL_DIR) $$(1)/usr/bin
+ $$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/usr/bin/$(1) $$(1)/usr/bin/
+ endef
+
+ Py3Package/setools-$(1)/filespec:=
+
+ $$(eval $$(call Py3Package,setools-$(1)))
+ $$(eval $$(call BuildPackage,setools-$(1)))
endef
-$(eval $(call Py3Package,setools))
+$(eval $(call Py3Package,python3-setools))
+$(eval $(call BuildPackage,python3-setools))
+$(eval $(call BuildPackage,python3-setools-src))
+
$(eval $(call BuildPackage,setools))
+
+$(eval $(call BuildUtil,sechecker))
+$(eval $(call BuildUtil,sediff))
+$(eval $(call BuildUtil,sedta,+python3-networkx))
+$(eval $(call BuildUtil,seinfo))
+$(eval $(call BuildUtil,seinfoflow,+python3-networkx))
+$(eval $(call BuildUtil,sesearch))
diff --git a/utils/setools/patches/010-no-gui.patch b/utils/setools/patches/010-no-gui.patch
new file mode 100644
index 000000000..54f03c316
--- /dev/null
+++ b/utils/setools/patches/010-no-gui.patch
@@ -0,0 +1,16 @@
+--- a/setup.py
++++ b/setup.py
+@@ -139,10 +139,10 @@ setup(name='setools',
+ author_email='pebenito@ieee.org',
+ url='https://github.com/SELinuxProject/setools',
+ cmdclass={'build_qhc': QtHelpCommand, 'clean': CleanCommand},
+- packages=['setools', 'setools.checker', 'setools.diff', 'setoolsgui', 'setoolsgui.apol'],
+- scripts=['apol', 'sediff', 'seinfo', 'seinfoflow', 'sesearch', 'sedta', 'sechecker'],
++ packages=['setools', 'setools.checker', 'setools.diff'],
++ scripts=['sediff', 'seinfo', 'seinfoflow', 'sesearch', 'sedta', 'sechecker'],
+ data_files=installed_data,
+- package_data={'': ['*.ui', '*.qhc', '*.qch'], 'setools': ['perm_map',
++ package_data={'setools': ['perm_map',
+ 'policyrep.pyi',
+ 'py.typed']},
+ ext_modules=cythonize(ext_py_mods, include_path=['setools/policyrep'],
diff --git a/utils/setools/patches/030-remove-host-paths.patch b/utils/setools/patches/030-remove-host-paths.patch
index 94553004d..bec9be9d6 100644
--- a/utils/setools/patches/030-remove-host-paths.patch
+++ b/utils/setools/patches/030-remove-host-paths.patch
@@ -1,12 +1,11 @@
--- a/setup.py
+++ b/setup.py
-@@ -79,7 +79,8 @@ class QtHelpCommand(Command):
+@@ -79,7 +79,7 @@ class QtHelpCommand(Command):
# Library linkage
-lib_dirs = ['.', '/usr/lib64', '/usr/lib', '/usr/local/lib']
-+owrt_staging_dir = os.environ["STAGING_DIR"]
-+lib_dirs = ['.', owrt_staging_dir + '/usr/lib64', owrt_staging_dir + '/usr/lib', owrt_staging_dir + '/usr/local/lib' ]
++lib_dirs = ['.', os.environ["STAGING_DIR"] + '/usr/lib']
include_dirs = []
with suppress(KeyError):