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 Cupt has?
- 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;
- synchronization by source versions;
- 'shell' subcommand;
- debdelta integration;
- and more.
What important features Cupt doesn't have?
- handling of cdrom:// URIs.
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 the package 'cupt' in Debian
- join #cupt on irc.debian.org
Why Cupt can't parse the configuration file /etc/apt/apt.conf.d/00CDMountPoint?
If you see the error like
E: syntax error: line 4, character 1: expected: semicolon (';') E: unable to parse the config file '//etc/apt/apt.conf.d/00CDMountPoint' W: skipped the configuration file '//etc/apt/apt.conf.d/00CDMountPoint'
then you have a buggy configuration file which doesn't follow the syntax rules from apt.conf(5). It misses the ';'. Here's how this file should be corrected:
Acquire::cdrom { mount "/media/cdrom"; }; Dir::Media::MountPath "/media/cdrom";
Notice the semicolon in the end of the third line.
Development
Repository
Cupt uses Git. URIs: browse, clone: git://github.com/jackyf/cupt.git.
Current/stable branch
The stable branch is 2.x (master in the Git repository). Implemented in C++0x, consists of a runtime library, download method plugins and a console front-end to them. This is the branch which will probably go to Debian Wheezy.
The HTML version of the latest tutorial may be found, apart from the binary packages, here.
Old stable branch
The 1.x branch was written in Perl. This is the branch which went to Debian Squeeze.