DCE 1.2.2 released under LGPL license (strategically important for Wine)

Mike Hearn mh at codeweavers.com
Mon Jan 17 15:46:17 CST 2005

On Mon, 17 Jan 2005 21:23:21 +0000, Luke Kenneth Casson Leighton wrote:
>  you do realise that you are duplicating a project that already exists
>  (FreeDCE) which is a BSD implementation
>  ... and you do also realise that you are also working, albeit from a
>  different angle, on exactly the same thing that the samba 4 project is
>  duplicating?

As Rob has pointed out, we're not duplicating anything as the code we need
does not exist. There is no NIH syndrome here: if you can point to a LGPL
or BSD/X11 licensed implementation of OLE32, OLEAUT32 and things like
CreateProxyFromTypeInfo then we'd be very interested. The only one we do
know of is in Cedega and we already used quite a lot of code from that.

As it is, the DCE-RPC code already in Wine CVS is more than enough for now.
If we need to extend it later using code from FreeDCE may be possible, but
right now we :

a) Don't know of *any* pure DCE-RPC applications people want to run
b) Have a DCOM implementation that does not use RPC

(b) will change at some point, however most programs out there today do
not use the NDR marshallers or DCE-RPC APIs, instead they use MOP opcode
strings or the universal marshaller which generates proxies on the fly
from type databases. So there's still a lot to implement outside of
the core RPC API, the capabilities of which just aren't used that heavily
in Windows.

So to recap:

- FreeDCE implements DCE-RPC better than we do, but we don't care because 
  we don't actually use our current RPC code yet, and when we do it won't
  be stressing the current capabilities. The capabilities that *will* be 
  needed from our RPC runtime aren't implemented by any pre-existing
  project as they are Microsoft-specific extensions to the API

- Samba4 is focussed only on wire compatibility, but not binary API
  compatibility. Right now we don't care much about wire compat, and won't
  for many years. They do not implement much code we care about, that
  which we do care about (things like the OXID Resolver) are not hard to
  write. Even so we have a dialog open with them on code sharing.

Just to make this point perfectly clear *WE ARE WRITING CODE THAT DOES NOT
EXIST ELSEWHERE*. The closest implementation of DCOM we need can be
found in TransGamings Cedega, and we're using bits of their code already.

Oh finally, I'd note that Rob and I learned most of what we know about
DCOM when we were students, working as volunteers. "Lack of funding" has
nothing to do with anything. You can learn about DCOM very cheaply, my
biggest expense has been $40 or so for Essential COM by Don Box, an
excellent book that I recommend.

thanks -mike

More information about the wine-devel mailing list