mirror of
git://projects.qi-hardware.com/wernermisc.git
synced 2024-11-13 08:55:54 +02:00
07a4422641
- TODO: added section for tasks done - TODO: search tree optimization is done - TODO: added idea of supporting other database formats in the same family |
||
---|---|---|
.. | ||
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 - Query package databases ============================== 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.