summaryrefslogtreecommitdiff
path: root/mk/bulk/upload
diff options
context:
space:
mode:
Diffstat (limited to 'mk/bulk/upload')
-rw-r--r--mk/bulk/upload80
1 files changed, 74 insertions, 6 deletions
diff --git a/mk/bulk/upload b/mk/bulk/upload
index d31b3918640..e7d88f4cada 100644
--- a/mk/bulk/upload
+++ b/mk/bulk/upload
@@ -1,14 +1,25 @@
#!/bin/sh
-# $NetBSD: upload,v 1.18 2004/04/19 18:39:09 hubertf Exp $
+# $NetBSD: upload,v 1.18.6.1 2005/01/24 18:40:01 tv Exp $
#
# Upload non-restricted binary pkgs to ftp server
-# Must be called in $USR_PKGSRC
#
+MD5="digest md5";
+SHA1="digest sha1";
+
opsys=`uname -s`
case "$opsys" in
-NetBSD) BMAKE=make ;;
+NetBSD) BMAKE=make;
+ BSDSUM="sum -o 1";
+ CKSUM="cksum";
+ SYSVSUM="sum -o 2";
+ ;;
+IRIX*) BMAKE=bmake;
+# BSDSUM="sum -r";
+# CKSUM="cksum";
+# SYSVSUM="sum";
+ ;;
*) BMAKE=bmake ;;
esac
@@ -26,6 +37,8 @@ else
. `dirname $0`/build.conf
fi
+cd $USR_PKGSRC
+
if [ "$RSYNC_DST_SPECIFIC" != "" -o "$RSYNC_DST_OTHER" != "" ]; then
echo Use of RSYNC_DST_SPECIFIC and RSYNC_DST_OTHER is deprecated.
echo Please just set RSYNC_DST in build.conf.
@@ -74,21 +87,76 @@ else
echo '(skipped)'
fi
+case $LINTPKGSRC_CACHE in
+yes|YES)
+ lintpkgsrc_cache="-I `cd pkgtools/pkglint ; ${BMAKE} show-var VARNAME=LINTPKGSRC_DB`"
+ ;;
+*)
+ lintpkgsrc_cache=''
+ ;;
+esac
+
echo "Checking for restricted, out of date, and vulnerable packages:"
# -p = report old versions of packages
# -R = report restricted packages
# -V = report vulnerable packages
-lintpkgsrc -K $packages -P $pkgsrcdir -pRV | sed 's@'$packages'/@@' > $exf
+lintpkgsrc $lintpkgsrc_cache -K $packages -P $pkgsrcdir -pRV | sed 's@'$packages'/@@' > $exf
echo "Checking for OSVERSION_SPECIFIC pkgs:"
-lintpkgsrc -K $packages -P $pkgsrcdir -O | sed 's@'$packages'/@@' > $osf
-
+lintpkgsrc $lintpkgsrc_cache -K $packages -P $pkgsrcdir -O | sed 's@'$packages'/@@' > $osf
RSFLAGS="-vap --progress $RSYNC_OPTS"
failed=no
cd $packages
+if [ "${MKSUMS}" = "yes" -o "${MKSUMS}" = "YES" ]; then
+
+ SUMFILES="BSDSUM CKSUM MD5 SHA1 SYSVSUM"
+
+ rm -f ${SUMFILES}
+
+ if [ x"${SIGN_AS}" != x"" ]; then
+ ( cd ${pkgsrcdir}/security/gnupg; ${BMAKE} bulk-install )
+ for i in ${SUMFILES}; do
+ echo > $i
+ echo "This file is signed with ${SIGN_AS}'s PGP key." >> $i
+ echo >> $i
+ done
+ fi
+
+ ( cd ${pkgsrcdir}/pkgtools/digest; ${BMAKE} bulk-install )
+
+ [ -z "${BSDSUM}" ] && BSDSUM="echo"
+ [ -z "${CKSUM}" ] && CKSUM="echo"
+ [ -z "${SYSVSUM}" ] && SYSVSUM="echo"
+
+ for i in All/*; do
+ if ! grep -q $i $exf; then
+ ${BSDSUM} $i >> BSDSUM
+ ${CKSUM} $i >> CKSUM
+ ${MD5} $i >> MD5
+ ${SHA1} $i >> SHA1
+ ${SYSVSUM} $i >> SYSVSUM
+ fi
+ done
+
+ [ "${BSDSUM}" = "echo" ] && rm BSDSUM
+ [ "${CKSUM}" = "echo" ] && rm CKSUM
+ [ "${SYSVSUM}" = "echo" ] && rm SYSVSUM
+
+ if [ x"${SIGN_AS}" != x"" ]; then
+ for i in ${SUMFILES}; do
+ if [ -s $i ]; then
+ echo "Signing $i"
+ gpg --clearsign $i && rm $i
+ echo ${i}.asc >> $osf
+ fi
+ done
+ fi
+fi
+
+
echo "#!/bin/sh" > $upload
echo "packages=$packages" >> $upload
echo "if ! cd $packages ; then" >> $upload