Re: [Slackbuilds-users] Missing and incorrect libreoffice dependencies.

2018-08-20 Thread Christoph Willing
On 13/08/18 12:08, or...@fredslev.dk wrote:
>> 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
> 
>
Python3 usage is a slightly special case compared with the optional
packages you've listed below, where configuring with
--with-system-pkgnam prefers a locally preinstalled version of pkgnam to
an internal fallback version. These are build time flags.

The --enable-python configuration option refers to Python support at run
time, not build time (although there can be a build time implication).
Hence --enable-python=system means that the system installed python
should be used when running python related LibreOffice features - PyUno
in particular (which requires python3). In this case the system python3
is also required at build time in order to build those features.

Other --enable-python= possibilities are no, auto, internal and
fully-internal which can use the internal fallback python3. However all
of these constrain how PyUno can be used i.e. the resulting LibreOffice
is not "fully functional" (as is my stated goal).


> 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.
>
LibreOffice components are externally controllable with python scripting
via PyUno - a python binding of UNO (see:
http://www.openoffice.org/udk/) which provides the capability of remote
interaction with LibreOffice. I believe there's also a java binding
(which I haven't used).

A "hello world" example is at:
http://lucasmanual.com/mywiki/OpenOffice
(however I suggest to invoke the initial empty document with "swriter"
not "soffice" as described there).

Using system python3 in both LibreOffice build and the runtime example,
all works OK. However internal LibreOffice python3 will fail when using
the system python3 at runtime for the hello world example and, more
importantly, all other real world apps using this feature.

An even simpler failure can be seen just by running the system python3
and trying to "import uno". It fails with a ModuleNotFoundError: No
module named 'uno' - understandable because it was made for a different
python3 installation (the LibreOffice internal installation).

You could perhaps work around that by not using the system python, but
instead use LibreOffice's built in python3 by starting your script(s)
with something like:
  #!/usr/lib64/libreoffice/programs/python

which actually works for the example above but which, if you think about
it, is clearly impracticable for anything beyond this type of single
file application.

So, although it's possible to use the internal python3 supplied by
LibreOffice, it's a considerably constrained usage requiring lots of
hoop jumping for real world applications. It's much smarter to just use
the system python3.

What's more, if a system version of either of liborcus or qt5 is used
(encouragement of which I believe is the purpose of the list below) then
python3 will be required anyway.

chris


>>> 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
>>>   

___
SlackBuilds-users mailing list
SlackBuilds-users@slackbuilds.org
https://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users
Archives - https://lists.slackbuilds.org/pipermail/slackbuilds-users/
FAQ - https://slackbuilds.org/faq/



Re: [Slackbuilds-users] Missing and incorrect libreoffice dependencies.

2018-08-12 Thread or...@fredslev.dk
On Mon, 13 Aug 2018 11:27:22 +1000
Christoph Willing  wrote:

> On 12/08/18 00:20, or...@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
dependencies.

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 an

Re: [Slackbuilds-users] Missing and incorrect libreoffice dependencies.

2018-08-12 Thread Christoph Willing
On 12/08/18 00:20, or...@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.


> 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.


> 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
___
SlackBuilds-users mailing list
SlackBuilds-users@slackbuilds.org
https://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users
Archives - https://lists.slackbuilds.org/pipermail/slackbuilds-users/
FAQ - https://slackbuilds.org/faq/



Re: [Slackbuilds-users] Missing and incorrect libreoffice dependencies.

2018-08-11 Thread or...@fredslev.dk
I looked at the 6.1.0.3 source and found two small corrections.

1. LibreOffice can also use lxml and will apparently build it
internally if missing, I am not sure if it needs to be a python3 lxml
or not.

2. With 6.1.0.3 libnumbertext is a new optional dependency which is
missing from SBo, I have submitted a script for it just now which I was
able use when building 6.1.0.3 without issue. If
--with-system-libnumbertext is not used then libreoffice will use an
internal version.
___
SlackBuilds-users mailing list
SlackBuilds-users@slackbuilds.org
https://lists.slackbuilds.org/mailman/listinfo/slackbuilds-users
Archives - https://lists.slackbuilds.org/pipermail/slackbuilds-users/
FAQ - https://slackbuilds.org/faq/