You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@spamassassin.apache.org by Gary Funck <ga...@intrepid.com> on 2004/12/28 00:48:26 UTC

inconsistencies in SA info. on CPAN

I used a tool called Ovid (available on CPAN) to build an
RPM for Mail::Spamassassin.  On the first attempt, it built
an RPM which provided perl-Mail-Spamassassin-3.000002
rather than the expected spamassassin-3.0.2-1.  Since Ovid
keys off the info. in the CPAN data base, the error can
be traded to the CPAN entry for SA:

cpan> i Mail::SpamAssassin
Strange distribution name [Mail::SpamAssassin]
Module id = Mail::SpamAssassin
    DESCRIPTION  identify spam mail using text analysis
    CPAN_USERID  JMASON (Justin Mason <jm...@cpan.org>)
    CPAN_VERSION 3.000002
    CPAN_FILE    F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz
    DSLI_STATUS  MmpO (mature,mailing-list,perl,object-oriented)
    INST_FILE    (not installed)

I believe that should read CPAN_VERSION 3.0.2 above.

When I tried the install:
# !rpm
rpm -Uvh spamassassin-3.0.2-1.i386.rpm spamassassin-tools-3.0.2-1.i386.rpm
perl-Mail-SpamAssassin-3.0.2-1.i386.rpm perl-Parse-Syslog-1.03-1.i386.rpm
error: Failed dependencies:
        perl(Mail::SpamAssassin::ArchiveIterator) is needed by
spamassassin-3.0.2-1
        perl(Mail::SpamAssassin::Message) is needed by spamassassin-3.0.2-1
        perl(Mail::SpamAssassin::NetSet) is needed by spamassassin-3.0.2-1
        perl(Mail::SpamAssassin::PerMsgLearner) is needed by
spamassassin-3.0.2-1
        perl(Mail::SpamAssassin::ArchiveIterator) is needed by
spamassassin-tools-3.0.2-1
    Suggested resolutions:
        spamassassin-2.44-11.8.x.i386.rpm

----

(clearly the suggested resolution is bogus).  The difficulty,
it seems, is that when Ovid packaged the rpm
perl-Mail-SpamAssassin-3.0.2-1.i386.rpm, It didn't find info.
in the CPAN database leading it to believe that Mail::Spamassassin
in fact provides Mail::SpamAssassin::ArchiveIterator,
Mail::SpamAssassin::Message, and Mail::SpamAssassin::PerMsgLearner.


The full CPAN listing follows.

cpan> i /Spamassassin/
Distribution    E/EA/EAK/Mail-SpamAssassin-SpamCopURI-0.22.tar.gz
Distribution    F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz
Distribution    J/JM/JMASON/Mail-SpamAssassin-2.01.tar.gz
Distribution    J/JM/JMASON/Mail-SpamAssassin-2.44.tar.gz
Distribution    J/JM/JMASON/Mail-SpamAssassin-2.64.tar.gz
Distribution    J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz
Distribution    M/MS/MSERGEANT/Mail-SpamAssassin-2.43.tar.gz
Module          Mail::Box::Search::SpamAssassin
(M/MA/MARKOV/Mail-Box-2.059.tar.gz)
Module          Mail::Message::Wrapper::SpamAssassin
(M/MA/MARKOV/Mail-Box-2.059.tar.gz)
Module          Mail::SpamAssassin
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::ArchiveIterator
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::AuditMessage
(J/JM/JMASON/Mail-SpamAssassin-2.64.tar.gz)
Module          Mail::SpamAssassin::AutoWhitelist
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::Bayes
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::BayesStore
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::BayesStore::DBM
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::BayesStore::SQL
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::CmdLearn
(J/JM/JMASON/Mail-SpamAssassin-2.64.tar.gz)
Module          Mail::SpamAssassin::Conf
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::Conf::LDAP
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::Conf::Parser
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::Conf::SQL
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::ConfSourceSQL
(J/JM/JMASON/Mail-SpamAssassin-2.64.tar.gz)
Module          Mail::SpamAssassin::Constants
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::DBBasedAddrList
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::DirBasedAddrList
(J/JM/JMASON/Mail-SpamAssassin-2.01.tar.gz)
Module          Mail::SpamAssassin::Dns
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::EncappedMIME
(M/MS/MSERGEANT/Mail-SpamAssassin-2.43.tar.gz)
Module          Mail::SpamAssassin::EncappedMessage
(J/JM/JMASON/Mail-SpamAssassin-2.64.tar.gz)
Module          Mail::SpamAssassin::EvalTests
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::ExposedMessage
(J/JM/JMASON/Mail-SpamAssassin-2.44.tar.gz)
Module          Mail::SpamAssassin::HTML
(M/MS/MSERGEANT/Mail-SpamAssassin-2.43.tar.gz)
Module          Mail::SpamAssassin::Locales
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::Locker
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::Locker::Flock
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::Locker::UnixNFSSafe
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::Locker::Win32
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::MailingList
(M/MS/MSERGEANT/Mail-SpamAssassin-2.43.tar.gz)
Module          Mail::SpamAssassin::Message
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::Message::Metadata
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::Message::Metadata::Received
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::Message::Node
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::MyMailAudit
(J/JM/JMASON/Mail-SpamAssassin-2.01.tar.gz)
Module          Mail::SpamAssassin::NetSet
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::NoMailAudit
(J/JM/JMASON/Mail-SpamAssassin-2.64.tar.gz)
Module          Mail::SpamAssassin::PerMsgLearner
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::PerMsgStatus
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::PersistentAddrList
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::PhraseFreqs
(J/JM/JMASON/Mail-SpamAssassin-2.44.tar.gz)
Module          Mail::SpamAssassin::Plugin
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::Plugin::Hashcash
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::Plugin::RelayCountry
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::Plugin::SPF
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::Plugin::Test
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::Plugin::URIDNSBL
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::PluginHandler
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::Received
(J/JM/JMASON/Mail-SpamAssassin-2.64.tar.gz)
Module          Mail::SpamAssassin::Replier
(J/JM/JMASON/Mail-SpamAssassin-2.64.tar.gz)
Module          Mail::SpamAssassin::Reporter
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::SHA1
(M/MS/MSERGEANT/Mail-SpamAssassin-2.43.tar.gz)
Module          Mail::SpamAssassin::SQLBasedAddrList
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::SpamCopURI
(E/EA/EAK/Mail-SpamAssassin-SpamCopURI-0.22.tar.gz)
Module          Mail::SpamAssassin::TextCat
(M/MS/MSERGEANT/Mail-SpamAssassin-2.43.tar.gz)
Module          Mail::SpamAssassin::UnixLocker
(J/JM/JMASON/Mail-SpamAssassin-2.64.tar.gz)
Module          Mail::SpamAssassin::Util
(J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz)
Module          Mail::SpamAssassin::Util::RegistrarBoundaries
(F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz)
Module          Mail::SpamAssassin::Win32Locker
(J/JM/JMASON/Mail-SpamAssassin-2.64.tar.gz)
67 items found

The entry for the 3.0.2-1 distribution is:

cpan> i F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz
Distribution id = F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz
    CPAN_USERID  FELICITY (Theo Van Dinter <fe...@kluge.net>)
    CONTAINSMODS Mail::SpamAssassin::Plugin
Mail::SpamAssassin::Util::RegistrarBoundaries
Mail::SpamAssassin::Plugin::Test Mail::SpamAssassin::Locker::Win32
Mail::SpamAssassin Mail::SpamAssassin::Plugin::Hashcash
Mail::SpamAssassin::Plugin::URIDNSBL Mail::SpamAssassin::Locker::UnixNFSSafe
Mail::SpamAssassin::SQLBasedAddrList Mail::SpamAssassin::Plugin::SPF
Mail::SpamAssassin::Conf::Parser Mail::SpamAssassin::PluginHandler
Mail::SpamAssassin::Message::Metadata::Received
Mail::SpamAssassin::BayesStore::DBM Mail::SpamAssassin::BayesStore::SQL
Mail::SpamAssassin::Message::Metadata Mail::SpamAssassin::Locker::Flock
Mail::SpamAssassin::Message::Node Mail::SpamAssassin::Conf::SQL
Mail::SpamAssassin::Plugin::RelayCountry Mail::SpamAssassin::Conf::LDAP
Mail::SpamAssassin::Constants

Focusing in on Mail::Spamassassin::Message -

cpan> i Mail::SpamAssassin::Message
Strange distribution name [Mail::SpamAssassin::Message]
Module id = Mail::SpamAssassin::Message
    CPAN_USERID  JMASON (Justin Mason <jm...@cpan.org>)
    CPAN_VERSION undef
    CPAN_FILE    J/JM/JMASON/Mail-SpamAssassin-3.0.1.tar.gz
    INST_FILE    (not installed)

Note that the associated distribution (CPAN_FILE) refers to the version
3.0.1 distribution, and not the current 3.0.2.

Is there any reason to believe that 3.0.2 doesn't support
the ArchiveIterator, Message, and various other modules
listed above?

In summary,

- The CPAN_VERSION for Mail::Spamassassin should be 3.0.2.

- The current distribution for the various Mail:Spamassassin
modules should be bumped to the current 3.0.2 distribution.

- The modules Mail::SpamAssassin::ArchiveIterator,
Mail::SpamAssassin::Message, and Mail::SpamAssassin::PerMsgLearner
should be listed in the CONTAINSMODS entry.

- Are all the older pre- 3.x entries still needed?



Re: inconsistencies in SA info. on CPAN

Posted by Theo Van Dinter <fe...@kluge.net>.
On Mon, Dec 27, 2004 at 07:37:24PM -0800, Gary Funck wrote:
> Note: the rpm built from the tarball provided at spamassassin.org
> (for spamassassin-3.0.2-1, and spamassassin-tools-3.0.2-1)
> produced dependencies looking for version numbers of the form
> 3.0.2-1, _not_ 3.000002.

Yeah.  The dependencies are for the other RPMs and are in the spec file
specifically.

> Don't the authors/contributors have some say over the info. recorded in
> the CPAN database?

I haven't looked around a lot (and Justin may have more options than I
do,) but the process for putting up a file in CPAN is to tell PAUSE where
the file is located (or you upload it directly).  Their code then goes
through the tarball and extracts a bunch of information, what modules
are included, etc, and if it finds things are valid, into CPAN it goes.
Due to that, I infer that the CPAN scripts generate the information you're
having issues with.  I could be wrong, but I don't remember there being
any options to manually edit this info.

-- 
Randomly Generated Tagline:
Sarchasm: The gulf between the author of sarcastic wit, and the recipient
 who doesn't get it.
         - Washington Post

RE: inconsistencies in SA info. on CPAN

Posted by Gary Funck <ga...@intrepid.com>.

Theo Van Dinter replies in part:

> > rpm -Uvh spamassassin-3.0.2-1.i386.rpm
> spamassassin-tools-3.0.2-1.i386.rpm
> > perl-Mail-SpamAssassin-3.0.2-1.i386.rpm
> perl-Parse-Syslog-1.03-1.i386.rpm
>
> Didn't you just say that the RPM came out 3.000002 ?

I fixed the spec. so that the version number would read 3.0.2. I didn't show
the original run/failure when the version number was encoded as 3.000002.

Note: the rpm built from the tarball provided at spamassassin.org
(for spamassassin-3.0.2-1, and spamassassin-tools-3.0.2-1)
produced dependencies looking for version numbers of the form
3.0.2-1, _not_ 3.000002.

There appear to be only a few CPAN modules using this numbering convention:

# zgrep -P '^\S+\s+[0-9]+\.[0-9]{6}' 02packages.details.txt.gz
C::Sharp::Tokener              0.08062001  S/SI/SIMON/C-Sharp-0.01.tar.gz
Class::MakeMethods::Emulator::TakeName 1.000001
E/EV/EVO/Class-MakeMethods-1.0.14.tar.gz
File::Flock                    104.111901
M/MU/MUIR/modules/File-Flock-104.111901.tar.gz
HTML::TableLayout              1.001008
S/SF/SFARRELL/HTML-TableLayout-1.001008.tar.gz
Mail::SpamAssassin             3.000002
F/FE/FELICITY/Mail-SpamAssassin-3.0.2.tar.gz
Math::Pari                     2.010601
I/IL/ILYAZ/modules/Math-Pari-2.010601.tar.gz
POE::Component::Connection::Keepalive 1.000100010001
R/RC/RCAPUTO/POE-Component-Client-Keepalive-0.01.tar.gz
Proc::Forkfunc                 96.041701
M/MU/MUIR/modules/Proc-Forkfunc-96.042201.tar.gz
Text::Tabs                     98.112801
M/MU/MUIR/modules/Text-Tabs+Wrap-2001.0929.tar.gz
Tie::Array::Pointer            0.000059
B/BE/BEPPU/Tie-Array-Pointer-0.000059.tar.gz
Time::CTime                    99.062201
M/MU/MUIR/modules/Time-modules-2003.1126.tar.gz

and those that do, seem to use the long number strings to encode the data of
release,
often as not.

>
> > (clearly the suggested resolution is bogus).  The difficulty,
> > it seems, is that when Ovid packaged the rpm
> > perl-Mail-SpamAssassin-3.0.2-1.i386.rpm, It didn't find info.
> > in the CPAN database leading it to believe that Mail::Spamassassin
> > in fact provides Mail::SpamAssassin::ArchiveIterator,
> > Mail::SpamAssassin::Message, and Mail::SpamAssassin::PerMsgLearner.
>
> That's not CPAN's job.  The rpmbuild process will call the appropriate
> RPM scripts (/usr/lib/rpm/find-provides) to find what modules the RPM
> will provide and then sets that appropriately in the package.
>

Ovid (and I assume cpanflute) uses the CPAN registry info. to determine the
modules provided by a distribution. It also uses CPAN_VERSION if it exists
to construct the rpm name, if that field is present, otherwise it constructs
the name from the version info. in the distribution archive file name.
Therefore, it is helpful to others, if the CPAN information is correct,
consistent,
and up-to-date.

> > In summary,
> > - The CPAN_VERSION for Mail::Spamassassin should be 3.0.2.
>
> Please see above.
>
> > - The current distribution for the various Mail:Spamassassin
> > modules should be bumped to the current 3.0.2 distribution.
> > - The modules Mail::SpamAssassin::ArchiveIterator,
> > Mail::SpamAssassin::Message, and Mail::SpamAssassin::PerMsgLearner
> > should be listed in the CONTAINSMODS entry.
> > - Are all the older pre- 3.x entries still needed?
>
> These are all up to CPAN, as far as I know, we have no control over them.

Don't the authors/contributors have some say over the info. recorded in
the CPAN database?



Re: inconsistencies in SA info. on CPAN

Posted by Theo Van Dinter <fe...@kluge.net>.
On Mon, Dec 27, 2004 at 03:48:26PM -0800, Gary Funck wrote:
>     CPAN_VERSION 3.000002
> I believe that should read CPAN_VERSION 3.0.2 above.

To work around CPAN/other perl module issues (namely that 3.0.2 isn't easily
considered a version by most things), internally SpamAssassin uses the perl
versioning trick: x.yyyzzz.  So 3.000002 internally is really 3.0.2, which we
convert on display.

> When I tried the install:
> # !rpm
> rpm -Uvh spamassassin-3.0.2-1.i386.rpm spamassassin-tools-3.0.2-1.i386.rpm
> perl-Mail-SpamAssassin-3.0.2-1.i386.rpm perl-Parse-Syslog-1.03-1.i386.rpm

Didn't you just say that the RPM came out 3.000002 ?

> (clearly the suggested resolution is bogus).  The difficulty,
> it seems, is that when Ovid packaged the rpm
> perl-Mail-SpamAssassin-3.0.2-1.i386.rpm, It didn't find info.
> in the CPAN database leading it to believe that Mail::Spamassassin
> in fact provides Mail::SpamAssassin::ArchiveIterator,
> Mail::SpamAssassin::Message, and Mail::SpamAssassin::PerMsgLearner.

That's not CPAN's job.  The rpmbuild process will call the appropriate
RPM scripts (/usr/lib/rpm/find-provides) to find what modules the RPM
will provide and then sets that appropriately in the package.

> In summary,
> - The CPAN_VERSION for Mail::Spamassassin should be 3.0.2.

Please see above.

> - The current distribution for the various Mail:Spamassassin
> modules should be bumped to the current 3.0.2 distribution.
> - The modules Mail::SpamAssassin::ArchiveIterator,
> Mail::SpamAssassin::Message, and Mail::SpamAssassin::PerMsgLearner
> should be listed in the CONTAINSMODS entry.
> - Are all the older pre- 3.x entries still needed?

These are all up to CPAN, as far as I know, we have no control over them.

-- 
Randomly Generated Tagline:
"HR people are generally capable of producing swank holiday parties and
 finding a dentist in your HMO group, but don't count on them to help you find
 a job." - David Clark