From 903b0498f0996fd45edfe33078f210381c228b27 Mon Sep 17 00:00:00 2001
From: Matthias Andree
Date: Sat, 6 Feb 2010 13:54:43 +0100
Subject: Update documents/scripts after SVN -> Git move.
---
INSTALL | 2 +-
Makefile.am | 3 +-
NEWS | 19 +++-
README.git | 33 +++++++
README.svn | 36 --------
autogen.sh | 4 +-
dist-tools/getstats.py | 3 +
dist-tools/makerelease | 157 --------------------------------
dist-tools/makerelease.pl | 159 +++++++++++++++++++++++++++++++++
dist-tools/send-security-announce.sh | 4 +-
fetchmail-FAQ.html | 2 +-
ucs/README.svn | 19 ----
website/host-scripts/upload-website.sh | 14 +--
website/index.html | 35 ++++----
14 files changed, 243 insertions(+), 247 deletions(-)
create mode 100644 README.git
delete mode 100644 README.svn
delete mode 100755 dist-tools/makerelease
create mode 100755 dist-tools/makerelease.pl
delete mode 100644 ucs/README.svn
diff --git a/INSTALL b/INSTALL
index 008dc0ac..a0b75204 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
INSTALL Instructions for fetchmail
==================================
-Building from subversion (SVN) repository: see README.svn
+Building from Git repository: see README.git
Packagers and port/emerge maintainers: see README.packaging.
diff --git a/Makefile.am b/Makefile.am
index 7c277226..3415a035 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -142,7 +142,6 @@ DISTDOCS= FAQ FEATURES NOTES OLDNEWS fetchmail-man.html \
distdirs = rh-config contrib beos
EXTRA_DIST+= $(DISTDOCS) $(distdirs) \
- ucs/README.svn \
fetchmail.spec fetchmail.xpm \
trio/CHANGES trio/README \
strlcpy.3 bighand.png \
@@ -211,7 +210,7 @@ fetchmail-man.html: fetchmail.man $(srcdir)/dist-tools/manServer.pl
|| { rm -f $@ ; exit 1 ; }
dist-hook:
- cd $(distdir) && find $(distdirs) po -name .svn -type d -prune -exec rm -rf '{}' ';'
+ cd $(distdir) && find $(distdirs) po -name .git -type d -prune -exec rm -rf '{}' ';'
cd $(distdir) && find $(distdirs) po -name '*~' -exec rm -f '{}' ';'
.PHONY: lsm
diff --git a/NEWS b/NEWS
index 90289351..c8ee0933 100644
--- a/NEWS
+++ b/NEWS
@@ -47,6 +47,23 @@ removed from a 6.4.0 or newer release.)
--------------------------------------------------------------------------------
+fetchmail 6.3.15 (not yet released):
+
+# CHANGES
+* The repository has been converted and moved from the Subversion (SVN) format
+ kindly hosted by Graham Wilson over the past years to Git format hosted on
+ Gitorious.org. My deepest thanks to Graham Wilson for this service that
+ kept us going when BerliOS's Subversion service was faulty in its early days.
+* This opportunity was used to convert BRANCH_6-2 and BRANCH_1-9-9 to GnuPG-signed
+ tags, as a sign that these are now closed.
+* The outdated SVN trunk is now called "oldtrunk" in Git just to save the work
+ for future reference. All development in the past few years was on BRANCH_6-3.
+* master was branched from BRANCH_6-3 for user convenience.
+
+# DOCUMENTATION
+* Web site and documentation were adjusted to reflect the SVN->Git move.
+
+
fetchmail 6.3.14 (released 2010-02-05, 25487 LoC):
# SECURITY FIXES
@@ -116,7 +133,7 @@ fetchmail 6.3.13 (released 2009-10-30, 25333 LoC):
fetchmail 6.3.12 (released 2009-10-05):
# REGRESSION FIXES
-* The CVS-2009-2666 fix in fetchmail release 6.3.11 caused a free() of
+* The CVE-2009-2666 fix in fetchmail release 6.3.11 caused a free() of
unallocated memory on SSL connections, which caused crashes or program aborts
on some systems (depending on how initialization and free() of unallocated
memory is handled in compiler and libc).
diff --git a/README.git b/README.git
new file mode 100644
index 00000000..f9832d7f
--- /dev/null
+++ b/README.git
@@ -0,0 +1,33 @@
+In order to be able to build from the git repository (working directory), some
+files need to be (re-)generated.
+
+Note that these generated files will be shipped with "make dist",
+so the end user will not need these packages.
+
+The prerequisite packages are:
+
+- GNU autoconf >= 2.60
+- GNU automake >= 1.8
+- GNU gettext >= 0.14.3
+- GNU m4
+- bison or yacc
+- flex or lex
+
+On FreeBSD, install the gnu-autoconf and gnu-automake ports
+and add /usr/local/gnu-autotools/bin to your PATH.
+
+After you have everything installed, type:
+
+$ ./autogen.sh
+
+This will take a while and may print a lot of messages containing
+"warning: unquoted definition of..." which are harmless.
+
+After that, build as usual, with
+
+$ ./configure --with-ssl # pick options as needed
+$ make
+(become root)
+# make install-strip
+
+-- Matthias Andree, 2010-02-06
diff --git a/README.svn b/README.svn
deleted file mode 100644
index 799740e0..00000000
--- a/README.svn
+++ /dev/null
@@ -1,36 +0,0 @@
-In order to be able to build from the subversion repository (working
-directory), some files need to be (re-)generated.
-
-Note that these generated files will be shipped with "make dist",
-so the end user will not need these packages.
-
-The prerequisite packages are:
-
-- GNU autoconf >= 2.59
-- GNU automake >= 1.8
- (editing Makefile.am to remove unsupported options may
- work with automake-1.7, but this is neither tested nor supported)
-- GNU gettext >= 0.14.3
- (>= 0.13 may also work, but has not been tested in a while)
-- GNU m4
-- bison or yacc
-- flex or lex
-
-On FreeBSD, install the gnu-autoconf and gnu-automake ports
-and add /usr/local/gnu-autotools/bin to your PATH.
-
-After you have these installed, type:
-
-$ ./autogen.sh
-
-This will take a while and may print a lot of messages containing
-"warning: unquoted definition of..." which are harmless.
-
-After that, build as usual, with
-
-$ ./configure --with-ssl # pick options as needed
-$ make
-(become root)
-# make install-strip
-
--- Matthias Andree, 2006-02-17
diff --git a/autogen.sh b/autogen.sh
index c951f228..f175227c 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -1,7 +1,7 @@
#! /bin/sh
-# bootstrap.sh - bootstrap the fetchmail build after a fresh subversion checkout
-# (C) 2004 Matthias Andree -- GNU GPL V2
+# autogen.sh - bootstrap the fetchmail build after a fresh git checkout
+# (C) 2004, 2010 Matthias Andree -- GNU GPL V2 or newer
set -e
# sanity checks:
diff --git a/dist-tools/getstats.py b/dist-tools/getstats.py
index 17fcab50..df2fbeaf 100755
--- a/dist-tools/getstats.py
+++ b/dist-tools/getstats.py
@@ -4,6 +4,9 @@
import commands, os, string, ftplib
+print "This script must be adjusted for Git."
+exit(1)
+
# Get version and date
date = commands.getoutput("LC_TIME=C date -u")
pid = os.getpid()
diff --git a/dist-tools/makerelease b/dist-tools/makerelease
deleted file mode 100755
index 59b120e3..00000000
--- a/dist-tools/makerelease
+++ /dev/null
@@ -1,157 +0,0 @@
-#!/usr/bin/env perl
-#
-# Make a fetchmail release.
-# Dumps a release notice and diffs as a MIME multipart message
-# in RELEASE_NOTES
-#
-use POSIX qw(strftime);
-$tmp = $ENV{TMPDIR} || $ENV{TMP} || $ENV{TEMP} || "/tmp";
-
-$project = "fetchmail";
-$svnrepos = "http://mknod.org/svn/$project";
-$website = "http://developer.berlios.de/projects/$project";
-$mailfrom = "<$project-devel-owner\@lists.berlios.de> (Fetchmail Development Team)";
-
-die "Need GNU sort!" unless `sort --version | head -n1` =~ /GNU/;
-
-# parse options
-$diffs = 0;
-$verbose = 0;
-$null = ">/dev/null";
-$errnull = "2>/dev/null";
-while ($i = shift @ARGV)
-{
- if ($i =~ /^(--diffs|-d)$/i)
- {
- $diffs = 1;
- next;
- }
-
- if ($i =~ /^(--verbose|-v)$/i)
- {
- $verbose = 1;
- $null = "";
- next;
- }
-
- die "Error: Unknown option: $i\n";
-}
-
-# extract version from source
-$version=`grep 'AC_INIT' configure.ac`;
-$version =~ /AC_INIT\([^,]*,\[?([0-9.rc-]+)\]?\,.*\)/;
-$version = $1;
-die "cannot determine version" unless defined $1;
-$tag = "RELEASE_$version";
-$tag =~ tr/./-/;
-
-# extract existing tags
-open(ID, "svn ls \"$svnrepos/tags\" | sort -t- -k1,1 -k2,2n -k3,3n |") || die "cannot run svn ls: $!\naborting";
-while () {
- if (m{^(RELEASE_.*)/}) {
- unshift(@versions, $1);
- }
-}
-close ID || die "svn ls failed, aborting";
-
-if ($versions[0] eq $tag) {
- $tag = $versions[0];
- $oldtag = $versions[1];
-} else {
- $tag = '';
- $oldtag = $versions[0];
-}
-
-$pwd = `pwd`; chomp $pwd;
-
-$ENV{PATH} .= ":$pwd/dist-tools:$pwd/dist-tools/shipper";
-
-print "Building $version release, tag $tag, previous tag $oldtag\n";
-
-if (-d "autom4te.cache") {
- system("rm -rf autom4te.cache")
- and die "Failure in removing autom4te.cache";
-}
-
-if (system("autoreconf -isv")) {
- die("Failure in regenerating autoconf files\n");
-}
-
-print "### Test-building the software...\n";
-if (system("mkdir -p autobuild && cd autobuild && ../configure -C --silent && make -s clean && make check distcheck")) {
- die("Compilation failure\n");
-}
-
-# print "### Building the RPMs...\n";
-# if (system("cd autobuild && cp ../fetchmail.xpm . && buildrpms $project-${version}.tar.bz2 $null")) {
-# die("RPM-build failure\n");
-# }
-
-open(REPORT, ">$tmp/$project.PREAMBLE.$$");
-
-print REPORT <.
-
-The source archive is available at:
-<$website/$project-${version}.tar.gz>
-
-Here are the release notes:
-
-EOF
-
-# Extract the current notes
-open(NEWS, "NEWS");
-while () {
- if (/^$project/) {
- print REPORT $_;
- last;
- }
-}
-while () {
- if (/^$project/) {
- last;
- }
- print REPORT $_;
-}
-
-$oldver = $oldtag;
-$oldver =~ tr/-/./;
-$oldver =~ s/^RELEASE_//;
-
-if ($diffs) {
- print REPORT "Diffs from the previous ($oldver) release follow as a MIME attachment."
-} else {
- print REPORT "By popular demand, diffs from the previous release have been omitted."
-}
-
-close(NEWS);
-
-close(REPORT);
-
-if ($tag eq '') {
- system("svn diff -r$oldtag $errnull >$tmp/$project.DIFFS.$$");
-} else {
- system("svn diff -r$oldtag -r$tag $errnull >$tmp/$project.DIFFS.$$");
-}
-print "Diff size:";
-system("wc <$tmp/$project.DIFFS.$$");
-
-if ($diffs) {
- system "metasend -b"
- ." -D '$project-$tag announcement' -m 'text/plain' -e 7bit -f $tmp/$project.PREAMBLE.$$"
- ." -n -D 'diff between $oldver and $version' -m 'text/plain' -e 7bit -f $tmp/$project.DIFFS.$$"
- ." -o ANNOUNCE.EMAIL";
-} else {
- system("mv", "$tmp/$project.PREAMBLE.$$", "ANNOUNCE.EMAIL");
-}
-
-#unlink("$tmp/$project.PREAMBLE.$$");
-unlink("$tmp/$project.DIFFS.$$");
-
-print "Done\n";
-
-# makerelease ends here
diff --git a/dist-tools/makerelease.pl b/dist-tools/makerelease.pl
new file mode 100755
index 00000000..9578eb52
--- /dev/null
+++ b/dist-tools/makerelease.pl
@@ -0,0 +1,159 @@
+#!/usr/bin/env perl
+#
+# Make a fetchmail release.
+# Dumps a release notice and diffs as a MIME multipart message
+# in RELEASE_NOTES
+#
+use POSIX qw(strftime);
+$tmp = $ENV{TMPDIR} || $ENV{TMP} || $ENV{TEMP} || "/tmp";
+
+die "This script ($0) needs to be updated for the Git-orious repo.";
+
+$project = "fetchmail";
+$svnrepos = "http://mknod.org/svn/$project";
+$website = "http://developer.berlios.de/projects/$project";
+$mailfrom = "<$project-devel-owner\@lists.berlios.de> (Fetchmail Development Team)";
+
+die "Need GNU sort!" unless `sort --version | head -n1` =~ /GNU/;
+
+# parse options
+$diffs = 0;
+$verbose = 0;
+$null = ">/dev/null";
+$errnull = "2>/dev/null";
+while ($i = shift @ARGV)
+{
+ if ($i =~ /^(--diffs|-d)$/i)
+ {
+ $diffs = 1;
+ next;
+ }
+
+ if ($i =~ /^(--verbose|-v)$/i)
+ {
+ $verbose = 1;
+ $null = "";
+ next;
+ }
+
+ die "Error: Unknown option: $i\n";
+}
+
+# extract version from source
+$version=`grep 'AC_INIT' configure.ac`;
+$version =~ /AC_INIT\([^,]*,\[?([0-9.rc-]+)\]?\,.*\)/;
+$version = $1;
+die "cannot determine version" unless defined $1;
+$tag = "RELEASE_$version";
+$tag =~ tr/./-/;
+
+# extract existing tags
+open(ID, "svn ls \"$svnrepos/tags\" | sort -t- -k1,1 -k2,2n -k3,3n |") || die "cannot run svn ls: $!\naborting";
+while () {
+ if (m{^(RELEASE_.*)/}) {
+ unshift(@versions, $1);
+ }
+}
+close ID || die "svn ls failed, aborting";
+
+if ($versions[0] eq $tag) {
+ $tag = $versions[0];
+ $oldtag = $versions[1];
+} else {
+ $tag = '';
+ $oldtag = $versions[0];
+}
+
+$pwd = `pwd`; chomp $pwd;
+
+$ENV{PATH} .= ":$pwd/dist-tools:$pwd/dist-tools/shipper";
+
+print "Building $version release, tag $tag, previous tag $oldtag\n";
+
+if (-d "autom4te.cache") {
+ system("rm -rf autom4te.cache")
+ and die "Failure in removing autom4te.cache";
+}
+
+if (system("autoreconf -isv")) {
+ die("Failure in regenerating autoconf files\n");
+}
+
+print "### Test-building the software...\n";
+if (system("mkdir -p autobuild && cd autobuild && ../configure -C --silent && make -s clean && make check distcheck")) {
+ die("Compilation failure\n");
+}
+
+# print "### Building the RPMs...\n";
+# if (system("cd autobuild && cp ../fetchmail.xpm . && buildrpms $project-${version}.tar.bz2 $null")) {
+# die("RPM-build failure\n");
+# }
+
+open(REPORT, ">$tmp/$project.PREAMBLE.$$");
+
+print REPORT <.
+
+The source archive is available at:
+<$website/$project-${version}.tar.gz>
+
+Here are the release notes:
+
+EOF
+
+# Extract the current notes
+open(NEWS, "NEWS");
+while () {
+ if (/^$project/) {
+ print REPORT $_;
+ last;
+ }
+}
+while () {
+ if (/^$project/) {
+ last;
+ }
+ print REPORT $_;
+}
+
+$oldver = $oldtag;
+$oldver =~ tr/-/./;
+$oldver =~ s/^RELEASE_//;
+
+if ($diffs) {
+ print REPORT "Diffs from the previous ($oldver) release follow as a MIME attachment."
+} else {
+ print REPORT "By popular demand, diffs from the previous release have been omitted."
+}
+
+close(NEWS);
+
+close(REPORT);
+
+if ($tag eq '') {
+ system("svn diff -r$oldtag $errnull >$tmp/$project.DIFFS.$$");
+} else {
+ system("svn diff -r$oldtag -r$tag $errnull >$tmp/$project.DIFFS.$$");
+}
+print "Diff size:";
+system("wc <$tmp/$project.DIFFS.$$");
+
+if ($diffs) {
+ system "metasend -b"
+ ." -D '$project-$tag announcement' -m 'text/plain' -e 7bit -f $tmp/$project.PREAMBLE.$$"
+ ." -n -D 'diff between $oldver and $version' -m 'text/plain' -e 7bit -f $tmp/$project.DIFFS.$$"
+ ." -o ANNOUNCE.EMAIL";
+} else {
+ system("mv", "$tmp/$project.PREAMBLE.$$", "ANNOUNCE.EMAIL");
+}
+
+#unlink("$tmp/$project.PREAMBLE.$$");
+unlink("$tmp/$project.DIFFS.$$");
+
+print "Done\n";
+
+# makerelease ends here
diff --git a/dist-tools/send-security-announce.sh b/dist-tools/send-security-announce.sh
index 2fe60265..d7da5fbb 100755
--- a/dist-tools/send-security-announce.sh
+++ b/dist-tools/send-security-announce.sh
@@ -1,7 +1,7 @@
test "$SEND_ANNOUNCEMENTS" = doit || { echo "read the source, luke! -> $0" ; cat "$0" ; exit 1 ; }
-ANN=fetchmail-SA-2009-01
-FILE=$HOME/VCS-mine/fetchmail.svn/BRANCH_6-3/$ANN.txt
+ANN=fetchmail-SA-2010-01
+FILE=$HOME/VCS-mine/fetchmail.git/$ANN.txt
test -r $FILE || { echo "Cannot find $FILE." ; exit 1 ; }
CVE=$(sed -n '/^CVE Name:/ { s/^.*:[ ]*//p;q; }' $FILE)
SUBJECT="fetchmail security announcement $ANN ($CVE)"
diff --git a/fetchmail-FAQ.html b/fetchmail-FAQ.html
index 852314be..dd198677 100644
--- a/fetchmail-FAQ.html
+++ b/fetchmail-FAQ.html
@@ -35,7 +35,7 @@ Page
href="#G3">G3 for what information is required to get your problem
solved as quickly as possible.
-Note that this FAQ is occasionally updated from the SVN repository
+
Note that this FAQ is occasionally updated from the Git repository
and speaks in the past tense ("since") about a fetchmail release that is
not yet available. Please try a release candidate for that version in
case you need the new option.
diff --git a/ucs/README.svn b/ucs/README.svn
deleted file mode 100644
index 221c3384..00000000
--- a/ucs/README.svn
+++ /dev/null
@@ -1,19 +0,0 @@
-The procedure of the files in this directory is laid out in the
-"General Vendor Branch Management Procedure" chapter of the SVN book.
-
-In detail:
-
-- check out /vendor/markus-kuhn/ucs/current
-- replace the files we have by the newer releases
-- if files are removed or added, make this known to svn with svn rm and
- svn add
-- commit
-- then tag (svn copy) as /vendor/markus-kuhn/ucs/YYYY-MM-DD
-
-- change to the trunk directory
-- run svn merge, merging from the previous _tag_ to "current"
- (literally)
-- resolve conflicts
-- commit the merge
-
-(C) 2004 Matthias Andree. GNU General Public License v2, see ../COPYING
diff --git a/website/host-scripts/upload-website.sh b/website/host-scripts/upload-website.sh
index eec2061f..35613402 100755
--- a/website/host-scripts/upload-website.sh
+++ b/website/host-scripts/upload-website.sh
@@ -1,20 +1,20 @@
#! /bin/sh
-# Script to upload fetchmail website from SVN repository
-# (C) 2008 - 2009 by Matthias Andree. GNU GPL v3.
+# Script to upload fetchmail website from Git repository
+# (C) 2008 - 2010 by Matthias Andree. GNU GPL v3.
: ${BERLIOS_LOGIN=m-a}
# abort on error
-set -e
+set -eu
# cd to parent of script
-cd $(dirname "$0")
+cd "$(dirname "$0")"
cd ..
echo "==> Running sanity checks"
# make sure we have no dangling symlinks
-if file * | egrep broken\|dangling ; then
+if LC_ALL=C file * | egrep broken\|dangling ; then
echo "broken symlinks -> abort" >&2
exit 1
fi
@@ -27,7 +27,7 @@ rsync \
--chmod=ug=rwX,o=rX,Dg=s --perms \
--copy-links --times --checksum --verbose \
--exclude host-scripts \
- --exclude .svn --exclude '*~' --exclude '#*#' \
+ --exclude .git --exclude '*~' --exclude '#*#' \
* \
"$BERLIOS_LOGIN@shell.berlios.de:/home/groups/fetchmail/htdocs/" &
pids="$pids $!"
@@ -37,7 +37,7 @@ rsync \
--chmod=ug=rwX,o=rX,Dg=s --perms \
--copy-links --times --checksum --verbose \
--exclude host-scripts \
- --exclude .svn --exclude '*~' --exclude '#*#' \
+ --exclude .git --exclude '*~' --exclude '#*#' \
* \
$HOME/public_html/fetchmail/info/ &
pids="$pids $!"
diff --git a/website/index.html b/website/index.html
index e517d10e..2cca1f82 100644
--- a/website/index.html
+++ b/website/index.html
@@ -29,7 +29,7 @@
FAQ (PDF)
Design Notes
Download
- Development Code
+ Development Code
Project Page
@@ -145,38 +145,35 @@ for discussion of some of the design choices in fetchmail.
See the project's To-Do list for indications
of known problems and requested features.
-The developers use Subversion for revision control.
-To get the latest development version, point your subversion client at http://mknod.org/svn/fetchmail/trunk/.
+The developers use Git for revision
+control. To browse the repository or to get the latest development version,
+find the instructions at http://gitorious.org/fetchmail/fetchmail.
-See the project
+See the project
page for more, including downloads.
-(However, note that we no longer use the subversion repository that Berlios provides.)
+href="http://developer.berlios.de/project/showfiles.php?group_id=1824">downloads.
Getting help with fetchmail:
-
-There is a fetchmail-users list for help and other user discussion
+
Before submitting a question anywhere, please read the FAQ (especially item G3 on how to report problems). We tend to get
+the same three newbie questions over and over again. The FAQ covers them like
+a blanket.
+
+There is a fetchmail-users list for help and other user discussion
of fetchmail. It's a MailMan list, which you can sign up for at
-fetchmail-users@lists.berlios.de. There is also a
+fetchmail-users@lists.berlios.de.
+
There is also a
fetchmail-devel list for people who want to discuss fixes and
improvements in fetchmail and help co-develop it. That one is at
fetchmail-devel@lists.berlios.de.
-Finally, there is an announcements-only list, Finally, there is an announcements-only list,
fetchmail-announce@lists.berlios.de.
-Note: before submitting a question to the lists, please read
-the FAQ (especially item G3 on how to report bugs). We
-tend to get the same three newbie questions over and over again. The
-FAQ covers them like a blanket.
-
Maintainer History
Fetchmail originated as a program called popclient, written
by Carl Harris. In 1996, Eric
--
cgit v1.2.3