Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

dh_pysupport(1) [debian man page]

DH_PYSUPPORT(1) 						  python-support						   DH_PYSUPPORT(1)

NAME
dh_pysupport - use the python-support framework to handle Python modules SYNOPSIS
dh_pysupport [debhelper options] [-V X.Y] [-X item [...]] [-n] [module dirs ...] DESCRIPTION
dh_pysupport is a debhelper program that will scan your package, detect public modules in /usr/lib/pythonX.Y/site-packages, and move them to the shared Python modules location. It will generate appropriate postinst/prerm scripts to byte-compile modules installed there for all available python versions. It will also look for private Python modules and will byte-compile them with the current Python version. You may have to list the directories containing private Python modules. If a file named debian/pyversions exists, it is used to determine the python versions with which the package can work. Appropriate dependencies on python-support, python and pythonX.Y are put in ${python:Depends}. The ${python:Versions} and ${python:Provides} optional substitution variables are made available as well. OPTIONS
module dirs If your package installs private python modules in non-standard directories, you can make dh_pysupport check those directories by passing their names on the command line. By default, it will check /usr/lib/$PACKAGE, /usr/share/$PACKAGE, /usr/lib/games/$PACKAGE and /usr/share/games/$PACKAGE -n, --noscripts Do not modify postinst/postrm scripts. -d This option is deprecated. -V X.Y Force private modules to be bytecompiled with the specific X.Y python version, regardless of the default python version on the system. -X item, --exclude=item Exclude files that contain "item" anywhere in their filename from being taken into account to generate the python dependency. It also excludes them from byte-compilation. You may use this option multiple times to build up a list of things to exclude. CONFORMS TO
Python policy as of 2006-08-10 SEE ALSO
debhelper(7) This program is a part of python-support but is made to work with debhelper. AUTHORS
Josselin Mouette <joss@debian.org>, Raphael Hertzog <hertzog@debian.org> 1.0.15 2012-06-30 DH_PYSUPPORT(1)

Check Out this Related Man Page

DH_PYTHON2()															      DH_PYTHON2()

NAME
dh_python2 - calculates Python dependencies, adds maintainer scripts to byte compile files, etc. SYNOPSIS
dh_python2 -p PACKAGE [-V [X.Y][-][A.B]] DIR_OR_FILE [-X REGEXPR] DESCRIPTION
QUICK GUIDE FOR MAINTAINERS o if necessary, describe supported Python versions via X-Python-Version field in debian/control, o build-depend on python or python-all or python-all-dev (>= 2.6.6-3~), o build module/application using its standard build system, remember to build extensions for all supported Python versions (loop over pyversions -vr), o install files to the standard locations, add --install-layout=deb to setup.py's install command if your package is using distutils, o add python2 to dh's --with option, or: o include /usr/share/cdbs/1/class/python-distutils.mk in debian/rules and depend on cdbs (>= 0.4.90), or: o call dh_python2 in the binary-* target, o add ${python:Depends} to Depends NOTES In order to support more than one Python version in the same binary package, dh_python2 (unlike dh_pycentral and dh_pysupport) creates sym- links to all supported Python versions at build time. It means binNMU (or sourceful upload in case of architecture independent packages) is required once a list of supported Python version is changed. It's faster and more robust than its competitors, though. dependencies dh_python2 tries to translate Python dependencies from requires.txt file to Debian dependencies. Use debian/pydist-overrides or --no-guess- ing-deps option to override it if the guess is incorrect. If you want dh_python2 to generate more strict dependencies (f.e. to avoid ABI problems) create debian/python-foo.pydist file. See /usr/share/doc/python-doc/README.PyDist (provided by python-doc package) for more information. If the pydist file contains PEP386 flag or set of (uscan like) rules, dh_python2 will make the depedency versioned (version requirements are ignored by default). namespace feature dh_python2 parses Egg's namespace_packages.txt files (in addition to --namespace command line argument(s)) and drops empty __init__.py files from binary package. pycompile will regenerate them at install time and pyclean will remove them at uninstall time (if they're no longer used in installed packages). It's still a good idea to provide __init__.py file in one of binary packages (even if all other pack- ages use this feature). 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_python2 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 versions) for a private directory that is checked by default, invoke dh_python2 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/python2.X/{site,dist}-packages/ directory that have extensions differ- ent than so or h are removed by default. Use --no-dbg-cleaning option to disable this feature. pyinstall files Files listed in debian/pkg.pyinstall file will be installed as public modules for all requested Python versions (dh_install doesn't know about python's site- vs. dist-packages issue). Syntax: path/to/file [VERSION_RANGE] [NAMESPACE] debian directory is automatically removed from the path, so you can place your files in debian/ directory and install them from this loca- tion (if you want to install them in "debian" namespace, set NAMESPACE to debian). If NAMESPACE is set, all listed files will be installed in .../dist-packages/NAMESPACE/ directory. Examples: o foo.py installs .../dist-packages/foo.py for all supported Python versions o foo/bar.py 2.6- installs .../dist-packages/foo/bar.py for versions >= 2.6 o foo/bar.py spam installs .../dist-packages/spam/bar.py o debian/*.py spam.egg 2.5 installs .../python2.5/site-packages/spam/egg/*.py files pyremove files If you want to remove some files installed by build system (from all supported Python versions or only from a subset of these versions), add them to debian/pkg.pyremove file. Examples: o *.pth removes .pth files from .../dist-packages/ o bar/baz.py 2.5 removes .../python2.5/site-packages/bar/baz.py 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 DEBPYTHON_SUPPORTED and/or DEBPYTHON_DEFAULT env. variables. Example: 2.5,2.7 limits the list of supported Python versions to Python 2.5 and Python 2.7. OPTIONS
--version show program's version number and exit -h, --help show help message and exit --no-guessing-versions disable guessing other supported Python versions --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 versions. See pycompile(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 pycompile/pyclean) --depends=DEPENDS translate given requirements into Debian dependencies and add them to ${python:Depends}. Use it for missing items in requires.txt --recommends=RECOMMENDS translate given requirements into Debian dependencies and add them to ${python:Recommends} --suggests=SUGGESTS translate given requirements into Debian dependencies and add them to ${python:Suggests} --namespace use this option (multiple time if necessary) if namespace_packages.txt is not complete --ignore-namespace ignore Egg's namespace declaration and --namespace option. This option will disable removing (and recreating at install time) empty __init__.py files. Removing namespace_packages.txt from egg-info directory has the same effect. --clean-pycentral generate maintainer script that will remove byte code generated by python-central helper --shebang=COMMAND use given command as shebang in scripts --ignore-shebangs do not translate shebangs into Debian dependencies SEE ALSO
o /usr/share/doc/python/python-policy.txt.gz o /usr/share/doc/python-doc/README.PyDist (python-doc package) o pycompile(1), pyclean(1) o dh_python3(1), py3compile(1), py3clean(1) o Wiki page about converting package to dh_python2: http://wiki.debian.org/Python/TransitionToDHPython2 DH_PYTHON2()
Man Page