Xml-security-c fails to link against xerces-c

i686

#1

When compiling AUR/xml-security-c then extra/xerces-c still looks for core/icu 59. When checked into archlinux repo, then xerces-c there got icu 60 rebuild recently (https://git.archlinux.org/svntogit/packages.git/log/?h=packages/xerces-c). I dont know how to check it for manjaro32. Can you please confirm if we have same rebuilt version in manjaro32 repo ?

If I remember right, then libreoffice-still had the same icu problem recently.

Thanks !

config.log:

configure:17242: g++ -o conftest -Wall -march=i686 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt -O2 -DNDEBUG -pthread -D_FORTIFY_SOURCE=2 -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now conftest.cpp -lxerces-c -lm   >&5
/usr/bin/ld: warning: libicui18n.so.59, needed by /usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libicuuc.so.59, needed by /usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libicudata.so.59, needed by /usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so, not found (try using -rpath or -rpath-link)
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `UCNV_FROM_U_CALLBACK_STOP_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `uset_getSerializedRangeCount_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `u_toupper_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `UCNV_FROM_U_CALLBACK_SUBSTITUTE_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `ucnv_setFromUCallBack_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `ucnv_fromUnicode_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `uset_close_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `uset_setSerializedToOne_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `uset_openPatternOptions_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `ucnv_fromUChars_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `uset_getSerializedRange_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `ucnv_toUnicode_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `u_tolower_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `ucnv_open_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `uset_serialize_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `ucnv_openU_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `ucnv_close_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `ucnv_getMaxCharSize_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `u_charType_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `ucnv_toUChars_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `u_foldCase_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `uset_getSerializedSet_59'
/usr/lib/gcc/i686-pc-linux-gnu/7.2.1/../../../libxerces-c.so: undefined reference to `ucnv_getMinCharSize_59'
collect2: error: ld returned 1 exit status
configure:17242: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "XML-Security-C"
| #define PACKAGE_TARNAME "xml-security-c"
| #define PACKAGE_VERSION "1.7.3"
| #define PACKAGE_STRING "XML-Security-C 1.7.3"
| #define PACKAGE_BUGREPORT "dev@santuario.apache.org"
| #define PACKAGE_URL ""
| #define PACKAGE "xml-security-c"
| #define VERSION "1.7.3"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define HAVE_PTHREAD_PRIO_INHERIT 1
| #define HAVE_PTHREAD 1
| #define HAVE_LIBM 1
| #define HAVE_UNISTD_H 1
| #define XSEC_HAVE_STRCASECMP 1
| #define XSEC_HAVE_GETCWD_DYN 1
| /* end confdefs.h.  */
| #include <xercesc/util/PlatformUtils.hpp>
| int
| main ()
| {
| xercesc::XMLPlatformUtils::Initialize()
|   ;
|   return 0;
| }
configure:17245: error: unable to link with Xerces

[manjaro32] Out-of-date Manjaro package report
#2
$ pacman -Ss xerces-c
extra/xerces-c 3.2.0-2
    A validating XML parser written in a portable subset of C++

Appears to be the same version as Arch. What version do you have installed?


#3

Forgot to mention, xerces-c version is 3.2.0-2. The question is, against which icu version that xerces-c 3.2.0-2 was built ? Config.log shows that against icu 59. From info queries below it can be seen that xerces-c 3.2.0-2 was built before icu 60.1-1. I think despite version release indicated, we have xerces-c 3.2.0-1 in repo.

Also please refer last comment of https://aur.archlinux.org/packages/xml-security-c/.

# pacman -Qi xerces-c
Name            : xerces-c
Version         : 3.2.0-2
Description     : A validating XML parser written in a portable subset of C++
Architecture    : i686
URL             : http://xerces.apache.org/xerces-c/
Licenses        : APACHE
Groups          : None
Provides        : None
Depends On      : gcc-libs  curl
Optional Deps   : None
Required By     : xalan-c  xml-security-c  xsd
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 8,20 MiB
Packager        : Erich Eckner <arch32 at eckner dot net>
Build Date      : L 18 nov 2017 12:22:54 EET
Install Date    : L 02 dets 2017 02:31:40 EET
Install Reason  : Installed as a dependency for another package
Install Script  : No
Validated By    : Signature

# pacman -Qi icu 
Name            : icu
Version         : 60.1-1
Description     : International Components for Unicode library
Architecture    : i686
URL             : http://www.icu-project.org/
Licenses        : custom:icu
Groups          : None
Provides        : None
Depends On      : gcc-libs  sh
Optional Deps   : None
Required By     : boost-libs  epiphany  harfbuzz-icu  kdelibs  libcdr  libfbclient  libical  libmspub  libvisio  libxml2  manjaro-settings-manager  qt5-base  raptor  texlive-bin
Optional For    : qt4
Conflicts With  : None
Replaces        : None
Installed Size  : 35,04 MiB
Packager        : Erich Eckner <arch32 at eckner dot net>
Build Date      : L 18 nov 2017 15:12:41 EET
Install Date    : L 16 dets 2017 16:24:39 EET
Install Reason  : Installed as a dependency for another package
Install Script  : No
Validated By    : None

#4

Ah, looks like the archlinux32 devs built xerces-c too early.

Let me rebuild it.

Edit: uploaded to x32-unstable. You can get it early via:

sudo pacman -U https://mirror.netzspielplatz.de/manjaro/packages/x32-unstable/extra/i686/xerces-c-3.2.0-2.0-x86_64.pkg.tar.xz

#5

Did you meant https://mirror.netzspielplatz.de/manjaro/packages/x32-unstable/extra/i686/xerces-c-3.2.0-2.0-i686.pkg.tar.xz ?

That compiled fine. Thanks !