Error in dependency handling

iti-asi

Member
Jul 14, 2009
52
0
6
València
www.iti.upv.es
Hi all! I found an error in DAB's handling of dependencies in dab install <package>. It doesn't recognise X | Y dependencies.

For instance, one of the instructions in my Makefile is dab install dlocate. This package in Debian Lenny has the following dependencies: awk, dctrl-tools | grep-dctrl (>= 0.11), dpkg (>= 1.8.0), locate | findutils (<< 4.2.31-2), perl. The locate or findutils dependency is bypassed, resulting in a system with broken dependencies.

I think that the error resides in the way the pkginfo function parses the list of dependencies. The regular expression doesn't match with the aforementioned kind of dependencies.

Thank you!
 
The attached Makefile and dab.conf are enough for creating a template which shows the error. After creating a VM from the template, you can open a console and check that packages are missing:

Code:
vztest:/# /etc/cron.daily/dlocate
sh: /usr/lib/locate/frcode: No such file or directory
vztest:/# apt-get check
Reading package lists... Done
Building dependency tree... Done
You might want to run `apt-get -f install' to correct these.
The following packages have unmet dependencies:
  dlocate: Depends: locate but it is not installable or
                    findutils (< 4.2.31-2) but 4.4.0-2 is installed
E: Unmet dependencies. Try using -f.
Placing dab install locate before dab install dlocate in the Makefile fixes the issue, but that should be automatically handled by DAB.
 

Attachments

The problem is that we do not check version numbers in depends. I will add this to my todo list. Thanks for reporting that bug.

- Dietmar