This is the mail archive of the
cygwin-apps-cvs
mailing list for the cygwin-apps project.
[setup - the official Cygwin setup program] branch topic/libsolv, created. release_2.882-41-g4cbfa11
- From: jturney at sourceware dot org
- To: cygwin-apps-cvs at sourceware dot org
- Date: 24 Oct 2017 20:36:33 -0000
- Subject: [setup - the official Cygwin setup program] branch topic/libsolv, created. release_2.882-41-g4cbfa11
at 4cbfa1125f30b6c0c36f3e6e3cfe9a77a2e5c6d4 (commit)
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=4cbfa1125f30b6c0c36f3e6e3cfe9a77a2e5c6d4
commit 4cbfa1125f30b6c0c36f3e6e3cfe9a77a2e5c6d4
Author: Ken Brown <kbrown@cornell.edu>
Date: Fri Oct 20 06:59:54 2017 -0400
Don't override a Skip selection
Introduce SolverTasks::taskSkip, and generate it when the user chooses
to Skip a package that the solver wants to install. Implement it by
sending a SOLVER_LOCK command on the package name.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=70baff902374e45554f0e8370e4c74660731bf61
commit 70baff902374e45554f0e8370e4c74660731bf61
Author: Ken Brown <kbrown@cornell.edu>
Date: Thu Oct 19 14:44:45 2017 -0400
Fix the functionality of taskKeep
A taskKeep is generated whenever the user wants to keep an installed
version that's different from the default_version, where the latter is
whatever the solver has chosen. We need to make sure that
default_version is set appropriately wherever it is needed.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=993d4137439152f91ab0438c7a66d54adbbeef41
commit 993d4137439152f91ab0438c7a66d54adbbeef41
Author: Ken Brown <kbrown@cornell.edu>
Date: Tue Oct 17 08:12:48 2017 -0400
Extend the SolvableVersion member functions to the empty package
Currently some of these functions cause crashes when the package is
empty because the libsolv function pool_id2solvable unconditionally
dereferences its first argument ('pool').
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=420de5e1f5ca60ec90d7dcac9015c4a0be6336da
commit 420de5e1f5ca60ec90d7dcac9015c4a0be6336da
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Mon Oct 9 18:10:52 2017 +0100
Take command line package/category install/uninstall into account
Rather than overwriting the packagedb changes made from processing command
line options in ChooserPage::OnInit(), use the 'initial' flag to
changeTrust() in createListview() to take them into consideration.
--upgrade-also and --force-current are now handled directly.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=6935f5e0ae1f1445e6b2de0f80722ca9cf748b25
commit 6935f5e0ae1f1445e6b2de0f80722ca9cf748b25
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Mon Oct 9 15:37:06 2017 +0100
Change UI to add 'Sync' choice and change 'Test' to checkbox
Set the initial update mode in UI correctly:
- 'Sync', if --force-current option is used
- 'Keep', if packages are selected on command line without --upgrade-also
- 'Current', otherwise
Add mapping of 'Sync' to SolverSolution::updateForce to mapping of UI
update mode to solver update mode.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=9f241c2278fb541f14cc53901c6ba71fa7bad211
commit 9f241c2278fb541f14cc53901c6ba71fa7bad211
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Mon Oct 9 15:05:22 2017 +0100
Add distupgrade support to solver
Also, ignore change transactions (these are usually vendorchange as we
forget the vendor for installed packages)
Also, don't put unknown type transactions into the transaction list
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=ab301e6db8bfa5e2561c84a17c02c1ac8e3881fd
commit ab301e6db8bfa5e2561c84a17c02c1ac8e3881fd
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Sat Sep 30 23:23:29 2017 +0100
Non-existent source packages aren't accessible for installation
Prevent the src checkbox appearing for source packages which don't exist
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=f3eef3b9a814493644685ae84a28b79e818f8a3a
commit f3eef3b9a814493644685ae84a28b79e818f8a3a
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Fri Sep 29 14:46:46 2017 +0100
Use solver for initial pick list when upgrading
Use the solver to determine initial pick list for Curr or Test, rather than
directly picking packages. Thus the solver's initial solution in the pending
view should be the first thing the user sees.
Note: Keep is magical, and the package db pick list gets reset by
ChooserPage::keepClicked(), rather than going through changeTrust().
We don't unify these two paths, because the trust level passed to
changeTrust() gets recorded in PickView::defTrust and used by the line
picker in some mysterious way, and seems to only be expected to be
TRUST_CURR or TRUST_TEST. There's probably a subtle bug here, in that the
line picker might behave differently depending on if Curr or Test was
selected before Keep.
Drop passing upgrade flag to solver run after the user has made their
selections: the picker selection now reflects what the user is asking for.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=ef5e8b956636271a6a817d9052b239500bf3c77a
commit ef5e8b956636271a6a817d9052b239500bf3c77a
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Fri Sep 29 14:18:44 2017 +0100
Make removeEmptyCategories() explicit, rather than a side effect of defaultTrust()
It's unclear that this can ever do anything. The list of categories is
built as we see packages in those categories, so I don't know how we can
ever get an empty category.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=bf9e5838929a8d13405a79f256597a400f220cd0
commit bf9e5838929a8d13405a79f256597a400f220cd0
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Fri May 26 14:30:40 2017 +0100
Handle 'Source:' lines in setup.ini
This is somewhat awkward:
Storing the source package by Id rather than by name is looking a bit like a
premature optimization, but being to able to refer to source packages by Id
is very handy.
If the src pkg isn't seen until after the pkg, we don't know what it's Id
will be. So we have to go back and fixup the Ids after we've seen all
packages.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=da8992f19aca2a2e10ecc2a7d2d4cd66aee84972
commit da8992f19aca2a2e10ecc2a7d2d4cd66aee84972
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Tue Sep 26 19:43:12 2017 +0100
Link with libregex rather than libgnurx
Use -lregex rather than -lgnurx, as the Fedora mingw{32,63}-libgnurx
cross-packages only contain the library under that name.
(The Cygwin mingw63-{i686,x86_64}-libgnurx cross-packages have both names).
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=d094b288fcf2bfa12969bdfa63e99cc625695df6
commit d094b288fcf2bfa12969bdfa63e99cc625695df6
Author: Ken Brown <kbrown@cornell.edu>
Date: Sat Sep 16 11:39:40 2017 -0400
Allow user to refuse the default problem solutions
Add new method SolverSolution::db2trans to change the solver's
transaction list to reflect the package database. Use it if the user
refuses the default problem solutions. Reinstate warning that this
could cause breakage.
Remove PrereqPage::OnMessageCmd, which is no longer needed (and which
disallows clicking Next if the "Accept default problem solutions" box
is unchecked).
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=6f144f48a994329b7eb044786dffa064f306d82d
commit 6f144f48a994329b7eb044786dffa064f306d82d
Author: Ken Brown <kbrown@cornell.edu>
Date: Sat Sep 16 11:28:37 2017 -0400
Add a ficitious "base" package that requires all Base packages
Modify the solver's problem report so that it refers to "Base
packages" rather than the "base" package.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=5cdbd52a177f77400d59ea4cbd5625b60bd3fd72
commit 5cdbd52a177f77400d59ea4cbd5625b60bd3fd72
Author: Ken Brown <kbrown@cornell.edu>
Date: Sat Sep 16 11:23:04 2017 -0400
Mention how you can see what packages were added to resolve dependencies
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=98e0166d3a8666f5467d6ea851232b30eed9f7de
commit 98e0166d3a8666f5467d6ea851232b30eed9f7de
Author: Ken Brown <kbrown@cornell.edu>
Date: Fri Sep 8 11:16:24 2017 -0400
Add new member function SolverSolution::trans2db
This resets the package database to reflect the solver's transaction
list. Call this if the user clicks Back on the Prerequisite page, to
allow reviewing and making changes before accepting the solver's
solution.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=f06adac9c5e59028de5c22a76c493593cfd8851f
commit f06adac9c5e59028de5c22a76c493593cfd8851f
Author: Ken Brown <kbrown@cornell.edu>
Date: Sat Sep 16 10:50:37 2017 -0400
Factor out SolverTasks::setTasks()
Move the code from prereq.cc that makes a solver task list from packagedb
state into a new function SolverTasks::setTasks.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=8ec020159b139949824402016df06bb9434d9aec
commit 8ec020159b139949824402016df06bb9434d9aec
Author: Ken Brown <kbrown@cornell.edu>
Date: Sat Sep 2 14:35:58 2017 -0400
Simplify code in install.cc
Avoid passing around a packagemeta, when all we use is the package name.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=0b61ec9f3d5d9d5c1a6bd2b7eea69a46177c14a3
commit 0b61ec9f3d5d9d5c1a6bd2b7eea69a46177c14a3
Author: Ken Brown <kbrown@cornell.edu>
Date: Mon Sep 4 16:44:31 2017 -0400
Fix 'SolverTasks::taskList' typedef
Remove the '&'. This was causing source installs to all refer to the
same package, due to the call to q.add(pkg->desired.sourcePackage(),
SolverTasks::taskInstall) in PrereqChecker::isMet.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=f2e68a692745016a78f7b87d45bc641575c8fadb
commit f2e68a692745016a78f7b87d45bc641575c8fadb
Author: Ken Brown <kbrown@cornell.edu>
Date: Sat Sep 2 14:27:52 2017 -0400
Download only the packages being installed
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=00ae33a21c293740239653c698bf85b26a8c10cd
commit 00ae33a21c293740239653c698bf85b26a8c10cd
Author: Ken Brown <kbrown@cornell.edu>
Date: Wed Sep 6 10:44:27 2017 -0400
Don't create an "_installed_test_" repo
This prevents libsolv from knowing that an installed test release is
installed, since pool->installed is "_installed".
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=72a966faf3043bcdcc24117fcd12747cf3977e9d
commit 72a966faf3043bcdcc24117fcd12747cf3977e9d
Author: Ken Brown <kbrown@cornell.edu>
Date: Tue Sep 5 22:22:23 2017 -0400
Allow the installation of test packages without setting "Test" globally
Instead of disabling test repos when "Test" is not selected, just give
them lower priority than ordinary repos.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=88f589dddf1fbfe400f872f7dd9edca18e2d8b82
commit 88f589dddf1fbfe400f872f7dd9edca18e2d8b82
Author: Ken Brown <kbrown@cornell.edu>
Date: Sat Sep 16 10:06:26 2017 -0400
Ask solver to check dependencies of installed packages
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=d9b624b608fe9d928b9aaa1ea9fc666f0814ddd7
commit d9b624b608fe9d928b9aaa1ea9fc666f0814ddd7
Author: Ken Brown <kbrown@cornell.edu>
Date: Sat Sep 2 12:37:29 2017 -0400
Improve the reading of installed.db
When creating a packageversion for a package listed in installed.db,
use the information for the installed version rather than the
"current" version. Add a new function packagedb::findBinaryVersion to
help with this.
Get as much information about an installed information as possible
from the prior reading of setup.ini.
Improve detection of installed test releases. An installed test
release might not appear in setup.ini because it is no longer
available (e.g., it might have been replaced by a newer test release).
Detect this by comparing its version to the current version.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=46f9555e285027c142f1ebcecf4283a7cdd53325
commit 46f9555e285027c142f1ebcecf4283a7cdd53325
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Fri May 26 14:30:40 2017 +0100
Add a PackageSpecification() constructor which takes a package name and version
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=bf0d6ef981a33e0923ac8ab77eb5957a49bbc3ec
commit bf0d6ef981a33e0923ac8ab77eb5957a49bbc3ec
Author: Ken Brown <kbrown@cornell.edu>
Date: Sat Sep 16 07:19:55 2017 -0400
Add SolvableVersion::obsoletes()
v2: Add SolvableVersion::obsoletes(), factor out key-to-deplist code from
SolvableVersion::depends() as SolvableVersion::deplist()
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=2d070d68d484d46861781a3bd0e9e7f0888f1c79
commit 2d070d68d484d46861781a3bd0e9e7f0888f1c79
Author: Ken Brown <kbrown@cornell.edu>
Date: Sat Sep 2 11:57:25 2017 -0400
Fix setup.ini parsing
The IniDBBuilderPackage::process function wasn't fully resetting the
addPackageData for a new version of a package. This caused SHA512
failures among other things.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=a074752d4c884b5d32892799cc42d2dcc7de5285
commit a074752d4c884b5d32892799cc42d2dcc7de5285
Author: Ken Brown <kbrown@cornell.edu>
Date: Wed Aug 30 17:36:13 2017 -0400
Don't override a Keep selection
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=ad79503cb4a56ae2947d33e67c96cbbbc9e47691
commit ad79503cb4a56ae2947d33e67c96cbbbc9e47691
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Mon May 22 18:04:02 2017 +0100
Add obsoletes: support
Note that we need separate depends and obsoletes nodelists
v2:
Reset "obsoletes" between packages. Also add a debugging statement. (kbrown)
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=bd8906e509e090def62d45f7f283875811979b9a
commit bd8906e509e090def62d45f7f283875811979b9a
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Fri May 19 11:26:07 2017 +0100
Download/checksum/install/uninstall what transaction wants
Some of this goes rather around the houses to avoid lots of churm: In lots
of cases, we're looking up packagemeta for a given packageversion just so we
can use the pacakgemeta to access the name, which we could do via
packageversion just as easily.
We do actually need packagmeta for a couple of things: To note the package
as installed/uninstalled, and to note postinstalls scripts.
If IncludeSource is on source packages installs will have been added to the
task list in post-processing, so we don't need to handle that specially
anymore.
Source packages to be installed are kept in a separate queue as they are
installed differently to binary packages (root is /usr/src, install isn't
recorded, etc.)
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=aa7b995f5be09d8efad6ced1ab7a6894b5204e83
commit aa7b995f5be09d8efad6ced1ab7a6894b5204e83
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Sat Apr 29 15:43:52 2017 +0100
Use solver to check for problems and produce a list of package transactions
Convert chooser UI selections into a SolverTaskList
Apply SolverSolution to that task list (with choice of keep, upgrade,
upgrade with test, IncludeSource) to produce a vector of SolverTransactions.
Store a solution object in packagedb
The transaction list returned by the solver is postprocessed to add
reinstall and IncludeSource actions
Very crudely present solver problems in the PrereqChecker page UI, as text.
Change tickbox to say "accept default solutions" and don't allow to preceed
unless those solutions are accepted (ideally we would have a UI to choose
solutions). Remove warning about missing dependencies.
Also pass initial trust state to PrereqChecker
v2:
Fix comment typo (kbrown)
Tweak comment in OnActivate() (kbrown)
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=435f1b9b0c74850915cf607d7dab02a00f6241e3
commit 435f1b9b0c74850915cf607d7dab02a00f6241e3
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Sat Apr 29 15:39:46 2017 +0100
Drop in SolvableVersion as a replacement for packageversion
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=816dd510e250c22c86905bcf53887d166acccb67
commit 816dd510e250c22c86905bcf53887d166acccb67
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Fri Apr 28 17:39:26 2017 +0100
Remove packageversion class
Remove packageversion, _packageversion, defaultversion classes
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=32619b4a55b6f4ad28c9f14c31ae110fa8b31739
commit 32619b4a55b6f4ad28c9f14c31ae110fa8b31739
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Fri Apr 28 15:26:05 2017 +0100
Remove cygpackage class
v2:
Fix typo in bootstrap.sh (kbrown)
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=6b70c69c590a611ebe73d224480af3af12a8b6b4
commit 6b70c69c590a611ebe73d224480af3af12a8b6b4
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Fri Apr 7 21:52:17 2017 +0100
Change to using a libsolv pool for storing package information
Add class SolverVersion, a wrapper around a Solvable Id. The interface is
similar to class packageversion, the name change is just to make sure I've
got everything.
Place test packages into separate repos.
Expressing that curr: packages are preferred to prev: ones when that is not
the version number ordering should be done with epoch numbers.
Wire up various bits of data in packageversion to Solvable attributes,
including sourcepackage, stability, archive (packagesource) and depends.
Store sourcePackage() by the id rather than name, for much faster lookup.
SolverVersions for the same package can be ordered and compared by evr.
Factor out packagedb:addBinary() and also use it in IniDBBuilder, rather
that inlining the process of adding a package there. Add an analagous
packagedb:addSource() to do the same thing for source packages.
Change to reading installed.db after setup.ini's have been read, so we can
supplement the installed.db packages with information from setup.ini.
Make packagemeta::add_version() check for successful insertion of version.
Record the version at a stability level. The last version wins in setting
curr/test.
Use a Solver object inside packagedb
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=b825bbb62f04508c0cfdc3de47885183c5e67413
commit b825bbb62f04508c0cfdc3de47885183c5e67413
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Mon Apr 24 20:17:36 2017 +0100
Store package stability in class packageversion
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=3c9b64b58ada9af9156716188ad1a65ef1a4bed2
commit 3c9b64b58ada9af9156716188ad1a65ef1a4bed2
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Wed Apr 26 16:22:30 2017 +0100
Hoist scan() up from packageversion to packagemeta
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=a8daf81d52e790e7a38f2de7b92fa91099995bc9
commit a8daf81d52e790e7a38f2de7b92fa91099995bc9
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Tue Apr 25 23:44:08 2017 +0100
Hoist uninstall up to Installer::uninstallOne()
This calls packagemeta, which applies to packageversion (which delegates
through packageversion_ to cygpackage) to return lines from the .lst.gz file
(pretending that we know it contains a file list for that specific version)
and to remove the .lst.gz file when done.
Move this all up into Installer::uninstallOne(), where it's all in the same
place as the operation it is reversing, Installer::installOne().
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=24cdd437a125acb3a29dbb11154c5c859015c374
commit 24cdd437a125acb3a29dbb11154c5c859015c374
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Wed Apr 26 15:20:14 2017 +0100
Hoist pick() up to packagemeta
We are always writing packagemeta.desired.pick(bool, packagemeta). This
kind of suggests something not quite right.
The pick flag means install/reinstall, so despite being stored per
packageversion, is only significant to download/install for the desired
version.
There's a slight wrinkle in that we want to also set/clear this flag for the
source packageversion. We can't change this to point to packagemeta rather
than packageversion, as that may not be the same for all versions, so
instead just track this flag separately as srcpicked.
Note that there is still a complicated mapping between the state of desired
and pick and the action represented in the UI:
desired == empty, installed == desired : skip
desired == empty, installed != desired : uninstall
desired == installed, pick == true : reinstall
desired == installed, pick == false : keep
desired != installed, pick == true : upgrade
desired != installed, pick == false : invalid
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=ab91587449b9836bb3eda9d3a259a12cd2f5dc8c
commit ab91587449b9836bb3eda9d3a259a12cd2f5dc8c
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Tue May 23 22:19:15 2017 +0100
Hoist addScript() etc. up from packageversion to packagemeta
We're only interesting in storing scripts and later running them from the
desired version as we install it, so despite being stored per
packageversion, this is only significant for the desired version.
Hoist it up from packageversion to packagemeta.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=b1c448b72a736e4a7ca90c21d4246c0fe7a306fa
commit b1c448b72a736e4a7ca90c21d4246c0fe7a306fa
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Sat May 20 16:17:44 2017 +0100
Factor out reading installed.db
Rather that doing implicitly the first time a packagedb is constructed, do
it explicitly at a certain point in time that is early enough.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=fccc06f0c4b4b7465c7c80a30f65b0099531a176
commit fccc06f0c4b4b7465c7c80a30f65b0099531a176
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Fri May 5 12:36:42 2017 +0100
Opaque how PackageDepends is stored
We want to be more opaque about how the PackageDepends for a packageversion
is stored, so rather than exposing a pointer to a PackageDepends object
inside class packageversion, access it by value.
This also makes us be more explicit about set/get of package depends()
Fix some iterations to deal with depends() returning a value rather than a
pointer.
Also adjust dumpPackageDepends() appropriately
Also remove useless debug showing the dependency list before we build it.