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
> >     > >> >
> >     > >> >
> >     > >

Reply via email to