mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 21:44:27 -04:00 
			
		
		
		
	Update VERSIONs to 3.3 for release. libselinux: Fix potential undefined shifts Update VERSIONs to 3.3-rc3 for release. Update VERSIONs to 3.3-rc2 for release. libselinux/utils: drop requirement to combine compiling and linking Update VERSIONs and Python bindings version to 3.3-rc1 for release Improve error message for label file validation libselinux: replace strerror by %m libselinux: silence -Wextra-semi-stmt warning libselinux/utils/getseuser.c: fix build with gcc 4.8 selinux.8: document how mount flag nosuid affects SELinux libselinux: fix typo libselinux: improve getcon(3) man page libselinux: selinux_status_open: return 1 in fallback mode libselinux: do not use status page fallback mode internally libselinux: make selinux_status_open(3) reentrant libselinux: avc_destroy(3) closes status page libselinux: label_file.c: fix indent libselinux: regex: unify parameter names libselinux: sidtab_sid_stats(): unify parameter name libselinux: drop redundant casts to the same type libselinux: label_db::db_init(): open file with CLOEXEC mode libselinux: matchpathcon: free memory on realloc failure libselinux: label_file::init(): do not pass NULL to strdup libselinux: init_selinux_config(): free resources on error libselinux: matchmediacon(): close file on error libselinux: store_stem(): do not free possible non-heap object libselinux: getdefaultcon: free memory on multiple same arguments libselinux: setexecfilecon(): drop dead assignment libselinux: label_media::init(): drop dead assignment libselinux: label_x::init(): drop dead assignment libselinux: context_new(): drop dead assignment libselinux: exclude_non_seclabel_mounts(): drop unused variable libselinux: getconlist: free memory on multiple level arguments libselinux: selabel_get_digests_all_partial_matches: free memory after FTS_D block libselinux: selinux_restorecon: mark local variable static libselinux: avcstat: use standard length modifier for unsigned long long libselinux: sefcontext_compile: mark local variable static libselinux: Sha1Finalise(): do not discard const qualifier libselinux: label_common(): do not discard const qualifier libselinux: selinux_file_context_cmp(): do not discard const qualifier libselinux: sidtab_hash(): do not discard const qualifier libselinux: silence -Wstringop-overflow warning from gcc 10.3.1 libselinux: selinux_check_passwd_access_internal(): respect deny_unknown libselinux: do not duplicate make target when going into subdirectory Signed-off-by: Dominick Grift <dominick.grift@defensec.nl>
		
			
				
	
	
		
			156 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			156 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| #
 | |
| # 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.3
 | |
| 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:=acfdee27633d2496508c28727c3d41d3748076f66d42fccde2e6b9f3463a7057
 | |
| HOST_BUILD_DEPENDS:=libsepol/host pcre/host
 | |
| 
 | |
| PKG_LICENSE:=libselinux-1.0
 | |
| PKG_LICENSE_FILES:=LICENSE
 | |
| PKG_MAINTAINER:=Thomas Petazzoni <thomas.petazzoni@bootlin.com>
 | |
| 
 | |
| 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 +libpcre +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 libpcre.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
 | |
| 
 | |
| ifeq ($(CONFIG_USE_MUSL),y)
 | |
| MAKE_FLAGS += FTS_LDLIBS=-lfts
 | |
| 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))))
 |