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

Re: Mass bug filing: dependencies on GTK 2



Quoting Andreas Henriksson (2020-04-29 12:11:32)
> On Wed, Apr 29, 2020 at 11:58:53AM +0200, Jeff wrote:
> > Hi Simon,
> > 
> > I don't understand why gscan2pdf is in the list, as the versions in
> > stable, testing and unstable are Perl packages which use libgtk3-perl.
> > 
> > Can you explain?
> 
> reverse-depends -r testing -b src:gtk+2.0 2>&1 | grep gscan2pdf
> * gscan2pdf                     (for libgail-common)
> * gscan2pdf                     (for libgail-common)

that tool relies on a remote server to operate (could this be made explicit in
the man page of the tool?), specifically it queries:

http://qa.ubuntuwire.org/rdepends/v1/bullseye/source/src:gtk+2.0

I wasn't able to figure out what code is generating this but usually the right
tool to analyze transitive dependency relationships is dose3 or tools using it
like build-rdeps from devscripts. In this case you would run for each binary
package produced by src:gtk+2.0:

    $ build-rdeps libgail-common
    [...]
    gscan2pdf

The disadvantage of build-rdeps is, that you have to run it for every binary
package produced by src:gtk+2.0 one-by-one as it does not yet automatically
turn a src:foo argument into the binary packages produced by foo. Another
disadvantage is, that it's often non-intuitive how non-direct dependencies are
pulled in. In this case it's a direct dependency so that's easy but in the
general case you can obtain the full dependency path by running dose-ceve
manually like this:

    packages=$(apt-get indextargets 'Created-By: Packages' 'Architecture: amd64' 'Component: main' 'Suite: unstable' --format '$(FILENAME)')
    sources=$(apt-get indextargets 'Created-By: Sources' 'Component: main' 'Suite: unstable' --format '$(FILENAME)')

    $ dose-ceve -T grml --deb-builds-from --deb-native-arch=amd64 debsrc://"$sources" deb://"$packages" > /tmp/graph.xml
    $ botch-graph-shortest-path /tmp/graph.xml /tmp/out.xml --source realpackage:src:gscan2pdf --target realpackage:src:gtk+2.0

The file /tmp/out.xml will then contain one of the paths from src:gscan2pdf to
src:gtk+2.0, which in this case (as we already knew) goes via libgail-common.

Thanks!

cheers, josch

Attachment: signature.asc
Description: signature


Reply to: