Just wanted to give everyone a heads up..
I followed up with Jeremy's email a few months ago about a publisher wanting to put together a book on Wine. Yep, I have no life and 400 pages can't be that hard to write. Well, we started the ball rolling and now it looks like it's going to happen. I should be signing the contract in a few days. There's lots of details I thought you guys might be interested in.
You'll find the chapter outlines[1] at the bottom of this email. This book is oriented at users and Winelib developers. It's not a book about how to hack Wine internals. One thing I'll try to keep in mind as I'm writing is how to entice people to get involved with development. I think it's important to try to get people involved in the community.
I'm not going to be writing this alone. Ira Krakow, a Boston native, will be writing the Winelib parts. I didn't feel comfortable doing those and Ira had approached the publisher separately about doing a book on porting Windows apps. We've chatted a few times and I'm confident that given his experience he'll do well. I'm cc:ing him on this email by way of introduction and I'm sure at some point in the future he'll have a question or two (or 50.)
The publisher is Prentice-Hall. Thus far they've been excellent to work with and they really seem to just "get it" when it comes to open source projects. Specifically, this book will fall into their Bruce Perens' Open Source Series [2]. After the book is published, it will be available for a short time only in a dead tree version. After a few months it will be available under the Open Publication License [3]. It's a good license and contains many things I think are important.
Also, I'd like to thank everyone who reviewed the initial proposal. That process happened really fast and I wasn't even aware it had been sent out for review until after you guys got the emails. There was lots of good feedback in there and I incorporated a lot of it in the final proposal that got approved (you may even notice some changes in the chapters below as a result.) Some other things you guys mentioned aren't specifically in this chapter outline, but I made some notes as to what needs to be addressed. Thanks again.
Anyone who didn't see that proposal, you didn't miss much. It was lots of marketspeak. The key is the chapter outline below, so if you have any comments about what I'm overlooking, _please_ let me know.
[1] Chapter outlines:
Title: "Wine: Running Windows Applications on Linux" [4] 1. Wine Introduction[15 pages] What is Wine? How Can Wine Help You? An Introduction to Windows Components Overview of Wine's Components Recent Changes to Wine A History of the Wine Project How Can You Get Wine?
2. Installing Wine [20 pages] System Requirements Bundled Versions Downloading Packaged Versions Accessing CVS Compiling and Installing Wine Uninstalling Wine
3. Configuring Wine [35 pages] Introduction to Winecfg Windows Versions Libraries: Native vs. Builtin Application Settings Drive Configuration Serial and Parallel Ports Network Shares Fonts Printing Database Access
4. Installing Applications [35 pages] Basic Installation Common Installation Pitfalls Resources to Help With Installation Adding Native Libraries Installing Games Copy Protection Pitfalls Using Native DirectX
5. Installing Common Programs [35 pages] Microsoft Office Adobe Photoshop File Utilities Peer-to-Peer Applications Further Help: The Wine Application Database
6. Linux, Wine, and Windows Integration [40 pages] Integrating with Desktop Environments KDE and GNOME Integration Wine Tools Introduction Wineshelllink Wineprefixcreate Regedit Understanding the Wine Registry Changing the Registry Importing an Existing Registry Using an Existing Windows Partition
7. Enterprise Deployment [30 pages] Licensing Considerations Understanding Windows and Wine Security Automating Deployment of Applications Scripting Wine Citrix Killer: Wine and the Linux Terminal Server Project Performance Tweaks Reporting Bugs and Working with Developers
8. Commercial Alternatives: CodeWeaver's CrossOver Office [25 pages] Introduction to CrossOver Office Downloading and Installing CrossOver Configuring CrossOver Installing Applications with CrossOver
9. Commercial Alternatives: TransGaming's Cedega [25 pages] Introduction to Cedega Downloading and Installing Cedega Configuring Cedega Installing Games with Cedega
10. Introduction to Winelib [20 pages] Introduction to Winelib Licensing Considerations Portability Considerations Getting Started Understanding the Winelib toolkit A Roadmap for Porting Installation of the MinGW Compiler
11. Using Winelib for Porting [45 pages] Installation of the MinGW compiler Moving From Visual Studio to MinGW Tips and Tricks for Changing Compilers Moving Development to Linux Using Winemaker Using the Wine Resource Compiler Using the Wine Message Compiler Linking it Together: winegcc Debugging with the Wine debugger
12. Case Study: Porting a To-Be-Determined Application [30 pages]
13. Advanced Porting Techniques [25 pages] C++ Problems Working with Microsoft Foundation Classes Working with Templates Moving From Visual Studio to MinGW
14. dvanced Library Techniques [20 pages] Getting Started: Why Share Libraries? Using Linux Libraries with Winelib Applications Using Windows Libraries with Winelib Applications Why Wine is not a Shared Library
[2] Peren's Open Source Series info: http://phptr.com/promotion/1484?redir=1 [3] OPL license: http://www.opencontent.org/openpub/ a good discussion of it: http://lwn.net/Articles/108250/ [4] With regards to the title, I'll be sure to mention in Wine runs on other operating systems.
PS. This still leaves the door open for someone to write an O'Reilly book.
PPS. I'd like to think this won't affect WWN because I really have no life. However, that's not too realistic. Hopefully WWN won't suffer too much.
- Brian Vincent
Brian, thank you for all your hard work getting the ball rolling and for your kind words about me. I totally agree with you about Prentice Hall's professionalism and that they "get it".
I want to introduce myself briefly to the group. I am an independent Windows (and DOS before that) database applications developer with nearly 20 years experience. I've developed applications in Visual Basic, Visual C++, Java, Access, PowerBuilder, and OpenInsight, among others, using back ends such as SQL Server and Oracle. My customers have included a wide variety of businesses, from small 5 person shops to departments of Fortune 500 companies. I have also developed Web-based applications using Active Server Pages. In the process, I have had to dig deep into the advanced features of many of these programs, such as the Win32 API.
I also am an experienced technical writer and computer book author. I wrote the online help for OpenInsight, which included examples from the Windows API, OLE and ActiveX controls, ODBC configurations, etc. A long time ago (1985) I wrote a computer book (LOTUS 1-2-3 SELF-TAUGHT) which sold 50,000 copies. I also wrote the networking chapter of a Java book in 1996. Go to amazon.com, type in Ira Krakow, and you'll be able to buy them!
In the Linux world, I'm a relative newbie. I've only seriously gotten into Linux for the past 3 months. I'm very excited about Wine/Winelib as the way to bridge between Windows and Linux applications. My goal is to show other Windows developers how to port their applications over and escape from the clutches of Microsoft.
Brian has a wealth of knowledge and is a pleasure to talk with. I'm thrilled to be teaming up with him and I'm sure we'll produce a book that will find its audience quickly. I've been lurking on the wine-related groups for 2 months and have been impressed with the depth of knowledge and willingness to share that you have.
As I get up to speed in winelib, I'm sure I'll have questions. Actually, I have one now - note that Chapter 12 is a "Case Study ... Porting", with content to be determined. Has anyone done a port of some substantial Windows code to Linux using Winelib? What do you think should be covered in this chapter? Please feel free to contact me at ikrakow_1999@yahoo.com about this or any related topic.
Thank you for your attention. I look forward to (virtually) meeting all of you.
Sincerely, Ira Krakow ikrakow_1999@yahoo.com
I'm not sure what I'm writing here is appropriate for actual "headings". It's just some points to keep in mind when writing the actual chapters.
Brian Vincent wrote:
[1] Chapter outlines:
Title: "Wine: Running Windows Applications on Linux" [4]
- Wine Introduction[15 pages] What is Wine? How Can Wine Help You? An Introduction to Windows Components Overview of Wine's Components Recent Changes to Wine A History of the Wine Project How Can You Get Wine?
Back to earth - what will wine not do at this stage.
- Installing Wine [20 pages] System Requirements Bundled Versions Downloading Packaged Versions Accessing CVS Compiling and Installing Wine
The soft vs. hard dependencies. How to tell whether you have everything you need.
Uninstalling Wine
- Installing Common Programs [35 pages] Microsoft Office
Internet explorer?
Adobe Photoshop File Utilities Peer-to-Peer Applications Further Help: The Wine Application Database
- Introduction to Winelib [20 pages]
Introduction to Winelib
Make sure you mention here that you'll still need wine at the end of the day!
Licensing Considerations Portability Considerations Getting Started Understanding the Winelib toolkit A Roadmap for Porting Installation of the MinGW Compiler
- Advanced Porting Techniques [25 pages]
C++ Problems Working with Microsoft Foundation Classes
Actually, Boaz can probably help you with: Working with Advanced Template Library
Working with Templates Moving From Visual Studio to MinGW
PPS. I'd like to think this won't affect WWN because I really have no life. However, that's not too realistic. Hopefully WWN won't suffer too much.
Let's hope so. Good news is that you'd have to keep on the wine mailing list.
Shachar
On Tue, 30 Nov 2004 17:42:31 -0700, Brian Vincent wrote:
- Configuring Wine [35 pages] Introduction to Winecfg
Hah, optimist :)
On Tue, Nov 30, 2004 at 05:42:31PM -0700, Brian Vincent wrote:
- Advanced Porting Techniques [25 pages]
C++ Problems
We need a discussion of how to use the std C++ lib.
- Installing Applications [35 pages]
[...]
Using Native DirectX
I was just wondering what would be convered by this particular topic.
Lionel
On Wed, 1 Dec 2004 20:57:09 +0100, Lionel Ulmer lionel.ulmer@free.fr wrote:
- Installing Applications [35 pages]
[...]
Using Native DirectX
I was just wondering what would be convered by this particular topic.
I don't know. I was totally hung over when I wrote all that.
Just kidding. I remember Tom saying last year that native DirectX actually works under Wine. Maybe it's worth covering? Am I way off base?
-Brian
Just kidding. I remember Tom saying last year that native DirectX actually works under Wine. Maybe it's worth covering? Am I way off base?
Well, native DInput somewhat works (for which I am pretty surprised, I would need to trace it to see what Win32 calls it uses) and QUARTZ works too.
The 'high level' parts (like d3drm) should work too, but the rest (DDraw, D3D and I think DSound too) would not work.
Lionel
Lionel Ulmer wrote:
Just kidding. I remember Tom saying last year that native DirectX actually works under Wine. Maybe it's worth covering? Am I way off base?
Well, native DInput somewhat works (for which I am pretty surprised, I would need to trace it to see what Win32 calls it uses)
I got the Y axis inverted last time with native DInput. I don't remenber which game though... If can find it again if you plan to decide to trace what calls the dll does.
Christian