--- Andrew Tridgell tridge@osdl.org wrote:
Finally, if we have time, I'd like to discuss cooperation on IDL files and MSRPC interfaces.
Yes I would like to discuss this as well. Eirc Kohl has made quite a lot of changes to WIDL for ReactOS to support our MSRPC and PLug and Pray implementation and I would like to see these changes merged back in for Wine and Samba so we can adopt a common IDL compiler.
Thanks Steven
__________________________________ Yahoo! Messenger Show us what our next emoticon should look like. Join the fun. http://www.advision.webevents.yahoo.com/emoticontest
Steven,
Finally, if we have time, I'd like to discuss cooperation on IDL files and MSRPC interfaces.
Yes I would like to discuss this as well. Eirc Kohl has made quite a lot of changes to WIDL for ReactOS to support our MSRPC and PLug and Pray implementation and I would like to see these changes merged back in for Wine and Samba so we can adopt a common IDL compiler.
My take on the way we could cooperate on IDL is that the most effective route is by sharing IDL files, and sharing knowledge. I think that sharing the actual IDL compiler is much more problematic technically.
The reason for this is that Wine really needs RPC/IDL support with compatibility at the object code level, so that existing Win32 code that calls the low level marshalling APIs continues to work. This puts a strong restriction on the approach your compiler needs to take, including needing to use the "format string" table based approach. Please correct me if I am wrong about this.
The Samba project doesn't need object code compatibility, we need only wire compatibility. While we could implement wire compatibility via object code compatibility, it might significantly restrict some of the more interesting things we are doing with IDL at the moment. We have taken the notion of IDL for RPC interfaces and expanded it to be used for all sorts of regular marshalling/unmarshalling tasks, including NBT (and WINS), DGRAM packets and even for on-disk format of xattrs for extended NTFS filesystem attributes.
To do this, we have extended IDL in our compiler in quite a number of ways, allowing for constructs that MIDL does not handle. We would be very reluctant to give up those extensions as they have proved to be very valuable, and it might prove difficult to keep those extensions in some cases if we adopted the table based IDL compiler approach.
While I am certainly open to discussing ways in which this might change, I suspect that for the moment the needs of our two compilers will keep them separate.
What we can do, however, is cooperate on the IDL files themselves and on test suites and knowledge about how the associated machinery works (such as the many RPC auth, sign and seal methods).
To this end we have put the following note in our IDL directory:
-------------------------------------------------------------------- The IDL files in this directory are made available by the Samba Team under the following license:
Permission to use, copy, modify, and distribute these interface definitions for any purpose is hereby granted without fee.
This work is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. --------------------------------------------------------------------
It is our hope that this is sufficient for the Wine developers to be happy about using our IDL files in Wine, or at least grabbing any bits that are useful. Our collection of IDL files is not complete, but it is growing and already includes quite a lot of useful stuff. We also have quite extensive test suites for most of the IDL we have written.
Another thing we should discuss is the methods by which we develop new IDL files that are compatible with the interfaces that Microsoft uses in MSRPC. We have become quite proficient in that area, and it might be useful to have some discussions with some interested Wine developers on how that is done. I'm sure we can learn things from each other in that area.
Cheers, Tridge
I should also say that if the WineConf agenda doesn't have enough room for us to complete our Wine<->Samba discussions, then I'd like to invite any Wine developers who would like to continue the discussion to come to the SambaXP conference which takes place directly after WineConf just a few hours north of Stuttgart in Germany.
See http://www.sambaxp.org/ for more details.
I will be in Germany from the 28th of April until the evening of the 7th of May, so there should be plenty of time to have some in-depth discussions with anyone who is interested both at WineConf, at SambaXP and even after the end of SambaXP.
The Wine and Samba projects have a lot in common, so I really hope that this will be the beginning of a strong relationship between us.
Cheers, Tridge