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

[debian-users:25892] Re: 'Packages' file



Hi, it's calo.

At Mon, 11 Dec 2000 22:44:06 +0900,
takai@xxxxxxxxxxxxxxxxxxxx wrote:
> 
> たかい@大阪です。
> debianディストリビューションに含まれる、Packages(.cd.gz)
> ファイルは、どうやって作ったらよいのでしょうか。

すでに dpkg-scanpackages と答えが出てますけれど。

スクリプトを作ったのがあるので、参考になるかも?
ただ、source には対応してません。
うちて、MO に作成して、apt-setup の filesystem でインストールできるよ
うになりました。

--
  calo

===File debian-dir.sh===========================
#! /bin/sh
# debian-dir.sh

archive=potato
version=2.2
origin=Debian
label=calo
architecture=i386

if [ ! -d dists ]; then
    echo "Not found dists directory"
    exit
fi

find -name '*.deb' -and -type f | grep binary-all | \
 while read x ; do
  d=`basename $x`
  b=`dirname $x`
  sec=`basename $b`
  a=`dirname $b`
  a=`dirname $a`/binary-$architecture/$sec
  if [ ! -d $a ]; then mkdir -p $a ; fi
  ( cd $a
    if [ ! -L $d ]; then
      ln -s ../../binary-all/$sec/$d .
    fi
  )
 done

for x in `find -name binary-$architecture -or -name proposed-updates` ; do
  ( cd $x
    pwd
    rm -f Packages Release
    for d in */*.deb *.deb ; do
    if [ ! -f $d ]; then
       touch Packages
       continue
    fi
    if [ -L $d ]; then
      d=../binary-all/$d
    fi
      dpkg-deb --info $d control | \
awk -v dir=`pwd` -v sec=$d -v size="`ls -l $d`" -v md5="`md5sum -b $d`" \
'{ print }
/~Package:/ { pk = $2 }
/^Version:/ { ver = $2 }
/^Architecture/ {
  arc = $2 
  sub(".+/dists","dists",dir)
  printf "Filename: %s/%s\n" , dir, sec
  split(size,k)
  split(md5,m)
  printf "Size: %d\nMD5sum: %s\n", k[5], m[1]
}
END { print "" }
'>> Packages

d=`pwd`
d=`dirname $d`
component=`basename $d`

cat <<EOF > Release
Archive: $archive
Component: $component
Version: $version
Origin: $origin
Label: $label
Architecture: $architecture
EOF
    done
  )
done

exit

################################################################
### end of script
============================================================