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