Eric Blake <[EMAIL PROTECTED]> writes: > According to Simon Josefsson on 7/14/2006 4:43 AM: >> Hi! I'm using gnupload in several projects, would it be possible to >> move this from coreutils to gnulib? > > I'd like to see it in gnulib.
I have installed this. > And maybe build-aux/maint.mk should add rules that make it easier to > use? For later... /Simon Index: ChangeLog =================================================================== RCS file: /sources/gnulib/gnulib/ChangeLog,v retrieving revision 1.628 diff -u -p -r1.628 ChangeLog --- ChangeLog 22 Aug 2006 12:26:39 -0000 1.628 +++ ChangeLog 22 Aug 2006 13:22:45 -0000 @@ -1,3 +1,10 @@ +2006-08-22 Simon Josefsson <[EMAIL PROTECTED]> + + * MODULES.html.sh: Add "Support for maintaining and release + projects". + + * build-aux/gnupload: New file, from coreutils. + 2006-08-22 Jim Meyering <[EMAIL PROTECTED]> * modules/mkdir-p (Makefile.am): Fix typo: s/lib+SOURCES/lib_SOURCES/. Index: MODULES.html.sh =================================================================== RCS file: /sources/gnulib/gnulib/MODULES.html.sh,v retrieving revision 1.137 diff -u -p -r1.137 MODULES.html.sh --- MODULES.html.sh 21 Aug 2006 06:11:26 -0000 1.137 +++ MODULES.html.sh 22 Aug 2006 13:22:46 -0000 @@ -2113,6 +2113,16 @@ func_all_modules () func_module gendocs func_end_table + element="Support for maintaining and release projects" + func_section_wrap maintain + func_wrap H2 + func_echo "$element" + + func_begin_table + func_module gnupload + func_module maintainer-makefile + func_end_table + element="Misc" func_section_wrap misc func_wrap H2 Index: build-aux/gnupload =================================================================== RCS file: build-aux/gnupload diff -N build-aux/gnupload --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ build-aux/gnupload 22 Aug 2006 13:22:46 -0000 @@ -0,0 +1,176 @@ +#!/bin/sh +# Sign files and upload them. + +scriptversion=2006-05-20.00 + +# Copyright (C) 2004, 2005, 2006 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 +# 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., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301, USA. + +# Originally written by Alexandre Duret-Lutz <[EMAIL PROTECTED]>. + +set -e + +GPG='/usr/bin/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 + savannah.gnu.org:DIRECTORY + savannah.nongnu.org:DIRECTORY + ftp.gnu.org:DIRECTORY + build directive files and upload files by FTP + [EMAIL PROTECTED]:DIRECTORY upload files with scp + +Example: + gnupload --to sources.redhat.com:~ftp/pub/automake \\ + ""--to alpha.gnu.org: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 $? + ;; + --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 $? + ;; + -*) + 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 + +# Make sure passphrase is not exported in the environment. +unset passphrase + +# 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...). +# Remember this script runs with `set -e', so if echo is not built-in +# it will exit now. +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" + destdir=`echo $dest | sed 's/[^:]*://'` + case $dest in + alpha.gnu.org:*) + rm -f $file.directive $file.directive.asc + echo directory: $destdir >$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: $destdir >$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 + ;; + savannah.gnu.org:*) + ncftpput savannah.gnu.org /incoming/savannah/$destdir $files + ;; + savannah.nongnu.org:*) + ncftpput savannah.nongnu.org /incoming/savannah/$destdir $files + ;; + *) + 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: Index: config/ChangeLog =================================================================== RCS file: /sources/gnulib/gnulib/config/ChangeLog,v retrieving revision 1.148 diff -u -p -r1.148 ChangeLog --- config/ChangeLog 14 Aug 2006 18:28:32 -0000 1.148 +++ config/ChangeLog 22 Aug 2006 13:22:46 -0000 @@ -1,3 +1,7 @@ +2006-07-14 Simon Josefsson <[EMAIL PROTECTED]> + + * srclist.txt: Add gnupload. + 2006-08-14 Paul Eggert <[EMAIL PROTECTED]> * srclistvars.sh: Add copyright notice. Index: config/srclist.txt =================================================================== RCS file: /sources/gnulib/gnulib/config/srclist.txt,v retrieving revision 1.133 diff -u -p -r1.133 srclist.txt --- config/srclist.txt 12 Aug 2006 22:37:45 -0000 1.133 +++ config/srclist.txt 22 Aug 2006 13:22:46 -0000 @@ -276,6 +276,8 @@ $LIBCSRC/time/mktime.c lib gpl #$LIBCSRC/sysdeps/unix/sysv/gethostname.c lib gpl #$LIBCSRC/sysdeps/unix/utime.c lib gpl +$COREUTILS/gnupload build-aux + $LIBTOOL/libltdl/argz.c lib gpl $LIBTOOL/libltdl/argz_.h lib gpl $LIBTOOL/libltdl/m4/argz.m4 m4 Index: modules/gnupload =================================================================== RCS file: modules/gnupload diff -N modules/gnupload --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ modules/gnupload 22 Aug 2006 13:22:46 -0000 @@ -0,0 +1,21 @@ +Description: +Upload PGP signed files to gnu.org. +See http://www.gnu.org/prep/maintain/html_node/Automated-FTP-Uploads.html +for more information. + +Files: +build-aux/gnupload + +Depends-on: + +configure.ac: + +Makefile.am: + +Include: + +License: +GPLed build tool + +Maintainer: +coreutils