http://issues.apache.org/SpamAssassin/show_bug.cgi?id=5147





------- Additional Comments From [EMAIL PROTECTED]  2006-10-27 06:24 -------
> The issue is: what is r123456 ?  The version of sa-update?  Only changes when
> sa-update changes.  The dev version in M::SA?  Only changes when M::SA is
> updated.  Checked out revision you built from?  Would require kluges to work
> (likely the same type of kluges as our nightly/weekly runs do).

OK, good point.

> I still think the already suggested behavior of running sa-update after doing 
> an
> install/upgrade is the best solution.

Daryl's right -- that won't do the trick.  Here's another, worse, problem case:
consider what'll happen the day a release is made; the update will contain data
predating the release.

To illustrate in more detail, here's the current problem case:

  - 1. user downloads a dev, prerelease tarball of 3.2.0, installs it
  - 2. runs sa-update, gets rules version N
  - 3. next day, 3.2.0 is released, containing rules version N+1
  - 4. on that same day, user downloads, installs it
  - 5. /var/lib/spamassassin/3.002000/updates_spamassassin_org (version N) is
    used, instead of /usr/share/spamassassin (version N+1)

so let's say the user rm's the update dir and calls sa-update after install:

  - 1. user downloads a dev, prerelease tarball of 3.2.0, installs it
  - 2. runs sa-update, gets rules version N
  - 3. next day, 3.2.0 is released, containing rules version N+1
  - 4. on that same day, user downloads, installs it
  - 5. "rm /var/lib/spamassassin/3.002000; sa-update"
  - 6. sa-update downloads and installs rules version N _again_!
  - 7. /var/lib/spamassassin/3.002000/updates_spamassassin_org (version N) is
    used, instead of /usr/share/spamassassin (version N+1)

In other words it's *impossible* to run sa-update on that day without
installing an invalid ruleset ;)


Comparing modification dates seems to be the best option, in my opinion.  It's
a trivial tweak to the algorithm: change  sa-update to touch(1) the update dir
each time it downloads an update; then when Mail::SpamAssassin is looking for
rule-updates, if the modtime of /var/lib/spamassassin is older than
/usr/share/spamassassin, ignore the update and use the latter instead.





------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

Reply via email to