spf-discuss
[Top] [All Lists]

Re: [spf-devel] [POLITICAL INFIGHTING] Difference between spf/spf2 srs/srs2

2004-07-26 21:59:33

This will probably be the only reply I make to James on the subject of
libspf vs libspf2.

James loves to have long "discussions", I don't.


Summary:

Libspf2 (aka libspf-alt) has long had support for more features, both
required by the SPF RFC and for compatibility with the perl M:S:Q
implementation, it has better error handling and has had support for
more MTAs, it is thread safe and runs faster.  As a result, all the
stuff that has been going on with libspf has been just catching up to
libspf2 and reinventing the wheel.  There is *nothing* that libspf
does that libspf2 doesn't, and there are lots of things that libspf2
does that libspf doesn't.

The things that libspf2 does includes support for RFC requirements
such as IPv6 and correct handling of %{r}, non-RFC features from
M:S:Q such as override/fallback, secondary MX support, and DNS
caching, and support for MTAs such as Zmailer, Exchange and Exim.



In <1090760699(_dot_)25207(_dot_)107(_dot_)camel(_at_)code3> James Couzens 
<jcouzens(_at_)6o4(_dot_)ca> writes:

On Sun, 2004-07-25 at 04:09, Shevek wrote:

This isn't about the naming of the library, this is about the existence of 
ANY other SPF project whatsoever, other than the one he is sitting on top 
of.

Excuse me?  Were you not so arrogant and completely void of humility
Shevek, and had actually apologized* to me, I would be working on
libspf-alt for several weeks.

Ok, the back-story to this is:

James and I had talked about merging our efforts for a long time.
James kept saying that I needed to stop working on libspf-alt and then
maybe some day in the future we could use it as a base for libspf2.
At the time, libspf-alt was more feature complete and bug-free than
libspf.   Nothing happened for a long time, but when Shevek decided to
stop waiting on James and took a couple of days to write his SRS
implementation, suddenly James decided he was interested in working on
libspf-alt as long as I excluded Shevek and used James' SRS
implementation.

Unfortunately, Shevek had already approached me about merging efforts.
I decided to ask both Shevek and James a simple question: "Are you
willing to work with the other?"  I would then work with any and all
who were willing to work with others.  Shevek answered instantly with
a "yes", he would work with James.  James took a very long time to not
answer the question, and I finally gave up trying to get an answer out
of him.

As a result, I'm now working with Shevek and not James.  



Wayne formerly has been a complete gentleman to me.  He submitted
patches to my library, and when he decided he still wanted to write his
own, he even notified me before he published letting me know what he was
going to do.  I was disappointed, because it would mean he would no
longer be contributing.

Actually, I did continue to send bug reports and update the test code
and spfquery code for libspf.  I did *not* stop contributing.  (Yes, I
know, you have removed most (all?) of the code that I contributed.)


  Conversation with Wayne (grumpy) 
  irc.pobox.com Sat Jul 24 18:50:05 PDT 2004
  http://moscow.6o4.ca/wayne.html

[selected parts of the IRC log taken out of order snipped]

For those who care, this conversation was on the public #spf channel
of irc.pobox.com.

Since it is relatively short, I have added the complete transcript to
the end of this post.


FACT: libSPF is older than libspf2 ergo more time in the wild with
similar development cycles leads to greater potential stability

The initial code release of libspf was on Jan 24th.  The initial code
release of libspf2 was on Feb 23rd.  They have both been out around
the same amount of time.


FACT: libSPF has LESS than HALF the size of libspf2 whilst maintaining
RFC compliance* ergo less code leads to less potential bugs and thus
definitely leads to greater stability and easier debugging.

There are potential bugs and real bugs.  The libspf RC4 release still
doesn't get such things this right (it fails, when it should pass):

spfquery -i 206.222.212.234 -s foo(_at_)spf(_dot_)midwestcs(_dot_)com -h asdf

Of course, you would have known about such problems if you had
bothered to use the test code that I sent you months ago.

Even though finding bugs in your code is very easy, I have decided
that it is a waste of my time to do so.


FACT: libSPF is not "reinventing the wheel".  Its absurd to think that
my library which has been in development LONGER would be reinventing
anything, I find that statement rather comical.

You started re-inventing the wheel once libspf fell behind libspf2 in
terms of features and such.  Yes, you have now added autoconf stuff,
just like libspf2 had months ago.  Yes, you have now added IPv6
support, just like libspf2 had months ago.  Yes, you are now toying
with adding DNS caching, just like libspf2 had months ago.  Yes, you
are looking for people to support things like Exchange and Exim, just
like libspf2 had months ago.


Libspf2 has had things that libspf still doesn't have from the very
first release.  


FACT: Re: "I decided that there needs to be a stable implementation",
I'm sorry, but I have no clue what world Wayne lives in, but under no
circumstances is starting another library from scratch going to lead to
greater stability sooner than simply assisting an existing one, one
which was nearly complete.

Uh huh...



Anyway, here are the IRC logs:

Jul 24 14:57:59 <grumpy>        oh great.
Jul 24 14:58:06 <grumpy>        RMS on MXCOMP about freesoftware
Jul 24 14:58:16 *       grumpy goes to read the damage
Jul 24 14:58:49 <gmc>   ah yes
Jul 24 14:58:56 <gmc>   just saw it
Jul 24 14:59:51 <grumpy>        well, it could be worse.
Jul 24 15:00:25 *       grumpy really wishes that MS would have "done the right 
thing" weeks ago.
Jul 24 15:01:00 *       grumpy wonders if RMS will get smacked by Ted Hardie 
for not being a member of the MARID list and posting to it.
Jul 24 15:01:19 <gmc>   ah yes and he's discussing hidden agenda's too
Jul 24 15:23:21 *       james wishes grumpy would have "done the right thing" 
weeks ago
Jul 24 15:24:17 <grumpy>        I did.  I gave up waiting for you and renamed 
my library for "alternate" to the second generation implementation, like it is.

[snip]

Jul 24 17:46:40 <james> grumpy its no, you are actively making use of 'libspf2' 
as a name
Jul 24 17:46:44 <james> s/no/not
Jul 24 17:46:50 <james> and i'm tired of this infighting
Jul 24 17:47:20 <james> I will even pay for "libspf-alt.org"
Jul 24 17:47:26 <grumpy>        ok james....  then stop fighting
Jul 24 17:47:29 <james> hell, I'll even host your site if that helps
Jul 24 17:47:50 <james> I will not sit idle whilst you use that name
Jul 24 17:48:01 <james> I'm getting overwhelmed with emails questioning what is 
going on
Jul 24 17:56:53 <james> well?
Jul 24 20:20:37 <james> you know silence is often an admission of guilt
Jul 24 20:24:36 <grumpy>        james: I have talked to you at length quite a 
few times.  One thing I learned it is rarely productive to talk with you.
Jul 24 20:28:54 <james> well
Jul 24 20:28:59 <james> why don't you explain to the list what your problem is
Jul 24 20:29:19 <james> you remain silent in the wake of my acusations
Jul 24 20:29:28 <james> and as I stated, silence is often viewed as an admision 
of guilt
Jul 24 20:29:39 <james> why don't we get some great discussion about your poor 
choice of domain name on the list
Jul 24 20:29:49 <james> there was nothing wrong with libspf-alt
Jul 24 20:29:50 <grumpy>        james: are you willing to work with Shevek?   
As you well know, Shevek says that he is willing to work with you.
Jul 24 20:30:05 <james> Can shevek stop lying?
Jul 24 20:30:23 <grumpy>        I dunno, and I don't care if you can or cannot 
stop lying either
Jul 24 20:30:28 <james> I do not lie
Jul 24 20:30:33 <james> or better
Jul 24 20:30:43 <james> I have not lied to you or shevek to date
Jul 24 20:31:19 <james> neither have I misrepresented my stance or position 
about my focus, nor anything else relating to this or other similar projects
Jul 24 20:32:57 <james> http://moscow.6o4.ca/shevek_log2.html <- why don't you 
ACTUALLY read the truth
Jul 24 20:33:04 <james> and see that he STILL has not apologized to me
Jul 24 20:33:16 <james> you are willing to maintain a stance on a subject you 
know nothing about
Jul 24 20:33:23 <james> because you refuse to read the information 
Jul 24 20:33:47 <grumpy>        Well, James, here is the problem.  I *have* 
read that a couple of time.
Jul 24 20:33:56 <james> well then I must have your ip wrong
Jul 24 20:33:57 <grumpy>        you shouldn't assume so much stuff
Jul 24 20:34:04 <james> I did not assume
Jul 24 20:34:18 <james> I thought I had tracked your ip to actual hits, or 
rather the lack there of
Jul 24 20:34:24 <grumpy>        well, apparently you assume you know all the IP 
addresses that I use
Jul 24 20:34:26 <james> I was going on the basis of the ip address you were 
using when we last spoke
Jul 24 20:35:16 <james> well why is it that you feel I should work with someone 
who will not apologize to me, and believes that I have made "no significant 
contribution" to this project
Jul 24 20:35:32 <grumpy>        but as far as other lies/deceptions from you, 
we could start with your initial claim that you would be "releasing your 
library within two days" (pharaphrased) when it actually took a couple of weeks 
before we could get a buggy library out of you
Jul 24 20:35:49 <james> thats not a lie, or a deception, thats a missed deadline
Jul 24 20:35:57 <james> please do not try to associate a lie with me in that 
manner
Jul 24 20:35:58 <grumpy>        It was trusting your claim that lead me to 
abandon my initial SPF implementation
Jul 24 20:36:04 <grumpy>        oh bull, you kept stalling
Jul 24 20:36:06 <grumpy>        and talling
Jul 24 20:36:06 <james> well whose fault is that?
Jul 24 20:36:17 <james> does that give you the right to behave as you have?
Jul 24 20:36:29 <grumpy>        james:  I wrote the complete second 
implementation in less time than it took for your "delay"
Jul 24 20:36:35 <grumpy>        yes, it does.
Jul 24 20:36:49 <grumpy>        my implementation supports more MTAs and has 
more features
Jul 24 20:36:52 <james> I'm afraid I fail to see your point
Jul 24 20:36:53 <grumpy>        you are reinventing the wheel
Jul 24 20:36:58 <james> excuse me?
Jul 24 20:37:00 <grumpy>        you are hurting the SPF community
Jul 24 20:37:07 <james> no YOU are
Jul 24 20:37:11 <james> and what is this all about features?
Jul 24 20:37:14 <james> thats not the point
Jul 24 20:37:14 <grumpy>        you are causing confusing with your backward, 
incomplete implemntation
Jul 24 20:37:20 <james> you are bloating the unecessary
Jul 24 20:37:31 <james> there is nothing backwards about it
Jul 24 20:37:40 <james> and I'm sorry, but my code has been out in the public 
before yours
Jul 24 20:37:45 <james> and thus, there is no reinventing anything here
Jul 24 20:37:48 <grumpy>        not by much
Jul 24 20:37:51 <grumpy>        yes there is.
Jul 24 20:38:06 <james> I fail to see what is being reinvented
Jul 24 20:38:06 <grumpy>        you are still adding features that I had in myt 
initial release
Jul 24 20:38:17 <james> please understand grumpy
Jul 24 20:38:24 <james> your implementation is too big
Jul 24 20:38:31 <james> you should only be implementing the RFC
Jul 24 20:38:46 <james> people who implement this need to be able to reference 
something thats as tight and to the point as possible
Jul 24 20:38:58 <james> I don't expect that sendmail or any other mta would 
implement any external library
Jul 24 20:39:01 <james> they will write it themselves
Jul 24 20:39:13 <james> of what benefit is it to them to have to look at 
thousands of lines of unnecessary code
Jul 24 20:39:23 <james> and quite frankly, you are trying to boast about how 
fast you can write something
Jul 24 20:39:28 <james> you've been hanging out with shevek too long
Jul 24 20:39:32 <james> speed is not of consequence here
Jul 24 20:39:36 <grumpy>        james: convince Meng to pull out things like 
the fallback/override stuff, and the 2ndary mx stuff, and dns caching...   If 
you do that, I'll consider pulling stuff out of my implmenetation
Jul 24 20:39:40 <james> not in the manner you are trying to attribute it
Jul 24 20:39:50 <james> and if you were not paying attention, I had to write 
libsrs as well
Jul 24 20:39:58 <james> so I've written two full implementations 
Jul 24 20:40:10 <james> I'm not saying you should pull it out
Jul 24 20:40:21 <james> I'm saying that there needs to be STABILITY before 
FEATURES
Jul 24 20:40:26 <grumpy>        james: I realize that you can't code anywhere 
near as fast as I can.  that's your problem
Jul 24 20:40:37 <james> wrong
Jul 24 20:40:46 <james> I have a busy schedule, and a job, so sue me
Jul 24 20:41:01 <grumpy>        james: good point.  It was *because* I was 
helping test your code and saw how bad it is that I decided that there needs to 
be a stable implementation.  that's what my implementation is.
Jul 24 20:41:16 <james> now hang on a minute, you are going to have to back 
that statement up 
Jul 24 20:41:23 <james> what is so "bad" or unstable about it?
Jul 24 20:41:54 <james> and how thoughtful and unselfish of you to instead of 
helping fix my supposedly "bad code", you will start from scratch on your own
Jul 24 20:42:03 <grumpy>        james: I don't care.  Your implemenation still 
doesn't do everything that M:S:Q does, it doesn't have support for as many 
MTAs, it doesn't do everything the RFC calls for and you are reinventing the 
wheel
Jul 24 20:42:09 <james> grumpy tsk tsk
Jul 24 20:42:13 <james> do not skirt the issue
Jul 24 20:42:13 <grumpy>        james: I sent you patches
Jul 24 20:42:17 <james> please qualify your statement
Jul 24 20:42:27 <grumpy>        james: you are not productive to talk with.
Jul 24 20:42:28 <grumpy>        bye
Jul 24 20:42:31 <james> you are claiming its bad code, please qualify this
Jul 24 20:42:32 <james> hahahahaha
Jul 24 20:42:34 <james> so you walk away
Jul 24 20:42:35 <james> good job
Jul 24 20:42:37 <james> way to stand up 
Jul 24 20:42:52 <james> man you are getting worse all the time
Jul 24 20:42:58 <james> you sling mud at a wall, and then you can't even back 
it up
Jul 24 20:43:52 <james> man this reall is pathetic
Jul 24 20:44:05 <james> be a man and actually qualify the statements that come 
from your mouth, or keyboard
Jul 24 20:45:24 <james> well everyone here please bear witness to this refusal 
to supply proof with acusation
Jul 24 21:02:29 <james> man thats so funny grumpy
Jul 24 21:02:35 <james> 06:42PM <grumpy> james: you are not productive to talk 
with.
Jul 24 21:02:43 <james> let me translate for everyone
Jul 24 21:03:03 <james> "I am saying things that I can not qualify with reason 
or proof so i'm leaving here before I make more of an ass of myself"
Jul 24 21:03:18 <james> you call me a liar, and then don't prove it
Jul 24 21:03:25 <james> then you say my code is bad, but you can't supply a 
reason
Jul 24 21:03:33 <james> who needs to grow up here, me or you?
[nothing more was said on #spf until you got on]


-wayne