[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
============================================================