From c486e64596db92a4319f48f27832fd7ff8cc639d Mon Sep 17 00:00:00 2001 From: Matthias Andree Date: Fri, 30 Oct 2009 02:23:23 +0000 Subject: Clean up dist-tools, remove or update. svn path=/branches/BRANCH_6-3/; revision=5446 --- dist-tools/getstats.py | 25 +-- dist-tools/growthplot | 114 ------------- dist-tools/indexgen.sh | 389 ------------------------------------------- dist-tools/listsize | 36 ---- dist-tools/makerelease | 43 ++--- dist-tools/shipper/buildrpms | 8 +- dist-tools/timeplot | 40 ----- dist-tools/timeseries | 101 ----------- dist-tools/upload | 26 --- dist-tools/uploadfaq | 27 --- 10 files changed, 29 insertions(+), 780 deletions(-) delete mode 100755 dist-tools/growthplot delete mode 100755 dist-tools/indexgen.sh delete mode 100755 dist-tools/listsize delete mode 100755 dist-tools/timeplot delete mode 100755 dist-tools/timeseries delete mode 100755 dist-tools/upload delete mode 100755 dist-tools/uploadfaq (limited to 'dist-tools') diff --git a/dist-tools/getstats.py b/dist-tools/getstats.py index 9a396fa8..17fcab50 100755 --- a/dist-tools/getstats.py +++ b/dist-tools/getstats.py @@ -7,21 +7,22 @@ import commands, os, string, ftplib # Get version and date date = commands.getoutput("LC_TIME=C date -u") pid = os.getpid() -# this is a fast variant using the base of the current working directory -# (ignores uncommitted modifications) -if os.system("svn export -q -rBASE . /tmp/getstats.%d" % pid): +if True: + # this is a fast variant using the base of the current working directory + # (ignores uncommitted modifications) + cmd = "svn export -q -rBASE . /tmp/getstats.%d" % pid +else: + # this is a slower variant that may export the whole tree across + # the net + cmd = "svn export -rCOMMITTED . /tmp/getstats.%d" % pid + +if os.system(cmd): print "SVN FAILED" os.exit(1) -# this is a slower variant that may export the whole tree across the net -#os.system("svn export -rCOMMITTED . /tmp/getstats.%d" % pid) + ln = commands.getoutput("cat /tmp/getstats.%d/*.[chly] 2>/dev/null | wc -l" % pid) os.system("rm -rf /tmp/getstats.%d" % pid) -vers = commands.getoutput("sed -n -e '/AC_INIT/s/AC_INIT(\[.*\],\[\\(.*\\)\])/\\1/p' $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; 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$$ <lasttotal)) - then - # Label over curve hanging right, arrow down - arrowhead=$((lasttotal+50)) - echo "set label '$legend' at $lastday-10, $endy+15" - else - # Label under curve hanging left, arrow up - arrowhead=$((lasttotal-5)) - strlen=`python -c "print len('$legend')"` - lablen=$((strlen*22)) - echo "set label '$legend' at $lastday-$lablen+10, $endy-15" - fi - echo set arrow \ - from $lastday, $endy \ - to $lastday, $arrowhead \ - head - else - set -- $legend - size=$1 - friends=$2 - announce=$3 - total=$4 - days=$5 - date=$6 - lastday=$days - lasttotal=$total - fi - done -) <$tmp/growthplot$$ >>$tmp/growthimage$$ - -# OK, now write the major-release labels -( - while read version size friends announce total days date - do - 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$$ - -cat >>$tmp/growthimage$$ <growth.png - -rm -f $tmp/growth* -rmdir $tmp - -# growthplot ends here - - - - - - - diff --git a/dist-tools/indexgen.sh b/dist-tools/indexgen.sh deleted file mode 100755 index f24392e9..00000000 --- a/dist-tools/indexgen.sh +++ /dev/null @@ -1,389 +0,0 @@ -#!/bin/sh -# -# indexgen.sh -- generate current version of fetchmail home page. -# -echo "This script is hopelessly out of date. Abort." >&2 -exit 1 - -goldvers="6.2.0" -goldname="6.2.0" -version=`sed -n >checksums -done - -if [ $version != $goldvers ] -then - for file in fetchmail-$goldvers.tar.gz fetchmail-$goldvers-1.*.rpm - do - md5sum $file | sed -e "s: .*/: :" >>checksums - done -fi - -# Cryptographically sign checksums -gpg --clearsign checksums -mv checksums.asc checksums - -cat >index.html < - - - - - - - - -The fetchmail home page - - - - - - - -
- -

The fetchmail Home Page

- - -

Note: if you are a stranded fetchmail.com user, we're sorry but -we have nothing to do with that site and cannot help you. It's just an -unfortunate coincidence of names.

- -

What fetchmail does:

- -

Fetchmail is a full-featured, robust, well-documented -remote-mail retrieval and forwarding utility intended to be used over -on-demand TCP/IP links (such as SLIP or PPP connections). It supports -every remote-mail protocol now in use on the Internet: POP2, POP3, -RPOP, APOP, KPOP, all flavors of IMAP, ETRN, and ODMR. It can even -support IPv6 and IPSEC.

- -

Fetchmail retrieves mail from remote mail servers and forwards it via -SMTP, so it can then be read by normal mail user agents such as mutt, elm(1) or BSD Mail. -It allows all your system MTA's filtering, forwarding, and aliasing -facilities to work just as they would on normal mail.

- -

Fetchmail offers better security than any other Unix remote-mail -client. It supports APOP, KPOP, OTP, Compuserve RPA, Microsoft NTLM, -and IMAP RFC1731 encrypted authentication methods including CRAM-MD5 -to avoid sending passwords en clair. It can be configured to support -end-to-end encryption via tunneling with ssh, the Secure Shell.

- -

Fetchmail can be used as a POP/IMAP-to-SMTP gateway for an entire DNS -domain, collecting mail from a single drop box on an ISP and -SMTP-forwarding it based on header addresses. (We don't really -recommend this, though, as it may lose important envelope-header -information. ETRN or a UUCP connection is better.)

- -

Fetchmail can be started automatically and silently as a system daemon -at boot time. When running in this mode with a short poll interval, -it is pretty hard for anyone to tell that the incoming mail link is -not a full-time "push" connection.

- -

Fetchmail is easy to configure. You can edit its dotfile directly, or -use the interactive GUI configurator (fetchmailconf) supplied with the -fetchmail distribution. It is also directly supported in linuxconf -versions 1.16r8 and later.

- -

Fetchmail is fast and lightweight. It packs all its standard -features (POP3, IMAP, and ETRN support) in ${fetchmailsize}K of core on a -Pentium under Linux.

- -

Fetchmail is open-source -software. The openness of the sources is your strongest possible -assurance of quality and reliability.

- -

Where to find out more about fetchmail:

- -

See the Fetchmail Feature List for more -about what fetchmail does.

- -

See the on-line manual page for -basics.

- -

See the HTML Fetchmail FAQ for -troubleshooting help.

- -

See the Fetchmail Design Notes -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.

- -

How to get fetchmail:

- -

You can get any of the following leading-edge resources here:

- - -

MD5 checksums are available for these files; the -checksum file is cryptographically signed and can be verified with the -command:

- -
-gpg --verify checksums
-
- -EOF - -if [ $version != $goldvers ] -then - cat >>index.html <Or you can get the last \`gold' version, $goldname:

- - -

The detached GPG -signature for the binary tarball can be used to check it for -correctness, with the command

- -
-gpg --verify fetchmail-$goldvers.tar.gz.asc fetchmail-$goldvers.tar.gz
-
- -

For differences between the leading-edge $version and gold $goldname versions, -see the distribution NEWS file.

-EOF -fi - -cat >>index.html <(Note that the binary RPMs don't have the POP2, OTP, IPv6, Kerberos, -GSSAPI, Compuserve RPA, Microsoft NTLM, or GNU gettext -internationalization support compiled in. To get any of these you -will have to build from sources.)

- -

The latest version of fetchmail is also carried in the - -Metalab remote mail tools directory.

- -

Getting help with fetchmail:

- -

There is a fetchmail-friends list for people who want to discuss -fixes and improvements in fetchmail and help co-develop it. It's a -MailMan list, which you can sign up for at -fetchmail-friends@ccil.org. There is also an announcements-only -list, -fetchmail-announce@lists.ccil.org.

- -

Note: before submitting a question to the list, 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.

- -

Fetchmail was written and is maintained by Eric S. Raymond. There are some designated -backup maintainers (Rob Funk, David DeSimone aka Fuzzy Fox, -Dave Bodenstab and Sunil Shetye). Other backup -maintainers may be added in the future, in order to ensure continued -support should Eric S. Raymond drop permanently off the net for any -reason.

- -

You can help improve fetchmail:

- -

I welcome your code contributions. But even if you don't write code, -you can help fetchmail improve.

- -

If you administer a site that runs a post-office server, you may be -able help improve fetchmail by lending me a test account on your site. -Note that I do not need a shell account for this purpose, just a -maildrop. Nor am I interested in collecting maildrops per se -- -what I'm collecting is different kinds of servers.

- -

Before each release, I run a test harness that sends date-stamped -test mail to each site on my regression-test list, then tries to -retrieve it. Please take a look at my -list of test servers. If you can lend me an account on a kind -of server that is not already on this list, please do.

- -

Who uses fetchmail:

- -

Fetchmail entered full production status with the 2.0.0 version in -November 1996 after about five months of evolution from the ancestral -popclient utility. It has since come into extremely wide use -in the Internet/Unix/Linux community. The Red Hat, Debian and -Suse Linux distributions and their derivatives all include it. A -customized version is used at Whole Earth 'Lectronic Link. Several -large ISPs are known to recommend it to Unix-using SLIP and PPP -customers.

- -

Somewhere around a thousand people have participated on the fetchmail -beta lists (at time of current release there were $subscribers on the -friends and announce lists). While it's hard to count the users of -open-source software, we can estimate based on (a) population figures -at the WELL and other known fetchmail sites, (b) the size of the -Linux-using ISP customer base, and (c) the volume of fetchmail-related -talk on USENET. These estimates suggest that daily fetchmail users -number well into the hundreds of thousands, and possibly over a million.

- -

The sociology of fetchmail:

- -

The fetchmail development project was a sociological experiment as well -as a technical effort. I ran it as a test of some theories about why the -Linux development model works.

- -

I wrote a paper, The -Cathedral And The Bazaar, about these theories and the project. -I developed the line of analysis it suggested in two later essays. -These papers became quite popular and (to my continuing astonishment) may -have actually helped change the world. Chase the title link, above, -for links to all three papers.

- -

I have done some analysis on the information in the project NEWS file. -You can view a statistical history showing -levels of participation and release frequency over time.

- -

Recent releases and where fetchmail is going:

- -

Fetchmail is now sufficiently stable and effective that I'm getting -very little pressure to fix things or add features. Development has -slowed way down, release frequency has dropped off, and we're -basically in maintainance mode.

- -

Major changes or additions therefore seem unlikely until there are -significant changes in or additions to the related protocol RFCs.

- -

Where you can use fetchmail:

- -

The fetchmail code was developed under Linux, but has also been -extensively tested under 4.4BSD, SunOS, Solaris, AIX, and NEXTSTEP. It -should be readily portable to other Unix variants (it requires only -POSIX plus BSD sockets, and uses GNU autoconf).

- -

Fetchmail is supported only for Unix by its official maintainers. -However, it is reported to build and run correctly under BeOS, -AmigaOS, Rhapsody, and QNX as well. There is a CygWin port.

- -

Related resources:

- -

Jochen Hayek is developing a set of - -IMAP tools in Python that read your .fetchmailrc file and are -designed to work with fetchmail. Jochen's tools can report selected -header lines, or move incoming messages to named mailboxes based on -the contents of headers.

- -

Donncha O Caoihm has written a Perl script called -install-sendmail -that assists you in installing sendmail and fetchmail together.

- -

Peter Hawkins has written a script called gotmail that -can retrieve Hotmail. Another script, yosucker, can retrieve -Yahoo webmail.

- -

There's a program called -mailfilter which can be used -to do span filtering, that works particularly well called from fetchmail's -preconnect directive,

- -

A hacker identifying himself simply as \`Steines' has written a -filter which rewrites the to-line with a line which only includes -receipients for a given domain and renames the old to-line. It also -rewrites the domain-part of addresses if the offical domain is -different from the local domain. You can find it here.

- -

Fetchmail's funniest fan letter:

- -This letter still cracks me up whenever I reread it. - -

The fetchmail button:

- -

If you use fetchmail and like it, here's a nifty fetchmail button you -can put on your web page:

- -
fetchmail logo
- -

Thanks to Steve -Matuszek for the graphic design. The hand in the button (and the -larger top-of-page graphic) was actually derived from a color scan of -the fetchmail author's hand.

- -

Fetchmail mirror sites:

- -

There is a FTP mirror of the current sources and RPMs in Japan at - -ftp://ftp.win.ne.jp/pub/network/mail/fetchmail. - -

Reviews and Awards

- -

Fetchmail was DaveCentral's Best Of Linux winner for -June 30 1999.

- -

Fetchmail was a five-star Editor's Pick at Softlandindia.

- -
- - - -EOF - -# The following sets edit modes for GNU EMACS -# Local Variables: -# mode:html -# truncate-lines:t -# End: diff --git a/dist-tools/listsize b/dist-tools/listsize deleted file mode 100755 index 73e25887..00000000 --- a/dist-tools/listsize +++ /dev/null @@ -1,36 +0,0 @@ -#!/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 - -list="$1" -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/${list}?adminpw=$hexpw" >/dev/null -# Second gets the actual stat -curl -s -b "$tmp" "$admin/${list}/members" \ - | sed -n '/.*>(\([0-9][0-9]*\) members total.*/s//\1/p' -rm -f "$tmp" -# end - diff --git a/dist-tools/makerelease b/dist-tools/makerelease index bcb94c3a..26a483e1 100755 --- a/dist-tools/makerelease +++ b/dist-tools/makerelease @@ -5,11 +5,10 @@ # in RELEASE_NOTES # use POSIX qw(strftime); -$timezone = strftime('%z', localtime) || "-0500"; $tmp = $ENV{TMPDIR} || $ENV{TMP} || $ENV{TEMP} || "/tmp"; $project = "fetchmail"; -$svnrepos = "https://decoy.wox.org/svn/$project"; +$svnrepos = "http://mknod.org/svn/$project"; $website = "http://developer.berlios.de/projects/$project"; $mailfrom = "<$project-devel-owner\@lists.berlios.de> (Fetchmail Development Team)"; @@ -38,7 +37,7 @@ while ($i = shift @ARGV) # extract version from source $version=`grep 'AC_INIT' configure.ac`; -$version =~ /AC_INIT\([^,]*,\[?([0-9.rc-]+)\]?\)/; +$version =~ /AC_INIT\([^,]*,\[?([0-9.rc-]+)\]?\,.*\)/; $version = $1; die "cannot determine version" unless defined $1; $tag = "RELEASE_$version"; @@ -61,11 +60,13 @@ if ($versions[0] eq $tag) { $oldtag = $versions[0]; } -$ENV{PATH} .= ":./dist-tools:./dist-tools/shipper:."; +$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) { +if (-d "autom4te.cache") { system("rm -rf autom4te.cache") and die "Failure in removing autom4te.cache"; } @@ -74,22 +75,13 @@ if (system("autoreconf -isv")) { 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 && make clean && make distcheck")) { +if (system("mkdir -p autobuild && cd autobuild && ../configure -C --silent && make -s clean && make distcheck")) { die("Compilation failure\n"); } -print "### Building the distribution...\n"; -if (system("make dist $null")) { - die("Distribution-build failure\n"); -} - print "### Building the RPMs...\n"; -if (system("buildrpms $project-${version}.tar.gz $null")) { +if (system("cd autobuild && cp ../fetchmail.xpm . && buildrpms $project-${version}.tar.bz2 $null")) { die("RPM-build failure\n"); } @@ -100,10 +92,10 @@ From: $mailfrom Subject: The $version release of $project is available The $version release of $project is now available at the usual locations, -including . +including <$website>. The source archive is available at: - +<$website/$project-${version}.tar.gz> Here are the release notes: @@ -152,25 +144,12 @@ if ($diffs) { ." -n -D 'diff between $oldver and $version' -m 'text/plain' -e 7bit -f $tmp/$project.DIFFS.$$" ." -o ANNOUNCE.EMAIL"; } else { - rename("$tmp/$project.PREAMBLE.$$", "ANNOUNCE.EMAIL"); + system(mv, "$tmp/$project.PREAMBLE.$$", "ANNOUNCE.EMAIL"); } -#system("chown esr ANNOUNCE.EMAIL"); -#chmod(0700, "ANNOUNCE.EMAIL"); #unlink("$tmp/$project.PREAMBLE.$$"); unlink("$tmp/$project.DIFFS.$$"); -print "Building index page...\n"; -system("rm -f index.html; indexgen.sh"); - -if (-r "testsites") { - print "Building test server list...\n"; - system("rm -f testservers.html; testservers-gen.sh >testservers.html"); -} - -print "Making activity graph..."; -system "growthplot"; - print "Done\n"; # makerelease ends here diff --git a/dist-tools/shipper/buildrpms b/dist-tools/shipper/buildrpms index e3c08c2b..11b3ddfd 100755 --- a/dist-tools/shipper/buildrpms +++ b/dist-tools/shipper/buildrpms @@ -24,6 +24,8 @@ sed "s|~/.rpmmacros|$MACROFILE|" /usr/lib/rpm/rpmrc >"$RCFILE" echo "%_topdir $TMPDIR" >"$MACROFILE" echo "%_topdir $TMPDIR" >"$MACROFILE" +ARCH=--target=$(uname -m) + # build RPMs rpmbuild --rcfile "$RCFILE" $ARCH -ta $TARBALL \ || rpm --rcfile "$RCFILE" $ARCH -ta $TARBALL @@ -31,9 +33,9 @@ status=$? if [ $status = '0' ] then - # copy RPMs to this directory - cp "$TMPDIR"/RPMS/*/*.rpm . - cp "$TMPDIR"/SRPMS/*.rpm . + # move RPMs to this directory + mv "$TMPDIR"/RPMS/*/*.rpm . + mv "$TMPDIR"/SRPMS/*.rpm . fi # clean up build directory diff --git a/dist-tools/timeplot b/dist-tools/timeplot deleted file mode 100755 index c8240d05..00000000 --- a/dist-tools/timeplot +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh -# -# timeplot -- plot data on fetchmail release intervals -# -# - -# Get data from the NEWS file -timeseries | awk >/tmp/timeplot$$ ' -START {maxdiff = 0;} -/^[#%]/ {next;} - {days[count++] = $6;} -END { - for (i = 0; i < count-1; i++) - { - diffs[i] = days[i] - days[i + 1]; - if (maxdiff < diffs[i]) - maxdiff = diffs[i]; - } - for (i = 0; i <= maxdiff; i++) - freq[i] = 0; - for (i = 0; i < count - 1; i++) - { - freq[diffs[i]]++; - } - for (i = 0; i <= maxdiff; i++) - printf("%d %d\n", i, freq[i]); - } -' - -gnuplot >time.png - <) -{ - my($sum); - - if (/^%/) { - print $_; - } - elsif (/^fetchmail-([^ ]*) \(([^)]+)\)(, [0-9]* lines)?:/) { - $release = $1; - $date = $2; - $jdate = &day_offset($date); - if ($3) { - $lines = substr($3, 2, length($3) - 8); - } else { - $lines = 'na' - } - } - elsif (/There are ([0-9]*) people on fetchmail-friends and ([0-9]*) on fetchmail-announce/) { - $sum = $1 + $2; - print "${release}\t${lines}\t$1\t$2\t${sum}\t${jdate}\t${date}\n"; - $release = "unknown"; - $date = "unknown"; - } - elsif (/There are ([0-9]*) people on the fetchmail-friends list./) { - print "$release\t${lines}\t$1\t0\t$1\t$jdate\t$date\n"; - $release = "unknown"; - $date = "unknown"; - } -} - -# end - - - - diff --git a/dist-tools/upload b/dist-tools/upload deleted file mode 100755 index 3a76ee49..00000000 --- a/dist-tools/upload +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -version=`sed -n '/VERSION *= *\(.*\)/s//\1/p' &2 "this script $0 is outdated. Abort." -exit 1 - -version=`sed -n '/VERSION *= *\(.*\)/s//\1/p'