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
:=acfdee27633d2496508c28727c3d41d3748076f66d42fccde2e6b9f3463a7057
15 HOST_BUILD_DEPENDS
:=libsepol
/host pcre
/host
17 PKG_LICENSE
:=libselinux-1.0
18 PKG_LICENSE_FILES
:=LICENSE
19 PKG_MAINTAINER
:=Thomas Petazzoni
<thomas.petazzoni@bootlin.com
>
20 PKG_CPE_ID
:=cpe
:/a
:selinuxproject
:libselinux
22 HOST_BUILD_DEPENDS
:=libsepol
/host musl-fts
/host pcre
/host
24 include $(INCLUDE_DIR
)/package.mk
25 include $(INCLUDE_DIR
)/host-build.mk
44 selabel_get_digests_all_partial_matches \
46 selabel_lookup_best_match \
47 selabel_partial_match \
48 selinux_check_access \
49 selinux_check_securetty_context \
64 $(eval
$(foreach a
,$(LIBSELINUX_ALTS
),ALTS_
$(a
):=300:/usr
/sbin
/$(a
):/usr
/sbin
/libselinux-
$(a
)$(newline
)))
66 define Package
/libselinux
/Default
67 TITLE
:=Runtime SELinux library
68 URL
:=http
://selinuxproject.org
/page
/Main_Page
71 define Package
/libselinux
72 $(call Package
/libselinux
/Default
)
75 DEPENDS
:=+libsepol
+libpcre
+USE_MUSL
:musl-fts
78 define Package
/libselinux
/description
79 libselinux is the runtime SELinux library that provides
80 interfaces
(e.g. library functions for the SELinux kernel
81 APIs like getcon
(), other support functions like
82 getseuserbyname
()) to SELinux-aware applications. libselinux
83 may use the shared libsepol to manipulate the binary policy
84 if necessary
(e.g. to downgrade the policy format to an
85 older version supported by the kernel
) when loading policy.
90 $(call Package
/libselinux
/Default
)
95 SUBMENU
:=libselinux tools
96 ALTERNATIVES
:=$(ALTS_
$(2))
99 define Package
/$(1)/description
100 libselinux version of the
$(2) utility.
104 $(foreach a
,$(LIBSELINUX_UTILS
),$(eval
$(call GenUtilPkg
,libselinux-
$(a
),$(a
))))
106 # Needed to link libselinux utilities, which link against
107 # libselinux.so, which indirectly depends on libpcre.so, installed in
108 # $(STAGING_DIR_HOSTPKG).
109 HOST_LDFLAGS
+= -Wl
,-rpath
="$(STAGING_DIR_HOSTPKG)/lib"
112 PREFIX
=$(STAGING_DIR_HOSTPKG
) \
113 SHLIBDIR
=$(STAGING_DIR_HOSTPKG
)/lib \
116 ifeq ($(CONFIG_USE_MUSL
),y
)
117 MAKE_FLAGS
+= FTS_LDLIBS
=-lfts
118 TARGET_CFLAGS
+= -D_LARGEFILE64_SOURCE
126 $(call Build
/Compile
/Default
,all)
130 $(call Build
/Install
/Default
,install)
133 define Build
/InstallDev
134 $(INSTALL_DIR
) $(1)/usr
/include
135 $(CP
) $(PKG_INSTALL_DIR
)/usr
/include/* $(1)/usr
/include/
136 $(INSTALL_DIR
) $(1)/usr
/lib
137 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/* $(1)/usr
/lib
/
138 $(INSTALL_DIR
) $(1)/usr
/lib
/pkgconfig
139 $(INSTALL_DATA
) $(PKG_INSTALL_DIR
)/usr
/lib
/pkgconfig
/libselinux.
pc $(1)/usr
/lib
/pkgconfig
/
140 $(SED
) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr
/lib
/pkgconfig
/libselinux.
pc
141 $(SED
) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr
/lib
/pkgconfig
/libselinux.
pc
144 define Package
/libselinux
/install
145 $(INSTALL_DIR
) $(1)/usr
/lib
146 $(CP
) $(PKG_INSTALL_DIR
)/usr
/lib
/libselinux.so.
* $(1)/usr
/lib
/
150 define Package
/$(1)/install
151 $(INSTALL_DIR
) $$(1)/usr
/sbin
152 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/sbin
/$(2) $$(1)/usr
/sbin
/$(if
$(ALTS_
$(2)),libselinux-
$(2),$(2))
155 $$(eval
$$(call BuildPackage
,$(1)))
158 $(eval
$(call HostBuild
))
159 $(eval
$(call BuildPackage
,libselinux
))
160 $(foreach a
,$(LIBSELINUX_UTILS
),$(eval
$(call BuildUtil
,libselinux-
$(a
),$(a
))))