2 # This is free software, licensed under the GNU General Public License v2.
3 # See /LICENSE for more information.
6 include $(TOPDIR
)/rules.mk
12 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.gz
13 PKG_SOURCE_URL
:=https
://github.com
/SELinuxProject
/selinux
/releases
/download
/$(PKG_VERSION
)
14 PKG_HASH
:=9a3a3705ac13a2ccca2de6d652b6356fead10f36fb33115c185c5ccdf29eec19
16 PKG_LICENSE
:=libselinux-1.0
17 PKG_LICENSE_FILES
:=LICENSE
18 PKG_MAINTAINER
:=Thomas Petazzoni
<thomas.petazzoni@bootlin.com
>
19 PKG_CPE_ID
:=cpe
:/a
:selinuxproject
:libselinux
21 PKG_BUILD_FLAGS
:=no-lto
23 HOST_BUILD_DEPENDS
:=libsepol
/host musl-fts
/host pcre2
/host
25 include $(INCLUDE_DIR
)/package.mk
26 include $(INCLUDE_DIR
)/host-build.mk
45 selabel_get_digests_all_partial_matches \
47 selabel_lookup_best_match \
48 selabel_partial_match \
49 selinux_check_access \
50 selinux_check_securetty_context \
65 $(eval
$(foreach a
,$(LIBSELINUX_ALTS
),ALTS_
$(a
):=300:/usr
/sbin
/$(a
):/usr
/sbin
/libselinux-
$(a
)$(newline
)))
67 define Package
/libselinux
/Default
68 TITLE
:=Runtime SELinux library
69 URL
:=http
://selinuxproject.org
/page
/Main_Page
72 define Package
/libselinux
73 $(call Package
/libselinux
/Default
)
76 DEPENDS
:=+libsepol
+libpcre2
+USE_MUSL
:musl-fts
79 define Package
/libselinux
/description
80 libselinux is the runtime SELinux library that provides
81 interfaces
(e.g. library functions for the SELinux kernel
82 APIs like getcon
(), other support functions like
83 getseuserbyname
()) to SELinux-aware applications. libselinux
84 may use the shared libsepol to manipulate the binary policy
85 if necessary
(e.g. to downgrade the policy format to an
86 older version supported by the kernel
) when loading policy.
91 $(call Package
/libselinux
/Default
)
96 SUBMENU
:=libselinux tools
97 ALTERNATIVES
:=$(ALTS_
$(2))
100 define Package
/$(1)/description
101 libselinux version of the
$(2) utility.
105 $(foreach a
,$(LIBSELINUX_UTILS
),$(eval
$(call GenUtilPkg
,libselinux-
$(a
),$(a
))))
107 # Needed to link libselinux utilities, which link against
108 # libselinux.so, which indirectly depends on libpcre2.so, installed in
109 # $(STAGING_DIR_HOSTPKG).
110 HOST_LDFLAGS
+= -Wl
,-rpath
="$(STAGING_DIR_HOSTPKG)/lib"
113 PREFIX
=$(STAGING_DIR_HOSTPKG
) \
114 SHLIBDIR
=$(STAGING_DIR_HOSTPKG
)/lib \
117 ifeq ($(CONFIG_USE_MUSL
),y
)
118 MAKE_FLAGS
+= FTS_LDLIBS
=-lfts
119 TARGET_CFLAGS
+= -D_LARGEFILE64_SOURCE
127 $(call Build
/Compile
/Default
,all)
131 $(call Build
/Install
/Default
,install)
134 define Build
/InstallDev
135 $(INSTALL_DIR
) $(1)/usr
/include
136 $(CP
) $(PKG_INSTALL_DIR
)/usr
/include/* $(1)/usr
/include/
137 $(INSTALL_DIR
) $(1)/usr
/lib
138 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/* $(1)/usr
/lib
/
139 $(INSTALL_DIR
) $(1)/usr
/lib
/pkgconfig
140 $(INSTALL_DATA
) $(PKG_INSTALL_DIR
)/usr
/lib
/pkgconfig
/libselinux.
pc $(1)/usr
/lib
/pkgconfig
/
141 $(SED
) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr
/lib
/pkgconfig
/libselinux.
pc
142 $(SED
) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr
/lib
/pkgconfig
/libselinux.
pc
145 define Package
/libselinux
/install
146 $(INSTALL_DIR
) $(1)/usr
/lib
147 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/libselinux.so.
* $(1)/usr
/lib
/
151 define Package
/$(1)/install
152 $(INSTALL_DIR
) $$(1)/usr
/sbin
153 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/sbin
/$(2) $$(1)/usr
/sbin
/$(if
$(ALTS_
$(2)),libselinux-
$(2),$(2))
156 $$(eval
$$(call BuildPackage
,$(1)))
159 $(eval
$(call HostBuild
))
160 $(eval
$(call BuildPackage
,libselinux
))
161 $(foreach a
,$(LIBSELINUX_UTILS
),$(eval
$(call BuildUtil
,libselinux-
$(a
),$(a
))))