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

Re: JIGDO files with Security patches applied



On Fri, 30 Aug 2002, Richard Atterer wrote:

> Unfortunately not (AFAIK). But maybe there will be a new release,
> 3.0r1, in the next weeks, which will include all the security updates.

I do it that way. If you use that script, please change the origin to not
be debian.ch. The script is GPL. Of course you need to update BASE_URL to
reflect your local mirror information. Don't try 193.72.186.15, it's not
reachable from outside.

#! /bin/sh
# BUGS
#    - Missing doc/copyright.
#    - Cleanup
#    - security upgrades only (not point releases)
#    - no non-free

function fail {
   echo "$0: ERROR: $*" >&2
   exit 2
}

function warn {
   echo "$0: WARN: $*" >&2
}

[ $# = 1 ] || fail "output ISO-9660 file missing"

OUTPUT_FILE=$1
TMP_DIR=/scratch/crap/schaefer/cd_$$

DATE=`date "+%Y-%m-%d"`
BASE_URL=http://193.72.186.15/mirror/debian/debian-security/dists/woody/updates/
LABEL="Debian GNU/Linux 3.0r0 - Unofficial security update disk from debian.ch (${DATE})"

mkdir $TMP_DIR || fail "creating temp directory"

DEST_PACKAGES=$TMP_DIR/packages/dists/woody/updates/
PACKAGES_SOURCE_DIRS="http://193.72.186.15/mirror/debian/debian/ \
                      http://193.72.186.15/mirror/debian/debian-security/ \
                      http://193.72.186.15/mirror/debian/debian-non-US/";

mkdir $TMP_DIR/.disk \
   && echo > $TMP_DIR/.disk/info "$LABEL" \
   && mkdir -p $TMP_DIR/packages/dists/woody/updates
   for k in main contrib
   do
      for j in binary-all binary-i386 source
      do
         wget 2> /dev/null -O /dev/stdout deb $BASE_URL/$k/$j/Packages \
	    | awk '/^Filename: / { print $2; }' \
            | (while read line
               do
                  FOUND=0
                  for i in $PACKAGES_SOURCE_DIRS
                  do
                     case $i in
                        http://*) wget 2>/dev/null -O $DEST_PACKAGES/`basename $line` \
                                                   $i/$line
                                  if [ $? = 0 ]; then
                                     FOUND=1
                                  else
                                     rm -f $DEST_PACKAGES/`basename $line`
                                  fi;;
                        *) if [ -e $i/$line ]; then
                              FOUND=1
                              cp $i/$line $DEST_PACKAGES || fail "copying $i/$line"
                           fi;;
                     esac
                     if [ $FOUND = 1 ]; then
                        break # out of for
                     fi
                  done
                  if [ $FOUND = 0 ]; then
                     warn "couldn't find $line"
                  fi
               done)
      done
   done

if [ $? = 0 ]; then
   # Generating the Packages.gz file
   (cd $DEST_PACKAGES && dpkg-scanpackages . /dev/null | gzip -9 > Packages.gz)

   mkisofs -A "$LABEL" -r -o $OUTPUT_FILE $TMP_DIR
   rm -rf $TMP_DIR
else
   rm -rf $TEMPDIR
   exit 1
fi





Reply to: