Apache OpenOffice (AOO) Bugzilla – Issue 91613
to-be-DEV300_m25: libxslt and system xml
Last modified: 2017-05-20 11:33:33 UTC
Hi, when build is configured to use internal libxml2, configure in libxslt checks the version of libxml2 in the system: Building module libxslt /home/oo/BuildDir/ooo_DEV300_m25_src/libxslt ------------- mkdir ./unxlngx6.pro/misc/build/libxslt-1.1.24/ mkdir: cannot create directory `./unxlngx6.pro/misc/build/libxslt-1.1.24/': File exists cd ./unxlngx6.pro/misc/build/libxslt-1.1.24/ && ./configure --enable-ipv6=no --without-crypto -- without-python --enable-static=no --with-sax1=yes && touch so_configured_so_libxslt checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr//bin/install -c checking whether build environment is sane... yes ... checking for perl... /usr//bin//perl Disabling crypto support Enabling debugger checking for libxml libraries >= 2.6.27... configure: error: Version 2.6.26 found. You need at least libxml2 2.6.27 for this version of libxslt dmake: Error code 1, while making './unxlngx6.pro/misc/build/so_configured_so_libxslt' ERROR: Error 65280 occurred while making /home/oo/BuildDir/ooo_DEV300_m25_src/libxslt oo@octopus:~/BuildDir/ooo_DEV300_m25_src/libxslt> oo@octopus:~/BuildDir/ooo_DEV300_m25_src/libxslt> find ../solver -name libxml2*so* ../solver/300/unxlngx6.pro/lib/libxml2.so ../solver/300/unxlngx6.pro/lib/libxml2.so.2 ../solver/300/unxlngx6.pro/lib/libxml2.so.2.6.31 oo@octopus:~/BuildDir/ooo_DEV300_m25_src/libxslt>
.
hi pjanik, have no idea why that happens for you; that never happened for me. can you check that you have xml2-config in solver bin directory with execute permissions? also, can you check that the solver bin directory is the first thing in $PATH (as listed in config.log), or at least that it comes before system dirs?
It is not a good idea to depend on the PATH at all! The diff between m24 and to-be-m25 contains: -CONFIGURE_FLAGS=--enable-ipv6=no --without-crypto --without-python --enable-static=no -- with-sax1=yes CFLAGS="$(xslt_CFLAGS)" LIBXML2LIB=$(LIBXML2L IB) ZLIB3RDLIB=$(ZLIB3RDLIB) +CONFIGURE_FLAGS=--enable-ipv6=no --without-crypto --without-python --enable-static=no -- with-sax1=yes We need something similar now.
> The diff between m24 and to-be-m25 contains: ... i guess that is irrelevant, because these variables are read only by the xml2-config script in the solver, and nothing else (and they are now .EXPORTed instead) well, the configure script will pick the first xml2-config that it finds in the PATH, so you have to make sure that that is the one from the solver. that is just inherently how configure works: you cannot really make configure independent of PATH (or, rather, you would be insane to try). of course, i could put the solver bin directory in front of PATH in the makefile; but be aware that no other external module that i have looked at seemed to do that, so you would likely get breakage in some other configure script sometime in the future anyway. (btw, here in hamburg we use special script (setsolar/setcws) to set up build environment, which sets up PATH correctly) so, why do you see the need to put system directories ahead of the solver in PATH? and if PATH is indeed the reason, then i introduced the change already in DEV300m18, where i removed several duplicate xml2-config scripts that were included in all external libraries depending on libxml2, for seemingly no reason other that ooo's general predilection for wanton code duplication. it is just with the libxslt upgrade in m25 that you see breakage, because now the new libxslt depends on a new libxml2 that your system does not have.
> well, the configure script will pick the first xml2-config that it finds in the > PATH, so you have to make sure that that is the one from the solver. Yes and if I have another library, name it libxml3 for which i want configure to find it in /usr/bin, I have to setup PATH for this case as well, right? ;-) No, you can't make it work this way. After long IRC discussions, we agreed on this: <paveljanik> what do you think is the correct solution? ;-) <paveljanik> patching libxslt's makefile.mk to add something like --with-libxml-prefix=.../solver/... to configure? <_rene_> in the internal case, yes
> Yes and if I have another library, name it libxml3 for which i want configure to find it in /usr/bin, I have to setup PATH for this case as well, right? ;-) i am afraid i do not get your point. if you have another library for which you want to use the system one instead of internal, then the internal module containing the library will not be build and will not deliver a script into the solver; thus, dependent modules will find the script on your system. where is the problem?
I think the issue here is in config_office. My PATH is: /usr/lib64/jvm/java-1.5.0- sun/bin:/usr//bin:.:/home/oo/BuildDir/ooo_DEV300_m25_src/solver/300/unxlngx6.pro/bin... Ie. something prepended /usr//bin there...
lowering priority. PATH is extended by set_soenv.in using GetCorrectPath... I'm now workarounding this issue in my build system.
set target 3.x
Reset assigne to the default "issues@openoffice.apache.org".