Graham,

Here is the mod_python.vcproj file with finfoobject.c It produces a mod_python.so that is bigger than the one the command line setup.py build produces. Must be different build options. Where are the setup.py options specified?

Also, this vcproj only build mod_python.so, not _psp.pyd. So it is not a replacement for the command line setup.py build.

Finally, I'm pasting the build output warning from this vcproj (after applying my fixes to mod_python.h).

Best regards,

Jeff



------ Build started: Project: mod_python, Configuration: Release Win32 ------
Compiling...
finfoobject.c
c:\Python25\include\pyconfig.h(309) : warning C4005: 'PLATFORM' : macro redefinition c:\Program Files\Apache Software Foundation\Apache2.2\include\os.h(41) : see previous definition of 'PLATFORM' finfoobject.c(129) : warning C4047: 'function' : 'long' differs in levels of indirection from 'apr_uid_t' finfoobject.c(137) : warning C4047: 'function' : 'long' differs in levels of indirection from 'apr_gid_t' finfoobject.c(145) : warning C4244: 'function' : conversion from 'apr_ino_t' to 'long', possible loss of data finfoobject.c(173) : warning C4244: 'function' : conversion from 'apr_off_t' to 'long', possible loss of data finfoobject.c(183) : warning C4244: 'function' : conversion from 'double' to 'long', possible loss of data finfoobject.c(191) : warning C4244: 'function' : conversion from 'double' to 'long', possible loss of data finfoobject.c(199) : warning C4244: 'function' : conversion from 'double' to 'long', possible loss of data
util.c
util.c(122) : warning C4244: 'function' : conversion from 'apr_ino_t' to 'long', possible loss of data util.c(140) : warning C4047: 'function' : 'long' differs in levels of indirection from 'apr_uid_t' util.c(146) : warning C4047: 'function' : 'long' differs in levels of indirection from 'apr_gid_t' util.c(152) : warning C4244: 'function' : conversion from 'apr_off_t' to 'long', possible loss of data util.c(158) : warning C4244: 'function' : conversion from 'double' to 'long', possible loss of data util.c(164) : warning C4244: 'function' : conversion from 'double' to 'long', possible loss of data util.c(170) : warning C4244: 'function' : conversion from 'double' to 'long', possible loss of data
tableobject.c
serverobject.c
requestobject.c
requestobject.c(886) : warning C4244: '=' : conversion from 'apr_off_t' to 'long', possible loss of data requestobject.c(986) : warning C4244: '=' : conversion from 'apr_off_t' to 'long', possible loss of data requestobject.c(1434) : warning C4244: '=' : conversion from 'apr_off_t' to 'apr_size_t', possible loss of data requestobject.c(1609) : warning C4244: 'initializing' : conversion from 'apr_off_t' to 'long', possible loss of data
mod_python.c
mod_python.c(429) : warning C4101: 'mutex_dir' : unreferenced local variable
mod_python.c(1985) : warning C4244: 'function' : conversion from 'apr_off_t' to 'apr_size_t', possible loss of data
mod_python.c(2028) : warning C4101: 'tmp_buck' : unreferenced local variable
hlistobject.c
hlist.c
filterobject.c
filterobject.c(234) : warning C4018: '>' : signed/unsigned mismatch
filterobject.c(243) : warning C4018: '<' : signed/unsigned mismatch
connobject.c
connobject.c(155) : warning C4018: '>' : signed/unsigned mismatch
_apachemodule.c
Compiling resources...
Linking...
Creating library .\Release/mod_python.lib and object .\Release/mod_python.exp Build log was saved at "file://c:\work\mod_python-3.3.0-dev-20061109\src\Release\BuildLog.htm"
mod_python - 0 error(s), 25 warning(s)

---------------------- Done ----------------------
Build: 1 succeeded, 0 failed, 0 skipped








----- Original Message ----- From: "Graham Dumpleton" <[EMAIL PROTECTED]>
To: "Jeff Robbins" <[EMAIL PROTECTED]>
Cc: <python-dev@httpd.apache.org>
Sent: Tuesday, November 14, 2006 6:03 PM
Subject: Re: mod_python 3.3.0-dev-20061109 tests on Win32


Jeff, can you download:


http://svn.apache.org/viewvc/httpd/mod_python/trunk/dist/setup.py.in?revision=475037

and use it in place of dist/setup.py.in and use build_installer.bat to
confirm that it autodetects the APR lib versions okay.

Also, can you send us the mod_python.vcproj file you modified to add
finfoobject.c so we can include it back in mod_python source code.

Thanks.

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

<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
        ProjectType="Visual C++"
        Version="7.10"
        Name="mod_python"
        ProjectGUID="{91935325-716F-4776-825B-7A2250320FC1}"
        SccProjectName=""
        SccLocalPath="">
        <Platforms>
                <Platform
                        Name="Win32"/>
        </Platforms>
        <Configurations>
                <Configuration
                        Name="Release|Win32"
                        OutputDirectory=".\Release"
                        IntermediateDirectory=".\Release"
                        ConfigurationType="2"
                        UseOfMFC="0"
                        ATLMinimizesCRunTimeLibraryUsage="FALSE">
                        <Tool
                                Name="VCCLCompilerTool"
                                InlineFunctionExpansion="1"
                                
AdditionalIncludeDirectories="include,$(PYTHONSRC)\include,$(APACHESRC)\include"
                                PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
                                StringPooling="TRUE"
                                RuntimeLibrary="0"
                                EnableFunctionLevelLinking="TRUE"
                                UsePrecompiledHeader="2"
                                PrecompiledHeaderFile=".\Release/mod_python.pch"
                                AssemblerListingLocation=".\Release/"
                                ObjectFile=".\Release/"
                                ProgramDataBaseFileName=".\Release/"
                                WarningLevel="3"
                                SuppressStartupBanner="TRUE"
                                CompileAs="0"/>
                        <Tool
                                Name="VCCustomBuildTool"/>
                        <Tool
                                Name="VCLinkerTool"
                                AdditionalOptions="/MACHINE:I386"
                                AdditionalDependencies="libhttpd.lib libapr-1.lib 
libaprutil-1.lib ws2_32.lib"
                                OutputFile=".\Release/mod_python.so"
                                LinkIncremental="1"
                                SuppressStartupBanner="TRUE"
                                
AdditionalLibraryDirectories="$(APACHESRC)\lib,$(PYTHONSRC)\libs"
                                ProgramDatabaseFile=".\Release/mod_python.pdb"
                                ImportLibrary=".\Release/mod_python.lib"/>
                        <Tool
                                Name="VCMIDLTool"
                                PreprocessorDefinitions="NDEBUG"
                                MkTypLibCompatible="TRUE"
                                SuppressStartupBanner="TRUE"
                                TargetEnvironment="1"
                                TypeLibraryName=".\Release/mod_python.tlb"/>
                        <Tool
                                Name="VCPostBuildEventTool"/>
                        <Tool
                                Name="VCPreBuildEventTool"/>
                        <Tool
                                Name="VCPreLinkEventTool"/>
                        <Tool
                                Name="VCResourceCompilerTool"
                                PreprocessorDefinitions="NDEBUG"
                                Culture="1033"/>
                        <Tool
                                Name="VCWebServiceProxyGeneratorTool"/>
                        <Tool
                                Name="VCXMLDataGeneratorTool"/>
                        <Tool
                                Name="VCWebDeploymentTool"/>
                        <Tool
                                Name="VCManagedWrapperGeneratorTool"/>
                        <Tool
                                Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
                </Configuration>
        </Configurations>
        <References>
        </References>
        <Files>
                <Filter
                        Name="include"
                        Filter="">
                        <File
                                RelativePath=".\include\connobject.h">
                        </File>
                        <File
                                RelativePath="include\filterobject.h">
                        </File>
                        <File
                                RelativePath="include\hlist.h">
                        </File>
                        <File
                                RelativePath="include\hlistobject.h">
                        </File>
                        <File
                                RelativePath=".\include\mod_python.h">
                        </File>
                        <File
                                RelativePath=".\include\requestobject.h">
                        </File>
                        <File
                                RelativePath=".\include\serverobject.h">
                        </File>
                        <File
                                RelativePath=".\include\tableobject.h">
                        </File>
                        <File
                                RelativePath=".\include\util.h">
                        </File>
                </Filter>
                <File
                        RelativePath=".\_apachemodule.c">
                </File>
                <File
                        RelativePath=".\connobject.c">
                </File>
                <File
                        RelativePath="filterobject.c">
                </File>
                <File
                        RelativePath=".\finfoobject.c">
                </File>
                <File
                        RelativePath="hlist.c">
                </File>
                <File
                        RelativePath="hlistobject.c">
                </File>
                <File
                        RelativePath=".\mod_python.c">
                </File>
                <File
                        RelativePath=".\requestobject.c">
                </File>
                <File
                        RelativePath=".\serverobject.c">
                </File>
                <File
                        RelativePath=".\tableobject.c">
                </File>
                <File
                        RelativePath=".\util.c">
                </File>
                <File
                        RelativePath=".\Version.rc">
                </File>
        </Files>
        <Globals>
        </Globals>
</VisualStudioProject>

Reply via email to