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: [email protected]
> > 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: < [email protected]>
> > > 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" <[email protected]>
> > > >> 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
> > > >> >
> > > >> >
> > > >