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