Hi,

On Mon, Oct 12, 2015 at 10:24:02AM -0400, Scott Kitterman wrote:
> Additionally, looking ahead to the next transition that makes python3.5 the 
> default python3, it would be good to look at the packages that build-dep on 
> python3-dev and see if it's reasonable to have them build-dep on python3-all-
> dev and build for all supported python3 versions.  
> 
> Packages that only build for the default version will break until rebuilt as 
> soon as the default changes, whereas extensions that are built for all 
> supported python3 versions continue to work just fine.  The fewer default 
> only 
> packages we have, the less breakage goes with changing the default [2].  I 
> have not investigated these at all.
[...]

And then
> [2] 
> https://bugs.debian.org/cgi-bin/bugreport.cgi?filename=python3-dev.list;bug=798999;msg=84;att=1

which says:

Reverse-Build-Depends
=====================
[...]
* libreoffice
[...]

Please, not this discussion again. :)

(jessie)rene@frodo:/usr/lib/libreoffice/program$ dpkg -L python3-uno
/.
/usr
/usr/share
/usr/share/python3
/usr/share/python3/runtime.d
/usr/share/python3/runtime.d/python3-uno.rtupdate
/usr/share/bug
/usr/share/bug/python3-uno
/usr/share/bug/python3-uno/presubj
/usr/share/doc
/usr/share/doc/python3-uno
/usr/share/doc/python3-uno/modes.sxd
/usr/share/doc/python3-uno/changelog.Debian.gz
/usr/share/doc/python3-uno/NEWS.Debian.gz
/usr/share/doc/python3-uno/README.gz
/usr/share/doc/python3-uno/copyright
/usr/share/doc/python3-uno/demo
/usr/share/doc/python3-uno/demo/swritercomp.py
/usr/share/doc/python3-uno/demo/swriter.py
/usr/share/doc/python3-uno/demo/pyunoenv.bat
/usr/share/doc/python3-uno/demo/ooextract.py
/usr/share/doc/python3-uno/demo/Addons.xcu
/usr/share/doc/python3-uno/demo/hello_world_comp.py
/usr/share/doc/python3-uno/demo/pyunoenv.tcsh
/usr/share/doc/python3-uno/demo/biblioaccess.py
/usr/share/doc/python3-uno/demo/swritercompclient.py
/usr/share/doc/python3-uno/demo/makefile.mk
/usr/lib
/usr/lib/libreoffice
/usr/lib/libreoffice/program
/usr/lib/libreoffice/program/pythonloader.unorc
/usr/lib/libreoffice/program/pythonloader.py
/usr/lib/libreoffice/program/officehelper.py
/usr/lib/libreoffice/program/libpyuno.so
/usr/lib/libreoffice/program/libpythonloaderlo.so
/usr/lib/libreoffice/program/pyuno.so
/usr/lib/libreoffice/program/services
/usr/lib/libreoffice/program/services/pyuno.rdb
/usr/lib/libreoffice/share
/usr/lib/libreoffice/share/Scripts
/usr/lib/libreoffice/share/Scripts/python
/usr/lib/libreoffice/share/Scripts/python/pythonSamples
/usr/lib/libreoffice/share/Scripts/python/pythonSamples/TableSample.py
/usr/lib/libreoffice/share/Scripts/python/HelloWorld.py
/usr/lib/libreoffice/share/Scripts/python/Capitalise.py
/usr/lib/libreoffice/share/registry
/usr/lib/libreoffice/share/registry/pyuno.xcd
/usr/lib/python3
/usr/lib/python3/dist-packages
/usr/lib/python3/dist-packages/unohelper.py
/usr/lib/python3/dist-packages/uno.py

While the last two *.py are public modulesthe other ones are
 - in a LO Path because they are not public modules (but accessed by uno*.py[1])
 - also linked to libpython for embedding the python interpreter to be able
   to run python scripts inside LO.

Of the .sos above:

(jessie)rene@frodo:/usr/lib/libreoffice/program$ for i in *py*so; do objdump -p 
$i | grep NEEDED; done
  NEEDED               libpython3.4m.so.1.0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  NEEDED               libpthread.so.0
  NEEDED               libdl.so.2
  NEEDED               libutil.so.1
  NEEDED               libuno_cppu.so.3
  NEEDED               libuno_cppuhelpergcc3.so.3
  NEEDED               libpyuno.so
  NEEDED               libuno_sal.so.3
  NEEDED               libstdc++.so.6
  NEEDED               libm.so.6
  NEEDED               libgcc_s.so.1
  NEEDED               libc.so.6
  NEEDED               libpython3.4m.so.1.0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  NEEDED               libpthread.so.0
  NEEDED               libdl.so.2
  NEEDED               libutil.so.1
  NEEDED               libuno_cppu.so.3
  NEEDED               libuno_cppuhelpergcc3.so.3
  NEEDED               libuno_sal.so.3
  NEEDED               libuno_salhelpergcc3.so.3
  NEEDED               libstdc++.so.6
  NEEDED               libm.so.6
  NEEDED               libgcc_s.so.1
  NEEDED               libc.so.6
  NEEDED               libdl.so.2
  NEEDED               libc.so.6
(jessie)rene@frodo:/usr/lib/libreoffice/program$

The build system of LO also only supports one python (and no, a hack like
we had for python2/python3[2] doesn't scale.)

Even if we did this python3.4-uno would conflict with python3.5-uno because
of the common files above and moving the .sos above to a common package
(libreoffice-core? python3-uno-core?) is a recipe for
disaster (libpython3.4 vs. libpython3.5. OK, might not as bad as 3.3->3.4,
but...)

Note that python3-uno isn't really optional anymore, core functionality like
wizards use python (for people who don't want it it's only recommended, though)
and just in a extra package because it
a) (also) is a module to use externally and b) because of the python policy.

So LibreOffice always will use the default (or at least _one_ version if the
default wasn't suitable.)

Regards,

Rene

[1]
uno.py:

import sys, os
sys.path.append('/usr/lib/libreoffice/program')
os.putenv('URE_BOOTSTRAP', 
'vnd.sun.star.pathname:/usr/lib/libreoffice/program/fundamentalrc')
# -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This file incorporates work covered by the following license notice:
#
#   Licensed to the Apache Software Foundation (ASF) under one or more
#   contributor license agreements. See the NOTICE file distributed
#   with this work for additional information regarding copyright
#   ownership. The ASF licenses this file to you under the Apache
#   License, Version 2.0 (the "License"); you may not use this file
#   except in compliance with the License. You may obtain a copy of
#   the License at http://www.apache.org/licenses/LICENSE-2.0 .
#
import sys

import pyuno
[...]

[2] 
http://anonscm.debian.org/cgit/pkg-openoffice/libreoffice.git/commit/?id=38c531d25e02e96d7a5887f315f8f774b2b1f6f2
 only works for two versions and is a gross
hack. And of course the packages also conflicted.

Reply via email to