dh_python3
calculates Python dependencies, adds maintainer scripts to byte compile files, etc.
see also :
py3compile - py3clean - dh_python2 - pycompile - pyclean
Synopsis
dh_python3
-p PACKAGE [-V [X.Y][-][A.B]] DIR
[-X REGEXPR]
add an example, a script, a trick and tips
examples
source
cd clients/python3 && python3 setup.py clean
override_dh_python2:
dh_python2 clients/python2
override_dh_python3:
dh_python3 clients/python3
source
$(MAKE) install
DESTDIR=$(CURDIR)/debian/tmp
override_dh_python3:
dh_python3 \
-p znc-python \
--exclude=znc.py \
description
QUICK GUIDE
FOR MAINTAINERS
•
if necessary, describe supported Python 3 versions via
X-Python3-Version field in debian/control,
•
build-depend on python3 or python3-all or
python3-all-dev,
•
build module/application using its standard build
system, remember to build extensions for all supported
Python 3 versions (loop over py3versions
-vr),
•
install files to the standard locations, add
--install-layout=deb to setup.py's
install command if your package is using distutils,
•
add python3 to dh's --with option,
or:
•
include
/usr/share/cdbs/1/class/python-distutils.mk in
debian/rules and depend on cdbs (>= 0.4.90),
or:
•
call dh_python3 in the binary-*
target,
•
add ${python3:Depends} to Depends
NOTES
dependencies
dh_python3 tries to translate Python dependencies from
requires.txt file to Debian dependencies. Use
debian/py3dist-overrides or
--no-guessing-deps option to
override it if the guess is incorrect. If you want
dh_python3 to generate more strict dependencies (f.e. to
avoid ABI problems) create debian/python3-foo.pydist
file. See /usr/share/doc/python3-doc/README.PyDist
(provided by python3-doc package) for more
information. If the pydist file contains PEP386 flag or set
of (uscan like) rules, dh_python3 will make the depedency
versioned (version requirements are ignored by default).
private
dirs
/usr/share/foo, /usr/share/games/foo,
/usr/lib/foo and /usr/lib/games/foo private
directories are scanned for Python files by default (where
foo is binary package name). If your package is
shipping Python files in some other directory, add another
dh_python3 call in debian/rules with directory name as an
argument - you can use different set of options in
this call. If you need to change options (f.e. a list of
supported Python 3 versions) for a private directory that is
checked by default, invoke dh_python3 with
--skip-private option and add another call
with a path to this directory and new options.
debug
packages
In binary packages which name ends with -dbg,
all files in /usr/lib/python3/dist-packages/
directory that have extensions different than so or
h are removed by default. Use
--no-dbg-cleaning option to disable
this feature.
overriding
supported / default Python versions
If you want to override system's list of supported Python
versions or the default one (f.e. to build a package that
includes symlinks for older version of Python or compile .py
files only for given interpreter version), you can do that
via DEBPYTHON3_SUPPORTED and/or
DEBPYTHON3_DEFAULT env. variables.
Example:
3.2,3.3 limits the list of supported Python versions
to Python 3.2 and Python 3.3.
options
--version
show program's version number
and exit
-h,
--help
show help message and exit
--no-guessing-deps
disable guessing
dependencies
--no-dbg-cleaning
do not remove any files from
debug packages
--no-shebang-rewrite
do not rewrite shebangs
--skip-private
don't check private
directories
-v,
--verbose
turn verbose mode on
-i,
--indep
act on architecture independent
packages
-a,
--arch
act on architecture dependent
packages
-q,
--quiet
be quiet
-p PACKAGE, --package=PACKAGE
act on the package named
PACKAGE
-N NO_PACKAGE, --no-package=NO_PACKAGE
do not act on the specified
package
-V VRANGE
specify list of supported
Python 3 versions. See py3compile(1) for examples
-X REGEXPR, --exclude=REGEXPR
exclude items that match given
REGEXPR. You may use this option multiple times to build up
a list of things to exclude.
--compile-all
compile all files from given
private directory in postinst/rtupdate not just the ones
provided by the package (i.e. do not pass the
--package parameter to py3compile/py3clean)
--depends=DEPENDS
translate given requirements
into Debian dependencies and add them to ${python3:Depends}.
Use it for missing items in requires.txt
--recommends=RECOMMENDS
translate given requirements
into Debian dependencies and add them to
${python3:Recommends}
--suggests=SUGGESTS
translate given requirements
into Debian dependencies and add them to
${python3:Suggests}
--shebang=COMMAND
use given command as shebang in
scripts
--ignore-shebangs
do not translate shebangs into
Debian dependencies
see also
•
/usr/share/doc/python/python-policy.txt.gz
•
/usr/share/doc/python3-doc/README.PyDist
(python3-doc package)
•
py3compile , py3clean
•
dh_python2 , pycompile , pyclean
•
http://deb.li/dhp3 - most recent version of
this document
author
Piotr
Ożarowski, 2012-2013