1
0
mirror of git://projects.qi-hardware.com/wernermisc.git synced 2024-11-28 09:29:40 +02:00
wernermisc/qpkg/test/resorder
Werner Almesberger 0229051f07 qpkg: change prerequisite resolution order to be fully depth-first
Until now, when considering adding a package, we processed its
dependencies after completing the current list of dependencies. E.g.,
if we had a package A that depended on B and C, B depended on D, and C
depended on E, then the sequence would have been A, B, C, ...

We now process the dependencies of a package immediately after
considering the package, so the sequence above would become A, B, D,
C, ...

The advantage of the new order is that it becomes easier to follow the
dependency tree, which will be beneficial for loop detection and for
ordering packages by installation order.

- prereq.c (resolve): change prerequisite resolution order such that the
  dependencies of the package being considered are processed immediately,
  instead of deferring them until the end of the current dependency list
- prereq.c (prereq): we can now pass the list of dependencies directly,
  without needing a list of lists element
- test/resorder: test resolution order
2010-11-21 17:34:17 -03:00

41 lines
476 B
Bash
Executable File

#!/bin/sh
. ./Common
###############################################################################
qpkg "resolution order" prereq A <<EOF
Package: A
Version: 0
Architecture: test
Depends: B, C
Filename: A
Package: B
Version: 0
Architecture: test
Depends: D
Filename: B
Package: C
Version: 0
Architecture: test
Depends: E
Filename: C
Package: D
Version: 0
Architecture: test
Filename: D
Package: E
Version: 0
Architecture: test
Filename: E
EOF
expect <<EOF
B
D
C
E
EOF