Graham Dumpleton wrote .. > 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.
Is this crude enough. if winbuild: apr1 = 0 for dir in library_dirs: if os.path.exists(os.path.join(dir, 'libapr-1.dll')): apr1 = 1 if apr1: libraries = ['libhttpd', 'libapr-1', 'libaprutil-1', 'ws2_32'] else: libraries = ['libhttpd', 'libapr', 'libaprutil', 'ws2_32'] else: libraries = ['apr-0', 'aprutil-0'] The non Windows case is wrong, but this part of the file isn't used except for Windows that I know of. It is actually a bit strange as setup.py is still generated from setup.py.in yet I can't see any substitutions going on by configure. Do we still need setup.py.in anymore? 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 <[EMAIL PROTECTED]>: > > 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" <[EMAIL PROTECTED]> > > > 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" <[EMAIL PROTECTED]> > > > >> To: "Jeff Robbins" < [EMAIL PROTECTED]> > > > >> 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 > > > >> > > > > >> > > > > >