Python / Debian package dependencies
Steven Samuel Cole
steven.samuel.cole at gmail.com
Fri Nov 21 17:09:10 EST 2008
That's exactly the piece of information I needed! :-)
The control file created by setdeb (stdeb_run_setup, to be precise)
looks like this (some lines will get wrapped):
Source: <my package name>
Maintainer: <my name> <my email address>
Section: python
Priority: optional
Build-Depends: python-setuptools (>= 0.6b3-1), python-all-dev (>=
2.3.5-11), debhelper (>= 5.0.38), python-central (>= 0.5.6)
Standards-Version: 3.7.2
XS-Python-Version: all
Package: python-<my package name>
Architecture: all
Depends: ${python:Depends}
Recommends:
Suggests:
XB-Python-Version: ${python:Versions}
Provides: ${python:Provides}
Description: <my description>
So apparently, stdeb adds setuptools by itself already, but it does not
add the dependency packages I specified in setup.py.
When I now append python-psycopg2 (>= 2.0.6-3) to the Depends: copy the
.deb file to the virtual machine and run sudo dpkg -i python-<my package
name>-all.deb, I get the following output:
Selecting previously deselected package python-<my package name>.
(Reading database ... 17508 files and directories currently installed.)
Unpacking python-<my package name> (from python-<my package
name>_0.0.1-4927-1_all.deb) ...
dpkg: dependency problems prevent configuration of python-inro-marvin-setup:
python-<my package name> depends on python-psycopg2 (>= 2.0.6-3); however:
Package python-psycopg2 is not installed.
dpkg: error processing python-<my package name> (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
python-<my package name>
My conclusions:
1. I must use a 'higher-level' tool than dpkg to install the package
which automatically resolves and installs dependency packages. There has
got to be a way to use apt-get for .deb files which do not reside
(yet) in a repository.
2. stdeb does not seem to 'transform' dependencies specified in setup.py
into dependencies in its output files. There seems to be a mailing list
for stedb at http://mail.python.org/mailman/listinfo/distutils-sig. I'll
try there.
Thanks for your help!
Cheers,
Steve
Stephane Bulot schrieb:
> I'm not familiar with stdeb, but dpkg-buildpackage needs a file called
> "control". This is this file that will be used to generate deb archive
> with the good dependancies. Into this file, there are two fields,
> Build-Depends and Depends, that give to dpkg-buildpackage what are the
> package dependancies.
> Check this "control" file content, you should have psycopg2 and
> setuptools (if it is really a dependancy) in the Depends field. If it
> not the case, do it manually. Do not forget to check and notify the
> version of this dependancies.
> Regards.
> Stephane
>
> 2008/11/21 Steven Samuel Cole <steven.samuel.cole at gmail.com
> <mailto:steven.samuel.cole at gmail.com>>
>
> Hey Paul
>
> thanks for your reply! :-)
>
> 2008/11/21 Paul Boddie <paul at boddie.org.uk <mailto:paul at boddie.org.uk>>:
> > Are you saying that psycopg2 needs setuptools for the setup.py script
> > to work? This isn't generally the case (or wasn't), but maybe the
> > "entry point" is a setuptools thing which would then demand that
> > software's presence.
>
> Not exactly. My package requires psycopg2 to run and (from what it
> looks like to me) setuptools must be available in order to use its
> installation mechanism (setup.py, entry points, etc.)
>
> > How does stdeb know which package provides psycopg2? I'm not really
> > familiar with stdeb - I write my own packaging files - but might
> it be
> > the case that you need to specify python-psycopg2 instead?
>
> I tried python-psycopg2, but that caused a ValueError in stdeb about a
> 'parenthesized list' -psycopg2.
> By trial & error I found out that I seem to have to use the package
> name without the python- bit, because then stdeb does run without
> error.
>
> If the name was really the issue, I would at least expect stdeb to
> report an error about an unknown package or so...
>
> Cheers,
>
> Stefan
>
> 2008/11/21 Steven Samuel Cole <steven.samuel.cole at gmail.com
> <mailto:steven.samuel.cole at gmail.com>>:
> > Hey Paul
> >
> > thanks for your reply! :-)
> >
> > 2008/11/21 Paul Boddie <paul at boddie.org.uk
> <mailto:paul at boddie.org.uk>>:
> >> Are you saying that psycopg2 needs setuptools for the setup.py
> script
> >> to work? This isn't generally the case (or wasn't), but maybe the
> >> "entry point" is a setuptools thing which would then demand that
> >> software's presence.
> >
> > Not exactly. My package requires psycopg2 to run and (from what it
> > looks like to me) setuptools must be available in order to use its
> > installation mechanism (setup.py, entry points, etc.)
> >
> >> How does stdeb know which package provides psycopg2? I'm not really
> >> familiar with stdeb - I write my own packaging files - but might
> it be
> >> the case that you need to specify python-psycopg2 instead?
> >
> > I tried python-psycopg2, but that caused a ValueError in stdeb
> about a
> > 'parenthesized list' -psycopg2.
> > By trial & error I found out that I seem to have to use the package
> > name without the python- bit, because then stdeb does run without
> > error.
> >
> > If the name was really the issue, I would at least expect stdeb to
> > report an error about an unknown package or so...
> >
> > Cheers,
> >
> > Stefan
> >
> --
> http://mail.python.org/mailman/listinfo/python-list
>
>
More information about the Python-list
mailing list