Cupt
What is it?
Cupt is a partial re-implementation of APT suite from scratch.
FAQ
Why?
- to finally avoid some bugs in APT design;
- to introduce some useful features;
- to make an extensible and readable codebase;
The first announcement is here. Also, on debian-devel-announce.
What infrastructure does Cupt use?
It uses the same APT infrastructure, e.g. index files, deb cache archive files, configuration files. It understands some of widely used APT options.
What features has Cupt already?
- full-case strict dependency problem resolver;
- command-line and APT-like option name checker;
- case-sensitive search;
- pinning by source package name;
- pinning by package groups using shell-like patterns;
- configurable 'depends' and 'rdepends' subcommands;
- support of LZMA-compressed indexes;
- 'satisfy' subcommand;
- source versions synchronization;
- 'shell' subcommand;
- debdelta integration.
What important features Cupt doesn't have?
- handling of cdrom:// URIs;
- PDiffs support.
Why Perl was chosen?
- I like Perl
- code conciseness
- code extensibility
- several useful libraries available
Can I use Cupt along with libapt-based package managers?
Yes, you can mix apt-get/apt-cache/aptitude/etc. with cupt without bad consequences.
How to feedback?
- file bugs against 'cupt' package in Debian
- join #cupt on irc.debian.org
- mail me directly
Development status
Current/Stable
The stable branch is 1.5.x (master in the Git repository). Implemented in Perl, consists of Perl modules and a console front-end to them. This is the branch which will go to Debian Squeeze.
Development
The 2.0.x branch (develop in the Git repository) is currently under active development, "alpha" stage. Both the library and the front-end are being rewritten in C++(0x). Last sources, binary packages for architecture i386 and more details can be found here.
Why the language was changed to C++?
I want Cupt to be also fast and not RAM-hungry. Perl intepreter limits an achievement of these goals significantly.