#799827 python3-apt: Parses incomplete list of dependencies

Package:
python3-apt
Source:
python-apt
Description:
Python 3 interface to libapt-pkg
Submitter:
Mert Dirik
Date:
2015-12-07 20:21:03 UTC
Severity:
normal
#799827#5
Date:
2015-09-22 23:59:18 UTC
From:
To:
Dear Maintainer,

TagSection object gives an incomplete list of dependencies if dependency
list is multi-line and have some comment lines between dependencies.

For example:

$ dget
http://snapshot.debian.org/archive/debian/20150801T033844Z/pool/main/t/tracker/tracker_1.4.1-1.dsc
$ cd tracker-1.4.1/
$ python3
debhelper (>= 9),
               dh-autoreconf,
               pkg-config,
               intltool (>= 0.40.0),
               gnome-common,
               libglib2.0-dev (>= 2.40.0),
               libpango1.0-dev (>= 1.0.0),
               libdbus-1-dev (>= 1.3.1),
               libgstreamer1.0-dev (>= 0.10.31),
               libgstreamer-plugins-base1.0-dev (>= 0.10.31),
               libsqlite3-dev (>= 3.7.9),
               libstemmer-dev,
               libpoppler-glib-dev (>= 0.16.0),
               libgsf-1-dev (>= 1.14.24),
               libexif-dev (>= 0.6),
               libpng12-dev (>= 1.2),
               libtiff-dev,
               libvorbis-dev (>= 0.22),
               libflac-dev (>= 1.2.1),
               libgtk-3-dev (>= 3.0.0),
               libtotem-plparser-dev,
               libmediaart-1.0-dev,
               zlib1g-dev,
               libexempi-dev (>= 2.1.0),

That is only half of the complete list:

$ cat debian/control
....
Build-Depends: debhelper (>= 9),
               dh-autoreconf,
               pkg-config,
               intltool (>= 0.40.0),
               gnome-common,
               libglib2.0-dev (>= 2.40.0),
               libpango1.0-dev (>= 1.0.0),
               libdbus-1-dev (>= 1.3.1),
               libgstreamer1.0-dev (>= 0.10.31),
               libgstreamer-plugins-base1.0-dev (>= 0.10.31),
               libsqlite3-dev (>= 3.7.9),
               libstemmer-dev,
               libpoppler-glib-dev (>= 0.16.0),
               libgsf-1-dev (>= 1.14.24),
               libexif-dev (>= 0.6),
               libpng12-dev (>= 1.2),
               libtiff-dev,
               libvorbis-dev (>= 0.22),
               libflac-dev (>= 1.2.1),
               libgtk-3-dev (>= 3.0.0),
               libtotem-plparser-dev,
               libmediaart-2.0-dev (>= 1.9.0),
               zlib1g-dev,
               libexempi-dev (>= 2.1.0),
#               evolution-dev (>= 2.32.0),
#               evolution-data-server-dev (>= 2.32.0),
#               libcamel1.2-dev (>= 2.32.0),
               libxml2-dev (>= 2.6),
               libupower-glib-dev (>= 0.9.0),
               libnautilus-extension-dev (>= 3.0),
               libenca-dev (>= 1.9),
               libiptcdata0-dev,
               uuid-dev,
               libgee-0.8-dev (>= 0.3),
               valac,
               gtk-doc-tools,
               libglib2.0-doc,
               xsltproc,
               graphviz,
               libunistring-dev,
               libgif-dev,
               libgxps-dev,
               libgirepository1.0-dev (>= 0.10.7-1~),
               gobject-introspection (>= 0.10)
....

Best regards,
Mert Dirik

#799827#10
Date:
2015-12-05 14:43:42 UTC
From:
To:
Control: tag -1 confirmed

This is to be expected. Multi-line field values cannot have comment
lines in them, sort of. But yes, the control files can.

We can change the code to parse the value with the # lines, but that
won't help anyone, as the build dependency parsing would fail.

So, what we need is a way to strip the comments from the file when
scanning it. But: That's not possible with APT's current architecture,
as far as I can tell.

So, this might take some time to fix.

There's a bug report in APT for it as well, IIRC. That one should
block this one.