mirror of
git://projects.qi-hardware.com/wernermisc.git
synced 2024-12-18 15:53:10 +02:00
0229051f07
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 |
||
---|---|---|
.. | ||
test | ||
COPYING.GPLv2 | ||
gobble.c | ||
gobble.h | ||
id.c | ||
id.h | ||
jrb.c | ||
jrb.h | ||
LICENSE.jrb | ||
Makefile | ||
prereq.c | ||
prereq.h | ||
qpkg.c | ||
qpkg.h | ||
rbtest.c | ||
README | ||
README.jrb | ||
TODO | ||
util.h |
qpkg - Quick package database query =================================== qpkg is a tool that reads package databases of the kind used by opkg in OE-derived Jlime (which are very similar to what dpkg and apt use) and that can answer a number of queries on them. While being able to perform some of the database operations commonly found in package managers, qpkg is not a package manager itself. However, it may be used to help a package manager do its work faster. Except for the files jrb.h and jrb.c, this work is distributed under the terms of the GNU GENERAL PUBLIC LICENSE, Version 2: This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. For your convenience, a copy of the complete license has been included in the file COPYING.GPLv2. The implementation of red-black trees, in jrb.h and jrb.c, is distributed under the terms of the GNU Lesser General Public License, Version 2.1: This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. For your convenience, the original copyright notice accompanying JRB and a copy of the license have been included in the files READNE.jrb and LICENSE.jrb, respectively. Objectives ---------- The original motivation for qpkg comes from the observation that opkg consumes inordinate amounts of memory when determining the prerequisites for installing a package on a given system, and the proof of concept implementation of a shell script wrapper by Rafael Zurita, that performs a large subset of the same task with much less overhead. qpkg thus aims to load and parse large package databases as quickly and memory-efficiently as possible, and to provide a number of query functions that operate on the data. A second objective is to provide a means to test the integrity of a package database, and to perform simple "what if" queries, e.g., to test which packages would become uninstallable if a package was to be removed or a conflict was to be introduced. This is to aid not only in general housekeeping of package databases, but also to assist in generating - at the package level - restricted distributions derived from a master distribution.