Subject: How to contribute to the gnu-win32 project
From: [email-masked] (Geoffrey Noer)

11 Dec 1996 21:05:36 -0800
Sender: [email-masked]
Approved: [email-masked]
Distribution: cygnus
Message-ID: <[email-masked]>
Content-Type: text
Original-To: [email-masked]
Original-Cc: [email-masked] (Geoffrey Noer)
X-Mailer: ELM [version 2.4 PL23]
Content-Length: 3370      
Original-Sender: [email-masked]

Since a few people have asked how to fix problems they encounter,
I thought I'd send a brief description of how to contribute fixes
to the gnu-win32 project.

How to rebuild the tools:
-------------------------

With the cdksrc installed as /c/src, make a build directory /c/obj.
Choose your install path, we'll use /c/install for this example.
Follow these steps in bash to build the development tools:

	cd /c/obj
	/c/src/configure -v --prefix=/c/install \
           --exec-prefix=/c/install/H-i386-cygwin32 > config.log 2>&1
	make > make.log 2>&1
	make -k install > install.log 2>&1

Because not all of the tools know how to deal with executables ending
in .exe, you will need to copy files by hand into the install bin
directory.  (This needs to be fixed eventually).

Note that you can follow these steps in another shell with the
"tail -f" command.

How to fix problems in the cygwin.dll:
--------------------------------------

The code corresponding to the cygwin.dll is mostly in the winsup
directory with additional code coming from newlib/libc and newlib/libm.
If you modify code in winsup, you can rebuild your new cygwin.dll
like this:

	cd /c/obj
	make all-target-winsup

The new version of the dll will be /c/obj/winsup/new-cygwin.dll.
Install it and see if your fix works.

Note that I am only the maintainer of the winsup directory.  That said,
feel free to send me Cygwin32-related patches for other tools -- I'll
probably know what you should do with them if I'm not in the position of
making the change myself.

Before you start modifying anything for real, you should probably send
me mail describing what you want to do and how you want to do it so you
don't waste time working on something we can't integrate.  This also
allows me to keep track of what's being worked on so efforts aren't
duplicated.

How to contribute your fix:
---------------------------

If your change is going to be a significant one in terms of the size
of your code changes, please check with me before starting.  Depending on
the circumstances, you may have to sign over the copyright ownership of
your code changes to Cygnus or the FSF before we can include your
contribution.  Your employer may also have to send us a disclaimer stating
that they have no claims to your contribution.  I agree that this is
annoying to deal with, but it is necessary for liability reasons.  Since we
have a standard form that you can fill out, sign, and send back, it doesn't
end up being *that* much of a pain.

Once you've finished making and testing your changes, you should send
me a context diff.  As an example, if you modified winsup/syscalls.cc and
have the original source file around as /winsup/syscalls.cc-orig, you would
do the following in bash:

	cd /c/src/winsup
	diff -c syscalls.cc-orig syscalls.cc >& syscalls.cc-patch

Then send me the contents of syscalls.cc-patch in an email along with
an explanation of what the change does.  I'll test it and get back to
you...

What needs doing:
-----------------

A fair amount of stuff.  I'll try to post a list to the gnu-win32 web
page soon.

Please feel free to ask me any questions about any of this.  I would love
it if more people made useful contributions -- this can be one of the big
advantages of free software; we all benefit from everyone else's work
as well as our own...

-- 
Geoffrey Noer
[email-masked]

-
For help on using this list, send a message to
"[email-masked]" with one line of text: "help".