You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by he...@apache.org on 2022/04/19 08:38:40 UTC
svn commit: r1900021 - in /spamassassin/trunk/build/mkupdates: mkupdate-with-scores run_nightly
Author: hege
Date: Tue Apr 19 08:38:39 2022
New Revision: 1900021
URL: http://svn.apache.org/viewvc?rev=1900021&view=rev
Log:
- Disable possible run_nightly tarball creation, mkupdate-with-scores already does it more reliably
- Update tarball lint test much succeed for ALL versions (3.4.1-3.4.6 currently tested)
- Code fixes and cleanups
Modified:
spamassassin/trunk/build/mkupdates/mkupdate-with-scores
spamassassin/trunk/build/mkupdates/run_nightly
Modified: spamassassin/trunk/build/mkupdates/mkupdate-with-scores
URL: http://svn.apache.org/viewvc/spamassassin/trunk/build/mkupdates/mkupdate-with-scores?rev=1900021&r1=1900020&r2=1900021&view=diff
==============================================================================
--- spamassassin/trunk/build/mkupdates/mkupdate-with-scores (original)
+++ spamassassin/trunk/build/mkupdates/mkupdate-with-scores Tue Apr 19 08:38:39 2022
@@ -44,6 +44,7 @@ PROGDIR=`dirname $0`
PROGNAME=`basename $0 .sh`
HOST=`hostname -f`
+SVN_BASEURL="https://svn.apache.org/repos/asf/spamassassin"
TMPDIR="/usr/local/spamassassin/automc/tmp/${PROGNAME}"
UPDATEDIR="/var/www/automc.spamassassin.org/updates"
KEYDIR="/usr/local/spamassassin/automc/key"
@@ -80,13 +81,13 @@ echo "REVERT_REVISION=$REVERT_REVISION"
test_version() {
SA_VERSION=$1
- SA_SVN_TAG=$2
+ SA_SVN_PATH=$2
# to heck with dealing with svn update failures
rm -rf release_$SA_VERSION
# test the release on the version(s) of spamassassin the update is meant for
- svn co https://svn.apache.org/repos/asf/spamassassin/$SA_SVN_TAG release_$SA_VERSION
+ svn co $SVN_BASEURL/$SA_SVN_PATH release_$SA_VERSION
cd release_$SA_VERSION
@@ -99,18 +100,19 @@ test_version() {
# need rules directory or build won't work
if [ ! -e rules ]; then cp -a ../trunk/rules .; fi
+ rm -rf $TMPDIR/release_$SA_VERSION
perl Makefile.PL PREFIX=$TMPDIR/release_$SA_VERSION < /dev/null
make
make install
- set +e
- ./sa-update -D --install $TMPDIR/${REVISION}.tar.gz
- STATUS=$?
- set -e
+ ./sa-update -D --install $TMPDIR/${REVISION}.tar.gz || {
+ echo "FATAL: sa-update test failed for version $SA_VERSION (r$REVISION)" >&2
+ exit $?
+ }
cd ..
rm -rf release_$SA_VERSION $TMPDIR/release_$SA_VERSION
- return $STATUS
+ return 0
}
make_rule_update_from_trunk() {
@@ -118,14 +120,14 @@ make_rule_update_from_trunk() {
rm -rf trunk trunk-rulesrc-scores
# get the latest scores for new rules
- svn co https://svn.apache.org/repos/asf/spamassassin/trunk/rulesrc/scores trunk-rulesrc-scores
+ svn co $SVN_BASEURL/trunk/rulesrc/scores trunk-rulesrc-scores
# get the revision number of the rules
# TODO: have the script that make 72_scores.cf include a revision number
#REVISION=`head -1 trunk-rulesrc-scores/72_scores.cf | cut -d" " -f6`
REVISION=`head -1 trunk-rulesrc-scores/scores-set* | cut -d" " -f9 | sort -rn | head -1`
- svn co --revision=$REVISION https://svn.apache.org/repos/asf/spamassassin/trunk trunk
+ svn co --revision=$REVISION $SVN_BASEURL/trunk trunk
cd trunk
@@ -133,8 +135,10 @@ make_rule_update_from_trunk() {
svn up build
fi
+ rm -rf $TMPDIR/trunk
perl Makefile.PL PREFIX=$TMPDIR/trunk < /dev/null
make
+ make test TEST_FILES="t/basic_lint.t t/basic_lint_without_sandbox.t t/basic_meta.t"
cd ..
@@ -153,9 +157,7 @@ make_rule_update_from_trunk() {
# remove files we don't want to ship in updates
# remember that 3KB == 1GB of traffic on the mirrors as of Jan 1, 2010
- set +e
rm -f 70_sandbox.cf 70_inactive.cf STATISTICS-set?.txt
- set -e
mkdir -p $TMPDIR/trunk/etc/mail/spamassassin
#cp *.pre *.cf *.txt languages user_prefs.template $TMPDIR/trunk/etc/mail/spamassassin/.
@@ -174,42 +176,17 @@ make_rule_update_from_trunk() {
tar -ztvf $TMPDIR/${REVISION}.tar.gz
}
-copy_update_paranoid() {
- SRC=$1
- DST=$2
-
- set +e
- cp $SRC $DST
- diff -u $SRC $DST
- if [ $? -ne 0 ]; then
- set -e
- return 1
- fi
- set -e
- return 0
-}
-
copy_existing_update_for_reversion_testing() {
- EXIT=0
- (
- copy_update_paranoid "$UPDATEDIR/$REVERT_REVISION.tar.gz" "$TMPDIR/$REVISION.tar.gz" &&
- copy_update_paranoid "$UPDATEDIR/$REVERT_REVISION.tar.gz.asc" "$TMPDIR/$REVISION.tar.gz.asc" &&
- copy_update_paranoid "$UPDATEDIR/$REVERT_REVISION.tar.gz.sha1" "$TMPDIR/$REVISION.tar.gz.sha1" &&
- copy_update_paranoid "$UPDATEDIR/$REVERT_REVISION.tar.gz.sha256" "$TMPDIR/$REVISION.tar.gz.sha256" &&
- copy_update_paranoid "$UPDATEDIR/$REVERT_REVISION.tar.gz.sha512" "$TMPDIR/$REVISION.tar.gz.sha512"
- ) || EXIT=6
-
- # copying the update files went wrong exit
- if [ $EXIT -gt 0 ]; then
+ cp "$UPDATEDIR/$REVERT_REVISION.tar.gz"* "$TMPDIR/" || {
echo "Could not copy existing revision $REVERT_REVISION, to temporary testing directory, aborting!"
exit $EXIT
- fi
+ }
}
check_for_disable-automatic-update_file_in_svn() {
rm -rf $TMPDIR/svn-scores-latest
# checkout the latest scores directory
- svn co https://svn.apache.org/repos/asf/spamassassin/trunk/rulesrc/scores/ $TMPDIR/svn-scores-latest
+ svn co $SVN_BASEURL/trunk/rulesrc/scores/ $TMPDIR/svn-scores-latest
AUTOUPDATESDISABLED=0
@@ -248,6 +225,18 @@ disable_auto_update_publishing_and_get_n
echo "New update version/revision will be $REVISION"
}
+svn_path_exists() {
+ SVNINFO=`svn info $1 2>&1 || true`
+ # W170000 == non-existent revision
+ if [[ $SVNINFO =~ W170000: ]]; then return 1; fi
+ # Hardfail on any other error
+ if [[ ! $SVNINFO =~ Revision: ]]; then
+ echo "svn info failed: $SVNINFO" >&2
+ exit 1
+ fi
+ return 0
+}
+
rm -rf $TMPDIR
mkdir $TMPDIR
cd $TMPDIR
@@ -279,19 +268,38 @@ fi
# test to make sure it works with sa-update --install
TESTED_VERSIONS=""
+# Iterate through all 3.4 versions (3.4.1 - 3.4.x, and the 3.4 HEAD)
MAJOR_VERS=3
for (( MINOR_VERS=4; 1; MINOR_VERS++ )); do
for (( UPDATE_VERS=1; 1; UPDATE_VERS++ )); do
- svn info https://svn.apache.org/repos/asf/spamassassin/tags/spamassassin_release_${MAJOR_VERS}_${MINOR_VERS}_${UPDATE_VERS} || break
- test_version ${MAJOR_VERS}.${MINOR_VERS}.${UPDATE_VERS} tags/spamassassin_release_${MAJOR_VERS}_${MINOR_VERS}_${UPDATE_VERS} &&
- TESTED_VERSIONS="$TESTED_VERSIONS ${MAJOR_VERS}.${MINOR_VERS}.${UPDATE_VERS}"
+ REL=${MAJOR_VERS}_${MINOR_VERS}_${UPDATE_VERS}
+ if svn_path_exists $SVN_BASEURL/tags/spamassassin_release_${REL}; then
+ test_version ${REL} tags/spamassassin_release_${REL} &&
+ TESTED_VERSIONS="$TESTED_VERSIONS ${REL}"
+ fi
done
- # we just assume that the next stable version is the branch's current version
- set +e
- svn info https://svn.apache.org/repos/asf/spamassassin/branches_${MAJOR_VERS}.${MINOR_VERS}.${UPDATE_VERS} || break
- test_version ${MAJOR_VERS}.${MINOR_VERS}.${UPDATE_VERS} branches/${MAJOR_VERS}.${MINOR_VERS}.${UPDATE_VERS} &&
- TESTED_VERSIONS="$TESTED_VERSIONS ${MAJOR_VERS}.${MINOR_VERS}.${UPDATE_VERS}"
- set -e
+ # we just assume that the next stable version is the branch's current version (HEAD)
+ if svn_path_exists $SVN_BASEURL/branches/${MAJOR_VERS}.${MINOR_VERS}; then
+ test_version ${MAJOR_VERS}_${MINOR_VERS}_HEAD branches/${MAJOR_VERS}.${MINOR_VERS} &&
+ TESTED_VERSIONS="$TESTED_VERSIONS ${MAJOR_VERS}_${MINOR_VERS}_HEAD"
+ fi
+done
+
+# Iterate through all 4.0 versions (4.0.0 - 4.0.x, and the 4.0 HEAD)
+MAJOR_VERS=4
+for (( MINOR_VERS=0; 1; MINOR_VERS++ )); do
+ for (( UPDATE_VERS=0; 1; UPDATE_VERS++ )); do
+ REL=${MAJOR_VERS}_${MINOR_VERS}_${UPDATE_VERS}
+ if svn_path_exists $SVN_BASEURL/tags/spamassassin_release_${REL}; then
+ test_version ${REL} tags/spamassassin_release_${REL} &&
+ TESTED_VERSIONS="$TESTED_VERSIONS ${REL}"
+ fi
+ done
+ # we just assume that the next stable version is the branch's current version (HEAD)
+ if svn_path_exists $SVN_BASEURL/branches/${MAJOR_VERS}.${MINOR_VERS}; then
+ test_version ${MAJOR_VERS}_${MINOR_VERS}_HEAD branches/${MAJOR_VERS}.${MINOR_VERS} &&
+ TESTED_VERSIONS="$TESTED_VERSIONS ${MAJOR_VERS}_${MINOR_VERS}_HEAD"
+ fi
done
echo "VERSIONS UPDATE PASSED ON: $TESTED_VERSIONS"
@@ -300,7 +308,8 @@ echo "VERSIONS UPDATE PASSED ON: $TESTED
if [[ ! -z "$TESTED_VERSIONS" ]]; then
(
chmod 644 $TMPDIR/$REVISION.tar.gz* &&
- cp -a $TMPDIR/$REVISION.tar.gz* $UPDATEDIR/
+ # Atomic copy
+ rsync -a $TMPDIR/$REVISION.tar.gz* $UPDATEDIR/
) || exit 5
if [ $AUTOUPDATESDISABLED -eq 1 -a $REVERT_REVISION -eq 0 ]; then
Modified: spamassassin/trunk/build/mkupdates/run_nightly
URL: http://svn.apache.org/viewvc/spamassassin/trunk/build/mkupdates/run_nightly?rev=1900021&r1=1900020&r2=1900021&view=diff
==============================================================================
--- spamassassin/trunk/build/mkupdates/run_nightly (original)
+++ spamassassin/trunk/build/mkupdates/run_nightly Tue Apr 19 08:38:39 2022
@@ -6,7 +6,8 @@ LOGDIR="/var/www/automc.spamassassin.org
REPDIR="/var/www/ruleqa.spamassassin.org/reports"
UPDDIR="/var/www/automc.spamassassin.org/updates"
-VERSIONS="3.4.4"
+# Tarball creation disabled, see comment near make_tarball_for_version call
+#VERSIONS="3.4.4"
cd /usr/local/spamassassin/automc/svn/trunk
@@ -267,9 +268,13 @@ set -x
promote_active_rules
-for VER in $VERSIONS; do
- make_tarball_for_version $VER
-done
+### Disabled update.tar.gz creation in run_nightly, not sure what the purpose
+### was, as mkupdate-with-scores already creates much more thoroughly tested
+### tarball - if that failed, probably not a good idea to make one here
+### 19.4.2022 -hk
+#for VER in $VERSIONS; do
+# make_tarball_for_version $VER
+#done
set +x