1
0
mirror of git://projects.qi-hardware.com/wernermisc.git synced 2024-12-19 08:34:05 +02:00
wernermisc/qpkg
Werner Almesberger ab5df0a8d8 qpkg/test/bug-adding: found another manifestation of the same problem
This time, we even fail an assertion. Once again, it's because the state
changes are out of sync with the "under consideration" stack.
2010-11-22 21:49:50 -03:00
..
test qpkg/test/bug-adding: found another manifestation of the same problem 2010-11-22 21:49:50 -03:00
COPYING.GPLv2 qpkg: added README and COPYING.GPLv2 2010-11-20 06:29:57 -03:00
fixup.c qpkg: added parsing and recording of Provides data 2010-11-22 19:30:09 -03:00
fixup.h qpkg: added parsing and recording of Provides data 2010-11-22 19:30:09 -03:00
gobble.c qpkg: added parsing and recording of Provides data 2010-11-22 19:30:09 -03:00
gobble.h qpkg: added copyright headers and changed name to emphasize speediness 2010-11-20 07:29:18 -03:00
id.c qpkg: moved comp_versions from prereq.c to id.c 2010-11-21 21:14:04 -03:00
id.h qpkg: moved comp_versions from prereq.c to id.c 2010-11-21 21:14:04 -03:00
jrb.c qpkg/jrb.c: removed unnecessary inclusion of ctype.h and string.h 2010-11-19 22:32:39 -03:00
jrb.h qpkg: optimize duplicate lookup when inserting a new name 2010-11-19 22:20:15 -03:00
LICENSE.jrb qpkg: added James S. Plank's red-black trees 2010-11-19 19:17:47 -03:00
Makefile qpkg: move "struct pkg" and its allocation from gobble.c and qpkg.h to pkg.[hc] 2010-11-22 16:19:32 -03:00
pkg.c qpkg: added parsing and recording of Provides data 2010-11-22 19:30:09 -03:00
pkg.h qpkg: added parsing and recording of Provides data 2010-11-22 19:30:09 -03:00
prereq.c qpkg: light cleanup of prereq.c:resolve and change forgotten in last commit 2010-11-22 21:18:33 -03:00
prereq.h qpkg: added copyright headers and changed name to emphasize speediness 2010-11-20 07:29:18 -03:00
qpkg.c qpkg: added parsing and recording of Provides data 2010-11-22 19:30:09 -03:00
qpkg.h qpkg: move "struct pkg" and its allocation from gobble.c and qpkg.h to pkg.[hc] 2010-11-22 16:19:32 -03:00
rbtest.c qpkg: added copyright headers and changed name to emphasize speediness 2010-11-20 07:29:18 -03:00
README qpkg: added copyright headers and changed name to emphasize speediness 2010-11-20 07:29:18 -03:00
README.jrb qpkg: mention in jrb-related files that they've been heavily edited 2010-11-19 20:37:29 -03:00
TODO qpkg/TODO: some open policy questions (cyclic dependencies and use of Provides) 2010-11-22 20:27:49 -03:00
util.h qpkg/: initial commit (sneak preview only, doesn't work properly yet) 2010-11-19 14:00:15 -03:00

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.