Issue 91613 - to-be-DEV300_m25: libxslt and system xml
Summary: to-be-DEV300_m25: libxslt and system xml
Status: CONFIRMED
Alias: None
Product: porting
Classification: Code
Component: code (show other issues)
Version: DEV300m22
Hardware: All All
: P3 Trivial (vote)
Target Milestone: 4.x
Assignee: AOO issues mailing list
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-07-13 17:30 UTC by pavel
Modified: 2017-05-20 11:33 UTC (History)
4 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description pavel 2008-07-13 17:30:37 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>
Comment 1 rt 2008-07-14 08:41:26 UTC
.
Comment 2 mst.ooo 2008-07-14 09:51:34 UTC
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?

Comment 3 pavel 2008-07-14 10:05:39 UTC
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.

Comment 4 mst.ooo 2008-07-14 10:41:32 UTC
> 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.
Comment 5 pavel 2008-07-14 16:21:34 UTC
> 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


Comment 6 mst.ooo 2008-07-14 16:49:00 UTC
> 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?

Comment 7 pavel 2008-07-14 19:30:53 UTC
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...

Comment 8 pavel 2008-07-17 08:50:58 UTC
lowering priority. PATH is extended by set_soenv.in using GetCorrectPath...

I'm now workarounding this issue in my build system.

Comment 9 Martin Hollmichel 2008-08-28 14:00:44 UTC
set target 3.x
Comment 10 Marcus 2017-05-20 11:33:33 UTC
Reset assigne to the default "issues@openoffice.apache.org".