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

Re: possible MBF: automatically detecting unused build dependencies


Quoting Steve Langasek (2014-07-07 18:36:50)
> There seem to still be some false positives here.  pam is on the list because
> of a build-dependency on libdb-dev, freetds and unixodbc are there because of
> a build-dependency on libreadline-dev.  Both of these are metapackages that
> pull in version-specific -dev packages.  So something seems to be wrong with
> the detection of "empty" packages yet?

Empty packages are not "detected". The first phase will find empty packages
because they do not contain any files and thus they are detected as build
dependencies of which no files were used. Since empty packages are mostly meta
packages and we do not want to include them, we replace them by a fake equivs
package without dependencies. If the build still succeeds, that means that the
meta package is indeed not needed.

Lets find out what happens here. Steps to reproduce:

$ sudo debootstrap sid debian-sid
# the pam build needs /proc mounted
$ sudo mount -o bind /proc debian-sid/proc
$ sudo chroot debian-sid
$ echo "deb-src http://ftp.us.debian.org/debian sid main" >> /etc/apt/sources.list
$ apt-get update
$ apt-get install build-essential equivs
$ apt-cache show libdb-dev | grep -v "^Depends:" | grep -v "^Conflicts:" | equivs-build -
$ dpkg -i libdb-dev_5.3.0_amd64.deb
$ apt-get build-dep pam
$ dpkg -l | grep libdb
ii  libdb-dev      5.3.0    amd64 Dummy package to fulfill package dependencies
ii  libdb5.3:amd64 5.3.28-5 amd64 Berkeley v5.3 Database Libraries [runtime]
$ apt-get source --build pam
$ echo $?

I get the same effect when replacing pam by freetds and unixodbc and libdb-dev
by libreadline-dev.

Can you point out at which step my error is?


cheers, josch

Reply to: