You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by ms...@apache.org on 2004/07/05 23:32:23 UTC
svn commit: rev 22603 - in spamassassin/trunk: . build
Author: mss
Date: Mon Jul 5 14:32:22 2004
New Revision: 22603
Modified:
spamassassin/trunk/Makefile.PL
spamassassin/trunk/build/update_devel
spamassassin/trunk/build/update_stable
Log:
bug 3523:
* Create tarballs with x.y.z version numbers instead of x.yyy.zzz.
* Made the script fail if something went wrong.
* Renamed the daily build -cvs to -dev. This got to be "ported" to the ASF way of doing nightly builds.
Modified: spamassassin/trunk/Makefile.PL
==============================================================================
--- spamassassin/trunk/Makefile.PL (original)
+++ spamassassin/trunk/Makefile.PL Mon Jul 5 14:32:22 2004
@@ -217,6 +217,8 @@
'doc', 'pod2htm*',
+ 'version.env',
+
't/bayessql.cf', 't/do_net', 't/log', 't/sql_based_whitelist.cf',
)
@@ -882,6 +884,13 @@
# Store the assignment string if necessary.
set_EQ_from_line($line);
+ # Store a nicer version string for later use.
+ if (line_has_macro_def($line, 'VERSION')) {
+ get_macro('VERSION') =~ /^(\d)\.(\d\d\d)_?(\d\d\d)/;
+ set_macro('VERSION_COOL', join(".", $1*1, $2*1, $3*1));
+ $line .= "\n" . macro_def('VERSION_COOL');
+ }
+
# Add some "dummy" (PERL|SITE|VENDOR)PREFIX macros for later use (only if
# necessary for old EU::MMs of course)
if (line_has_macro_def($line, 'PREFIX')) {
@@ -1004,6 +1013,32 @@
return join("\n", @code);
}
+# Override some vars in the dist section.
+sub MY::dist {
+ my $self = shift;
+ my @code = split(/\n/, $self->SUPER::dist(@_));
+ init_MY_globals($self);
+
+ foreach my $line (@code) {
+ # Skip comments
+ next if $line =~ /^\s*#/;
+ # Skip everything which isn't a var assignment.
+ next unless line_has_macro_def($line);
+
+ # Store the assignment string if necessary.
+ set_EQ_from_line($line);
+
+ if (line_has_macro_def($line, 'DISTVNAME') && get_macro('VERSION_COOL')) {
+ set_macro('DISTVNAME', '$(DISTNAME)-$(VERSION_COOL)');
+ $line = macro_def('DISTVNAME');
+ }
+ }
+
+ clean_MY_globals($self);
+ return join("\n", @code);
+}
+
+
sub MY::postamble {
my $self = shift;
my $code = "";
@@ -1105,6 +1140,13 @@
$(PERL) build/convert_pods_to_doc $(MAN1PODS) $(MAN3PODS) $(EXTRAPODS)
$(TOUCH) made-doc-stamp
$(RM_F) pod2htm*
+
+
+version.env: lib/Mail/SpamAssassin.pm Makefile
+ $(RM_F) $@
+ $(PERL) -Ilib -MMail::SpamAssassin -e 'printf("FULL_VERSION=%s\n", Mail::SpamAssassin::Version())' >> $@
+ $(ECHO) DIST_VERSION=$(VERSION_COOL) >> $@
+ $(ECHO) CPAN_VERSION=$(VERSION) >> $@
EOD
Modified: spamassassin/trunk/build/update_devel
==============================================================================
--- spamassassin/trunk/build/update_devel (original)
+++ spamassassin/trunk/build/update_devel Mon Jul 5 14:32:22 2004
@@ -1,48 +1,68 @@
#!/bin/bash
+set -x
-WEBDIR=$HOME/spamassassin.taint.org
+WEBDIR=$SA_WEBDIR
+test -n "$WEBDIR" || WEBDIR=$HOME/spamassassin.taint.org
-vers=`build/get_version` # 2.60-rc3
-minivers=`echo $vers | sed -e 's/-[a-z0-9A-Z]*$//'` # 2.60
+GPGSIGN=$SA_GPGSIGN
+test -x "$GPGSIGN" || GPGSIGN=$HOME/bin/gpgsign
+
+DEVDIR=$WEBDIR/devel
+RELDIR=$WEBDIR/released
+mkdir -p $DEVDIR $RELDIR
+
+make distclean
+perl Makefile.PL < /dev/null || exit $?
+
+make version.env || exit $?
+. version.env
+
+# $VERSION will be x.y.z for released not marked $IS_DEVEL_BUILD, else
+# x-y-latest while $DIST_VERSION is always the x.y.z variant.
+VERSION=`echo $FULL_VERSION | perl -pe 's/\.\d+(-.*)-r\d+$/-dev/'`
# delete old CVS files
find . -name '.#*' -print | xargs rm -f
-make distclean ; perl Makefile.PL < /dev/null
-make
+make || exit $?
+
make text_html_doc
make distcheck
-echo $vers > $WEBDIR/latest_version
+DISTNAME=Mail-SpamAssassin
+DISTDNAME=$DISTNAME-$DIST_VERSION
+DISTVNAME=$DISTNAME-$VERSION
-rm -f Mail-SpamAssassin-$vers.tar.bz2 Mail-SpamAssassin-$vers.tar.gz Mail-SpamAssassin-$vers.zip
-make tardist
-make zipdist
-gzip -dc Mail-SpamAssassin-$minivers.tar.gz | bzip2 -9c - > Mail-SpamAssassin-$minivers.tar.bz2
+echo $VERSION > $WEBDIR/latest_version
-for ext in tar.bz2 tar.gz zip ; do
- if [ $minivers != $vers ] ; then
- mv Mail-SpamAssassin-$minivers.$ext Mail-SpamAssassin-$vers.$ext
- fi
+rm -f $DISTVNAME.*
+
+make distdir || exit $?
+tar -cWvf $DISTVNAME.tar $DISTDNAME || exit $?
+
+gzip -f9vc $DISTVNAME.tar > $DISTVNAME.tar.gz || exit $?
+bzip2 -f9vc $DISTVNAME.tar > $DISTVNAME.tar.bz2 || exit $?
+zip -rv - $DISTDNAME > $DISTVNAME.zip || exit $?
- cp Mail-SpamAssassin-$vers.$ext $WEBDIR/devel
- md5sum Mail-SpamAssassin-$vers.$ext \
- > $WEBDIR/devel/Mail-SpamAssassin-$vers.$ext.md5
+for ext in tar.bz2 tar.gz zip ; do
+ cp $DISTVNAME.$ext $DEVDIR
- sha1sum Mail-SpamAssassin-$vers.$ext \
- > $WEBDIR/devel/Mail-SpamAssassin-$vers.$ext.sha1
+ md5sum $DISTVNAME.$ext > $DEVDIR/$DISTVNAME.$ext.md5 || exit $?
+ sha1sum $DISTVNAME.$ext > $DEVDIR/$DISTVNAME.$ext.sha1 || exit $?
- gpgsign=$HOME/bin/gpgsign
- rm -f Mail-SpamAssassin-$vers.$ext.asc
- $gpgsign Mail-SpamAssassin-$vers.$ext
- mv Mail-SpamAssassin-$vers.$ext.asc $WEBDIR/devel/Mail-SpamAssassin-$vers.$ext.asc
+ rm -f $DISTVNAME.$ext.asc*
+ if [ -x "$GPGSIGN" ]; then
+ $GPGSIGN $DISTVNAME.$ext || exit $?
+ mv $DISTVNAME.$ext.asc $DEVDIR/$DISTVNAME.$ext.asc || exit $?
+ fi
- rm -f Mail-SpamAssassin-$vers.$ext
+ rm -f $DISTVNAME.$ext
done
test -f Makefile && make distclean
-# ( cd $WEBDIR/devel && cvs add -kb *SpamAssassin* )
+# ( cd $DEVDIR && cvs add -kb *SpamAssassin* )
+
+ls -l $DEVDIR
-ls -l $WEBDIR/devel
Modified: spamassassin/trunk/build/update_stable
==============================================================================
--- spamassassin/trunk/build/update_stable (original)
+++ spamassassin/trunk/build/update_stable Mon Jul 5 14:32:22 2004
@@ -1,10 +1,8 @@
#!/bin/bash
+set -x
-WEBDIR=$HOME/spamassassin.taint.org
-
-vers=`build/get_version`
-
-build/update_devel
+# A whole bunch of variables are defined in that file!
+. build/update_devel
# build/mkrpm
@@ -12,33 +10,22 @@
tar cf - --exclude=CVS --exclude='.#*' doc | ( cd $WEBDIR ; tar xf - )
for ext in tar.bz2 tar.gz zip ; do
- cp $WEBDIR/devel/Mail-SpamAssassin-$vers.$ext.asc \
- $WEBDIR/released/Mail-SpamAssassin-$vers.$ext.asc
- cp $WEBDIR/devel/Mail-SpamAssassin-$vers.$ext.md5 \
- $WEBDIR/released/Mail-SpamAssassin-$vers.$ext.md5
- cp $WEBDIR/devel/Mail-SpamAssassin-$vers.$ext.sha1 \
- $WEBDIR/released/Mail-SpamAssassin-$vers.$ext.sha1
-
- cp $WEBDIR/devel/Mail-SpamAssassin-$vers.$ext \
- $WEBDIR/released/Mail-SpamAssassin-$vers.$ext
-
- # gpgsign=$HOME/bin/gpgsign
- # rm -f Mail-SpamAssassin-$vers.$ext.asc
- # $gpgsign Mail-SpamAssassin-$vers.$ext
- # mv Mail-SpamAssassin-$vers.$ext.asc $WEBDIR/released/Mail-SpamAssassin-$vers.$ext.asc
+ for fxt in '' .asc .md5 .sha1 ; do
+ rm -f $RELDIR/$DISTVNAME.$ext$fxt
+ cp -p $DEVDIR/$DISTVNAME.$ext$fxt $RELDIR || exit $?
+ done
done
# cp WebMake-${vers}-1.noarch.rpm WebMake-${vers}-1.src.rpm $WEBDIR/released
-( cd $WEBDIR/released && cvs add -kb *SpamAssassin* )
+( cd $RELDIR && cvs add -kb *SpamAssassin* )
+
+set +x
+echo
echo "md5sum of archive files:"
-cat $WEBDIR/released/Mail-SpamAssassin-$vers.tar.gz.md5 \
- $WEBDIR/released/Mail-SpamAssassin-$vers.tar.bz2.md5 \
- $WEBDIR/released/Mail-SpamAssassin-$vers.zip.md5
+cat $RELDIR/$DISTVNAME.*.md5
echo "sha1sum of archive files:"
-cat $WEBDIR/released/Mail-SpamAssassin-$vers.tar.gz.sha1 \
- $WEBDIR/released/Mail-SpamAssassin-$vers.tar.bz2.sha1 \
- $WEBDIR/released/Mail-SpamAssassin-$vers.zip.sha1
+cat $RELDIR/$DISTVNAME.*.sha1