lucene-pylucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bill Janssen <jans...@parc.com>
Subject Re: using org.apache.jcc.PythonVM
Date Mon, 07 Mar 2011 10:18:40 GMT
Andi Vajda <vajda@apache.org> wrote:

> > I did patch setuptools, and as you can see below, the config.py says
> > "Shared=True", so I believe I have shared mode enabled.  I'm certainly
> > using jcc with the "--shared" switch with no complaints.
> 
> Something's off. libjcc.so is not shown in your list.
> You need to solve that mystery before embedding can proceed.
> 
> Andi..

Looks like the patch failed, and the check doesn't notice that failure.
I removed setuptools, then re-installed it, then went to build JCC
again.  It told me I needed the patch, so I tried to apply the patch per
instructions:

% sudo patch -d /usr/lib/python2.6/dist-packages -Nup0 < /tmp/pylucene/branches/branch_3x/jcc/jcc/patches/patch.43.0.6c11
patching file setuptools/extension.py
patching file setuptools/command/build_ext.py
Hunk #1 FAILED at 85.
Hunk #2 succeeded at 177 (offset 7 lines).
Hunk #3 succeeded at 259 (offset 7 lines).
1 out of 3 hunks FAILED -- saving rejects to file setuptools/command/build_ext.py.rej
%

The EGG-INFO for "setuptools" says:

Metadata-Version: 1.0
Name: setuptools
Version: 0.6c11
Summary: xxxx
Home-page: xxx
Author: xxx
Author-email: xxx
License: xxx
Description: xxx

build_ext.py:get_ext_filename() is:

    def get_ext_filename(self, fullname):
        filename = _build_ext.get_ext_filename(self,fullname)
        if fullname not in self.ext_map:
            return filename
        ext = self.ext_map[fullname]
        if isinstance(ext,Library):
            fn, ext = os.path.splitext(filename)
            return self.shlib_compiler.library_filename(fn,libtype)
        elif use_stubs and ext._links_to_dynamic:
            d,fn = os.path.split(filename)
            return os.path.join(d,'dl-'+fn)
        else:
            return filename

I believe the patched version should look like this:

    def get_ext_filename(self, fullname):
        filename = _build_ext.get_ext_filename(self,fullname)
        if fullname not in self.ext_map:
            return filename
        ext = self.ext_map[fullname]
        if isinstance(ext,Library):
            if ext.force_shared and not use_stubs:
                _libtype = 'shared'
            else:
                _libtype = libtype
            fn, ext = os.path.splitext(filename)
            return self.shlib_compiler.library_filename(fn,_libtype)
        elif use_stubs and ext._links_to_dynamic:
            d,fn = os.path.split(filename)
            return os.path.join(d,'dl-'+fn)
        else:
            return filename

Right?

Bill

Mime
View raw message