Today, I am opening the source code for APT2. APT2 is a LGPL-2.1+
licensed, multi-distribution[1], package management solution consisting
of a library (apt-2.0) and a command-line frontend (capt); both
implemented in C.
The Advanced Package Tool library is a library for package manager
development in C. Building upon GLib; it features a GVariant-based cache
that provides fast access to all information needed to perform common
package management operations, parsers for Debian control files,
abstraction of system-specific parts, and more.
The capt tool is the command-line front-end to the library. It is an
all-in-one tool similar to capt.
For now, only basic things are available such as parsers for control
files and configuration, pinning, the cache, version comparison, and a
few other things. For pinning; APT2 supports by-source-package pins,
expressions (regular and glob()-like) in all fields (except for
Pin-Priority, of course); all in all, the same superset cupt has.
Missing things includes downloaders, solvers, package management
(APT<->dpkg bridge), source package in the cache, bindings, graphical
frontend (gapt; most probably written in Vala), and dburrow's wishlist
(configuration writing, multi-layered configuration). And multi-arch
handling is not finalized, either.
You should not confuse this APT2 with the previous attempt last year.
Last year's attempt was written in Vala and used an SQLite 3 database
and was considered to be too slow. Furthermore, it required gobject-2.0
which is not very speedy either.
Things on the near, easy TODO list:
* Converting Apt*Iter to array-like objects; much better from a
multi-threaded point of view.
* Group dependencies into OR-groups
* Only allow a single thread (of all threads in the system) to
lock AptSystem (currently it's per-process)
Getting it:
git clone git://git.debian.org/git/users/jak/apt2.git
API reference:
http://people.debian.org/~jak/apt2-doc/
IRC:
#apt2 on OFTC
Special thanks for ideas and concept reviews:
* Daniel Burrows <dburrows@debian.org>
* Luca Bruno <lethalman88@gmail.com>
Notes:
1. multi-distribution: In theory; in practice, only a Debian system
exists.
--
Julian Andres Klode - Debian Developer, Ubuntu Member
See http://wiki.debian.org/JulianAndresKlode and http://jak-linux.org/.
Attachment:
signature.asc
Description: This is a digitally signed message part