[Mono-winforms-list] Want to contribute to new SWF implementation ?

Ravindra rkumar@novell.com
Tue, 14 Sep 2004 14:43:36 +0530

Hey guys,

Do you know that it is possible to hack the new SWF from windows as well
as Linux box ? Please be informed that it is possible!

I have seen some people wanting to contribute to our new implementation
of SWF, but finding it difficult to get the initial setup working. Here
I have listed out some of the steps to get a working setup of new SWF.
I'm going to list the steps for different types of hackers ;-)

1. Linux hackers, who already have built and installed mono.
 It is as simple as to eat cake. We have created a new directory called
Managed.Windows.Forms parallel to System.Windows.Forms (old
implementation) under /cvs/mcs/class directory. All you need to do is
'make clean' and 'make install' to get the new SWF installed. Running
'make install' command in new or old implementation of SWF overwrites
the installed SWF dll.
Please note that once you install the new SWF, you might face problems
while building 'mcs' next time. The reason is there are some libraries
e.g. Npgsql that depend on some of the SWF classes that are not yet
implemented in the new implementation. To avoid this problem you can
either install the old SWF before building the new mcs or you disable
the build of those libraries which are depending on SWF once you get
errors. To disable the build of a particular library, you can go to
mcs/class/Makefile and remove/comment out the library name from the
SUBDIRS variable.

2. Linux hackers, who have not ever built mono.
 You need to build and install mono and then follow steps above.

3. Windows hackers, who run mono under cygwin.
 You can work same way as Linux hackers.

4. Windows hackers, who just want to work on SWF.
(Following steps are for the hackers who are not comfortable with the
cvs. People who know cvs already can simply checkout the 'mcs' module
from mono cvs.)

 a] Install some cvs client that has commandline interface. WinCVS
provides commandline interface.
 b] Open a command terminal. Go to the directory where you want mcs to
be checked out.
 c] Set an environment variable,
    set CVSROOT=:pserver:anonymous@anoncvs.go-mono.com:/mono
 d] Login to cvs server (press enter when prompted for password),
    cvs login
 e] Checkout mcs and other modules you want,
    cvs -z3 co mcs mono winforms (this checks out mcs, mono and winforms)
 Please note that mcs is the module that contains new as well as old
 f] The checkout operation above creates a directory called 'mcs' in the
current directory. Under .\mcs\class\Managed.Windows.Forms directory,
you can find SWF.csproj file. You can open this file with VS.NET 2003.
You might want to build the new SWF once it opens up in VS.NET.

Some notes for all SWF hackers:
1. Samples for SWF live under 'winforms' module in the cvs. You can
checkout this as you might have done for 'mcs'.
2. Under mcs/class/Managed.Windows.Forms/ directory, we have some
'Design' and 'Guidelines' docs. 'Design' doc talks about the design of
the new implementation and 'Guidelines' doc talks about some of the
conventions we are following for hacking the new implementation. We hope
you would find these docs useful.
3. To get the latest sources you would need to update the
Managed.Windows.Forms directory by setting the CVSROOT and running the
'cvs update' command inside this directory. I recommend to update your
SWF code frequently as the code is changing almost everyday.
4. Please keep everyone on the list informed about the control you are
working on. So that, we don't duplicate the efforts.

I have tried to keep the steps as clear and complete as possible. Please
let me know, if you are not covered by the four categories I have listed
or you are facing any problems in setting up your environment for the
new SWF.

Happy hacking SWF!

- Ravi