LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 03-15-2016, 01:13 AM   #1
orbea
Senior Member
 
Registered: Feb 2015
Distribution: Slackware64-current
Posts: 1,464

Rep: Reputation: Disabled
LibreOffice from source SlackBuild.


For those of us willing to compile LibreOffice from source to get a personalized package, I have updated my slackbuild to 5.1.1.3.

https://notabug.org/orbea/Slackbuild...ce/libreoffice

Additionally I have updated a few of the optional dependencies.

https://notabug.org/orbea/Slackbuild...raries/libcmis
https://notabug.org/orbea/Slackbuild...s/libpagemaker
https://notabug.org/orbea/Slackbuild...braries/libwps
https://notabug.org/orbea/Slackbuild...hics/graphite2

Please see the README.

Quote:
LibreOffice is a productivity suite that is compatible with other major
office suites, and available on a variety of platforms. It is free
software and therefore free to download, use and distribute.

This script builds a Slackware package from the official source distributed
by The Document Foundation. LibreOffice by default will download many dependencies
to build against, this script will auto detect if these dependencies are already
installed and skip downloading if so. The provided script, swlodc.sh, can test if
these auto detected variables are still sane and show what is already installed.

Be sure to look at the script to see if the compile flags are to your
liking, java is disabled by default.

LibreOffice uses several gb of space to compile and is quite large
so it might be preferable to compile somewhere other than /tmp and
install it in /opt rather than /usr which is default, to do so use
TMP="/foo/tmp/SBo" OPT="yes" ./libreoffice.SlackBuild
Alternatively to install LibreOffice in another location use
LO_PREFIX=/some/install/location ./libreoffice.SlackBuild
This will take quite a bit of time to complete.

If trying to build LibreOffice in a chroot or ssh environment, make
sure $DISPLAY is not set, this can be done with: unset DISPLAY

LibreOffice by default will compile with one job, since compiling it
can be rather taxing on the cpu and may even cause it to overheat.
It is possible to set the number of jobs to compile with by using
NUMBJOBS="2". This can lead to a significantly faster build, but
this should only be done by those that have a sufficiently powerful
enough cpu and know what they are doing.

LibreOffice by default will try compile with ccache if available, to
effectively use it LibreOffice requires the cache size to be at least
8 gb without debug symbols. With debug symbols LibreOffice will need
around 32 gbs. Alternatively to disable compiling with ccache use
CCACHE="no".

To build the myspell dictionaries use DICT="yes". By default help will
not be built into libreoffice, to enable use HELP="yes|common", this will
build the entire local help or bundle the common files.

LibreOffice by default will have en-US, to install additional languages use
LANGUAGES="es sw tu cs sk" To install all the languages use LANGUAGES="ALL".
To see what language codes are supported look here:
https://wiki.documentfoundation.org/...of_LibreOffice

To chose different themes use something like THEME="galaxy tango",
Possible themes are *breeze, crystal, *galaxy, *hicontrast, human,
industrial, *oxygen, *sifr, *tango, *tango_testing. Those marked by
a * will be included by default.

LibreOffice will by default be built with the system's python3, to disable,
use an internal or fully internal python use PYTHON="no|internal|full". If
the system's python is used and python3 is not installed then an internal
python will be used instead.

To enable building with the gstreamer 0.10 avmedia backend use
GSTREAMER="yes", to disable building with the gstreamer 1.0 avmedia
backend use GSTREAMER1="no". Slackware 14.1 only provides gstreamer
0.10 while current provides both, if gstreamer 1.0 is not installed
this script will automatically enable gstreamer 0.10 and disable
gstreamer 1.0.

To disable using the experimental Gtk+ 3.0 vclplug use GTK3="no", to disable
using the Gtk+ vclplug use GTK="no".

To choose which TLS/SSL and cryptographic implementation to use, use
TLS="openssl|nss". Openssl will be used by default and will not restrict use
of nss while choosing nss will restrict usage of openssl. This doesn't apply
for depending libraries like "neon".

To build the office development kit (ODK) use ODK="yes", if you built the odk
you can also enable doxygen documentation with DOXYGEN="yes".

To build debug symbols use DEBUG="yes|dbg|symbols". this will enable the
debugging information or include debugging symbols while preserving optimization.
When using "dbg" it will make the build ABI incompatible with builds not using
"dbg". Building with debug support will take up quite a bit of space.

To enable compiler plugins that will perform additional checks during
building use COMPILER="yes". This will be enabled automatically by
using "dbg". To make SAL_INFO and SAL_WARN calls do something even
in a non-debug build use SAL="yes". To disable CVE tests from being executed
use CVE="no". To enable the crashdump feature use CRASH="yes". To turn werror
warnings into errors use WERROR="yes". To statically disable some runtime
optimizations (like rtl/alloc.h or JVM JIT) use RUNTIME="no".

If building LibreOffice with MPL="yes" several other options will need to
be selected, including: LOTUSWORDPRO=no THEME="tango" LPSOLVE="no". If
poppler is not installed PDF="no" will also have to be used.

Introspection can be enabled or disabled, use INTROSPECTION="no|auto|yes".

By default this script will install a relatively default build with
upstream settings. many optional flags can be set by passing variables
to the script (VAR="yes/no" ./ffmpeg.SlackBuild):
AVAHI="yes" - requires avahi
BARCODE="yes" - enable the Barcode extension
BUNDLE="yes" - bundle the MariaDB Connector/LibreOffice extension when using MariaDB/MYSQL system libraries
CT2N="yes" - enable the ConvertTextToNumber extension
DIAGRAM="yes" - enable the SmART Gallery (Diagram) extension
EOT="yes" - enable support for Embedded OpenType fonts
EPM="yes" - build epm
EXTRAFONT="yes" - add extra font content
GALLERY="yes" - add extra gallery content
GOOGLEDOC="yes" - enable the Google Docs extension
HARDLINK="yes" - turns files into hardlinks to save space and speed up compiling
HUNART="yes" - enable the Hungarian Cross-reference Toolbar extension
KDE="yes" - use the QT4/KDE4 vclplug
LANGUAGETOOL="yes" - enable the LanguageTool extension
LTO="yes" - enable link-time for optimization for speed, slower compile (this may not work)
MARIADB="yes" - enable build of the mariaDB/mySQL connector extension
MPL="yes" - only compile code which is MPL or more liberally licensed
NPSOLVER="yes" - enable the NLPSolver extension
NUMBERTEXT="yes" - enable the Numbertext extension
ORCUS="yes" - extra file import featurs for Calc
PCH="yes" - enables precompiled header support for C++
SAMPLE="yes" - add extra sample content
TEMPLATE="yes" - add extra template content
TYPO="yes" - enable the Typography Toolbar extension
VALIDATOR="yes" - enable the Validator extension
WATCH="yes" - enable the Watch Window extension
WIKI="yes" - enable the Wiki Publisher extension

Disable features:
CANVAS="no" - disables building the Cairo Canvas
COLLADA="no" - disable collada support (rendering 3d models stored in *.dae and *.kmz)
CUPS="no" - disable building cups support
COINMP="no" - disable building the CoinMP solver
DBUS="no" - disable features that rely on dbus (Presentation mode and screensaver control)
DCONF="no" - disable the dconf configuration backend (enabled by default where available)
FIREBIRD="no" - disable buildin the Firebird-SDBC driver
FONT="no" - do not include third-party fonts
LANGTAG="no" - disable use of the liblangtag and use own simple implementation
LARGEFILE="no" - omit support for large files
LOTUSWORDPRO="no" - disables building the Lotus Word Pro filter
LPSOLVE="no" - disables building the lp solve solver
GIO="no" - disables using the GIO support
GLTF="no" - disables building libraries related to glTF 3D model rendering
GRAPHITE="no" - disables the graphite smart font rendering
NEON="no" - disables neon and building of webdav binding
OOENV="no" - disable ooenv for the instdir installation
PDF="no" - disable building the PDF import feature
POSTGRESQL="no" - disable building the PostgreSQL-SDBC driver
RANDR="no" - disable RandR support in the vcl project
RANDRLINK="no" - disable linking libXrandr, instead dynamically open it at runtime
REPORT="no" - disable the Report Builder
SDREMOTE="no" - disable the Impress remote control (i.e. the server component)
SDRBLUETOOTH="no" - disables building the sdremote with bluetooth support, requires dbus
SYSTRAY="no" - disable building the systray quickstarter
XORG="no" - don't use the X Window System

Experimental features, probably best to ignore these unless you know what you are doing,
use ./configure --help to learn more about them.
AVMEDIA="no" - disables displaying and inserting AV media in documents
CHART="yes" - executes chart XShape tests
DATABASE="no" - disables various database connectivity
EXTENSION="no" - disables all add-on extension functionality
EXPORT="no" - disable some code for document export
ICECREAM="yes" - use the icecream distributed compiling tool (requires icecream)
LOADING="no" - disables any use of dynamc loading of code
MERGELIB="yes" - enables linking of big, merged, library
OPENSSL="no" - disables using libssl/libcrypto from OpenSSl, will use GNUTLS or NSS instead
SCRIPT="no" - disables BASIC, Java and Python
VLC="yes" - enable building with the VLC avmedia backend (requires vlc)

Optional dependencies:
CoinMP, cppunit, glm, graphite2, libabw, libatomic_ops, libcdr, libcmis, libe-book, libeot,
libetonyek, libexttextcat, libfreehand, libgltf, liblangtag, libmspub, libmwaw, liborcus,
libpagemaker, libvisio, libwpg, libwps, lpsolve, mdds, mysql-connector-c++, mythes,
opencollada, openjpeg2, postgresql, python3, serf, uccp, vigra

Some more optional dependencies which do not seem available in slackware or at SBo yet are:
altlinuxhyph, apache-commons, beanshell, collada2gltf, firebird, hsqldb, jfreereport

Slackware current provides libvisio, libwpg, openjpeg2, serf and the libatomic_ops libraries in the gc package.
 
Old 03-17-2016, 06:32 AM   #2
aragorn2101
Member
 
Registered: Dec 2012
Location: Mauritius
Distribution: Slackware
Posts: 531

Rep: Reputation: 249Reputation: 249Reputation: 249
Thank you very much orbea.
 
Old 03-18-2016, 03:50 AM   #3
keithpeter
Member
 
Registered: Nov 2015
Location: 52:30N 1:55W
Distribution: Slackware 14.2 and Current
Posts: 105

Rep: Reputation: Disabled
Hello All

Thanks also to orbea for continued work on this script.

The slackbuild script itself appears to be working fine.

My compile is failing a unit test however...

Code:
FDO74774.docx,2146
xmltesttools.cxx:99:Assertion
Test name: testFlipAndRotateCustomShape::Import_Export_Import
equality assertion failed
- Expected: 2351
- Actual  : 2350
- In <file:///tmp/lu16577xcu1mp.tmp>, attribute 'x' of '//a:custGeom/a:pathLst/a:path/a:lnTo[1]/a:pt' incorrect value.

Failures !!!
Run: 104   Failure total: 1   Failures: 1   Errors: 0

Error: a unit test failed, please do one of:
make CppunitTest_sw_ooxmlexport7 CPPUNITTRACE="gdb --args"
    # for interactive debugging on Linux
make CppunitTest_sw_ooxmlexport7 VALGRIND=memcheck
    # for memory checking
make CppunitTest_sw_ooxmlexport7 DEBUGCPPUNIT=TRUE
    # for exception catching
I used this command line

Code:
# TMP="/home/keith/tmp" OPT="yes" NUMBJOBS="2" HELP="yes" ./libreoffice.SlackBuild
and I have python3 and Perl-Archive-extract and Perl-Archive-ZIP installed. All built from their respective slackbuilds on a fresh 32 bit install of --current updated to 16 March.

Could this be a file system issue (SSD in the old laptop)?
 
Old 03-18-2016, 04:06 AM   #4
Alien Bob
Slackware Contributor
 
Registered: Sep 2005
Location: Eindhoven, The Netherlands
Distribution: Slackware
Posts: 7,304

Rep: Reputation: 5461Reputation: 5461Reputation: 5461Reputation: 5461Reputation: 5461Reputation: 5461Reputation: 5461Reputation: 5461Reputation: 5461Reputation: 5461Reputation: 5461
That's why my own SlackBuild script has:
Code:
  # Temporarily disable a failing unit test:
  sed -i -e /CppunitTest_sw_ooxmlimport/d sw/Module_sw.mk
 
Old 03-18-2016, 06:39 AM   #5
keithpeter
Member
 
Registered: Nov 2015
Location: 52:30N 1:55W
Distribution: Slackware 14.2 and Current
Posts: 105

Rep: Reputation: Disabled
Quote:
Originally Posted by Alien Bob View Post
That's why my own SlackBuild script has:
Code:
  # Temporarily disable a failing unit test:
  sed -i -e /CppunitTest_sw_ooxmlimport/d sw/Module_sw.mk
Ah so known issue, thanks for reply.
 
Old 03-18-2016, 08:37 PM   #6
orbea
Senior Member
 
Registered: Feb 2015
Distribution: Slackware64-current
Posts: 1,464

Original Poster
Rep: Reputation: Disabled
Libreoffice likes to do stupid things like that if your build environment is not just right...

Its probably worth fixing upstream or finding out what is wrong with your build environment rather than disabling the unit test.

#libreoffice-dev @ freenode is pretty useful for this situation, but I would try the suggestions in the error output first. Unfortunately as I'm not experiencing it I can't suggest anything other than what is already in the README.
 
1 members found this post helpful.
Old 03-19-2016, 05:46 AM   #7
keithpeter
Member
 
Registered: Nov 2015
Location: 52:30N 1:55W
Distribution: Slackware 14.2 and Current
Posts: 105

Rep: Reputation: Disabled
Quote:
Originally Posted by orbea View Post
...but I would try the suggestions in the error output first.
Will have a go at it, thanks for reply.
 
Old 03-20-2016, 05:30 AM   #8
aikempshall
Member
 
Registered: Nov 2003
Location: Bristol, Britain
Distribution: Slackware
Posts: 536

Rep: Reputation: 56
keithpeter,

You may be able to replicate the problem in your built version of LibreOffice by flipping and/or rotating a custom shape.

Alex
 
1 members found this post helpful.
Old 03-20-2016, 06:32 AM   #9
keithpeter
Member
 
Registered: Nov 2015
Location: 52:30N 1:55W
Distribution: Slackware 14.2 and Current
Posts: 105

Rep: Reputation: Disabled
Quote:
Originally Posted by aikempshall View Post
keithpeter,

You may be able to replicate the problem in your built version of LibreOffice by flipping and/or rotating a custom shape.

Alex
Thanks Alex

I noticed that alienbob has a post-harfbuzz 1.3 binary build on his slackbuilds site so I'm using that at present and there appear to be no issues when rotating shapes I've created by drawing lines (not sure what you mean by a 'custom shape' exactly). I'm assuming that the 32 bit binary build was produced from the slackbuild script with the test disabled.

I have also discovered that Apache OpenOffice 4.2.x appears not have updated the previous custom layout engine so that harfbuzz is not a dependency. A binary installation coexists with LO fine. I like being able to have an OpenOffice 4 series install available at home as that is the version one of my employers has decided to use on the Windows based client PCs at work and it makes screengrabs for training/handouts closer to what students and colleagues will see on that system. I realise that some may find the Apache license unacceptable.

As one of the reasons I started using Slackware was to learn more I'm not giving up on the compilation.

I will attempt a compile again on a fresh current install on Tuesday just to see if I can iron out the issues that Orbea mentions with my build environment. I used slackbuilds from 14.1 series to compile python3 and the perl modules so it may be that the source versions are older than the ones LO is expecting. I shall try actually running the debug tools that the compiler error message suggested as well and see if I can make sense of the output rather than just guessing.

Last edited by keithpeter; 03-20-2016 at 06:40 AM.
 
Old 03-20-2016, 09:52 AM   #10
orbea
Senior Member
 
Registered: Feb 2015
Distribution: Slackware64-current
Posts: 1,464

Original Poster
Rep: Reputation: Disabled
No, the python3 and perl-archive-zip from SBo is what I have been using, you only need the perl-archive-zip though. The python3 is only if you want to use a system version of it rather than one provided by LO, I imagine both would work more or less the same. The slackbuilds for any optional dependencies I am maintaining are best grabbed from my NAB repo until SBo unlocks itself again and the rest should be from SBo.

Personally I would recommend to either compile any optional dependencies yourself or to let LibreOffice provide them, binary packages that weren't compiled on your own system could be less reliable. I suspect your issue was your build environment, but I am neither experiencing it nor have I gotten any replies from #libreoffice-dev concerning it, I will try the mailing list next. I might just need to unset several variables in the SlackBuild similar to how Pat does in his firefox SlackBuild, but so far the only one I know about is $DISPLAY.

Edit: Also, I understand the harfbuzz issue is only if using the pre-compiled binary from upstream LO which was compiled against a different harbuzz than what was available in current, but if you compile libreoffice yourself it will use the correct harfbuzz.

Last edited by orbea; 03-20-2016 at 09:57 AM.
 
Old 03-20-2016, 12:52 PM   #11
keithpeter
Member
 
Registered: Nov 2015
Location: 52:30N 1:55W
Distribution: Slackware 14.2 and Current
Posts: 105

Rep: Reputation: Disabled
Quote:
Originally Posted by orbea View Post
Personally I would recommend to either compile any optional dependencies yourself or to let LibreOffice provide them, binary packages that weren't compiled on your own system could be less reliable.
I shall use the 14.2 slackbuilds from the git repo or your own on the next go rather than the 14.1 slackbuilds. I did compile on this machine, and did not use downloaded binaries.

Quote:
Originally Posted by orbea View Post
I suspect your issue was your build environment, but I am neither experiencing it nor have I gotten any replies from #libreoffice-dev concerning it, I will try the mailing list next. I might just need to unset several variables in the SlackBuild similar to how Pat does in his firefox SlackBuild, but so far the only one I know about is $DISPLAY.
I understand 'environment' now, I need to check what system variables are defined and perhaps run the compilation outside an X session. No need to hassle the LO people until I have read a bit more unless you need to understand the requirements more yourself.

Quote:
Originally Posted by orbea View Post
Edit: Also, I understand the harfbuzz issue is only if using the pre-compiled binary from upstream LO which was compiled against a different harbuzz than what was available in current, but if you compile libreoffice yourself it will use the correct harfbuzz.
Yup - that is why I was compiling from source in the first place! OpenOffice does not have the harfbuzz dependency and so you can just get the binaries from the OpenOffice Web site and run them through rpm2txz and install them. I was quite impressed that they have set the install to /opt so it is possible to have both LO and oOo installed without conflict.

Thanks for response.
 
Old 03-20-2016, 12:56 PM   #12
orbea
Senior Member
 
Registered: Feb 2015
Distribution: Slackware64-current
Posts: 1,464

Original Poster
Rep: Reputation: Disabled
You'd probably have most luck building in a x session, its when I try compiling in a chroot I usually get problems that need $DISPLAY unset.
 
Old 04-14-2016, 09:48 AM   #13
orbea
Senior Member
 
Registered: Feb 2015
Distribution: Slackware64-current
Posts: 1,464

Original Poster
Rep: Reputation: Disabled
Some updates:

libreoffice: 5.1.2.2
https://notabug.org/orbea/Slackbuild...ce/libreoffice

graphite2: 1.3.8
https://notabug.org/orbea/Slackbuild...hics/graphite2
 
Old 08-08-2018, 12:48 PM   #14
shevegen
Member
 
Registered: May 2004
Distribution: Slackware / GoboLinux / LFS / VoidLinux
Posts: 107

Rep: Reputation: 22
Any news to this? Hasn't been updated since quite some time so I wonder (am currently in the process to try to get the latest libreoffice to run).
 
Old 08-08-2018, 03:30 PM   #15
orbea
Senior Member
 
Registered: Feb 2015
Distribution: Slackware64-current
Posts: 1,464

Original Poster
Rep: Reputation: Disabled
I still maintain my script and its up to date with the current libreoffice release, I just haven't updated this thread.

https://notabug.org/orbea/SlackBuild...ce/libreoffice
 
3 members found this post helpful.
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Alien Bob's Libreoffice 4.3.0.4 slackbuild AlleyTrotter Slackware 1 08-06-2014 05:53 PM
[SOLVED] LibreOffice-4.2.3 slackbuild error on new KDE integration split off frushiyama Slackware 2 04-22-2014 07:03 PM
office/libreoffice SlackBuild scripts is old ? xavi_slacky Slackware 24 06-19-2013 08:47 AM
[SOLVED] LibreOffice SlackBuild (from SBO) Missing Files? tronayne Slackware 4 03-29-2013 01:50 PM
LibreOffice.SlackBuild in RAM? Konphine Slackware 12 02-18-2012 02:14 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 11:12 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration