#!/bin/sh # $NetBSD: upload,v 1.18 2004/04/19 18:39:09 hubertf Exp $ # # Upload non-restricted binary pkgs to ftp server # Must be called in $USR_PKGSRC # opsys=`uname -s` case "$opsys" in NetBSD) BMAKE=make ;; *) BMAKE=bmake ;; esac export BMAKE # Bring in variables for bulk-install BATCH=1 DEPENDS_TARGET=bulk-install export BATCH DEPENDS_TARGET # Pull in RSYNC_DST, RSYNC_OPTS: if [ -f "$BULK_BUILD_CONF" ]; then . $BULK_BUILD_CONF else . `dirname $0`/build.conf fi 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. exit 1 fi if [ -z "$RSYNC_DST" ]; then echo "You must set the variable RSYNC_DST, see build.conf-example." exit 1 fi # Paths for both OS-version-specific and general pkgs: RSYNC_DST_SPECIFIC=${RSYNC_DST} RSYNC_DST_OTHER=${RSYNC_DST} # # Some temp files # umask 22 TMPDIR=${TMPDIR:-/tmp} TMP=${TMPDIR}/pkg_upload.$$ mkdir $TMP exf=$TMP/exclude osf=$TMP/osversion_specific upload=$TMP/upload upload_specific=$TMP/upload_specific upload_others=$TMP/upload_others # May be different than $USR_PKGSRC: pkgsrcdir=`cd pkgtools/pkglint ; ${BMAKE} show-var VARNAME=_PKGSRCDIR` packages=`cd pkgtools/pkglint ; ${BMAKE} show-var VARNAME=PACKAGES` distdir=`cd pkgtools/pkglint ; ${BMAKE} show-var VARNAME=DISTDIR` # Pull in some pkgs needed ( cd pkgtools/pkglint ; ${BMAKE} bulk-install ) ( cd net/rsync ; ${BMAKE} bulk-install ) ( cd security/audit-packages ; ${BMAKE} bulk-install ) echo "Making sure vulnerability-list is upto date:" if [ -z "$UPDATE_VULNERABILITY_LIST" -o "$UPDATE_VULNERABILITY_LIST" = "yes" ] then env PKGVULNDIR=${distdir} download-vulnerability-list else echo '(skipped)' fi 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 echo "Checking for OSVERSION_SPECIFIC pkgs:" lintpkgsrc -K $packages -P $pkgsrcdir -O | sed 's@'$packages'/@@' > $osf RSFLAGS="-vap --progress $RSYNC_OPTS" failed=no cd $packages echo "#!/bin/sh" > $upload echo "packages=$packages" >> $upload echo "if ! cd $packages ; then" >> $upload echo " echo \"could not cd to $packages\"" >> $upload echo " exit 1" >> $upload echo "fi" >> $upload echo "Uploading OSVERSION_SPECIFIC pkgs" cmd="rsync $RSFLAGS --include '*/' --exclude-from=$exf --include-from=$osf \ --exclude '*' . $RSYNC_DST_SPECIFIC" cp -f $upload $upload_specific echo $cmd >> $upload_specific chmod 755 $upload_specific echo $cmd . $upload_specific if [ $? != 0 ]; then echo "--------------------------------------------------" echo " " echo "WARNING rsync failed. To retry later, you can run" echo " $upload_specific" echo " " echo "--------------------------------------------------" failed=yes fi echo "Uploading non-OSVERSION_SPECIFIC pkgs" cmd="rsync $RSFLAGS --exclude-from=$exf --exclude-from=$osf . $RSYNC_DST_OTHER" cp -f $upload $upload_others echo $cmd >> $upload_others chmod 755 $upload_others echo $cmd . $upload_others if [ $? != 0 ]; then echo "--------------------------------------------------" echo " " echo "WARNING rsync failed. To retry later, you can run" echo " $upload_others" echo " " echo "--------------------------------------------------" failed=yes fi # clean up temp files if [ "$failed" = "no" ]; then rm -fr $TMP fi