[kepler-users] Build system annoyances and work arounds. Svn version issues with cygwin

Thomas M. Parris parris at isciences.com
Fri Jun 1 15:40:16 PDT 2012


All,

We have (finally) isolated and worked around some build system annoyances
that I would like to report.  These appear mostly due to subtle differences
between cygwin svn builds.  I apologize in advance for the length of the
message.  It is required to adequately characterize the problems we've been
having.  

I'm not sure whether this is a Kepler build system issue or an issue with
the latest cygwin build of svn. If a problem with cygwin svn, I would
appreciate some help submitting a bug report since I'm really able to write
a concise test case (since ant is involved).

If nothing else, I hope this message helps someone avoid the effort we've
had to invest in figuring this out.

I had reported this earlier, but I don't think anybody realized the impact
of subtle differences in svn versions.  As a result, others were not able to
replicate the problems we were having.  


Use scenario
----------------------------------------------------------------------------
------
Downloading/building kepler trunk from scratch as described at
https://kepler-project.org/developers/teams/build/documentation/build-system
-instructions#retrieving-kepler-and-ptolemy

Platforms
----------------------------------------------------------------------------
------
OS:   Windows 7 (64 bit), Windows Server 2008 R2 (64 bit), Windows Vista 32
bit
ant:  1.7.1 or 1.8.4  (both versions work)
Java: 1.7u4
svn:  cygwin (1.7.5 (r1336830), 1.6.17 (r1128011)) and CollabNet (1.7.5-1)
build for Windows 64bit (see discussion below)
shell: cygwin bash


Summary:
----------------------------------------------------------------------------
--------
1. cygwin svn 1.7.5  (r1336830) does not work.  This is the latest cygwin
build of svn as of today.
2. CollabNet (1.7.5-1) pre-built binary for Windows does work.  But is a
pain to configure for subsequent access to our local svn+ssh repositories.
So, we would rather not use it.
3. Once the install is initialized with CollabNet we can revert back to
cygwin svn 1.7.5  (r1336830) without (too much) difficulty. 
4. Older versions of cygwin svn seem to work (e.g., 1.6.17 (r1128011)).  You
can use the cygwin setup.exe to select the older version.

Gory Details:
----------------------------------------------------------------------------
--------
In order to reproduce these outcomes, one must start with a completely empty
kepler root directory. 

Step 0.  Make a completely clean kepler root directory

	$ mkdir <KeplerRoot>

Step 1.  Downloading the build (works for all versions of cygwin)
	
	$ cd <KeplerRoot>
	$ svn co
https://code.kepler-project.org/code/kepler/trunk/modules/build-area
	A    build-area/module-location-registry.txt
	A    build-area/settings
	...
	A    build-area/module-manager-gui.txt
	A    build-area/build.xml
	 U   build-area
	Checked out revision 29881.
	
No issues.  Works as it should.

Step 2a.  Retrieving Kepler and Ptolomy (using cygwin svn 1.7.5)

The issue here is that cygwin svn 1.7.5 is having problems with the
conversion/treatment of DOS style file specifications to Unix style file
specifications and fails trying to create an illegal directory

	$ cd <kepler>/build-area
	$ ant update
	Buildfile: C:\cygwin\home\parris\junk\build-area\build.xml

	update:
	[update-modules] kepler:
	[update-modules] Downloading kepler...
	[update-modules] svn co -r head
https://code.kepler-project.org/code/kepler/trunk/modules/kepler
C:\cygwin\home\parris\junk\kepler
	[update-modules] svn: E000002: Can't make directory
'/home/parris/junk/build-area/C:\cygwin\home\parris\junk\kepler': No such
file or directory
	[update-modules]

	BUILD FAILED
	C:\cygwin\home\parris\junk\build-area\build.xml:184: ERROR: It
appears that the command did not execute properly and exited with an exit
code of: 1

	Total time: 1 second

Step 2b. Retrieving Kepler and Ptolomy (using CollabNet Windows binary for
svn 1.7.5-1)

	$ PATH=/cygdrive/c/Program\ Files/CollabNet/Subversion\ Client:$PATH
	$ export PATH
	$ which svn
	/cygdrive/c/Program Files/CollabNet/Subversion Client/svn
	$ cd <kepler>/build-area
	$ ant update
	Buildfile: C:\cygwin\home\parris\junk\build-area\build.xml

	update:
	[update-modules] Copying 1 file to
C:\cygwin\home\parris\junk\build-area
	[update-modules] kepler:
	[update-modules] Downloading kepler...
	[update-modules] svn co -r head
https://code.kepler-project.org/code/kepler/trunk/modules/kepler
C:\cygwin\home\parris\junk\kepler
	[update-modules] A    C:\cygwin\home\parris\junk\kepler\resources
	...
	[update-modules] Checked out revision 29881.
	[update-modules]
	[update-modules] Updating build-area...
	[update-modules] svn -r head update --accept postpone
C:\cygwin\home\parris\junk\build-area
	[update-modules] Updating '.':
	[update-modules] At revision 29881.
	[update-modules]
	[update-modules] Ivy...

	BUILD SUCCESSFUL
	Total time: 4 seconds	

Not sure why ant update stopped here.  But issuing the same command again
works as expected until trying to get ptolemy.

	$ ant update
	Buildfile: C:\cygwin\home\parris\junk\build-area\build.xml

	update:
	[update-modules] Updating kepler...
	[update-modules] svn -r head update --accept postpone
C:\cygwin\home\parris\junk\kepler
	[update-modules] Updating 'C:\cygwin\home\parris\junk\kepler':
	[update-modules] At revision 29881.
	[update-modules]
	[update-modules] outreach:
	[update-modules] Downloading outreach...
	[update-modules] svn co -r head
https://code.kepler-project.org/code/kepler/trunk/modules/outreach
C:\cygwin\home\parris\junk\outreach
	...
	[update-modules] ptolemy:
	[update-modules] Downloading ptolemy...
	[update-modules] svn co -r head
https://code.kepler-project.org/code/kepler/trunk/modules/ptolemy
C:\cygwin\home\parris\junk\ptolemy
	[update-modules] A    C:\cygwin\home\parris\junk\ptolemy\lib
	[update-modules] A
C:\cygwin\home\parris\junk\ptolemy\lib\batik-all-1.6.jar
	[update-modules] A
C:\cygwin\home\parris\junk\ptolemy\lib\guava.jar
	[update-modules] A    C:\cygwin\home\parris\junk\ptolemy\module-info
	[update-modules] A
C:\cygwin\home\parris\junk\ptolemy\module-info\licenses.txt
	[update-modules] A
C:\cygwin\home\parris\junk\ptolemy\module-info\revision.txt
	[update-modules]  U   C:\cygwin\home\parris\junk\ptolemy
	[update-modules] Checked out revision 29881.
	[update-modules]
	[update-modules] ptolemy revision: 63644
	[update-modules] svn co -r 63644
https://source.eecs.berkeley.edu/svn/chess/ptII/trunk
C:\cygwin\home\parris\junk\ptolemy\src
	[update-modules] Error validating server certificate for
'https://source.eecs.berkeley.edu:443':
	[update-modules] SVN server certificate could not be validated.
	[update-modules] The command must be run by hand:
	[update-modules] svn co -r 63644
https://source.eecs.berkeley.edu/svn/chess/ptII/trunk
C:\cygwin\home\parris\junk\ptolemy\src
	[update-modules] Under Cygwin, use forward slashes:
	[update-modules]
svnco-r63644https://source.eecs.berkeley.edu/svn/chess/ptII/trunkC:/cygwin/h
ome/parris/junk/ptolemy/srcUpdating build-area...
	[update-modules] svn -r head update --accept postpone
C:\cygwin\home\parris\junk\build-area
	[update-modules] Updating '.':
	[update-modules] At revision 29881.

So, I run by hand as directed.  Note that I've changed "\" to "/" so that
the file specification is parsed correctly.

	$ svn co -r 63644
https://source.eecs.berkeley.edu/svn/chess/ptII/trunk
C:/cygwin/home/parris/junk/ptolemy/src
	Error validating server certificate for
'https://source.eecs.berkeley.edu:443':
	 - The certificate is not issued by a trusted authority. Use the
	   fingerprint to validate the certificate manually!
	Certificate information:
	 - Hostname: source.eecs.berkeley.edu
	 - Valid: from Tue, 15 Jun 2010 00:00:00 GMT until Fri, 14 Jun 2013
23:59:59 GMT
	 - Issuer: COMODO CA Limited, Salford, Greater Manchester, GB
	 - Fingerprint:
9a:02:4d:e4:e4:e3:1e:d6:31:b7:0d:eb:2f:a2:2c:07:aa:54:22:85
	(R)eject, accept (t)emporarily or accept (p)ermanently? p

And after clicking OK on the java warning message about the revocation date
on the certificate ...

	A    C:\cygwin\home\parris\junk\ptolemy\src\thales
	A
C:\cygwin\home\parris\junk\ptolemy\src\thales\thalesSingleWindow-license.htm
	A    C:\cygwin\home\parris\junk\ptolemy\src\thales\actor
	...
	 U   C:\cygwin\home\parris\junk\ptolemy\src
	Checked out revision 63644.	

Step 2c. Retrieving Kepler and Ptolomy (using cygwin svn 1.6.17 (r1128011))

	$ cd <kepler>/build-area
	$ ant update
	Buildfile: C:\cygwin\home\parris\junk\build-area\build.xml
	...


Works as expected (but it took several tries due to svn lock issues).  Note
that I did not have certificate issues this time through because I had
already dealt with them above.

-- Tom

----------------------------------------------------
Thomas M. Parris
Vice President
ISciences, LLC
61 Main Street, Suite 200
Burlington, VT 05401
Voice: +802-864-2999
Fax:   +617-344-2580
Email: parris at isciences.com

http://www.isciences.com/  http://www.terraviva.net/
---------------------------------------------------- 



More information about the Kepler-users mailing list