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
Can you point out at which step my error is?