]> sourceware.org Git - automake.git/commitdiff
* lib/gnupload: New script.
authorAlexandre Duret-Lutz <adl@gnu.org>
Sat, 24 Jan 2004 19:22:10 +0000 (19:22 +0000)
committerAlexandre Duret-Lutz <adl@gnu.org>
Sat, 24 Jan 2004 19:22:10 +0000 (19:22 +0000)
* lib/Makefile.am (EXTRA_DIST): Distribute gnupload.
* Makefile.am (cvs-release): New target.

ChangeLog
HACKING
Makefile.am
Makefile.in
lib/Makefile.am
lib/Makefile.in
lib/gnupload [new file with mode: 0755]

index 48a37999ead56b2b1c1536d1ebb3bc7a0cd7fd32..0bb915b1b0463c4ccfdc038e824bc8a471054dfd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2004-01-24  Alexandre Duret-Lutz  <adl@gnu.org>
+
+       * lib/gnupload: New script.
+       * lib/Makefile.am (EXTRA_DIST): Distribute gnupload.
+       * Makefile.am (cvs-release): New target.
+
 2004-01-23  Alexandre Duret-Lutz  <adl@gnu.org>
 
        * lib/am/python.am (uninstall-%DIR%PYTHON): Remove extra `;'s.
diff --git a/HACKING b/HACKING
index 0f5e4393cd94a7748cba430a0425377f4069a1b1..0291897b8b0ed35bd03dbde9f4ee8b6d6b5b643c 100644 (file)
--- a/HACKING
+++ b/HACKING
 
 * 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.
 
index d2feb6965ebeeb63ecbdf6ab24d7d181c8e6c8d2..244b1dcb60613426630cc12254e36fc23948ae35 100644 (file)
@@ -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 \
index 698b1e8c828c086ccd8d5a31d30ba2f55b5645b3..c3326272b3b4f0b05f6ea5985d4e2f9d244611aa 100644 (file)
@@ -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 \
index 1d7f5e49ab14ff9fc1b1eedb7957ee0e67df9f53..265b4f063235a6df04d40af31134795123a81fbb 100644 (file)
@@ -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 \
index 95b2b5a996376bc730789e9f4709d4d3445fc846..56d0e14460534799dd48dfb6fe54df100787571a 100644 (file)
@@ -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 (executable)
index 0000000..2158927
--- /dev/null
@@ -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 <adl@gnu.org>.
+
+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 <bug-automake@gnu.org>.
+Send patches to <automake-patches@gnu.org>."
+
+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:
This page took 0.049073 seconds and 5 git commands to generate.