wernermisc/qpkg/README

61 lines
2.4 KiB
Plaintext

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.