[Slackbuilds-users] Missing and incorrect libreoffice dependencies.

orbea at fredslev.dk orbea at fredslev.dk
Mon Aug 13 02:08:20 UTC 2018

On Mon, 13 Aug 2018 11:27:22 +1000
Christoph Willing <chris.willing at linux.com> wrote:

> On 12/08/18 00:20, orbea at fredslev.dk wrote:
> > Hi,
> > 
> > Its been bugging me for a long time that the LibreOffice from source
> > SlackBuild has both incorrect and many missing optional
> > dependencies. 
> Hi Hunter,
> Yes it has been a long time; you've been complaining at LQ for about
> two years now despite my various attempts to explain the current
> arrangement. I'll try again, after which could we just agree to
> disagree?
> > The only required dependency is:
> > 
> >   perl-Archive-Zip
> > 
> > The following dependencies are erroneously marked as required and
> > libreoffice will either work fine without them or can provide their
> > own internal versions.
> > 
> >   python3, apache-ant, openjdk
> >   
> In general, most software is able to be built with or without a number
> of options. Some people seem to believe that building software (hence
> SlackBuilds) with the fewest possible options enabled is better (by
> some metric). I don't agree with this philosophy and usually build
> with all practicable options to ensure maximum feature availability.
> In the case of LibreOffice, this is alluded to in the README which
> states: "In seeking a fully functional LibreOffice, most optional
> features are included by default."
> Please note the use of "fully functional". While it is, of course,
> possible to restrict the functionality to suit your personally use
> case, I don't believe that is an appropriate approach for a general
> purpose "release". As an advanced user, you are more than capable of
> modifying the SlackBuild to suit yourself or, as you already have,
> create and publish your own SlackBuild which includes/excludes
> whatever you like.
> The README goes on to mention a few environment variables that may be
> set in order to change the default build, some of which (VLC, AVAHI)
> have been at your suggestion. There is also a JAVA variable which may
> be set, including JAVA=no for those who know they don't need its
> functionality. I won't go on - I'm sure you've read the README and so
> already know these things.
> BTW, you will also know from the libreoffice email list that work is
> in progress to remove the current java dependency. When this is
> complete, I will remove the requirement for any java (and related
> apache-ant).
> The requirement for python3 relates to a personal use case that is not
> satisfied by the "internal" python3. I'll continue to exercise my
> prerogative as maintainer to keep python3 as a requirement. It
> certainly doesn't reduce functionality and is so common that many
> (most?) users will already have it installed.

I do not agree, I think such choices should be left up to the user
especially with arguably undesirable dependencies like java.

As for python3 its easy to prefer the system python3 and fallback to
the internal one if its missing.

  if pkg-config --exists python3; then

That said would you mind elaborating on your use case that requires the
system python3? This is the first I recall hearing about it and would
be interested in knowing more.

> > Here is a list of dependencies available at SBo which libreoffice
> > can use and are not currently listed.
> > 
> >   CoinMP, cppunit, glm, libabw, libcdr, libcmis, libe-book,
> >   libeot, libepubgen, libetonyek, libexttextcat, libfreehand,
> >   liblangtag, libmspub, libmwaw, liborcus, libpagemaker, libqxp,
> >   libstaroffice, libtommath, libwps, libzmf, lpsolve, mdds,
> >   mysql-connector-c++, mythes, postgresql, qt5, valgrind, ucpp
> >   
> I'm not sure what you mean with this list. I guess that you mean that
> are SBo packages for each of them which could be used instead of the
> internal LO versions? Adding them all as requirements would make a
> pretty onerous build queue. Making them all selectable via environment
> variables would make for an equally onerous command line for the
> average builder. The majority are already included (using internal
> versions) in the default build as I don't believe the average
> builder/user should have to decide whether they want to include each
> individual item.
> If a user has a particular problem with a particular supporting
> software package that can be fixed by a change to the SlackBuild
> (without detriment to everyone else), I'm happy to include it.

There are two very good reasons to support these.

1. When a dependency of a dependency is updated instead of rebuilding
all of libreoffice the user only needs to rebuild a few system

2. It can shave off a significant amount of build time when using the
system dependencies.

There is also the argument that I spent a lot of effort supporting
these for libreoffice before and after your script was added where they
have gone unused.

Its pretty easy to determine if they are installed with pkg-config
, checking the existence of include directories and/or binaries
requiring no environment variables and not much more than documentation
in the README.

> > Also an optional dependency which can not currently be used is:
> > 
> >   graphite2
> > 
> > It would require harfbuzz in the main tree to be rebuilt with
> > graphite2. 
> I'm not sure what to do with that statement. Are you suggesting
> anything in particular for the SlackBuild?
> > Additionally here is a list of optional dependencies in the main
> > tree that libreoffice is not currently using:
> > 
> >   apr, bluez, bzip2, clucene, libepoxy, libodfgen, openldap-client
> > 
> > Can this please be fixed?
> >   
> You mean e.g. --with-system-apr etc.? Yes, I'll fix those. Thanks for
> mentioning them.
> chris

Yes, thanks! I would also suggest checking if they exist with
pkg-config or other methods before hardcoding them. Some of them like
bluez are not always desirable or installed.

More information about the SlackBuilds-users mailing list