Differences between revisions 20 and 21
Revision 20 as of 2011-04-10 19:50:18
Size: 2483
Editor: ?EugeneVLyubimkin
Comment: updating the status
Revision 21 as of 2011-04-10 19:56:19
Size: 2635
Editor: ?EugeneVLyubimkin
Comment: added a link to the tutorial
Deletions are marked like this. Additions are marked like this.
Line 74: Line 74:
The HTML version of the latest tutorial may be found, apart from the binary packages, [[http://people.debian.org/~jackyf/cupt2/tutorial.html|here]].


What is it?

Cupt is a partial re-implementation of APT suite from scratch.



  • 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



Cupt uses Git. URIs: browse, clone: git://github.com/jackyf/cupt.git.

Current/stable branch

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 went to Debian Squeeze.

Development branch

The 2.0.x branch (develop in the Git repository) is currently in the "release candidates" stage. Both the library and the front-end were rewritten in C++(0x). Last sources and binary packages are available in Debian experimental.

The HTML version of the latest tutorial may be found, apart from the binary packages, 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.