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

Re: Debian repository



On Sat, Sep 07, 2002 at 01:18:18AM -0600, Joel Baker wrote:
> As long as you don't need it to handle pools, or cope with any of the
> various special files that some things expect to appear in a 'proper'
> archive, or a few other things.

pools also have other advantages, eg. the same file is used for
both stable and unstable versions if it is the same version,
you don't have to resort to symlinks which don't work with squid.
It also means that all versions of the same binary appear
in the one directory, I think this is a cleaner approach.

Ideally katie would do this. With katie, I think I could also have
it add stuff to any bugs "closed", eg. "this bug has been fixed in
the version in my private archive, which will be uploaded to Debian
shortly". However, I took one look at katie, and couldn't get away fast
enough (seriously: maybe one day when there is good documentation for
beginners...)

In order to create an almost identical pools
archive[1], I hacked my own lightweight scripts. See
<URL:http://snoopy.apana.org.au/~ftp/debian/bin/>.

It might be better to explain how I use it rather then how it
works:

1. I upload new package to "new/" directory (should have called it
incoming...")

2. I force the permissions to be correct (maybe this should be
combined with step 3...)

cd /home/ftp/pub/debian/
chown root:staff new/*; chmod go+r new/*;

3. I install the package based on its changes file, eg.

bin/install ./new/*.changes

(note: the "./" prefix is essiential; this is due to my overuse
of "cut&paste").

4. run ./bin/doit (and ./bin/doit.selinux), which in theory should copy
the *.changes file to the same directories which will hold the Packages
files, and delete the old *.changes files. In practise it doesn't quite
do the complete job as of yet. I need to modify it by hand to delete the
old file.

5. run ./bin/build[3] which will extract a list of files for each
distribution from the *.changes files (and only the *.changes file; as
I result it may not list the *.orig.tar.gz file) to generate a "files"
file, which is used by by modified versions of dpkg-scanpackages and
dpkg-scansources to build the Package list.

Notes:
[1] almost, meaning /pool/<package>, as I don't need this
/pool/p/<package> layer.

[2] the programs that check *.changes also check the GPG signatures
(this also de-GPGs the file). However, in my pure touch on insanity,
I ignore the result returned by GPG, as some of my changes files
obtained from other developers are unsigned :-).

[3] listfiles (used by build) is almost identical to install; Here is a
good example of how not to reuse code...
-- 
Brian May <bam@debian.org>



Reply to: