On 12 December 2014 at 09:48, Ben Finney <ben+deb...@benfinney.id.au> wrote: > > Just about any non-trivial Python package (and some trivial ones) in > Debian will have many distinct modules. >
Possibly I am getting my terminology confused. You're familiar with ‘python-django’, as just one example. Including > django.contrib, django.core, etc. > In the case of Django, everything is under the django module. Do you mean “multiple distinct Python packages”? > Not sure calling it multiple distinct Python packages is correct, currently there is only one setup.py, and hence only one egg file produced. e.g. package contains setup.py module1/__init__.py module1/something.py module2/__init__.py module2/somethingelse.py debian/rules debian/control etc. As for Python source distributions: the ‘distutils’ library allows > nominating multiple top-level packages to build, and those can be > shipped in a single ‘sdist’ and appear in a single Debian source > package. Once built to a ‘bdist’, the resulting Python packages can be > built to distinct Debian binary packages. Often that makes sense. > Is this possible with dh --buildsystem=pybuild? I guess another possibility would be to have multiple python packages, but commit everything in one git tree, e.g.: package1/setup.py package1/module1/__init__.py package1/module1/something.py package2/setup.py package2/module1/__init__.py package2/module1/something.py debian/rules debian/control Wonder how to do this with dh and pybuild? Would the following be sane? %: dh $@ --with python2,python3 --buildsystem=pybuild --dir=package1 dh $@ --with python2,python3 --buildsystem=pybuild --dir=package2 (unfortunately the --dir parameter doesn't appear have any effect; lets pretend I worked out the correct command line option to do this) An example of a single source repository which contains multiple > distinct Python packages is Docutils. The ‘python-docutils’ Debian > source package builds Debian binary packages ‘python-docutils’, > ‘python-roman’, and the Python 3 equivalents. Looking at the wheezy version, it appears debian/rules was written entirely by hand, something I would like to try to avoid if possible. It also uses dh_pysupport which is considered obsolete. If I understand it correctly, it just grabs the roman.py file installed by ./setup.py and puts it into a package all by itself.