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

Christopher Brooks cxh at eecs.berkeley.edu
Fri Jun 1 17:26:09 PDT 2012


Hi Thomas,
Many thanks for detailed message, it will save others some time.

It seems like Cygwin has basically lost its way.  Several years ago now, 
the make source
code was changed to basically not work any longer with Windows style 
paths, see
https://chess.eecs.berkeley.edu/bugzilla/show_bug.cgi?id=55
This bug may have been fixed.  It is not relevant to Kepler, but it is 
indicative of the
lack of support for mixed paths in Cygwin.

The problems stem from whether Cygwin wants files mounted in binary mode
or text mode.  It used to be that the Cygwin setup.exe installer  asked 
if the files mounted
in DOS mode or not.  Sadly, this choice was removed because of poor 
judgement.

I've gone round and round with various people about this and basically 
it comes down
to if you are a Linux user using Windows, then you want Cygwin to mount 
things
one way.  If you are a Windows user using Cygwin, then you want them the 
other way.
Unfortunately, the Cygwin developers are primarily Linux users, so 
support for Windows-only
users is weak.

Most of the Kepler developers use Macs, so the Kepler build process is 
not as well
tested under Windows as it could be.  There are various Windows bugs, 
such as
"ant update" will fail, see 
http://bugzilla.ecoinformatics.org/show_bug.cgi?id=4281

I think a better fix under Windows would be to not require svn from the 
environment
and instead invoke svn via Java like how Eclipse does it.  A true test 
would be to build
from a DOS shell without Cygwin installed.

It is sad about Cygwin.  It used to work well, now it is slower and 
basically useless.

I have some notes about Cygwin at
http://ptolemy.eecs.berkeley.edu/ptolemyII/ptII8.1/cygwin.htm

_Christopher


On 6/1/12 3:40 PM, Thomas M. Parris wrote:
> 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/
> ----------------------------------------------------
>
> _______________________________________________
> Kepler-users mailing list
> Kepler-users at kepler-project.org
> http://lists.nceas.ucsb.edu/kepler/mailman/listinfo/kepler-users

-- 
Christopher Brooks, PMP                       University of California
CHESS Executive Director                      US Mail: 337 Cory Hall
Programmer/Analyst CHESS/Ptolemy/Trust        Berkeley, CA 94720-1774
ph: 510.643.9841                                (Office: 545Q Cory)
home: (F-Tu) 707.665.0131 cell: 707.332.0670



More information about the Kepler-users mailing list