I resolved the openssl issue and now the attempts to build Santuario 2.0.4
results in linker errors finding xerces_3_2 symbols that are reported in
config.log.
I haven't seen any examples of a typical use of configure to build Santuraio
2.0.4 on the official website. I read the information about the depencencies
and the FAQs page, and I'm sharing some information about how I am running the
configure script. Is this the correct use of the script at least one reasonable
way? There are likely more ways than one to accomplish this. I downloaded and
built all three of these products from source. Xalan 1.12.0 was built with
that same XERCESCROOT.
export XERCESCROOT=/data/${USER}/repos/tp/xerces-c-3.2.4-install/release
export XALANCROOT=/data/${USER}/repos/tp/xalan_c-1.12-gxp-install/release
export OPENSSLROOT=/data/${USER}/repos/tp/openssl-102u-install/release
export SANTUARIO_INSTALL=/data/${USER}/repos/tp/santuario-2.0.4-install/release
export
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$XERCESCROOT/lib/pkgconfig:$XALANCROOT/lib/pkgconfig:$OPENSSLROOT/lib/pkgconfig
./configure \
--prefix=$SANTUARIO_INSTALL \
--with-xalan \
--with-openssl \
CFLAGS=-m64 CPPFLAGS='-m64 -g' 2>&1 | tee release_configure.txt
Here is sample of what I see in the config.log file. Notice that it warns me
about not finding libxerces-c-3.2.so and there is no -L options specifying the
path to it so of course there are undefined reference errors. I did not see
these types of errors in the past when building Santuraio 1.7.3. I've
specified package locations but it looks like a problem in how these config
tests are being done. If I try a gmake on the result it will fail with similar
undefined reference errors so I think this is a problem, but I am not clear how
to fix it. As far as I can tell I am specifying where all of the packages are
to be found. Am I misunderstanding the use of the script?
g++ -o conftest
-I/data/shawn.fox/repos/tp/xalan-1.11.0-gxp-4-install/release/src
-I/data/shawn.fox/repos/tp/xalan-1.11.0-gxp-4-install/release/include
-I/data/shawn.fox/repos/tp/xalan-1.11.0-gxp-4-install/release/nls/include -g
-O2 -m64 -g conftest.cpp -lxalanMsg
-L/data/shawn.fox/repos/tp/xalan-1.11.0-gxp-4-install/release/lib -lxalan-c >&5
/opt/rh/gcc-toolset-12/root/usr/libexec/gcc/x86_64-redhat-linux/12/ld: warning:
libxerces-c-3.2.so, needed by
/data/shawn.fox/repos/tp/xalan-1.11.0-gxp-4-install/release/lib/libxalan-c.so,
not found (try using -rpath or -rpath-link)
/opt/rh/gcc-toolset-12/root/usr/libexec/gcc/x86_64-redhat-linux/12/ld:
/data/shawn.fox/repos/tp/xalan-1.11.0-gxp-4-install/release/lib/libxalan-c.so:
undefined reference to `xercesc_3_2::DTDEntityDecl::isSerializable() const'
If any help results in my ability to get this building correctly, I'd be happy
to provide my notes for the website if it will help anyone else in the future
build this version. Does anyone have a copy of an old config.log output to
share that would show me what the output looks like after a successful
configure?
Thanks,
Shawn Fox
-----Original Message-----
From: Fox, Shawn D (US) <[email protected]>
Sent: Wednesday, November 1, 2023 8:54 AM
To: [email protected]
Subject: RE: Apache Santuario config states that libcrypto is not found
External Email Alert
This email has been sent from an account outside of the BAE Systems network.
Please treat the email with caution, especially if you are requested to click
on a link, decrypt/open an attachment, or enable macros. For further
information on how to spot phishing, access “Cybersecurity OneSpace Page” and
report phishing by clicking the button “Report Phishing” on the Outlook toolbar.
Thanks, that was helpful. It turns out that it had nothing to do with openssl.
The error in the log had to do with xalan-c not being found. I had forgotten
that when I build xalan-c that it is creating libraries in a lib64 directory
now instead of just lib. This is the first time I have used cmake to build
xalan-c and the output directories generated are slightly different than they
had been in the past. The error message printed to the console indicated that
it couldn't find libcrypto. It was trying to do a link command to find
libcrypto using a build command that would also attempt to link against all of
the dependencies so the error in the configuration log didn't match what was
printed to the console.
Thanks,
Shawn Fox
-----Original Message-----
From: Cantor, Scott <[email protected]>
Sent: Wednesday, November 1, 2023 8:47 AM
To: [email protected]
Subject: Re: Apache Santuario config states that libcrypto is not found
External Email Alert
This email has been sent from an account outside of the BAE Systems network.
Please treat the email with caution, especially if you are requested to click
on a link, decrypt/open an attachment, or enable macros. For further
information on how to spot phishing, access “Cybersecurity OneSpace Page” and
report phishing by clicking the button “Report Phishing” on the Outlook toolbar.
> I'm confused by the purpose of specifying the location of the openssl
> that I have built if the dependency mechanism is searching for
> libcrypt somewhere else.
Because it found a pkgconfig from OpenSSL somewhere else and it told it
something you don't want to use.
That's the point of the mechanism, pkgconfig takes care of all the flags and
filenames, as long as the build knows which pkgconfig file to use.
-- Scott