Package: boost1.67
Version: 1.67.0-10
Severity: important

Hi,

the symbolic links created in Python-related Boost packages are
currently inconsistent, both with the past and between themselves. While
some change was actually intended to happen, the current situation does
not seem ideal. This bug is to discuss what Boost maintainers want to
happen with Python libraries and associated symbolic links.

The following is my proposal; other Boost maintainers and other
interested parties, please comment on it, so that Boost maintainers can
take a final decision reasonably quickly.

There are currently three Python-related packages in Boost, which are
"python", "mpi-python" and "numpy". The variable PACKAGE will iterate on
their underscore versions (which are "python", "mpi_python" and
"numpy"). The variable BOOST_VERSION will contain the Boost version,
currently "1.67.0". The variable PY2_VERSION and PY3_VERSION will
iterate on the supported Python 2 and 3 dotless versions (currently
"27", "36" and "37" if I am not mistaken). The variable PY2_DEFAULT and
PY3_DEFAULT will take the value of the default Python 2 and 3 versions
(currently "27" and "36").

All files are of course installed in /usr/lib/triplet.

The library packages install the following file, which is the actual
compiled shared object:

  libboost_${PACKAGE}${PY2_VERSION}.so.${BOOST_VERSION}
  libboost_${PACKAGE}${PY3_VERSION}.so.${BOOST_VERSION}

(the mpi-python package additionally installs actual Python extensions,
which are managed by dh_python* scripts and thus are not relevant here)

The development packages install the following file, which is the
statically compiled library:

  libboost_${PACKAGE}${PY2_VERSION}.a
  libboost_${PACKAGE}${PY3_VERSION}.a

Additionally, they install the following symbolic links:

  libboost_${PACKAGE}.so
    -> libboost_${PACKAGE}${PY2_DEFAULT}.so
  libboost_${PACKAGE}2.so
    -> libboost_${PACKAGE}${PY2_DEFAULT}.so
  libboost_${PACKAGE}3.so
    -> libboost_${PACKAGE}${PY3_DEFAULT}.so
  libboost_${PACKAGE}${PY2_VERSION}.so
    ->  libboost_${PACKAGE}${PY2_VERSION}.so.${BOOST_VERSION}
  libboost_${PACKAGE}${PY3_VERSION}.so
    ->  libboost_${PACKAGE}${PY3_VERSION}.so.${BOOST_VERSION}

  libboost_${PACKAGE}.a
    -> libboost_${PACKAGE}${PY2_DEFAULT}.a
  libboost_${PACKAGE}2.a
    -> libboost_${PACKAGE}${PY2_DEFAULT}.a
  libboost_${PACKAGE}3.a
    -> libboost_${PACKAGE}${PY3_DEFAULT}.a

They also install the following symbolic links, meant for compatibility
with previous Boost package versions in Debian:

  libboost_${PACKAGE}-py${PY2_VERSION}.so
    -> libboost_${PACKAGE}${PY2_VERSION}.so
  libboost_${PACKAGE}-py${PY3_VERSION}.so
    -> libboost_${PACKAGE}${PY3_VERSION}.so

  libboost_${PACKAGE}-py${PY2_VERSION}.a
    -> libboost_${PACKAGE}${PY2_VERSION}.a
  libboost_${PACKAGE}-py${PY3_VERSION}.a
    -> libboost_${PACKAGE}${PY3_VERSION}.a

Is this ok for everybody? Once a decision is taken, I can proceed to fix
the package.

Thanks, Giovanni.
-- 
Giovanni Mascellani <g.mascell...@gmail.com>
Postdoc researcher - Université Libre de Bruxelles

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to