]> Pileus Git - ~andy/fetchmail/commitdiff
Start converting release scripts over to new environment
authorRob Funk <rfunk@funknet.net>
Fri, 18 Jun 2004 06:55:28 +0000 (06:55 -0000)
committerRob Funk <rfunk@funknet.net>
Fri, 18 Jun 2004 06:55:28 +0000 (06:55 -0000)
svn path=/trunk/; revision=3894

Makefile.in
growthplot
listsize
makerelease
specgen.sh

index 14cf0db5bcb0b048817ee0e440c0508072ab2c59..3d38ed2219fced818c8e6642d3f5be0c75f9e0ef 100644 (file)
@@ -184,7 +184,7 @@ clean:
        -cd intl; $(MAKE) clean
        -rm -f $(top_builddir)/intl/libintl.h # work around GNU gettext brain-damage
        -cd po; $(MAKE) clean
-       -rm -f fetchmail *.o core fetchmail.dvi \
+       -rm -f fetchmail *.o core *~ fetchmail.dvi \
               rcfile_l.c rcfile_y.h rcfile_y.c \
               fetchmail.tar fetchmail.tar.gz \
               netrc rfc822 unmime fetchmail-man.html
@@ -196,7 +196,8 @@ distclean: clean
        -cd intl; $(MAKE) distclean
        -cd po; $(MAKE) distclean
        -rm -f TAGS tags config.h config.log \
-               config.cache stamp-h stamp-h.in # config.status Makefile
+               config.cache stamp-h stamp-h.in
+       -rm -f config.status Makefile
 
 realclean: distclean
        -rm -f FAQ FEATURES NOTES MANIFEST 
@@ -276,7 +277,7 @@ all = $(docs) $(config) $(srcs) $(parser) $(headers) $(extra) $(scripts) \
        $(srcdir)/po/* $(srcdir)/intl $(srcdir)/beos/* ABOUT-NLS $(srcdir)/MANIFEST
 
 fetchmail.spec: Makefile.in
-       specgen.sh $(VERSION) >fetchmail.spec
+       $(srcdir)/specgen.sh $(VERSION) >fetchmail.spec
 
 MANIFEST: $(srcdir) Makefile.in
        @echo $(all) | tr "[ \t]" '\n' | sed -e '/^\.\//s///' | sort >MANIFEST
@@ -303,20 +304,20 @@ TODO: todo.html
 # man2html no longer chokes and dies on this man page,
 # but manServer.pl does a much better job. 
 fetchmail-man.html: fetchmail.man
-       manServer.pl fetchmail.man >fetchmail-man.html
+       PATH=\${PATH}:$(srcdir)/dist-tools manServer.pl fetchmail.man >fetchmail-man.html
 
 # Make distribution.
-dist: distclean MANIFEST Makefile.in distdocs
-       touch fetchmail.lsm
-       make fetchmail-$(VERSION).tar.gz 
+dist: MANIFEST Makefile.in distdocs fetchmail-$(VERSION).tar.gz
+       #touch fetchmail.lsm
+       #make fetchmail-$(VERSION).tar.gz 
        #-cd po; make update-po
        ls -l fetchmail-$(VERSION).tar.gz
-       @echo "Don't forget to build RPMs from root!"
+       #@echo "Don't forget to build RPMs from root!"
 
 # Firewall against the lossage in autoconf that keeps breaking our build.
 EX = --exclude "fetchmail-$(VERSION)/intl/libintl.h"
 fetchmail-$(VERSION).tar.gz: $(all)
-       (cd ..; ln -sf fetchmail fetchmail-$(VERSION))
+       (cd ..; ln -sf $(shell basename \${PWD}) fetchmail-$(VERSION))
        (cd ..; tar $(EX) -czf fetchmail-$(VERSION).tar.gz `sed <fetchmail-$(VERSION)/MANIFEST s:^:fetchmail-$(VERSION)/:`)
        mv -f ../fetchmail-$(VERSION).tar.gz .
        rm ../fetchmail-$(VERSION)
index 1cf0de8360811545b5594212591ccb130cb70ddc..73f4f4e9da0a4d8acb2d90f03e036fb105aee300 100755 (executable)
@@ -3,20 +3,25 @@
 # growthplot -- plot the fetchmail project's growth as a function of time
 #
 
+PATH="$PATH:.:./dist-tools"; export PATH
+
+tmp=/tmp/fetchmail-growthplot.$$
+mkdir $tmp
+
 # Get data from the NEWS file
-timeseries >/tmp/growthplot$$
-grep "^[0-9]" /tmp/growthplot$$ >/tmp/growthnumbers$$
-grep "^[0-9.]*.[05].0  " /tmp/growthplot$$ >/tmp/growthmajors$$
-sed '/^4.2.9/,$d' </tmp/growthnumbers$$ >/tmp/growthannounce$$
+timeseries >$tmp/growthplot$$
+grep "^[0-9]" $tmp/growthplot$$ >$tmp/growthnumbers$$
+grep "^[0-9.]*.[05].0  " $tmp/growthplot$$ >$tmp/growthmajors$$
+sed '/^4.2.9/,$d' <$tmp/growthnumbers$$ >$tmp/growthannounce$$
 
 # gnuplot line styles.  These occasionally change (like beteween 3.5 and 3.7);
-# use "echo "set terminal png color; test" | gnuplot | display - to check.
+# use "echo 'set terminal png; test' | gnuplot | display -" to check.
 blue_boxes=3
 green_crosses=2
 cyan_diamonds=37       # Once purple triangles, but we can't do that anymore
 brown_triangles=23
 
-cat >/tmp/growthimage$$ <<EOF
+cat >$tmp/growthimage$$ <<EOF
 set title "Fetchmail project growth history"
 set xlabel 'Days since baseline'
 set ylabel 'Participants'
@@ -27,7 +32,7 @@ set tics out
 set autoscale y
 set y2range [5000:50000]
 set key bottom right box
-set terminal png color
+set terminal png
 
 EOF
 
@@ -72,7 +77,7 @@ EOF
                        lasttotal=$total
                fi
        done
-) </tmp/growthplot$$ >>/tmp/growthimage$$ 
+) <$tmp/growthplot$$ >>$tmp/growthimage$$ 
 
 # OK, now write the major-release labels
 (
@@ -81,22 +86,23 @@ EOF
            echo "set arrow from $days, $total - 55 to $days, $total - 15 head"
            echo "set label '$version' at $days - 5, $total - 65"
        done
-) </tmp/growthmajors$$ >>/tmp/growthimage$$ 
+) <$tmp/growthmajors$$ >>$tmp/growthimage$$ 
 
-cat >>/tmp/growthimage$$ <<EOF
-plot [] [0:] '/tmp/growthnumbers$$' using 6:5 \
+cat >>$tmp/growthimage$$ <<EOF
+plot [] [0:] '$tmp/growthnumbers$$' using 6:5 \
                title "Both lists" with points $blue_boxes, \
-     '/tmp/growthannounce$$' using 6:4 \
+     '$tmp/growthannounce$$' using 6:4 \
                title "fetchmail-announce" with points $cyan_diamonds, \
-     '/tmp/growthannounce$$' using 6:3 \
+     '$tmp/growthannounce$$' using 6:3 \
                title "fetchmail-friends" with points $green_crosses, \
-     '/tmp/growthnumbers$$' using 6:2 axes x1y2 \
+     '$tmp/growthnumbers$$' using 6:2 axes x1y2 \
                title "Lines of code" with points $brown_triangles
 EOF
 
-gnuplot /tmp/growthimage$$ >growth.png
+gnuplot $tmp/growthimage$$ >growth.png
 
-rm -f /tmp/growth*
+rm -f $tmp/growth*
+rmdir $tmp
 
 # growthplot ends here
 
index e677fd7a933e4b99b78ce39e099baae0d75cc4d8..73e258873d042397b6ea1e031a62c8e87b61cb20 100755 (executable)
--- a/listsize
+++ b/listsize
@@ -1,15 +1,36 @@
 #!/bin/sh
 #
 # Mine list sizes from MailMan web interfaces
+#
+# * Must set environment variable FETCHMAIL_LIST_PASS to list admin password
+
+project="fetchmail"
+admin="http://lists.berlios.de/mailman/admin"
+adminpw=$FETCHMAIL_LIST_PASS
 
-admin="http://lists.ccil.org/mailman/admin"
 list="$1"
-tmp="/usr/tmp/listsize.$$"
+if [ ! "$list" ]; then
+       echo "Usage: $0 list" 1>&2
+       exit 1
+fi
+case "$list" in
+$project-*)
+       # already gave us the full name, e.g. fetchmail-announce
+       ;;
+*)
+       # only gave us the last part of the name, e.g. announce
+       list="$project-$list"
+       ;;
+esac
 
+hexpw=`echo "$adminpw" | od -t x1 -w64 | sed -e 's/^[0-9]*//' -e '/^ *$/d' -e 's/ /%/g'`
+umask 077
+tmp="/tmp/$project-$list.listsize.$$"
 # First get the login cookie...
-curl -s -D $tmp $admin/fetchmail-${list}?adminpw=mypaswrd >/dev/null
+curl -s -D "$tmp" "$admin/${list}?adminpw=$hexpw" >/dev/null
 # Second gets the actual stat
-curl -s -b $tmp $admin/fetchmail-${list}/members \
-       | sed -n '/.*>\([0-9][0-9]*\) members total.*/s//\1/p'
+curl -s -b "$tmp" "$admin/${list}/members" \
+       | sed -n '/.*>(\([0-9][0-9]*\) members total.*/s//\1/p'
+rm -f "$tmp"
 # end
 
index 37a2fe957d1b41b94d07b7db7b62de005a82a5e7..035ea012a2b84f26c4f45556048dacb14a030487 100755 (executable)
@@ -4,11 +4,19 @@
 # Dumps a release notice and diffs as a MIME multipart message 
 # in RELEASE_NOTES
 #
-$timezone = "-0500";
+use POSIX qw(strftime);
+$timezone = strftime('%z', localtime) || "-0500";
+$tmp = $ENV{TMPDIR} || $ENV{TMP} || $ENV{TEMP} || "/tmp";
+
+$project = "fetchmail";
+$svnrepos = "svn://svn.berlios.de/$project";
+$website = "http://developer.berlios.de/projects/$project";
+$mailfrom = "<$project-devel-owner\@lists.berlios.de> (Fetchmail Development Team)";
 
 $diffs = 0;
 $verbose = 0;
 $null = ">/dev/null";
+$errnull = "2>/dev/null";
 while ($i = shift @ARGV)
 {
        if ($i =~ /^(--diffs|-d)$/i)
@@ -31,38 +39,39 @@ while ($i = shift @ARGV)
 $version=`grep 'VERSION *=' Makefile.in`;
 $version =~ /VERSION *= *(.*)/;
 $version = $1;
-$rcsid = $version;
-$rcsid =~ tr/./-/;
+$tag = "RELEASE_$version";
+$tag =~ tr/./-/;
 
-open(ID, "rlog -h NEWS|");
-while (<ID>) {
-    last if /^symbolic names/;
-}
+open(ID, "svn ls $svnrepos/tags|");
 while (<ID>) {
-    if (/^\t(.*):/) {
-       push(@versions, $1);
+    if (m{^(RELEASE_.*)/}) {
+       unshift(@versions, $1);
     }
 }
 close(ID);
 
-if ($versions[0] eq $rcsid) {
-    $rcsid = $versions[0];
-    $oldid = $versions[1];
+if ($versions[0] eq $tag) {
+    $tag = $versions[0];
+    $oldtag = $versions[1];
 } else {
-    $rcsid = '<workfile>';
-    $oldid = $versions[0];
+    $tag = '<workfile>';
+    $oldtag = $versions[0];
 }
 
-#$ENV{'PATH'} = "~esr/bin:/bin:/usr/bin";
+$ENV{PATH} .= ":./dist-tools:./dist-tools/shipper:.";
 
-print "Building $version release, RCS ID $rcsid, previous RCS ID $oldid\n";
+print "Building $version release, tag $tag, previous tag $oldtag\n";
 
-if (system("./configure; make -C po update-po; make clean")) {
-       die("Failure in translation-file rebuild.")
+if (system("aclocal && autoconf")) {
+       die("Failure in regenerating autoconf files\n");
+}
+
+if (system("./configure && make clean && make -C po update-po && make clean")) {
+       die("Failure in translation-file rebuild\n");
 }
 
 print "### Test-building the software...\n";
-if (system("configure --disable-nls; make")) {
+if (system("./configure --disable-nls && make clean && make")) {
        die("Compilation failure\n");
 }
 
@@ -72,23 +81,21 @@ if (system("make dist $null")) {
 }
 
 print "### Building the RPMs...\n";
-if (system("buildrpms fetchmail-${version}.tar.gz $null")) {
+if (system("buildrpms $project-${version}.tar.gz $null")) {
        die("RPM-build failure\n");
 }
 
-open(REPORT, ">PREAMBLE.$$");
+open(REPORT, ">$tmp/$project.PREAMBLE.$$");
 
 print REPORT <<EOF;
-From: esr\@thyrsus.com (Eric S. Raymond)
-Reply-To: esr\@thyrsus.com (Eric S. Raymond)
-Subject: The $version release of fetchmail is available
-FCC: ~/postings/outmail
+From: $mailfrom
+Subject: The $version release of $project is available
 
-The $version release of fetchmail is now available at the usual locations,
-including <URL:http://$ENV{'WWWVIRTUAL'}/~esr/fetchmail>.
+The $version release of $project is now available at the usual locations,
+including <URL:$website>.
 
 The source archive is available at:
-<URL:http://$ENV{'WWWVIRTUAL'}/~esr/fetchmail/fetchmail-${version}.tar.gz>
+<URL:$website/$project-${version}.tar.gz>
 
 Here are the release notes:
 
@@ -97,23 +104,24 @@ EOF
 # Extract the current notes
 open(NEWS, "NEWS");
 while (<NEWS>) {
-    if (/^fetchmail/) {
+    if (/^$project/) {
        print REPORT $_;
        last;
     }
 }
 while (<NEWS>) {
-    if (/^fetchmail/) {
+    if (/^$project/) {
        last;
     }
     print REPORT $_;
 }
 
-$oldrcs = $oldid;
-$oldrcs =~ tr/-/./;
+$oldver = $oldtag;
+$oldver =~ tr/-/./;
+$oldver =~ s/^RELEASE_//;
 
 if ($diffs) {
-       print REPORT "Diffs from the previous ($oldrcs) release follow as a MIME attachment."
+       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."
 }
@@ -122,33 +130,38 @@ close(NEWS);
 
 close(REPORT);
 
-if ($rcsid eq '<workfile>') {
-    system("rcsdiff -u -r$oldid          RCS/* 2>/dev/null >DIFFS.$$");
+if ($tag eq '<workfile>') {
+    system("svn diff -r$oldtag        $errnull >$tmp/$project.DIFFS.$$");
 } else {
-    system("rcsdiff -u -r$oldid -r$rcsid RCS/* 2>/dev/null >DIFFS.$$");
+    system("svn diff -r$oldtag -r$tag $errnull >$tmp/$project.DIFFS.$$");
 }
 print "Diff size:";
-system("wc <DIFFS.$$");
+system("wc <$tmp/$project.DIFFS.$$");
 
 if ($diffs) {
-       system "metasend -b -D 'fetchmail-$rcsid announcement' -m 'text/plain' -e 7bit -f PREAMBLE.$$ -n -D 'diff -u between -$oldrcs $rcsid' -m 'text/plain' -e 7bit -f DIFFS.$$ -o ANNOUNCE.EMAIL";
+       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 {
-       rename("PREAMBLE.$$", "ANNOUNCE.EMAIL");
+       rename("$tmp/$project.PREAMBLE.$$", "ANNOUNCE.EMAIL");
 }
-system("chown esr ANNOUNCE.EMAIL");
-chmod(0700, "ANNOUNCE.EMAIL");
+#system("chown esr ANNOUNCE.EMAIL");
+#chmod(0700, "ANNOUNCE.EMAIL");
 
-#unlink("PREAMBLE.$$");
-unlink("DIFFS.$$");
+#unlink("$tmp/$project.PREAMBLE.$$");
+unlink("$tmp/$project.DIFFS.$$");
 
 print "Building index page...\n";
 system("rm -f index.html; indexgen.sh");
 
-print "Building test server list...\n";
-system("rm -f testservers.html; testservers-gen.sh >testservers.html");
+if (-r "testsites") {
+       print "Building test server list...\n";
+       system("rm -f testservers.html; testservers-gen.sh >testservers.html");
+}
 
 print "Making activity graph...";
-growthplot;
+system "growthplot";
 
 print "Done\n";
 
index 7531aa275331a4714ba3aa0b93986fe99ec92e75..5134e6df8d738b939990a454f15d098e573e4b7d 100755 (executable)
@@ -1,11 +1,19 @@
+#!/bin/sh
+
+user=`whoami`
+name=`grep "^${user}:" /etc/passwd | cut -d: -f5|sed -e 's/^.*,//'`
+domain=mail.berlios.de
+email="$user@$domain"
+packager="$name <$email>"
+
 cat <<EOF
 # Note: Do not hack fetchmail.spec by hand -- it's generated by specgen.sh
 Name:          fetchmail
 Version:       $1
 Release:       1
-Vendor:                Eric Conspiracy Secret Labs
-Packager:      Eric S. Raymond <esr@thyrsus.com>
-URL:           http://www.catb.org/~esr/fetchmail/
+Vendor:                The Community Fetchmail Project
+Packager:      $packager
+URL:           http://developer.berlios.de/projects/fetchmail
 Source:         %{name}-%{version}.tar.gz
 Group:         Applications/Mail
 Group(pt_BR):   Aplicações/Correio Eletrônico
@@ -23,7 +31,7 @@ Summary(tr):    POP2, POP3, APOP, IMAP protokolleri ile uzaktan mektup alma yaz
 Summary(da):    Alsidig POP/IMAP post-afhentnings dæmon
 BuildRoot: %{_tmppath}/%{name}-root
 #Keywords: mail, client, POP, POP2, POP3, APOP, RPOP, KPOP, IMAP, ETRN, ODMR, SMTP, ESMTP, GSSAPI, RPA, NTLM, CRAM-MD5, SASL
-#Destinations: fetchmail-friends@ccil.org, fetchmail-announce@ccil.org
+#Destinations: fetchmail-users@lists.berlios.de, fetchmail-announce@lists.berlios.de
 
 %description
 Fetchmail is a free, full-featured, robust, and well-documented remote
@@ -155,6 +163,6 @@ rm -rf \$RPM_BUILD_ROOT
 /usr/lib/rhs/control-panel/fetchmailconf.init
 
 %changelog
-* `date '+%a %b %d %Y'` <esr@thyrsus.com> ${version}
+* `date '+%a %b %d %Y'` <$email> ${version}
 - See the project news file for recent changes.
 EOF