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

Re: apt-dupdate? anyone else using it?



Kevin Mark wrote:
Hi people waiting for sarge!
I know lots of folks like me use modems and want a faster update.
Have you tried apt-dupdate?
Cheers,
Kev

Don't know about apt-dupdate, but I use apt-qupdate which seems to work well for me:

pretzalz@Pretzalz:~$ cat /usr/local/sbin/apt-qupdate
#!/bin/sh

url=http://merkel.debian.org/~aba/debian
tmp=$(tempfile) || exit
cd /var/lib/apt/lists
for p in *_Packages *_Sources; do
  file=${p##*_}
  path=${p##*_dists_}
  if [ "$path" = "$p" ]; then continue; fi
  path=$(echo ${path%_*} | tr _ /)
  >"$tmp"
  url2="${url}/dists/${path}/${file}.diff"
  wget -q -O "$tmp" "${url2}/Index"
  if [ -s "$tmp" ]; then
    cp "$p" "${p}.bak"
    untiffani "$p" "$tmp" "${url2}"
  fi
done
rm -f "$tmp"

apt-cache gencaches
pretzalz@Pretzalz:~$ cat /usr/local/sbin/untiffani

#!/bin/sh

file="$1"
index="$2"
patchurl="${3%/}"
patch=$(tempfile)

sizeof () {
 wc -c "$1" | sed 's/^ *//;s/ .*//'
}

c_sha1=""
c_size="-1"
cur_sha1 () {
  if [ "$c_sha1" = "" ]; then
    c_sha1=$(sha1sum < "$file" | cut -d\  -f1)
  fi
  echo $c_sha1
}
cur_size () {
  c2_size=$(sizeof "$file")
  if [ $c2_size != $c_size ]; then
    c_size=$c2_size
    c_sha1=""
  fi
  echo $c_size
}

patch_sha1_size () {
sed -n '/^SHA1-Patches:/,/^[^ ]/'"s/^ \([^ ]*\) *\([^ ]*\) $1\$/\1 \2/p" "$index"
}

sed -n '/^SHA1-History:/,/^[^ ]/s/^ / /p' "$index" |
  while read n_sha1 n_size n_patch; do
    echo "try: $n_patch"
    if [ $(cur_size) = "$n_size" ]; then
      if [ $(cur_sha1) = "$n_sha1" ]; then
        wget -q -O- "$patchurl/${n_patch}.gz" | zcat > $patch
        p_size=$(sizeof $patch)
        p_sha1=$(sha1sum < $patch | cut -d\  -f1)

        if [ "$p_sha1 $p_size" = "$(patch_sha1_size $n_patch)" ]; then
          echo "applying patch $n_patch"
          (cat $patch; echo "wq") | ed "$file" >/dev/null
          c_size=0
        fi
      fi
    fi
  done

rm -f "$patch"


Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: