libxerces-c: fix CI build/test failures for apk + samples
authorAlexandru Ardelean <redacted>
Fri, 22 May 2026 04:41:30 +0000 (07:41 +0300)
committerAlexandru Ardelean <redacted>
Sun, 24 May 2026 12:57:48 +0000 (15:57 +0300)
Two unrelated issues both fixed here so the package + its samples
sub-package land in CI green:

1. PKG_CPE_ID escaping.
   apk's ADB binary package format rejects both the backslash-escape
   and the percent-encoding variants of the previous CPE id:

     cpe:/a:apache:xerces-c\+\+     ERROR: info field 'tags' has invalid value
     cpe:/a:apache:xerces-c%2B%2B   ERROR: info field 'tags' has invalid value

   apk's tag value parser only accepts a restricted alphabet for ADB
   package format and neither '\' nor '%' make the cut. With xerces-c
   unable to build, downstream consumers (notably sumo) also fail at
   cmake configure time with "Failed to find XercesC".

   Drop the '++' suffix entirely and use cpe:/a:apache:xerces-c, which
   matches the higher-level Apache Xerces-C CPE entry. cve scanners
   that walked the more specific xerces-c++ entry will fall back to
   this one.

2. Generic version-check override for libxerces-c-samples.
   The samples sub-package ships upstream demo programs
   (CreateDOMDocument, DOMCount, DOMPrint, SAX2Count, ...) which do
   not accept --version / -v / -V and therefore fail the framework's
   "executable prints PKG_VERSION" probe, making the package overall
   report "Generic tests failed". Add a minimal test-version.sh that
   exits 0 so the version-probe is skipped and the remaining generic
   checks (executable, no hardcoded paths, stripped, linked libs)
   still run for every binary.

Signed-off-by: Alexandru Ardelean <redacted>
libs/libxerces-c/Makefile
libs/libxerces-c/test-version.sh [new file with mode: 0755]

index ed7026d76c28c7f4eef443eae23b8bfd3e0a1b22..c545520962e652262fb9c27ae758f1d58a14f336 100644 (file)
@@ -18,7 +18,7 @@ PKG_HASH:=6239e6035645b21bc9bf7f02004db334dce3fe6d85428ee4fe7e180c2d948230
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE
-PKG_CPE_ID:=cpe:/a:apache:xerces-c\+\+
+PKG_CPE_ID:=cpe:/a:apache:xerces-c
 
 include $(INCLUDE_DIR)/nls.mk
 include $(INCLUDE_DIR)/package.mk
diff --git a/libs/libxerces-c/test-version.sh b/libs/libxerces-c/test-version.sh
new file mode 100755 (executable)
index 0000000..99f562b
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+pkg=$1
+ver=$2
+
+case "$pkg" in
+libxerces-c)
+       exit 0
+       ;;
+libxerces-c-samples)
+       exit 0
+       ;;
+*)
+       echo "test-version.sh: unhandled sub-package '$pkg'" >&2
+       exit 1
+       ;;
+esac
git clone https://git.99rst.org/PROJECT