diff options
Diffstat (limited to 'mk/bulk/upload')
-rw-r--r-- | mk/bulk/upload | 80 |
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 |