[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Install libraries to a private directory, with Debhelper, Pybuild, dh_python2, dh_python3



Howdy all,

The Python packaging page at the Debian wiki says of private libraries:

    Private modules should be installed in private directory such as
    /usr/share/packagename/ or /usr/lib/packagename/
    […]

    Example 2: Python application
    […]

    Add these three lines:

      override_dh_auto_install:
      	python setup.py install --root=debian/charm --install-layout=deb --install-lib=/usr/share/charm --install-scripts=/usr/share/charm
      override_dh_auto_build:

    This is the important part, it will tell distutils that we want to
    use private directory. […]

    <URL:https://wiki.debian.org/Python/Packaging>

The above lines specify the ‘python’ (version 2) command explicitly.
That implies that to install libraries to an application-private
directory, we need to abandon autodetection of which Python version to
run.

The current wisdom seems to be that Pybuild figures most of this out.
For the above special case, it would be good to only need to specify the
options that are different, letting Pybuild figure out the rest.

Should that page be updated to recommend Pybuild?

Is this a correct replacement::

    PYBUILD_INSTALL_ARGS ?= --install-lib=/usr/share/charm --install-scripts=/usr/share/charm

    %:
    	dh $@ --with=python3 --buildsystem=pybuild

Would that achieve installation of the application's libraries and
scripts to a private directory, and remaining conformant to Debian
Python policy for everything else?

-- 
 \           “It ain't so much the things we don't know that get us in |
  `\    trouble. It's the things we know that ain't so.” —Artemus Ward |
_o__)                                     (1834–1867), U.S. journalist |
Ben Finney


Reply to: