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

Re: Magical Python Depends was: Re: Dependencies with cType



* Stefano Rivera <stefanor@debian.org>, 2011-10-04, 01:19:
BTW, I'm slightly disturbed by the fact, that so many people believe that a Python helper does code inspection (or maybe use some magical means...) to generate python:Depends. It seems to be a new phenomenon, I don't recall any questions like that a year ago or so.
I remember being confused about this ~5 years ago when I started working on packaging Python stuff. Maybe it's just that there's an upswing in new people recently?
I'm sure I did too.

I didn't! :P

Maybe it's because I did Perl stuff before, so I knew what dh_perl does and I expected similar things from dh_py$HELPEROFCHOICE.

I knew that dh_perl doesn't do much magic, because it's succintly explained in the manual page:
| The program will look at Perl scripts and modules in your package, and
| will use this information to generate a dependency on perl or perlapi.
| The dependency will be substituted into your package's control file
| wherever you place the token ${perl:Depends}.

Now let's compare it with what manual pages for Python helpers say about python:Depends.

dh_python
=========
| The program will look at Python scripts and modules in your package,
| and will use this information to generate a dependency on python, with
| the current major version, or on pythonX.Y if your scripts or modules
| need a specific python version. The dependency will be substituted into
| your package's control file wherever you place the token
| ${python:Depends}.

dh_pysupport
============
| Appropriate dependencies on python-support, python and pythonX.Y are
| put in ${python:Depends}.

dh_pycentral
============
Nothing. No, seriously, there's not a single word about python:Depends. Well, maybe except this:
| -Xitem, --exclude=item
|     Exclude files that contain "item" anywhere in their filename from
|     being taken into account to generate the python dependency. You
|     may use this option multiple times to build up a list of things to
|     exclude.

dh_python2
==========
| DESCRIPTION
|    QUICK GUIDE FOR MAINTAINERS
[...]
|       · add ${python:Depends} to Depends,
|
|   NOTES
[...]
|   dependencies
|      dh_python2 tries to translate  Python  dependencies  from
|      requires.txt file to Debian dependencies, use
|      debian/pydist-overrides or --no-guessing-deps option to override
|      it. 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.
[...]
| OPTIONS
[...]
|      --depends=DEPENDS
|             translate given requirements into Debian dependencies
|             and add them to ${python:Depends}. Use it for missing
|             items in requires.txt


To summarize:
- python-support is a bit too hand-wavy.
- python-central is a complete failure.
- dh_python2 documents its fancy features, but not the basic functionality.
- dh_python rules. ;P

--
Jakub Wilk


Reply to: