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

Bug#93612: Support for new archive structure



Package: cdimage.debian.org
Severity: important

So, we currently have support for signed overviews of everything
in a distribution, by way of the dists/woody/Release and
dists/woody/Release.gpg files.

This'd do us more good if as well as being on the archives, it were on
the CDs we'll eventually distribute.

For this to work, the Release and Release.gpg files should be verbatim
from the archive. For that to work, the Packages and Sources files also
must be verbatim from the archive. For that to work, the .debs have to
be in the same locations they are in the archive.

That is, the CD's for woody when it's released should look like:

	/cdrom/
		README
		README.htm
		...
		debian/
			dists/woody/
				Release
				Release.gpg
				main/binary-i386/
					Packages.gz
			pool/main/
				a/
					aalib/
						...

The Release file will list more Packages files than are actually on
the CD (it'll include other architectures and contrib and non-free),
and the Packages files will list more .debs than are actually on the CD
(since it'll list all .debs in the entire component, not just the ones
that fit on a single CD).

So, all in all, something like:

	MIRROR=/org/ftp.debian.org/ftp
	DEST=/org/scratch/ajt/woody-i386-cd
	SUITE=woody
	ARCH=i386
	VERSION=2.3

	mkdir -p $DEST/dists/$SUITE
	ln -s $SUITE $DEST/dists/stable
	ln -s $SUITE $DEST/dists/unstable
	ln -s $SUITE $DEST/dists/testing
	ln -s $SUITE $DEST/dists/frozen
	ln -s $SUITE $DEST/dists/Debian$VERSION

	mkdir -p $DEST/dists/$SUITE/main/binary-$ARCH
	mkdir -p $DEST/dists/$SUITE/main/source

	cp $MIRROR/dists/$SUITE/Release{,.gpg} $DEST/dists/$SUITE/
	cp $MIRROR/dists/$SUITE/main/binary-$ARCH/Packages* \
		$DEST/dists/$SUITE/main/binary-$ARCH/
	cp $MIRROR/dists/$SUITE/main/binary-$ARCH/Sources* \
		$DEST/dists/$SUITE/main/source/

	zcat $MIRROR/dists/$SUITE/main/binary-$ARCH/Packages.gz |
	  awk '/^Package: / { P = $2 } /^Filename:/ { F = $2 } /^Size:/ { S = $2 } /^$/ { print P, S, F }' | 
	  (
	    # install the first 650MB of packages
	    totsize=0
	    while read pkg size locn; do
		totsize=$(($totsize + $size/1000 + 1))
		if [ $totsize -gt 650000 ]; then continue; fi
		echo adding $pkg
		mkdir -p $DEST/$(dirname $locn)
		cp $MIRROR/$locn $DEST/$locn
	    done
	  )

...should be the sort of thing to do. That means not running
dpkg-scanpackages or dpkg-scansources (which should be a win). It might
trigger a bunch of apt-cdrom warnings still when people try to install
from it, but those are things that need to be fixed in apt-cdrom...

It should make it easier to calculate how much space you can use
for .debs; since you shouldn't need to add X MB packages files after
installing them.

Cheers,
aj

-- 
Anthony Towns <aj@humbug.org.au> <http://azure.humbug.org.au/~aj/>
I don't speak for anyone save myself. GPG signed mail preferred.

``_Any_ increase in interface difficulty, in exchange for a benefit you
  do not understand, cannot perceive, or don't care about, is too much.''
                      -- John S. Novak, III (The Humblest Man on the Net)



Reply to: