| 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 <[email protected]>
 
- 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))))
 
 
  |