
** About this Mercurial Repository **

This is a fork of Java Service Wrapper written by Tanuki Software, Ltd before
the original author changed their project to a GPL license starting with 
version 3.3.0.  This repository is a copy from two specific revisions in the
Subversion repository prior to any license changes.

Due to a request from Tanuki Software in August 2011, this project has been renamed
to Yaja Wrapper, which is short for Yet Another Java Application Wrapper.
Names of deployed files, config file settings, and Java classes are all backward compatible.

For more information about this fork you may contact Jeff Benjamin <jeff@benjamin.to>.

Ananlysis of the original Subversion source code repository shows that  the GPL
license change happened precisely at revision number 1384.  Revision 1383 was
also removal of two files in preparation for the license change.

The last official release labeled as version 3.2.3 in the source code repository
corresponds to Subversion revision number 1235.

Revisions up to 1382 are legal to copy without GPL taking effect.  Further, the
previous license is quite open as an MIT license.  It is very liberal to do
whatever you want with the code as long as you attribute the original authors.
See the text of the original license in file named doc/license.txt.  I can confirm
that there is no occurrence of the text "LGPL" or "GPL" anywhere in the code up
to revision 1383.

Therefore, I chose to fork copies of the wrapper source at revision 1235 and 1382.
The Mercurial tags for those revisions are release-3_2_3 and release-3_2_4, respectively.

** Notes on code between 3.2.3 (MIT) and 3.3.0 (GPL) **

There are revisions between revision 1235 and 1382 that are nice additions, especially 
the ability to set the console title, Windows and Mac OS X compiling fixes, and
concurrency safety/bug fixes.  It appears that at least the Windows IA64 architecture
changes were all made prior to the license change also, per Subversion revision history.
Do note that HPUX IA64 and PARISC changes were done after the GPL switch, so that code
cannot be copied into this repository.

Also noteworthy, documentation was removed at revision 1317 and so is in the first 
commit of this repository but then goes missing from the second.  

There are also some revisions prior to 1383 that we may not want or need.  Revisions 1327,
1324, 1355, 1356, 1358, and 1365, for example.  Also revision 1345 that contains a
comment about "branching the code to support Community, Standard, and Professional 
Editions of the Wrapper".  Revision 1377 contains a comment in revisions.txt about
a feature being only for Standard,Professional but does not mention "license" or
"edition" here.

TO DO's
- Add the documentation back in from SVN revision 1316.  - done
- The revisions between 1235 and 1383 that are not wanted, discussed above, should be
  backed out manually so we can show them as changes from our fork at revision 1382.
- There are some revisions around and after 1383 from potentially non-Tanuki patch 
  contributors that we could likely obtain by soliciting those users to submit
  the patch to this repository.  For example, Andrew Williams, Matej Kraus, Rob Oxspring,
  Travis Carlson, Rob Joyce, Stirling Chow, Robey Pointer.
- Subversion revision 1397 (post-GPL) makes it obvious that including -D_FILE_OFFSET_BITS=64 
  in the Linux makefiles is a good idea.
- Subversion revisions 1396 and 1405 (post-GPL) contain interesting fixes related to shutdown.


** How This Repository Was Created **

Pull Subversion repository up to revision number 1382 to a folder named 'wrapper'.

$ svn co -r 1382 https://wrapper.svn.sourceforge.net/svnroot/wrapper wrapper-svn
$ cd wrapper-svn
$ svn info
Path: .
URL: https://wrapper.svn.sourceforge.net/svnroot/wrapper
Repository Root: https://wrapper.svn.sourceforge.net/svnroot/wrapper
Repository UUID: e1cde85b-201e-0410-ba08-b05fdeec226b
Revision: 1382
Node Kind: directory
Schedule: normal
Last Changed Author: mortenson
Last Changed Rev: 1382
Last Changed Date: 2007-11-28 21:33:41 -0700 (Wed, 28 Nov 2007)

Do a simple copy to capture Subversion revision 1235, which was the official
3.2.3 release from the original vendor.  I don't want the Subversion artifacts,
so the fork includes only the trunk/wrapper folder and nothing from the 
branches/ or tags/ folders.

$ mkdir ../wrapper-hg
$ svn -r 1235 update
$ cp -R trunk/wrapper/* ../wrapper-hg/
$ diff -uw -r -x .svn trunk/wrapper ../wrapper-hg/
(no output == no differences)

Commit the Mercurial repository at this point, after removing .svn folders.

$ cd ../wrapper-hg
$ find . -type d -name .svn -exec rm -rf {} \;
$ hg init
$ hg addremove
$ hg commit -m "vendor fork at SVN rev 1235 corresponding to release 3.2.3"
$ hg tag release-3_2_3

Remove all files so when we copy the next revision Mercurial will do the job
of knowing what changed.  Note that the .hg hidden directory sticks around.

$ rm -rf *

Next, capture Subversion revision 1382 which has many of the post-3.2.3 patches
under the original MIT license.

$ cd ../wrapper-svn
$ svn -r 1382 update
$ cp -R trunk/wrapper/* ../wrapper-hg/
$ diff -uw -r -x .svn trunk/wrapper ../wrapper-hg/
Only in ../wrapper-hg/: .hg
Only in ../wrapper-hg/: .hgtags

Notes about revision 1235 versus 1382:
- The revisions.txt file in trunk/wrapper/wrapper/doc at Subversion
  revision 1382 actually lists 3.3.0 changes at this revision, even though the
  license is still the old BSD-like license.  The license.txt in this directory
  matches the one in the Subverion repository's tags/RELEASE_3_2_3/license.txt file.
- The src/document folder is MISSING at this revision.  There is a lot of good
  documentation in there but it is only at our first commit (removed at SVN rev 1317).
  The second commit in our repository instead has an index.html in the doc/ folder
  that says all the documentation is on the web site.
- Several Makefiles were renamed in the src/c folder.

Commit the repository again, and tag it as what we'll call release-3_2_4.

$ cd ../wrapper-hg
$ find . -type d -name .svn -exec rm -rf {} \;
$ hg addremove
$ hg commit -m "vendor fork at SVN rev 1382 corresponding to no official release"
$ hg tag release-3_2_4

Now go copy the documentation that was removed at SVN revision 1317.

$ cd ../wrapper-svn
$ svn -r 1316 update
$ cp -R trunk/wrapper/src/documentation ../wrapper-hg/src/
$ cd ../wrapper-hg
$ find . -type d -name .svn -exec rm -rf {} \;
$ hg addremove
$ hg commit -m "adding documentation back in from SVN rev 1317"
