[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#380583: ITP: debcache -- python module to maintain and serve a cache of Debian packages

Package: wnpp
Severity: wishlist
Owner: "Adeodato Simó" <dato@net.com.org.es>

* Package name    : debcache
  Version         : N/A
  Upstream Author : Adeodato Simó <dato@net.com.org.es>
* URL (bzr branch): http://people.debian.org/~adeodato/code/debian/debcache
* License         : MIT
  Programming Lang: Python
  Description     : python module to maintain and serve a cache of Debian packages

 debcache is another caching solution for Debian packages and other files found
 in Debian mirrors. It consists on a Python module with classes that implement
 the creation and maintenance of the cache in a transport-agnostic way, on top
 of which different front-ends and even user-end applications can be implemented.
 This package includes the following front-ends:
  * a standalone proxy to serve HTTP requests (like apt-proxy) [TODO]
  * a fast mod_python handler that lets Apache serve all the static files
  * a command-line client to pre-fetch packages based on the existing ones [TODO]
 The module also implements various cleanup mechanisms, including deletion of
 no longer referenced files, expiration based on age, and by number of versions
 (global or per distribution). [TODO]
 Other features include support for downloading Packages files via pdiff (like
 apt itself does), and denying clients access to those diffs by default.

                                     * * *

(The story: a year ago or so, and after repeated unhappiness with
apt-proxy and apt-cacher, I wrote my first implementation of a caching
system for Debian packages, in Ruby, which has been doing the job for
over a year, both at home and work.

Recently I became unhappy with it as well, and tried to like approx,
which was really easy even despite the lack of pdiff support (#367475),
but not so much after discovering it would delete source packages from
the cache (#374736), and really impossible after some hours of banging
my head against OCaml repeteadly trying to fix that bug myself.

Since updating my Ruby stuff to support pdiffs really made me shiver,
and since I knew of a pdiff implementation in Python by Florian Weimer,
I found myself one night putting some code together, and using it some
days after. It is still uncomplete, but as of today, SORTAWORKSFORME.)

Adeodato Simó                                     dato at net.com.org.es
Debian Developer                                  adeodato at debian.org
Beauty, brains, availability, personality: pick any two.

Reply to: