LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Compiling libreoffice (https://www.linuxquestions.org/questions/slackware-14/compiling-libreoffice-4175648824/)

aikempshall 02-22-2019 05:29 AM

Compiling libreoffice
 
I've always failed to compile libreoffice, LO, with alienbob's libreoffice.SlackBuild.

I can compile LO Using a cut down version of Christoph Willing SlackBuild

I can also compile LO from a git clone that I use for chasing regression bugs. Do the odd fix now and again.

However, alienbob's SlackBuild is beyond me.

My environment is a virtualbox client with an up to date 14.2 with multilib. I also have a number of packages installed from SlackBuilds including qt5.

I've amended alienbob's Slackbuild to explicitly exlude qt5.

It get's so far, but then hangs for hours at -


Code:

[build PKG] redland
[build DEP] LNK:Library/libpackage2.so
[build LNK] Library/libpackage2.so
[build CXX] lingucomponent/source/hyphenator/hyphen/hyphenimp.cxx
[build CXX] lingucomponent/source/spellcheck/spell/sspellimp.cxx
[build CXX] lingucomponent/source/thesaurus/libnth/nthesdta.cxx
[build CXX] lingucomponent/source/thesaurus/libnth/nthesimp.cxx
[build SDI] sc/sdi/scslots
[build SDI] sw/sdi/swslots
[build SDI] sd/sdi/sdgslots
[build SDI] sd/sdi/sdslots


until I kill it.

top shows me this -


Code:

top - 11:23:18 up  3:09,  4 users,  load average: 5.10, 5.03, 5.02
Tasks: 198 total,  6 running, 192 sleeping,  0 stopped,  0 zombie
%Cpu(s): 98.7 us,  1.3 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  7974.9 total,    211.4 free,  1009.3 used,  6754.3 buff/cache
MiB Swap:  4096.0 total,  4069.0 free,    27.0 used.  6383.4 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM    TIME+ COMMAND                                                                                                                                                               
 9984 root      20  0  119760  8632  7760 R 100.0  0.1  26:28.40 svidl                                                                                                                                                                 
10451 root      20  0  119760  8664  7792 R 100.0  0.1  26:23.54 svidl                                                                                                                                                                 
10464 root      20  0  119760  8724  7852 R 100.0  0.1  26:22.18 svidl                                                                                                                                                                 
 9989 root      20  0  119760  8644  7772 R  93.8  0.1  26:23.58 svidl                                                                                                                                                                 
10449 root      20  0  119760  8756  7880 R  93.8  0.1  26:20.07 svidl                                                                                                                                                                 
10510 alex      20  0  20720  2920  2388 R  6.2  0.0  0:00.01 top


How can I ascertain what the problem is?

I normally create libreoffice using the Willy Sudiarto Raharjo SlackBuild which is not compiling but conversion of the rpms

I know I can just download alienbob's binary packages, but I just have this itch to compile with alienbob's SlackBuild. Might learn something!

Alex

Skaendo 02-22-2019 06:08 AM

You might get some hints/clues from this thread:

https://www.linuxquestions.org/quest...nt-4175589127/

Here is where I finally got it:
https://www.linuxquestions.org/quest...ml#post5609059
Ignore the link to my build log, it is no longer valid.

aikempshall 02-26-2019 04:51 AM

I elected to concentrate on LO 6.2.0.3

The problem with the compiler hanging may have been something to do with the extra sources. So I completely changed all the extra sources in alienbob's libreoffice.Slackbuild with those listed in the 6.2.0.3 version of download.lst

Whatever happened to alienbob's gensrc.sh?

I then got a series of failures -
Quote:

/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/LinkTarget/Executable/HelpLinker: symbol lookup error: /tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/LinkTarget/Executable/HelpLinker: undefined symbol: _ZN10HelpLinker4mainERSt6vectorISsSaISsEEPKSsS5_PKN3rtl8OUStringE
/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/LinkTarget/Executable/HelpLinker: symbol lookup error: /tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/LinkTarget/Executable/HelpLinker: undefined symbol: _ZN10HelpLinker4mainERSt6vectorISsSaISsEEPKSsS5_PKN3rtl8OUStringE
/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/swext/Extension_wiki-publisher.mk:12: recipe for target '/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/Extension/wiki-publisher/root/help/en-GB.done' failed
make[1]: *** [/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/Extension/wiki-publisher/root/help/en-GB.done] Error 127
make[1]: *** Waiting for unfinished jobs....
/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/swext/Extension_wiki-publisher.mk:12: recipe for target '/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/Extension/wiki-publisher/root/help/en-US.done' failed
make[1]: *** [/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/Extension/wiki-publisher/root/help/en-US.done] Error 127
Makefile:286: recipe for target 'build' failed
make: *** [build] Error 2

In libreoffice.SlackBuild I removed the --enable-ext-wiki-publisher flag from autogen.sh


Then got this error


Quote:

/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/LinkTarget/Executable/HelpLinker: symbol lookup error: /tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/LinkTarget/Executable/HelpLinker: undefined symbol: _ZN10HelpLinker4mainERSt6vectorISsSaISsEEPKSsS5_PKN3rtl8OUStringE
/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/LinkTarget/Executable/HelpLinker: symbol lookup error: /tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/LinkTarget/Executable/HelpLinker: undefined symbol: _ZN10HelpLinker4mainERSt6vectorISsSaISsEEPKSsS5_PKN3rtl8OUStringE
/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/nlpsolver/Extension_nlpsolver.mk:12: recipe for target '/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/Extension/nlpsolver/root/help/en-GB.done' failed
make[1]: *** [/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/Extension/nlpsolver/root/help/en-GB.done] Error 127
make[1]: *** Waiting for unfinished jobs....
/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/nlpsolver/Extension_nlpsolver.mk:12: recipe for target '/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/Extension/nlpsolver/root/help/en-US.done' failed
make[1]: *** [/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/Extension/nlpsolver/root/help/en-US.done] Error 127
Makefile:286: recipe for target 'build' failed
make: *** [build] Error 2

In libreoffice.SlackBuild I removed the --enable-ext-nlpsolver flag from autogen.sh


Then got this error

Quote:

/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/CxxObject/vcl/source/font/FeatureCollector.o: In function `vcl::font::FeatureCollector::collectGraphite()':
FeatureCollector.cxx:(.text+0x34): undefined reference to `hb_graphite2_face_get_gr_face'
/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/CxxObject/vcl/source/font/FeatureCollector.o: In function `vcl::font::FeatureCollector::collect()':
FeatureCollector.cxx:(.text+0xadb): undefined reference to `hb_graphite2_face_get_gr_face'
collect2: error: ld returned 1 exit status
/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/vcl/Library_vcl.mk:20: recipe for target '/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/instdir/program/libvcllo.so' failed
make[1]: *** [/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/instdir/program/libvcllo.so] Error 1
make[1]: *** Waiting for unfinished jobs....
Makefile:286: recipe for target 'build' failed
make: *** [build] Error 2

I was now on a bit more familiar territory, In that this shouldn't be happening if I was actually using the external source harfbuzz-1.8.4.tar.bz2. The error message seemed to be suggesting that I was somehow using one of the system packages harfbuzz-1.2.7-x86_64-1 or harfbuzz-compat32-1.2.7-x86_64-1compat32.

A quick email exchange with the LO developers, who asked me to run
Code:

make PARALLELISM=1 verbose=t
The developers conclusion was

Code:

that a -L/usr/lib64 is your problem; it is pointless (because that is in the default search path anyway) and harmful (because it overrides the -L$W/UnpackedTarball/harfbuzz/src/.libs that comes later:
They then asked me to investigate further

Quote:

now the question is where does that come from, try:
"grep /lib64[^/] config_host.mk"
which revealed

Quote:

export LDFLAGS= -Wl,-rpath,/usr/lib64/libreoffice/program/ -L/usr/lib64

After a bit of investigation I hashed out what I considered to be the problem code in libreoffice.slackbuild. I'm on a 64-bit box.


Quote:

case "$ARCH" in
i?86) SLKCFLAGS="-march=${ARCH} -mtune=i686"
SLKLDFLAGS=""; LIBDIRSUFFIX=""
;;
x86_64) SLKCFLAGS="-fPIC"
# SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"
SLKLDFLAGS=""; LIBDIRSUFFIX=""
;;
armv7hl) SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16 -std=c++98"
SLKLDFLAGS=""; LIBDIRSUFFIX=""
;;
*) SLKCFLAGS=""
SLKLDFLAGS=""; LIBDIRSUFFIX=""
;;
esac

So what don't I understand with alienbob's libreoffice.SlackBuild

I downloaded using

lftp -c "open http://www.slackware.com/~alien/slac.../libreoffice/; mirror build"


in the downloaded libreoffice.SlackBuild I changed
  1. 6.1.4.2 to 6.2.0.3
  2. the list of external sources

but still had to make this change

Quote:

x86_64) SLKCFLAGS="-fPIC"
# SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"
SLKLDFLAGS=""; LIBDIRSUFFIX=""

solarfields 02-26-2019 05:57 AM

Quote:

My environment is a virtualbox client with an up to date 14.2 with multilib
having multilib present may cause problems. I am not saying this is what causes a problem with LO, just in general...

KeithE 02-26-2019 07:30 PM

Silly question: Why are you compiling something that large in the first place, unless of course you just enjoy it or are doing it for educational purposes?

Installiing LibreOffice on Slackware is easy. Just download the RPMs (program and help files), extract them, run rpm2tgz on all RPM files, then use installpkg to put them in /opt/LibreOffice6. Takes 5 minutes, and I've never had a failure doing this with any LO version. I recompress them into a new LibreOffice6.Slackware64.tar.gz file so I can just install it on all my Slackware boxes.

Multilib is not necessary, but it shouldn't be an issue, either.

chris.willing 02-26-2019 10:46 PM

Quote:

Originally Posted by KeithE (Post 5967402)
Silly question: Why are you compiling something that large in the first place, unless of course you just enjoy it or are doing it for educational purposes?

Why not read the OP's first post? It includes:
Quote:

but I just have this itch to compile with alienbob's SlackBuild. Might learn something!

aikempshall 02-27-2019 02:32 AM

Quote:

Originally Posted by chris.willing (Post 5967461)
Why not read the OP's first post? It includes:

I've learnt a lot in the last few days. To be honest it was always a bit more than an itch, there were practical reasons as well.

I should have also have said that I've raised a dozen or more bug reports for libreoffice.

Have a LO git clone that I've kept up to date over the years, compiles successfully, used to submit patches to fix regressions.

On my production machines I've historically used the Willy Sudiarto Raharjo packages as they're quick to install.

However, we seem to be heading into uncharted territory.

The autogen in my git clone now
  1. rejects the kde4 flag, not sure whether this means the end of kde4 integration on 14.2
  2. expects gcc >= 7, Slackware 14.2 is on gcc-5.5.0

As a result I've had to move my LO git clone to 14.2+ with alienbob's ktown.

So now need a neat way to package LO so I can move it around my test boxes. Alienbob's seems to be the best candidate to do this as it mentions sourcing the code from git.

Unfortunately with alienbob's script I seem to invariably fail. Have to hack things to get a success compile, now's there a suggestion that there may be a problem with compiling LO in a multilib environment - which I find a worrying. All the 188 downloads from SlackBuild.org I have compiled on a multilib platform - so are all these suspect, they don't seem to be causing me a problem and all compile successfully. Should I have compiled them on a pure 64-bit machine?

I always seem to succeed when using the Chris Willing LO SlackBuild.

Alex

aikempshall 02-27-2019 03:58 AM

Quote:

Originally Posted by solarfields (Post 5967065)
having multilib present may cause problems. I am not saying this is what causes a problem with LO, just in general...

I cloned a 14.2 multilib client.

Had several goes at reverting the clone back to a non-multilib evironment. In the end the only method that seemed to work was the slackpkg route and even then I had to reinstall curl and mariadb.

Anyway with
Code:

SLKLDFLAGS="-L/usr/lib64"; LIBDIRSUFFIX="64"
the build failed with

Quote:

/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/CxxObject/vcl/source/font/FeatureCollector.o: In function `vcl::font::FeatureCollector::collectGraphite()':
FeatureCollector.cxx:(.text+0x34): undefined reference to `hb_graphite2_face_get_gr_face'
/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/workdir/CxxObject/vcl/source/font/FeatureCollector.o: In function `vcl::font::FeatureCollector::collect()':
FeatureCollector.cxx:(.text+0xadb): undefined reference to `hb_graphite2_face_get_gr_face'
[build CXX] svx/source/form/dbcharsethelper.cxx
collect2: error: ld returned 1 exit status
/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/vcl/Library_vcl.mk:20: recipe for target '/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/instdir/program/libvcllo.so' failed
make[1]: *** [/tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/instdir/program/libvcllo.so] Error 1
make[1]: *** Waiting for unfinished jobs....
Makefile:286: recipe for target 'build' failed
make: *** [build] Error 2


with
Code:

SLKLDFLAGS=""; LIBDIRSUFFIX=""

the build was successful

Quote:

[build STR] transportation/transportation
[build PKG] Gallery/transportation
[build BIN] extras
[build MOD] extras
[build MOD] libreoffice
[build BIN] top level modules: libreoffice
[build ALL] top level modules: build-non-l10n-only build-l10n-only

Toutatis 02-27-2019 04:02 AM

@aikempshall
maybe you could rename /usr/lib to /usr/lib0 while you compile libreoffice, run ldconfig, compile, and after that restore /usr/lib ?

aikempshall 03-05-2019 07:48 AM

After getting a successful compile of libreoffice (6.2.0) with alienbob's libreoffice.SlackBuild on Slackware 14.2 with kde4, qt(qt4) and qt5.

I did some testing -

My forms in base - work
My connection to MariaDB - works
Those macros I use on a weekly and monthly basis - work.
Couldn't find anything wrong.

So I'm happy to say that I can now compile libreoffice with alienbob's libreoffice.SlackBuild. So I have a bit of portability.

I then decided to try compiling on 14.2+ with alienbob's libreoffice.SlackBuild. Modified to reflect this was on a kde5 environment with AlienBob's ktown. It still had the qt(qt4) and qt5 packages installed. Tried every which way top get a successful compile.

The flags I was using, among others, where

Code:

--disable-kde4
--enable-kde5
--enable-gtk3-kde5
--enable-qt5

Whatever I tried it always failed with
Quote:

In file included from /usr/lib64/qt/include/QtCore/QVariant:1,
from /usr/include/KF5/KIOCore/kio/metadata.h:23,
from /usr/include/KF5/KIOCore/kio/global.h:28,
from /usr/include/KF5/KIOCore/kprotocolmanager.h:26,
from /tmp/build/tmp-libreoffice/libreoffice-6.2.0.3/shell/source/backends/kde5be/kde5access.cxx:31:
/usr/lib64/qt/include/QtCore/qvariant.h:612:54: error: macro "Q_DECLARE_BUILTIN_METATYPE" requires 3 arguments, but only 2 given
Q_DECLARE_BUILTIN_METATYPE(QVariantList, QVariantList)
In other words the build was defaulting to qt(qt4) and ignoring qt5 but still using the LO code that was expecting qt5!

All this was done on a VirtualBox client. So I decided to clone the client and remove qt(qt4) which just left qt5.

The LO compile using alienbob's libreoffice.SlackBuild was successful.

Removing qt4 broke keepassx, qt-creator, qbs, and Scribus and probably others as well. I've since compiled qt-creator and qbs in this now qt4 free environment they seem stand up. I had to switch to keepassxc as keepassx seems to need qt4. Not tried to compile Scribus.

Stood up LO 6.2.0 successfully. Very limited testing showed that a regression bug had crept in in that copying in LO and pasting out of LO wasn't working. Someone else had already reported this see https://bugs.documentfoundation.org/....cgi?id=122689. Just a kde5 LO integration bug.

So I compiled LO 6.2.1 just to prove that the regression has been fixed and that it wasn't anything I'd done in removing qt4.

I successfully compiled LO 6.2.1 using alienbob's SlackBuild on my 14.2+ environment with just the qt5 package. The qt(qt4) package had been removed. The regression bug had been fixed.

I've not done any other testing, but it looks promising.

aikempshall 03-05-2019 07:52 AM

I forgot to say the itch has gone away. I've learnt a lot.

aikempshall 03-06-2019 08:24 AM

After getting a successful compile of libreoffice (6.2.1) with alienbob's libreoffice.SlackBuild on Slackware 14.2+ with kde plasma in a pure qt5 environment

I did some testing -
  1. My forms in base - work
  2. My connection to MariaDB - works
  3. Those macros I use on a weekly and monthly basis - work of a fashion. I have a progress bar, in the status pane, to monitor progress. Instead of the progress bar smoothly monitoring progress the whole form refreshes, this is happening so quickly that the form just turns a constant white until the job completes then the form returns to what it should be. This problem has been fixed in Version 6.3.0 Alpha, might have even been fixed earlier.
  4. In base there is a problem with dates in a grid control in that if you enter 01/07/18 in a cell the date changes on leaving the row to 30/06/18. This problem appears in all versions of LO in a pure qt5 Plasma environment. There has been no fix for it. Not sure whether it's been reported as a bug.
  5. In calc there is a problem with time in that if you enter the time 16:48 the cell changes on leaving the row to 16:47. This problem has been fixed by LO Version 6.3.0 Alpha
  6. Couldn't find anything else wrong. Early days.

So LO has some way to go before being production ready for a pure qt5 kde plasma environment.


All times are GMT -5. The time now is 10:11 AM.