Hello, As promized, i summarized the solution in a how-to on zope.org. http://www.zope.org/Members/dgeorgieff/howto_zope_cvs_on_cygwin/ thanks again Chris (and jason). Didier.
Didier, On Sat, Mar 30, 2002 at 10:24:53PM +0100, Didier Georgieff wrote:
As promized, i summarized the solution in a how-to on zope.org.
http://www.zope.org/Members/dgeorgieff/howto_zope_cvs_on_cygwin/
There are some inaccuracies in the above. I'm off on a business trip, but I will try to provide feedback ASAP.
thanks again Chris (and jason).
You are welcome. I hope that someday the rebase solution will be part of Cygwin's setup.exe so it will just happen automatically. Jason
Didier, On Sat, Mar 30, 2002 at 04:53:56PM -0500, Jason Tishler wrote:
On Sat, Mar 30, 2002 at 10:24:53PM +0100, Didier Georgieff wrote:
As promized, i summarized the solution in a how-to on zope.org.
http://www.zope.org/Members/dgeorgieff/howto_zope_cvs_on_cygwin/
There are some inaccuracies in the above. I'm off on a business trip, but I will try to provide feedback ASAP.
Here are my comments:
How-to compile zope cvs on Cygwin
Created by dgeorgieff. Last modified on 2002/03/30.
If you want to compile a fresh cvs zope under cygwin you'll face some compilation problems, because of some Cygwin fork () bugs.
The Cygwin fork() problem causes compilation problems but only during the build of the standard shared extensions. This is due to Cygwin's fork() aborting child processes (i.e., gcc) due to a Windows DLL base address conflict.
Those steps should allow you to have a working zope from cvs.
This is tested with :
* Win 98
* Cygwin 1.3.10
* Python 2.1.1 (cygwin source package)
Why not use Python 2.2?
* Zope source from CVS
Python from source with threads
you have to compile the python source (the one from cygwin) with threads enable.
Note that threaded Cygwin Python has a hang bug unless one builds with the following patches: http://sourceforge.net/tracker/?group_id=5470&atid=305470&func=detail&aid=52... http://sources.redhat.com/ml/newlib/2002/msg00122.html The first one is a Python patch, the second one is a Cygwin (i.e., newlib) patch. I will finally release a threaded Cygwin Python once Cygwin 1.3.11 is released.
* Get python 2.1.1 with source from cygwin
* Recompile Cygwin python with thread support
+ cd $PY_SRC (replace $PY_SRC by your own folder)
+ ./configure --with-threads
+ make
+ make install
* run $PY_SRC/Tools/scripts/h2py.py /usr/include/sys/ fcntl.h
* save the resulting FCNTL.py file in /usr/local/lib/ python2.1/plat-cygwin/FCNTL.py
make install should be generating FCNTL.py, etc. Why do you need the two manual steps above?
Correct the python problem
You have to run a rebase workaround for the fork() problem, to make it work.
* create the rebase program from rebase.cc
+ g++ -O2 -o rebase rebase.cc -limagehlp
You can find a pre-built rebase.exe at the following: http://www.tishler.net/jason/software/rebase/rebase.exe.bz2
* use this rebase program against the DLLs (replace this dll list by yours, and adapt eventually your list by removing any dll causing rebase to fail)
+ cd /usr/bin
+ rebase -d -b 0x68000000 -o 0x10000 cygbz21.0.dll cygcrypto.dll cygexslt-0.dll cygform5.dll cygform6.dll cyggdbm.dll cyghistory4.dll cyghistory5.dll cygintl-1.dll cygintl.dll cygitcl30.dll cygitk30.dll cygjpeg6b.dll cygltdl-3.dll cygmenu5.dll cygmenu6.dll cygncurses++5.dll cygncurses++6.dll cygncurses5.dll cygncurses6.dll cygpanel5.dll cygpanel6.dll cygpcre.dll cygpcreposix.dll cygreadline4.dll cygreadline5.dll cygregex.dll cygssl.dll cygtclreg80.dll cygtiff3.dll cygtk80.dll cygxml2-2.dll cygxslt-1.dll cygxsltbreakpoint-1.dll cygz.dll
+ rebase -d -b 0x68000000 -o 0x10000 /usr/src/ python-2.1.1/libpython2.1.dll
+ rebase -d -b 0x68000000 -o 0x10000 /usr/src/ python-2.1.1/build/lib.cygwin-1.3.10-i686-2.1/*.dll
With the above version of rebase (as opposed to the one that I am building into Cygwin's setup.exe), one must rebase *all* files in one shot. One *cannot* invoke rebase three different times. Additionally, note the following: o Rebase all Cygwin DLLs in /usr/bin except for cygwin1.dll, cygcurl-2.dll, and libW11.dll. The above list is the Cygwin DLLs in my /usr/bin which may be different than what is in other user's /usr/bin. o Rebase /usr/local/bin/libpython2.1.dll not the one in the build tree. o Rebase all files in /usr/local/lib/python2.2/lib-dynload not the ones in the build tree.
[snip]
Jason
On 1 Apr 2002, at 20:36, Jason Tishler wrote:
There are some inaccuracies in the above. I'm off on a business trip, but I will try to provide feedback ASAP.
Here are my comments:
Thanks a million Jason. I've (normally) updated the how-to with all your comments. Didier.
participants (2)
-
Didier Georgieff -
Jason Tishler