quetz-mod_python-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Graham Dumpleton" <grah...@dscpl.com.au>
Subject Re: mod_python 3.3.0-dev-20061109 tests on Win32
Date Mon, 13 Nov 2006 03:18:19 GMT
That is probably reasonable as late in Apache 2.0.X releases and in Apache
2.2.X they changed from version 0.0.9 of Apache runtime library to 1.0.2 (or
something like that). Thus, they are probably naming the libraries differently.

Looks like we need to do some work on that script to auto detect which
libraries are present and use the appropriate ones.

Graham

Jeff Robbins wrote ..
> Nicolas,
> 
> I downloaded the stock 2.2.3 binary build.  To get setup.py to link, I
> had to edit this:
> 
>         if winbuild:
>             libraries = ['libhttpd', 'libapr-1', 'libaprutil-1', 'ws2_32']
> 
> (added the -1 to libapr and libaprutil)
> 
> The resultant build produced _psp.pyd and also a mod_python_so.pyd which
> I renamed mod_python.so and it ran.
> 
> Does this sound right?
> 
> - Jeff
>   ----- Original Message ----- 
>   From: Nicolas Lehuen 
>   To: Graham Dumpleton 
>   Cc: python-dev@httpd.apache.org 
>   Sent: Sunday, November 12, 2006 21:04
>   Subject: Re: mod_python 3.3.0-dev-20061109 tests on Win32
> 
> 
>   Indeed, the APACHESRC variable has a slightly misleading name, since
> it doesn't need the full blown source installation. When building mod_python
> I'm using a stock Win32 Apache 2.0 or 2.2 binary build downloaded from
> http://httpd.apache.org/, not a source distribution. It may or may not
> work with a source distribution, but I'm positive it does with a binary
> one, so Jeff, you should definitely try it this way.
> 
>   Regards,
>   Nicolas 
> 
> 
>   2006/11/13, Graham Dumpleton <grahamd@dscpl.com.au>:
>     Jeff Robbins wrote ..
>     > Graham,
>     >
>     > These instructions are not sufficient.  The apache environment I
> have on
>     > windows has include files in <apachesr>/include but also in
>     > <apachesrc>/srclib/apr/include, <apachesrc>/srclib/apr-iconv/include,
> and 
>     > <apachesrc>/srclib/apr-util/include
>     >
>     > Setting the APACHESRC environmental per the instructions only finds
> the
>     > includes in $APACHESRC/include but not the apr files like apr.h in
> the
>     > error
>     > I posted.  In the vcproj file, I had to tell the IDE in some dialog
> where
>     > to
>     > find these include files.  Is there some other environmental or is
> there
>     > some copy phase in the build on Linux that gets all the include files
> into 
>     > $APACHESRC/include?
> 
>     All this suggests you are setting APACHESRC to where the original source
> code
>     for Apache resides. Can you see if there is a distinct area where the
> include
>     files are installed into along with Apache binaries, modules, config
> etc. I'm 
>     not a Windows person, but do you have a \Apache2 directory with an
> include
>     directory under that. If so, set APACHESRC to \Apache2. If not, then
> will have
>     to hope Nicolas is reading email at the moment and comment and he is
> the 
>     one who normally builds the Win32 binary releases for us.
> 
>     > Where is apr.h on your machine?
> 
>     In the single include directory along with ap_*.h header files etc
> where Apache
>     was installed into.
> 
>     Graham
> 
>     > ----- Original Message -----
>     > From: "Graham Dumpleton" <grahamd@dscpl.com.au>
>     > To: < python-dev@httpd.apache.org>
>     > Sent: Sunday, November 12, 2006 20:18
>     > Subject: Re: mod_python 3.3.0-dev-20061109 tests on Win32
>     >
>     >
>     > > Try follow these instructions:
>     > >
>     > >  http://www.modpython.org/pipermail/mod_python/2006-September/022092.html
>     > >
>     > > If these are correct, they probably should be put in the source
> code 
>     > if
>     > > they
>     > > aren't already.
>     > >
>     > > Graham
>     > >
>     > > Jeff Robbins wrote ..
>     > >> re: building on Win32
>     > >>
>     > >> I tried using setup.py but even once I set APACHESRC it still
> couldn't
>     > >> find
>     > >> the apr* include directories.  I set ext_modules = [PSPModule]
> alone
>     > and
>     > >> it
>     > >> built _psp.pyd no problem! 
>     > >>
>     > >>
>     > >> C:\work\mod_python-3.3.0-dev-20061109\dist>python setup.py build
>     > >> running build
>     > >> running build_py
>     > >> running build_ext
>     > >> building 'mod_python_so' extension
>     > >> C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\cl.exe
> /c
>     > >> /nologo
>     > >> /Ox
>     > >>  /MD /W3 /GX
>     > >> /DNDEBUG -DWIN32 -DNDEBUG -D_WINDOWS -IC:\work\mod_python- 3.3.0-dev
>     > >> -20061109\src\include -IC:\work\httpd-2.2.3\include -IC:\Python24\include
>     > >> -IC:\P
>     > >> ython24\PC /TcC:\work\mod_python-3.3.0-dev-20061109\src\mod_python.c
>     > >> /FoC:\work\ 
>     > >> mod_python-3.3.0-dev-20061109\src\mod_python.obj
>     > >> mod_python.c
>     > >> c:\work\httpd-2.2.3\include\ap_config.h(25) : fatal error C1083:
> Cannot
>     > >> open
>     > >> inc 
>     > >> lude file: 'apr.h': No such file or directory
>     > >> error: command '"C:\Program Files\Microsoft Visual Studio .NET
>     > >> 2003\Vc7\bin\cl.e
>     > >> xe"' failed with exit status 2 
>     > >>
>     > >>
>     > >> ----- Original Message -----
>     > >> From: "Graham Dumpleton" <grahamd@dscpl.com.au>
>     > >> To: "Jeff Robbins" < jeffr@livedata.com>
>     > >> Cc: "python-dev list" <python-dev@httpd.apache.org>
>     > >> Sent: Saturday, November 11, 2006 20:18 
>     > >> Subject: Re: mod_python 3.3.0-dev-20061109 tests on Win32
>     > >>
>     > >>
>     > >> >
>     > >> > On 12/11/2006, at 12:31 AM, Jeff Robbins wrote:
>     > >> > 
>     > >> >> 3 problems found on Win32:
>     > >> >>
>     > >> >>
>     > >> >> 1) _psp didn't build and I don't know how to build it
>     > >> >
>     > >> > How are you trying to build mod_python in the first place? Are
> you 
>     > >> > using
>     > >> > dist/build_installer.bat or using VisualStudio project file.
> The
>     > >> > latter
>     > >> > isn't
>     > >> > really used any longer and isn't tested. We know that it doesn't
> list 
>     > >> the
>     > >> > finfoobject.c file for a start.
>     > >> >
>     > >> >> 2) In the 'Testing PythonImport' test, the path separators
> in the
>     > two
>     > >> >> paths being compared are different (no doubt due to Win32

> backslash 
>     > >> vs
>     > >> >> forward slash issues)
>     > >> >>
>     > >> >> the tests.py code does this:
>     > >> >>    directory = os.path.dirname(__file__)
>     > >> >>    assert( sys.path.count(directory) == 1)
>     > >> >>
>     > >> >> os.path.dirname(__file__) is 'C:\\work\\mod_python-3.3.0-
>     > >> >> dev-20061109\\test\\htdocs'
>     > >> >> 
>     > >> >> yet sys.path has this in it 'C:/work/mod_python-3.3.0-dev-20061109/
>     > >> >> test\\\\htdocs'
>     > >> >>
>     > >> >> so the assert fails since the first string can't be found
in
> sys.path
>     > >> >> (count == 0)
>     > >> >
>     > >> > If in test/test.py you change:
>     > >> >
>     > >> >         c = Container(PythonPath("[r'%s']+sys.path" % DOCUMENT_ROOT),
>     > >> >
>     > >> > to:
>     > >> >
>     > >> >         c = Container(PythonPath("[r'%s']+sys.path" %
>     > >> > os.path.normpath(DOCUMENT_ROOT)),
>     > >> > 
>     > >> > does it pass?
>     > >> >
>     > >> >> 3) in test_interpreter_per_directory() the code does this:
>     > >> >>        rsp = self.vhost_get("test_interpreter_per_directory",
> '/ 
>     > >> >> subdir/foo.py').upper()
>     > >> >>
>     > >> >> interpreter+'SUBDIR/' is 'C:/WORK/MOD_PYTHON-3.3.0-DEV-20061109/
>     > >> >> TEST/HTDOCS/SUBDIR/'
>     > >> >> rsp is 'C:/WORK/MOD_PYTHON- 3.3.0-DEV-20061109/TEST/HTDOCS/'
>     > >> >>
>     > >> >> I don't understand the tests.py code but it looks like in
the
>     > >> >> interpreter() code
>     > >> >> def interpreter(req): 
>     > >> >>    if req.phase == "PythonFixupHandler":
>     > >> >>        if req.filename[-1] != '/' and os.path.isdir(req.filename):
>     > >> >>            req.write(req.interpreter )
>     > >> >>            return apache.DONE
>     > >> >>        return apache.OK
>     > >> >>    else:
>     > >> >>        req.write(req.interpreter)
>     > >> >>        return apache.DONE
>     > >> >>
>     > >> >> perhaps the req.filename 'C:/work/mod_python-3.3.0-dev-20061109/
>     > >> >> test/htdocs/subdir' is supposed to pass the os.path.isdir()
>     > >> >> test...but 
>     > >> >> it doesn't.  There is no 'subdir' folder under htdocs so 
on
> Win32,
>     > >> >> os.path.isdir() returns False.  Maybe this is an os  dependency?
>     > >> >
>     > >> > The 'subdir' directory exists in the tarball. Any chance you
>     > >> > accidentally
>     > >> > deleted
>     > >> > it somehow? Can you in a fresh directory unpack the tarball,
> verify
>     > >> that
>     > >> > the
>     > >> > directory exists and then rebuild and retest? 
>     > >> >
>     > >> > Graham
>     > >> >
>     > >> >
>     > >

Mime
View raw message