mirror of
git://projects.qi-hardware.com/wernermisc.git
synced 2024-11-15 06:17:31 +02:00
5a0444fd7e
The original idea was to just copy "stack" (now called "installed") to "best" when done. In this case, "best" would remain NULL if "install" had no entries, which would then be interpreted as a failure to resolve the prerequisites. However, since we allocate a new list for "best" anyway, this concern no longer exists, and we can also get rid of the contorted mechanism that was designed to work around this problem. (It was never put into action because I wanted to make a regression test for it first.) - prereq.c (prereq): removed commented-out and nonsensical avoidance of false error - test/prereq: added test case with no prerequisite |
||
---|---|---|
.. | ||
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.