From: Alexandre Duret-Lutz Date: Sat, 24 Jan 2004 19:22:10 +0000 (+0000) Subject: * lib/gnupload: New script. X-Git-Tag: Release-1-8b~74 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=9cc166babdec4b3384ff354f0286a078f97f95f7;p=automake.git * lib/gnupload: New script. * lib/Makefile.am (EXTRA_DIST): Distribute gnupload. * Makefile.am (cvs-release): New target. --- diff --git a/ChangeLog b/ChangeLog index 48a37999..0bb915b1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-01-24 Alexandre Duret-Lutz + + * lib/gnupload: New script. + * lib/Makefile.am (EXTRA_DIST): Distribute gnupload. + * Makefile.am (cvs-release): New target. + 2004-01-23 Alexandre Duret-Lutz * lib/am/python.am (uninstall-%DIR%PYTHON): Remove extra `;'s. diff --git a/HACKING b/HACKING index 0f5e4393..0291897b 100644 --- a/HACKING +++ b/HACKING @@ -128,29 +128,17 @@ * Run ./bootstrap, ./configure, make. -* Run `make cvs-dist'. - This will run distcheck to create the tarball, commit the last - NEWS/configure.ac/ChangeLog changes, and tag the repository. +* Run `make cvs-release'. + This will run distcheck to create the tarballs, commit the last + NEWS/configure.ac/ChangeLog changes, tag the repository, sign + the tarballs, and upload them. + Use `make GNUPLOADFLAGS="--user key" cvs-release' to sign with + a non-default key. * Update version number in configure.ac to next alpha number. Re-run ./bootstrap and commit. -* gpg -ba -o automake-VERSION.tar.gz.sig automake-VERSION.tar.gz - gpg -ba -o automake-VERSION.tar.bz2.sig automake-VERSION.tar.bz2 - echo 'directory: automake' >automake-VERSION.tar.gz.directive - gpg --clearsign automake-VERSION.tar.gz.directive - cp automake-VERSION.tar.{gz,bz2}.directive.asc - - scp automake-VERSION.tar.{gz,bz2}{,.sig} sources.redhat.com:~ftp/pub/automake - - For alpha releases: - ncftpput ftp-upload.gnu.org /incoming/alpha \ - automake-VERSION.tar.{gz,bz2}{,.directive.asc,.sig} - For "real" releases: - ncftpput ftp-upload.gnu.org /incoming/ftp \ - automake-VERSION.tar.{gz,bz2}{,.directive.asc,.sig} - - Send announcement at least to autotools-announce@gnu.org, and +* Send announcement at least to autotools-announce@gnu.org, and automake@gnu.org. If not an alpha, announcement must also go to info-gnu@gnu.org. diff --git a/Makefile.am b/Makefile.am index d2feb696..244b1dcb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -274,6 +274,15 @@ cvs-dist: maintainer-check cd $(srcdir) && clcommit && \ cvs -q tag -c `echo "Release-$(VERSION)" | sed 's/\./-/g'` +cvs-release: cvs-dist + case $(VERSION) in \ + *[a-z]) dest=alpha;; \ + *) dest=ftp;; \ + esac; \ + $(srcdir)/lib/gnupload $(GNUPLOADFLAGS) \ + --to sources.redhat.com:~ftp/automake \ + --to $$dest.gnu.org:gnu/automake $(DIST_ARCHIVES) + cvs-diff: thisver=`echo "Release-$(VERSION)" | sed 's/\./-/g'`; \ if test -z "$$OLDVERSION"; then \ diff --git a/Makefile.in b/Makefile.in index 698b1e8c..c3326272 100644 --- a/Makefile.in +++ b/Makefile.in @@ -756,6 +756,15 @@ cvs-dist: maintainer-check cd $(srcdir) && clcommit && \ cvs -q tag -c `echo "Release-$(VERSION)" | sed 's/\./-/g'` +cvs-release: cvs-dist + case $(VERSION) in \ + *[a-z]) dest=alpha;; \ + *) dest=ftp;; \ + esac; \ + $(srcdir)/lib/gnupload $(GNUPLOADFLAGS) \ + --to sources.redhat.com:~ftp/automake \ + --to $$dest.gnu.org:gnu/automake $(DIST_ARCHIVES) + cvs-diff: thisver=`echo "Release-$(VERSION)" | sed 's/\./-/g'`; \ if test -z "$$OLDVERSION"; then \ diff --git a/lib/Makefile.am b/lib/Makefile.am index 1d7f5e49..265b4f06 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -2,7 +2,7 @@ ## Makefile for Automake lib. -## Copyright (C) 2001, 2003 Free Software Foundation, Inc. +## Copyright (C) 2001, 2003, 2004 Free Software Foundation, Inc. ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by @@ -32,6 +32,8 @@ dist_script_DATA = config.guess config.sub install-sh mdate-sh missing \ mkinstalldirs elisp-comp ylwrap acinstall depcomp compile py-compile \ symlink-tree +EXTRA_DIST = gnupload + install-data-hook: @$(POST_INSTALL) @for prog in $(dist_script_DATA); do \ diff --git a/lib/Makefile.in b/lib/Makefile.in index 95b2b5a9..56d0e144 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -147,6 +147,7 @@ dist_script_DATA = config.guess config.sub install-sh mdate-sh missing \ mkinstalldirs elisp-comp ylwrap acinstall depcomp compile py-compile \ symlink-tree +EXTRA_DIST = gnupload all: all-recursive .SUFFIXES: diff --git a/lib/gnupload b/lib/gnupload new file mode 100755 index 00000000..21589274 --- /dev/null +++ b/lib/gnupload @@ -0,0 +1,161 @@ +#!/bin/sh +# Sign files and upload them. + +scriptversion=2004-01-24.20 + +# Copyright (C) 2004 Free Software Foundation +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +# Originally written by Alexandre Duret-Lutz . + +set -e + +GPG='gpg --batch --no-tty' +to= + +usage="Usage: $0 [OPTIONS]... FILES... + +Sign all FILES, and upload them to selected destinations. + +Options: + --help print this help text and exit + --to DEST specify one destination for FILES + (multiple --to options are allowed) + --user NAME sign with key NAME + --version output version information and exit + +Recognized destinations are: + alpha.gnu.org:DIRECTORY build directive files and upload files by FTP + ftp.gnu.org:DIRECTORY build directive files and upload files by FTP + [user@]host:DIRECTORY upload files with scp + +Example: + gnupload --to sources.redhat.com:~ftp/automake \\ + --to alpha.gnu.org:gnu/automake \\ + automake-1.8.2b.tar.gz automake-1.8.2b.tar.bz2 + +Report bugs to . +Send patches to ." + +while test -n "$1"; do + case $1 in + --help) + echo "$usage" + exit 0 + ;; + --to) + if test -z "$2"; then + echo "$0: Missing argument for --to" 1>&2 + exit 1 + else + to="$to $2" + shift 2 + fi + ;; + --user) + if test -z "$2"; then + echo "$0: Missing argument for --user" 1>&2 + exit 1 + else + GPG="$GPG --local-user $2" + shift 2 + fi + ;; + --version) + echo "gnupload $scriptversion" + exit 0 + ;; + -*) + echo "$0: Unknown option \`$1', try \`$0 --help'" 1>&2 + exit 1 + ;; + *) + break + ;; + esac +done + +if test $# = 0; then + echo "$0: No file to upload" 1>&2 + exit 1 +else + : +fi + +# Make sure all files exist. We don't want to ask +# for the passphrase if the script will fail. +for file; +do + if test ! -f $file; then + echo "$0: Cannot find \`$file'" 1>&2 + exit 1 + else + : + fi +done + +# Reset PATH to be sure that echo is a built-in. We will later use +# `echo $passphrase' to output the passphrase, so it is important that +# it is a built-in (third-party programs tend to appear in `ps' +# listings with their arguments...). +PATH=/empty echo -n "Enter GPG passphrase: " +stty -echo +read -r passphrase +stty echo +echo + +for file; +do + echo "Signing $file..." + rm -f $file.sig + echo $passphrase | $GPG --passphrase-fd 0 -ba -o $file.sig $file +done + +for dest in $to; +do + for file; + do + echo "Uploading $file to $dest..." + files="$file $file.sig" + case $dest in + alpha.gnu.org:*) + rm -f $file.directive $file.directive.asc + echo directory: `echo $dest | sed 's/[^:]*://'` >$file.directive + echo "$passphrase" | $GPG --passphrase-fd 0 --clearsign $file.directive + ncftpput ftp-upload.gnu.org /incoming/alpha $files $file.directive.asc + rm -f $file.directive $file.directive.asc + ;; + ftp.gnu.org:*) + rm -f $file.directive $file.directive.asc + echo directory: `echo $dest | sed 's/[^:]*://'` >$file.directive + echo "$passphrase" | $GPG --passphrase-fd 0 --clearsign $file.directive + ncftpput ftp-upload.gnu.org /incoming/ftp $files $file.directive.asc + rm -f $file.directive $file.directive.asc + ;; + *) + scp $files $dest + ;; + esac + done +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: