[PATCH 1/6] libsepol: update to version 3.8.1

Daniel Golle daniel at makrotopia.org
Fri Mar 28 09:17:14 PDT 2025


Hi Dominick,

On Fri, Mar 28, 2025 at 03:28:06PM +0100, Dominick Grift wrote:
> ...
> diff --git a/package/libs/libsepol/Makefile b/package/libs/libsepol/Makefile
> index b1a34d293e..e9072d01ea 100644
> --- a/package/libs/libsepol/Makefile
> +++ b/package/libs/libsepol/Makefile
> @@ -6,12 +6,12 @@
>  include $(TOPDIR)/rules.mk
>  
>  PKG_NAME:=libsepol
> -PKG_VERSION:=3.5
> +PKG_VERSION:=3.8.1
>  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:=78fdaf69924db780bac78546e43d9c44074bad798c2c415d0b9bb96d065ee8a2
> +PKG_HASH:=0e78705305f955abd4c0654d37a5477ee26349ab74db9e2b03a7868897ae1ddf

somehow this fails to build for me on Arch Linux (gcc (GCC) 14.2.1 20250207)

make[2]: Entering directory '/usr/src/openwrt/package/libs/libsepol'
. /usr/src/openwrt/include/shell.sh; /usr/src/openwrt/staging_dir/host/bin/libdeflate-gzip -dc /usr/src/openwrt/dl/libsepol-3.8.1.tar.gz | tar -C /usr/src/openwrt/build_dir/hostpkg/libsepol-3.8.1/.. -xf -
[ ! -d ./src/ ] || cp -fpR ./src/* /usr/src/openwrt/build_dir/hostpkg/libsepol-3.8.1
touch /usr/src/openwrt/build_dir/hostpkg/libsepol-3.8.1/.prepared373c40fbd50048c5dd856777f1d054e4_6664517399ebbbc92a37c5bb081b5c53
(cd /usr/src/openwrt/build_dir/hostpkg/libsepol-3.8.1/; if [ -x configure ]; then cp -fpR /usr/src/openwrt/scripts/config.{guess,sub} /usr/src/openwrt/build_dir/hostpkg/libsepol-3.8.1// && CC="ccache /usr/src/openwrt/staging_dir/host/bin/gcc" CFLAGS="-O2 -I/usr/src/openwrt/staging_dir/host/include -I/usr/src/openwrt/staging_dir/hostpkg/include -I/usr/src/openwrt/staging_dir/target-aarch64_cortex-a53_musl/host/include" CXX="ccache /usr/src/openwrt/staging_dir/host/bin/g++" CPPFLAGS="-I/usr/src/openwrt/staging_dir/host/include -I/usr/src/openwrt/staging_dir/hostpkg/include -I/usr/src/openwrt/staging_dir/target-aarch64_cortex-a53_musl/host/include" CXXFLAGS="-O2 -I/usr/src/openwrt/staging_dir/host/include -I/usr/src/openwrt/staging_dir/hostpkg/include -I/usr/src/openwrt/staging_dir/target-aarch64_cortex-a53_musl/host/include" LDFLAGS="-L/usr/src/openwrt/staging_dir/host/lib -L/usr/src/openwrt/staging_dir/hostpkg/lib -L/usr/src/openwrt/staging_dir/target-aarch64_cortex-a53_musl/host/lib" CONFIG_SHELL="/usr/bin/env bash"  bash ./configure --target=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-dependency-tracking --program-prefix="" --program-suffix="" --prefix=/usr/src/openwrt/staging_dir/hostpkg --exec-prefix=/usr/src/openwrt/staging_dir/hostpkg --sysconfdir=/usr/src/openwrt/staging_dir/hostpkg/etc --localstatedir=/usr/src/openwrt/staging_dir/hostpkg/var --sbindir=/usr/src/openwrt/staging_dir/hostpkg/bin ; fi )
touch /usr/src/openwrt/build_dir/hostpkg/libsepol-3.8.1/.configured
CFLAGS="-O2 -I/usr/src/openwrt/staging_dir/host/include -I/usr/src/openwrt/staging_dir/hostpkg/include -I/usr/src/openwrt/staging_dir/target-aarch64_cortex-a53_musl/host/include" CPPFLAGS="-I/usr/src/openwrt/staging_dir/host/include -I/usr/src/openwrt/staging_dir/hostpkg/include -I/usr/src/openwrt/staging_dir/target-aarch64_cortex-a53_musl/host/include" CXXFLAGS="-O2 -I/usr/src/openwrt/staging_dir/host/include -I/usr/src/openwrt/staging_dir/hostpkg/include -I/usr/src/openwrt/staging_dir/target-aarch64_cortex-a53_musl/host/include" LDFLAGS="-L/usr/src/openwrt/staging_dir/host/lib -L/usr/src/openwrt/staging_dir/hostpkg/lib -L/usr/src/openwrt/staging_dir/target-aarch64_cortex-a53_musl/host/lib" make -j1 -C /usr/src/openwrt/build_dir/hostpkg/libsepol-3.8.1/. PREFIX=/usr/src/openwrt/staging_dir/hostpkg SHLIBDIR=/usr/src/openwrt/staging_dir/hostpkg/lib 
make[3]: Entering directory '/usr/src/openwrt/build_dir/hostpkg/libsepol-3.8.1'
make -C src 
make[4]: Entering directory '/usr/src/openwrt/build_dir/hostpkg/libsepol-3.8.1/src'
cc -I/usr/src/openwrt/staging_dir/host/include -I/usr/src/openwrt/staging_dir/hostpkg/include -I/usr/src/openwrt/staging_dir/target-aarch64_cortex-a53_musl/host/include -O2 -I/usr/src/openwrt/staging_dir/host/include -I/usr/src/openwrt/staging_dir/hostpkg/include -I/usr/src/openwrt/staging_dir/target-aarch64_cortex-a53_musl/host/include -I. -I../include -D_GNU_SOURCE -I../cil/include -DHAVE_REALLOCARRAY -fPIC -c -o assertion.o assertion.c
In file included from assertion.c:23:
/usr/src/openwrt/staging_dir/hostpkg/include/sepol/policydb/conditional.h:57:18: error: two or more data types in declaration specifiers
   57 |         uint32_t bool;
      |                  ^~~~
In file included from /usr/src/openwrt/staging_dir/hostpkg/include/sepol/policydb/expand.h:30,
                 from assertion.c:26:
/usr/src/openwrt/staging_dir/hostpkg/include/sepol/policydb/conditional.h:57:22: warning: declaration does not declare anything
   57 |         uint32_t bool;
      |                      ^
assertion.c: In function 'report_failure':
assertion.c:48:44: warning: passing argument 1 of 'sepol_av_to_string' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
   48 |         char *permstr = sepol_av_to_string(p, curperm->tclass, perms);
      |                                            ^
In file included from assertion.c:27:
/usr/src/openwrt/staging_dir/hostpkg/include/sepol/policydb/util.h:34:46: note: expected 'policydb_t *' {aka 'struct policydb *'} but argument is of type 'const policydb_t *' {aka 'const struct policydb *'}
   34 | extern char *sepol_av_to_string(policydb_t * policydbp, uint32_t tclass,
      |                                 ~~~~~~~~~~~~~^~~~~~~~~
assertion.c: In function 'check_extended_permissions':
assertion.c:110:46: error: 'AVRULE_XPERMS_NLMSG' undeclared (first use in this function); did you mean 'AVRULE_XPERMS_ALLOWED'?
  110 |         } else if ((neverallow->specified == AVRULE_XPERMS_NLMSG)
      |                                              ^~~~~~~~~~~~~~~~~~~
      |                                              AVRULE_XPERMS_ALLOWED
assertion.c:110:46: note: each undeclared identifier is reported only once for each function it appears in
assertion.c:111:49: error: 'AVTAB_XPERMS_NLMSG' undeclared (first use in this function); did you mean 'AVTAB_XPERMS_ALLOWED'?
  111 |                         && (allow->specified == AVTAB_XPERMS_NLMSG)) {
      |                                                 ^~~~~~~~~~~~~~~~~~
      |                                                 AVTAB_XPERMS_ALLOWED
assertion.c: In function 'extended_permissions_violated':
assertion.c:146:46: error: 'AVRULE_XPERMS_NLMSG' undeclared (first use in this function); did you mean 'AVRULE_XPERMS_ALLOWED'?
  146 |         } else if ((neverallow->specified == AVRULE_XPERMS_NLMSG)
      |                                              ^~~~~~~~~~~~~~~~~~~
      |                                              AVRULE_XPERMS_ALLOWED
assertion.c:147:49: error: 'AVTAB_XPERMS_NLMSG' undeclared (first use in this function); did you mean 'AVTAB_XPERMS_ALLOWED'?
  147 |                         && (allow->specified == AVTAB_XPERMS_NLMSG)) {
      |                                                 ^~~~~~~~~~~~~~~~~~
      |                                                 AVTAB_XPERMS_ALLOWED
assertion.c: In function 'report_assertion_extended_permissions':
assertion.c:193:74: error: 'AVTAB_XPERMS_NLMSG' undeclared (first use in this function); did you mean 'AVTAB_XPERMS_ALLOWED'?
  193 |                                                 && (xperms->specified != AVTAB_XPERMS_NLMSG))
      |                                                                          ^~~~~~~~~~~~~~~~~~
      |                                                                          AVTAB_XPERMS_ALLOWED
assertion.c: In function 'report_assertion_avtab_matches':
assertion.c:344:57: error: 'RULE_NOTSELF' undeclared (first use in this function); did you mean 'RULE_SELF'?
  344 |         const bool is_narule_notself = (narule->flags & RULE_NOTSELF) != 0;
      |                                                         ^~~~~~~~~~~~
      |                                                         RULE_SELF
assertion.c: In function 'check_assertion_extended_permissions_avtab':
assertion.c:487:74: error: 'AVTAB_XPERMS_NLMSG' undeclared (first use in this function); did you mean 'AVTAB_XPERMS_ALLOWED'?
  487 |                                                 && (xperms->specified != AVTAB_XPERMS_NLMSG))
      |                                                                          ^~~~~~~~~~~~~~~~~~
      |                                                                          AVTAB_XPERMS_ALLOWED
assertion.c: In function 'check_assertion_extended_permissions':
assertion.c:587:57: error: 'RULE_NOTSELF' undeclared (first use in this function); did you mean 'RULE_SELF'?
  587 |         const bool is_narule_notself = (narule->flags & RULE_NOTSELF) != 0;
      |                                                         ^~~~~~~~~~~~
      |                                                         RULE_SELF
assertion.c: In function 'check_assertion_avtab_match':
assertion.c:757:29: error: 'RULE_NOTSELF' undeclared (first use in this function); did you mean 'RULE_SELF'?
  757 |         if (narule->flags & RULE_NOTSELF) {
      |                             ^~~~~~~~~~~~
      |                             RULE_SELF
assertion.c: At top level:
assertion.c:794:5: error: conflicting types for 'check_assertion'; have 'int(policydb_t *, const avrule_t *)' {aka 'int(struct policydb *, const struct avrule *)'}
  794 | int check_assertion(policydb_t *p, const avrule_t *narule)
      |     ^~~~~~~~~~~~~~~
In file included from assertion.c:25:
/usr/src/openwrt/staging_dir/hostpkg/include/sepol/policydb/policydb.h:699:12: note: previous declaration of 'check_assertion' with type 'int(policydb_t *, avrule_t *)' {aka 'int(struct policydb *, struct avrule *)'}
  699 | extern int check_assertion(policydb_t *p, avrule_t *avrule);
      |            ^~~~~~~~~~~~~~~
assertion.c:815:5: error: conflicting types for 'check_assertions'; have 'int(sepol_handle_t *, policydb_t *, const avrule_t *)' {aka 'int(struct sepol_handle *, struct policydb *, const struct avrule *)'}
  815 | int check_assertions(sepol_handle_t * handle, policydb_t * p,
      |     ^~~~~~~~~~~~~~~~
/usr/src/openwrt/staging_dir/hostpkg/include/sepol/policydb/policydb.h:700:12: note: previous declaration of 'check_assertions' with type 'int(sepol_handle_t *, policydb_t *, avrule_t *)' {aka 'int(struct sepol_handle *, struct policydb *, struct avrule *)'}
  700 | extern int check_assertions(sepol_handle_t * handle,
      |            ^~~~~~~~~~~~~~~~
make[4]: *** [Makefile:82: assertion.o] Error 1
make[4]: Leaving directory '/usr/src/openwrt/build_dir/hostpkg/libsepol-3.8.1/src'
make[3]: *** [Makefile:6: all] Error 2
make[3]: Leaving directory '/usr/src/openwrt/build_dir/hostpkg/libsepol-3.8.1'
make[2]: *** [Makefile:86: /usr/src/openwrt/build_dir/hostpkg/libsepol-3.8.1/.built] Error 2
make[2]: Leaving directory '/usr/src/openwrt/package/libs/libsepol'
time: package/libs/libsepol/host-compile#0.28#0.14#0.40
    ERROR: package/libs/libsepol [host] failed to build.




More information about the openwrt-devel mailing list