found 489911 0.7.21~exp1 thanks In apt-cmdline/apt-get.cc line 2424 (added in tausq's 2003-02-01 commit "fix some build-dep bugs; update changelog"), I found:
* TODO: this means that if there's a build-dep on A|B and B is * installed, we'll still try to install A; more importantly, * if A is currently broken, we cannot go back and try B. To fix * this would require we do a Resolve cycle for each package we * add to the install list. Ugh I think it would be worthwhile to fix this anyway: without looking into it more deeply, I imagine that checking for installed packages should not take very long. At worst, if we do not already, we might need to keep a cache of installed virtual packages. Fixing this bug would help mitigate other problems that arise from not investigating B when A is an uninstalled virtual package --- the user is likely to take matters into his own hands upon failure, and we should help him. A testcase for another manifestation of the same problem follows. I ran into the problem while trying to get build-dependencies for haskell-opengl and for freeglut (both build-depend on xlibmesa-gl-dev | ... | libgl-dev, and libgl-dev is a virtual package I already had). testcase-1.0/debian/changelog: testcase (1.0) experimental; urgency=low * Initial version. -- Jonathan Nieder <jrnie...@gmail.com> Wed, 04 Mar 2009 14:17:58 -0600 testcase-1.0/debian/control: Source: testcase Section: misc Priority: optional Maintainer: Jonathan Nieder <jrnie...@gmail.com> Build-Depends: debhelper (>= 7), testcase-obsolete | testcase-virtual Standards-Version: 3.8.0 Package: testcase Architecture: any Depends: ${misc:Depends} Description: Dummy package I hope never to build There is no reason to install this. testcase-provider-1.0/debian/changelog: testcase-provider (1.0) experimental; urgency=low * Initial version. -- Jonathan Nieder <jrnie...@gmail.com> Wed, 04 Mar 2009 14:57:16 -0600 testcase-provider-1.0/debian/control: Source: testcase-provider Section: misc Priority: optional Maintainer: Jonathan Nieder <jrnie...@tick.local> Build-Depends: debhelper (>> 7) Standards-Version: 3.8.0 Package: testcase-provider Architecture: all Depends: ${misc:Depends} Provides: testcase-virtual Suggests: testcase-obsolete Description: Dummy package providing a dependency for another The Suggests: puts testcase-obselete in the package database. both/debian/compat: 7 both/debian/copyright: Public domain. both/debian/rules: #!/usr/bin/make -f %: dh $@ with result: $ dpkg -l | { grep -q '^ii testcase-provider' && echo yes; } yes $ LANG=C sudo apt-get build-dep testcase Reading package lists... Done Building dependency tree Reading state information... Done Package testcase-obsolete is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. E: Package testcase-obsolete has no installation candidate This testcase could also be fixed by skipping obsolete virtual packages. Please let me know if I should file it separately. Hope that helps, Jonathan -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org