123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- #
- # This is free software, licensed under the GNU General Public License v2.
- # See /LICENSE for more information.
- #
- include $(TOPDIR)/rules.mk
- PKG_NAME:=libselinux
- 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:=9a3a3705ac13a2ccca2de6d652b6356fead10f36fb33115c185c5ccdf29eec19
- PKG_LICENSE:=libselinux-1.0
- PKG_LICENSE_FILES:=LICENSE
- PKG_MAINTAINER:=Thomas Petazzoni <thomas.petazzoni@bootlin.com>
- PKG_CPE_ID:=cpe:/a:selinuxproject:libselinux
- PKG_BUILD_FLAGS:=no-lto
- HOST_BUILD_DEPENDS:=libsepol/host musl-fts/host pcre2/host
- include $(INCLUDE_DIR)/package.mk
- include $(INCLUDE_DIR)/host-build.mk
- LIBSELINUX_UTILS := \
- avcstat \
- compute_av \
- compute_create \
- compute_member \
- compute_relabel \
- getconlist \
- getdefaultcon \
- getenforce \
- getfilecon \
- getpidcon \
- getsebool \
- getseuser \
- matchpathcon \
- policyvers \
- sefcontext_compile \
- selabel_digest \
- selabel_get_digests_all_partial_matches \
- selabel_lookup \
- selabel_lookup_best_match \
- selabel_partial_match \
- selinux_check_access \
- selinux_check_securetty_context \
- selinuxenabled \
- selinuxexeccon \
- setenforce \
- setfilecon \
- togglesebool \
- validatetrans
- LIBSELINUX_ALTS := \
- getenforce \
- getsebool \
- matchpathcon \
- selinuxenabled \
- setenforce
- $(eval $(foreach a,$(LIBSELINUX_ALTS),ALTS_$(a):=300:/usr/sbin/$(a):/usr/sbin/libselinux-$(a)$(newline)))
- define Package/libselinux/Default
- TITLE:=Runtime SELinux library
- URL:=http://selinuxproject.org/page/Main_Page
- endef
- define Package/libselinux
- $(call Package/libselinux/Default)
- SECTION:=libs
- CATEGORY:=Libraries
- DEPENDS:=+libsepol +libpcre2 +USE_MUSL:musl-fts
- endef
- define Package/libselinux/description
- libselinux is the runtime SELinux library that provides
- interfaces (e.g. library functions for the SELinux kernel
- APIs like getcon(), other support functions like
- getseuserbyname()) to SELinux-aware applications. libselinux
- may use the shared libsepol to manipulate the binary policy
- if necessary (e.g. to downgrade the policy format to an
- older version supported by the kernel) when loading policy.
- endef
- define GenUtilPkg
- define Package/$(1)
- $(call Package/libselinux/Default)
- TITLE+= $(2) utility
- SECTION:=utils
- DEPENDS:=+libselinux
- CATEGORY:=Utilities
- SUBMENU:=libselinux tools
- ALTERNATIVES:=$(ALTS_$(2))
- endef
- define Package/$(1)/description
- libselinux version of the $(2) utility.
- endef
- endef
- $(foreach a,$(LIBSELINUX_UTILS),$(eval $(call GenUtilPkg,libselinux-$(a),$(a))))
- # Needed to link libselinux utilities, which link against
- # libselinux.so, which indirectly depends on libpcre2.so, installed in
- # $(STAGING_DIR_HOSTPKG).
- HOST_LDFLAGS += -Wl,-rpath="$(STAGING_DIR_HOSTPKG)/lib"
- HOST_MAKE_FLAGS += \
- PREFIX=$(STAGING_DIR_HOSTPKG) \
- SHLIBDIR=$(STAGING_DIR_HOSTPKG)/lib \
- FTS_LDLIBS=-lfts
- ifeq ($(CONFIG_USE_MUSL),y)
- MAKE_FLAGS += FTS_LDLIBS=-lfts
- TARGET_CFLAGS += -D_LARGEFILE64_SOURCE
- endif
- MAKE_FLAGS += \
- SHLIBDIR=/usr/lib \
- OS=Linux
- define Build/Compile
- $(call Build/Compile/Default,all)
- endef
- define Build/Install
- $(call Build/Install/Default,install)
- endef
- define Build/InstallDev
- $(INSTALL_DIR) $(1)/usr/include
- $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
- $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
- $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libselinux.pc $(1)/usr/lib/pkgconfig/
- $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/libselinux.pc
- $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/libselinux.pc
- endef
- define Package/libselinux/install
- $(INSTALL_DIR) $(1)/usr/lib
- $(CP) $(PKG_INSTALL_DIR)/usr/lib/libselinux.so.* $(1)/usr/lib/
- endef
- define BuildUtil
- define Package/$(1)/install
- $(INSTALL_DIR) $$(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/$(2) $$(1)/usr/sbin/$(if $(ALTS_$(2)),libselinux-$(2),$(2))
- endef
- $$(eval $$(call BuildPackage,$(1)))
- endef
- $(eval $(call HostBuild))
- $(eval $(call BuildPackage,libselinux))
- $(foreach a,$(LIBSELINUX_UTILS),$(eval $(call BuildUtil,libselinux-$(a),$(a))))
|