You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pylucene-dev@lucene.apache.org by Caleb Burns <ca...@ridersdiscount.com> on 2012/03/28 18:34:55 UTC

Compiling JCC as shared object

According to
http://lucene.apache.org/pylucene/jcc/install#shared_mode_support_for_the_code--sharedcode_flag
(or
doc/jcc/documentation/install.html#shared from pylucene tarball), I can set
the `--shared` flag in order to compile JCC as a shared object instead of a
static one. There's also mention about applying a patch to setuptools on
Linux (I'm running Ubuntu 11.04). I'm confused as to how exactly one is
supposed to do this.

If I run `python setup.py build` from "jcc/" I'm greeted with a message
saying shared mode is disabled and setuptools patch.43.0.6c11 must be
applied to enable it. So I apply the patch with the friendly help from the
displayed message: `sudo patch -d /usr/lib/python2.7/dist-packages -Nup0 <
/home/caleb/Exclude/Downloads/pylucene-3.4.0-1/jcc/jcc/patches/patch.43.0.6c11`.
Then if I try to build again with `python setup.py build`, it builds
successfully but I get "libjcc.a" under "jcc/build/lib.linux-x86_64-2.7/"
instead of "libjcc.so". If I pass `--shared` to `python setup.py build` I
simply get "error: option --shared not recognized". If I apply
"patch.43.0.6c7" instead of "patch.43.0.6c11" on a fresh reinstall of
setuptools and then build with `python setup.py build`, the resulting build
has "libjcc.so" instead of "libjcc.a". Is this supposed to work this way?
Where is the `--shared` flag involved? And why does `setup.py` say to
use "patch.43.0.6c11" to enabled shared mode when only "patch.43.0.6c7"
seems to enable it?

The reason I'm asking is because I working on a Python C++ module for
performing quick calculations that interacts with Lucene (specifically
PyLucene).


-- 
Caleb Burns
Developer | Riders Discount
866.931.6644 x851 | www.RidersDiscount.com <http://www.ridersdiscount.com/>
[image: image.png] <http://www.facebook.com/ridersdiscount> [image:
image.png] <https://twitter.com/#!/ridersdiscount>
Deal of the Day <http://www.twitter.com/#!/rd_dealoftheday>

Re: Compiling JCC as shared object

Posted by Andi Vajda <va...@apache.org>.
On Wed, 28 Mar 2012, Caleb Burns wrote:

> I guess that explains why the older patch worked for me. Thanks for the
> help.

>> I'm going to 'enhance' the logic to pick the patch based on this new
>> setuptools pedigree.

The fix is now checked in in rev 1306601.

Andi..

>>
>> Andi..
>>
>>
>>
>>> Thank you for reporting this !
>>>
>>> Andi..
>>>
>>>
>>>> patch.43.0.6c11 fails on Hunk #1:
>>>>
>>>> sudo patch -d /usr/lib/python2.7/dist-**packages -Nup0 <
>>>> /home/caleb/Exclude/Downloads/**pylucene-3.4.0-1/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
>>>>
>>>> patch.43.0.6c7 succeeds:
>>>>
>>>> sudo patch -d /usr/lib/python2.7/dist-**packages -Nup0 <
>>>> /home/caleb/Exclude/Downloads/**pylucene-3.4.0-1/jcc/jcc/**
>>>> patches/patch.43.0.6c7
>>>> patching file setuptools/extension.py
>>>> patching file setuptools/command/build_ext.**py
>>>> Hunk #1 succeeded at 86 with fuzz 1 (offset 2 lines).
>>>> Hunk #2 succeeded at 181 (offset 7 lines).
>>>> Hunk #3 succeeded at 263 (offset 7 lines).
>>>>
>>>> NOTE: Each after reinstalls of setuptools.
>>>>
>>>> On Wed, Mar 28, 2012 at 12:57 PM, Andi Vajda <va...@apache.org> wrote:
>>>>
>>>>
>>>>> On Wed, 28 Mar 2012, Caleb Burns wrote:
>>>>>
>>>>> According to
>>>>>
>>>>>> http://lucene.apache.org/****pylucene/jcc/install#shared_**<http://lucene.apache.org/**pylucene/jcc/install#shared_**>
>>>>>> mode_support_for_the_code--****sharedcode_flag<http://lucene.**
>>>>>> apache.org/pylucene/jcc/**install#shared_mode_support_**
>>>>>> for_the_code--sharedcode_flag<http://lucene.apache.org/pylucene/jcc/install#shared_mode_support_for_the_code--sharedcode_flag>
>>>>>>>
>>>>>> (or
>>>>>> doc/jcc/documentation/install.****html#shared from pylucene tarball),
>>>>>> I
>>>>>> can set
>>>>>> the `--shared` flag in order to compile JCC as a shared object instead
>>>>>> of
>>>>>> a
>>>>>> static one. There's also mention about applying a patch to setuptools
>>>>>> on
>>>>>> Linux (I'm running Ubuntu 11.04). I'm confused as to how exactly one is
>>>>>> supposed to do this.
>>>>>>
>>>>>> If I run `python setup.py build` from "jcc/" I'm greeted with a message
>>>>>> saying shared mode is disabled and setuptools patch.43.0.6c11 must be
>>>>>> applied to enable it. So I apply the patch with the friendly help from
>>>>>> the
>>>>>> displayed message: `sudo patch -d /usr/lib/python2.7/dist-****packages
>>>>>> -Nup0 <
>>>>>> /home/caleb/Exclude/Downloads/****pylucene-3.4.0-1/jcc/jcc/**
>>>>>> patches/patch.43.0.6c11`.
>>>>>> Then if I try to build again with `python setup.py build`, it builds
>>>>>> successfully but I get "libjcc.a" under "jcc/build/lib.linux-x86_64-2.
>>>>>> ****
>>>>>> 7/"
>>>>>> instead of "libjcc.so". If I pass `--shared` to `python setup.py
>>>>>> build` I
>>>>>> simply get "error: option --shared not recognized". If I apply
>>>>>> "patch.43.0.6c7" instead of "patch.43.0.6c11" on a fresh reinstall of
>>>>>> setuptools and then build with `python setup.py build`, the resulting
>>>>>> build
>>>>>> has "libjcc.so" instead of "libjcc.a". Is this supposed to work this
>>>>>> way?
>>>>>> Where is the `--shared` flag involved? And why does `setup.py` say to
>>>>>> use "patch.43.0.6c11" to enabled shared mode when only "patch.43.0.6c7"
>>>>>> seems to enable it?
>>>>>>
>>>>>>
>>>>> The suggested patch version is figured out from the version of
>>>>> setuptools
>>>>> you have. If you have a setuptools version < 0.6c11, it suggests you use
>>>>> patch.43.0.6c7, otherwise patch.43.0.6c11. If a new version of
>>>>> setuptools
>>>>> appeared that breaks this logic or were to need a new patch, all bets
>>>>> are
>>>>> off, of course.
>>>>>
>>>>> What version of setuptools do you have installed ?
>>>>> Did the patch patch.43.0.6c7 install cleanly ?
>>>>>
>>>>> Andi..
>>>>>
>>>>> The reason I'm asking is because I working on a Python C++ module for
>>>>>
>>>>>> performing quick calculations that interacts with Lucene (specifically
>>>>>> PyLucene).
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Caleb Burns
>>>>>> Developer | Riders Discount
>>>>>> 866.931.6644 x851 | www.RidersDiscount.com <http://www.ridersdiscount.
>>>>>> **
>>>>>> com/ <http://www.ridersdiscount.**com/<http://www.ridersdiscount.com/>
>>>>>>>>
>>>>>> [image: image.png] <http://www.facebook.com/****ridersdiscount<http://www.facebook.com/**ridersdiscount>
>>>>>> <http://www.**facebook.com/ridersdiscount<http://www.facebook.com/ridersdiscount>
>>>>>>>>
>>>>>> [image:
>>>>>> image.png] <https://twitter.com/#!/****ridersdiscount<https://twitter.com/#!/**ridersdiscount>
>>>>>> <https://**twitter.com/#!/ridersdiscount<https://twitter.com/#!/ridersdiscount>
>>>>>>>
>>>>>>
>>>>>>>
>>>>>>>  Deal of the Day <http://www.twitter.com/#!/rd_****dealoftheday<http://www.twitter.com/#!/rd_**dealoftheday>
>>>>>> <http://www.**twitter.com/#!/rd_dealoftheday<http://www.twitter.com/#!/rd_dealoftheday>
>>>>>> **>
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>

Re: Compiling JCC as shared object

Posted by Caleb Burns <ca...@ridersdiscount.com>.
I guess that explains why the older patch worked for me. Thanks for the
help.

On Wed, Mar 28, 2012 at 4:17 PM, Andi Vajda <va...@apache.org> wrote:

>
> On Wed, 28 Mar 2012, Andi Vajda wrote:
>
>  On Mar 28, 2012, at 10:02, Caleb Burns <ca...@ridersdiscount.com> wrote:
>>
>>  My version of setuptools is 0.6.15-1ubuntu1
>>>
>>
>> Oh 0.6.c15, I haven't seen that before.
>> It looks like a new patch is going to be needed.
>>
>
> This is even more interesting.
> I just installed Ubuntu 11.10 (oneiric) and the latest setuptools.
>
> There seems to be some kind of new (?) setuptools fork called 0.6.15 (or
> 0.6.16) which claims compatibility with setuptools 0.6.c9 (!).
> This explains why the older patch applies.
>
> I'm going to 'enhance' the logic to pick the patch based on this new
> setuptools pedigree.
>
> Andi..
>
>
>
>> Thank you for reporting this !
>>
>> Andi..
>>
>>
>>> patch.43.0.6c11 fails on Hunk #1:
>>>
>>> sudo patch -d /usr/lib/python2.7/dist-**packages -Nup0 <
>>> /home/caleb/Exclude/Downloads/**pylucene-3.4.0-1/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
>>>
>>> patch.43.0.6c7 succeeds:
>>>
>>> sudo patch -d /usr/lib/python2.7/dist-**packages -Nup0 <
>>> /home/caleb/Exclude/Downloads/**pylucene-3.4.0-1/jcc/jcc/**
>>> patches/patch.43.0.6c7
>>> patching file setuptools/extension.py
>>> patching file setuptools/command/build_ext.**py
>>> Hunk #1 succeeded at 86 with fuzz 1 (offset 2 lines).
>>> Hunk #2 succeeded at 181 (offset 7 lines).
>>> Hunk #3 succeeded at 263 (offset 7 lines).
>>>
>>> NOTE: Each after reinstalls of setuptools.
>>>
>>> On Wed, Mar 28, 2012 at 12:57 PM, Andi Vajda <va...@apache.org> wrote:
>>>
>>>
>>>> On Wed, 28 Mar 2012, Caleb Burns wrote:
>>>>
>>>> According to
>>>>
>>>>> http://lucene.apache.org/****pylucene/jcc/install#shared_**<http://lucene.apache.org/**pylucene/jcc/install#shared_**>
>>>>> mode_support_for_the_code--****sharedcode_flag<http://lucene.**
>>>>> apache.org/pylucene/jcc/**install#shared_mode_support_**
>>>>> for_the_code--sharedcode_flag<http://lucene.apache.org/pylucene/jcc/install#shared_mode_support_for_the_code--sharedcode_flag>
>>>>> >
>>>>> (or
>>>>> doc/jcc/documentation/install.****html#shared from pylucene tarball),
>>>>> I
>>>>> can set
>>>>> the `--shared` flag in order to compile JCC as a shared object instead
>>>>> of
>>>>> a
>>>>> static one. There's also mention about applying a patch to setuptools
>>>>> on
>>>>> Linux (I'm running Ubuntu 11.04). I'm confused as to how exactly one is
>>>>> supposed to do this.
>>>>>
>>>>> If I run `python setup.py build` from "jcc/" I'm greeted with a message
>>>>> saying shared mode is disabled and setuptools patch.43.0.6c11 must be
>>>>> applied to enable it. So I apply the patch with the friendly help from
>>>>> the
>>>>> displayed message: `sudo patch -d /usr/lib/python2.7/dist-****packages
>>>>> -Nup0 <
>>>>> /home/caleb/Exclude/Downloads/****pylucene-3.4.0-1/jcc/jcc/**
>>>>> patches/patch.43.0.6c11`.
>>>>> Then if I try to build again with `python setup.py build`, it builds
>>>>> successfully but I get "libjcc.a" under "jcc/build/lib.linux-x86_64-2.
>>>>> ****
>>>>> 7/"
>>>>> instead of "libjcc.so". If I pass `--shared` to `python setup.py
>>>>> build` I
>>>>> simply get "error: option --shared not recognized". If I apply
>>>>> "patch.43.0.6c7" instead of "patch.43.0.6c11" on a fresh reinstall of
>>>>> setuptools and then build with `python setup.py build`, the resulting
>>>>> build
>>>>> has "libjcc.so" instead of "libjcc.a". Is this supposed to work this
>>>>> way?
>>>>> Where is the `--shared` flag involved? And why does `setup.py` say to
>>>>> use "patch.43.0.6c11" to enabled shared mode when only "patch.43.0.6c7"
>>>>> seems to enable it?
>>>>>
>>>>>
>>>> The suggested patch version is figured out from the version of
>>>> setuptools
>>>> you have. If you have a setuptools version < 0.6c11, it suggests you use
>>>> patch.43.0.6c7, otherwise patch.43.0.6c11. If a new version of
>>>> setuptools
>>>> appeared that breaks this logic or were to need a new patch, all bets
>>>> are
>>>> off, of course.
>>>>
>>>> What version of setuptools do you have installed ?
>>>> Did the patch patch.43.0.6c7 install cleanly ?
>>>>
>>>> Andi..
>>>>
>>>> The reason I'm asking is because I working on a Python C++ module for
>>>>
>>>>> performing quick calculations that interacts with Lucene (specifically
>>>>> PyLucene).
>>>>>
>>>>>
>>>>> --
>>>>> Caleb Burns
>>>>> Developer | Riders Discount
>>>>> 866.931.6644 x851 | www.RidersDiscount.com <http://www.ridersdiscount.
>>>>> **
>>>>> com/ <http://www.ridersdiscount.**com/<http://www.ridersdiscount.com/>
>>>>> >>
>>>>> [image: image.png] <http://www.facebook.com/****ridersdiscount<http://www.facebook.com/**ridersdiscount>
>>>>> <http://www.**facebook.com/ridersdiscount<http://www.facebook.com/ridersdiscount>
>>>>> >>
>>>>> [image:
>>>>> image.png] <https://twitter.com/#!/****ridersdiscount<https://twitter.com/#!/**ridersdiscount>
>>>>> <https://**twitter.com/#!/ridersdiscount<https://twitter.com/#!/ridersdiscount>
>>>>> >
>>>>>
>>>>>>
>>>>>>  Deal of the Day <http://www.twitter.com/#!/rd_****dealoftheday<http://www.twitter.com/#!/rd_**dealoftheday>
>>>>> <http://www.**twitter.com/#!/rd_dealoftheday<http://www.twitter.com/#!/rd_dealoftheday>
>>>>> **>
>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>

Re: Compiling JCC as shared object

Posted by Andi Vajda <va...@apache.org>.
On Wed, 28 Mar 2012, Andi Vajda wrote:

> On Mar 28, 2012, at 10:02, Caleb Burns <ca...@ridersdiscount.com> wrote:
>
>> My version of setuptools is 0.6.15-1ubuntu1
>
> Oh 0.6.c15, I haven't seen that before.
> It looks like a new patch is going to be needed.

This is even more interesting.
I just installed Ubuntu 11.10 (oneiric) and the latest setuptools.

There seems to be some kind of new (?) setuptools fork called 0.6.15 (or 
0.6.16) which claims compatibility with setuptools 0.6.c9 (!).
This explains why the older patch applies.

I'm going to 'enhance' the logic to pick the patch based on this new 
setuptools pedigree.

Andi..

>
> Thank you for reporting this !
>
> Andi..
>
>>
>> patch.43.0.6c11 fails on Hunk #1:
>>
>> sudo patch -d /usr/lib/python2.7/dist-packages -Nup0 <
>> /home/caleb/Exclude/Downloads/pylucene-3.4.0-1/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
>>
>> patch.43.0.6c7 succeeds:
>>
>> sudo patch -d /usr/lib/python2.7/dist-packages -Nup0 <
>> /home/caleb/Exclude/Downloads/pylucene-3.4.0-1/jcc/jcc/patches/patch.43.0.6c7
>> patching file setuptools/extension.py
>> patching file setuptools/command/build_ext.py
>> Hunk #1 succeeded at 86 with fuzz 1 (offset 2 lines).
>> Hunk #2 succeeded at 181 (offset 7 lines).
>> Hunk #3 succeeded at 263 (offset 7 lines).
>>
>> NOTE: Each after reinstalls of setuptools.
>>
>> On Wed, Mar 28, 2012 at 12:57 PM, Andi Vajda <va...@apache.org> wrote:
>>
>>>
>>> On Wed, 28 Mar 2012, Caleb Burns wrote:
>>>
>>> According to
>>>> http://lucene.apache.org/**pylucene/jcc/install#shared_**
>>>> mode_support_for_the_code--**sharedcode_flag<http://lucene.apache.org/pylucene/jcc/install#shared_mode_support_for_the_code--sharedcode_flag>
>>>> (or
>>>> doc/jcc/documentation/install.**html#shared from pylucene tarball), I
>>>> can set
>>>> the `--shared` flag in order to compile JCC as a shared object instead of
>>>> a
>>>> static one. There's also mention about applying a patch to setuptools on
>>>> Linux (I'm running Ubuntu 11.04). I'm confused as to how exactly one is
>>>> supposed to do this.
>>>>
>>>> If I run `python setup.py build` from "jcc/" I'm greeted with a message
>>>> saying shared mode is disabled and setuptools patch.43.0.6c11 must be
>>>> applied to enable it. So I apply the patch with the friendly help from the
>>>> displayed message: `sudo patch -d /usr/lib/python2.7/dist-**packages
>>>> -Nup0 <
>>>> /home/caleb/Exclude/Downloads/**pylucene-3.4.0-1/jcc/jcc/**
>>>> patches/patch.43.0.6c11`.
>>>> Then if I try to build again with `python setup.py build`, it builds
>>>> successfully but I get "libjcc.a" under "jcc/build/lib.linux-x86_64-2.**
>>>> 7/"
>>>> instead of "libjcc.so". If I pass `--shared` to `python setup.py build` I
>>>> simply get "error: option --shared not recognized". If I apply
>>>> "patch.43.0.6c7" instead of "patch.43.0.6c11" on a fresh reinstall of
>>>> setuptools and then build with `python setup.py build`, the resulting
>>>> build
>>>> has "libjcc.so" instead of "libjcc.a". Is this supposed to work this way?
>>>> Where is the `--shared` flag involved? And why does `setup.py` say to
>>>> use "patch.43.0.6c11" to enabled shared mode when only "patch.43.0.6c7"
>>>> seems to enable it?
>>>>
>>>
>>> The suggested patch version is figured out from the version of setuptools
>>> you have. If you have a setuptools version < 0.6c11, it suggests you use
>>> patch.43.0.6c7, otherwise patch.43.0.6c11. If a new version of setuptools
>>> appeared that breaks this logic or were to need a new patch, all bets are
>>> off, of course.
>>>
>>> What version of setuptools do you have installed ?
>>> Did the patch patch.43.0.6c7 install cleanly ?
>>>
>>> Andi..
>>>
>>> The reason I'm asking is because I working on a Python C++ module for
>>>> performing quick calculations that interacts with Lucene (specifically
>>>> PyLucene).
>>>>
>>>>
>>>> --
>>>> Caleb Burns
>>>> Developer | Riders Discount
>>>> 866.931.6644 x851 | www.RidersDiscount.com <http://www.ridersdiscount.**
>>>> com/ <http://www.ridersdiscount.com/>>
>>>> [image: image.png] <http://www.facebook.com/**ridersdiscount<http://www.facebook.com/ridersdiscount>>
>>>> [image:
>>>> image.png] <https://twitter.com/#!/**ridersdiscount<https://twitter.com/#!/ridersdiscount>
>>>>>
>>>> Deal of the Day <http://www.twitter.com/#!/rd_**dealoftheday<http://www.twitter.com/#!/rd_dealoftheday>
>>>>>
>>>>
>>>>
>

Re: Compiling JCC as shared object

Posted by Andi Vajda <va...@apache.org>.
On Mar 28, 2012, at 10:02, Caleb Burns <ca...@ridersdiscount.com> wrote:

> My version of setuptools is 0.6.15-1ubuntu1

Oh 0.6.c15, I haven't seen that before.
It looks like a new patch is going to be needed. 

Thank you for reporting this !

Andi..

> 
> patch.43.0.6c11 fails on Hunk #1:
> 
> sudo patch -d /usr/lib/python2.7/dist-packages -Nup0 <
> /home/caleb/Exclude/Downloads/pylucene-3.4.0-1/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
> 
> patch.43.0.6c7 succeeds:
> 
> sudo patch -d /usr/lib/python2.7/dist-packages -Nup0 <
> /home/caleb/Exclude/Downloads/pylucene-3.4.0-1/jcc/jcc/patches/patch.43.0.6c7
> patching file setuptools/extension.py
> patching file setuptools/command/build_ext.py
> Hunk #1 succeeded at 86 with fuzz 1 (offset 2 lines).
> Hunk #2 succeeded at 181 (offset 7 lines).
> Hunk #3 succeeded at 263 (offset 7 lines).
> 
> NOTE: Each after reinstalls of setuptools.
> 
> On Wed, Mar 28, 2012 at 12:57 PM, Andi Vajda <va...@apache.org> wrote:
> 
>> 
>> On Wed, 28 Mar 2012, Caleb Burns wrote:
>> 
>> According to
>>> http://lucene.apache.org/**pylucene/jcc/install#shared_**
>>> mode_support_for_the_code--**sharedcode_flag<http://lucene.apache.org/pylucene/jcc/install#shared_mode_support_for_the_code--sharedcode_flag>
>>> (or
>>> doc/jcc/documentation/install.**html#shared from pylucene tarball), I
>>> can set
>>> the `--shared` flag in order to compile JCC as a shared object instead of
>>> a
>>> static one. There's also mention about applying a patch to setuptools on
>>> Linux (I'm running Ubuntu 11.04). I'm confused as to how exactly one is
>>> supposed to do this.
>>> 
>>> If I run `python setup.py build` from "jcc/" I'm greeted with a message
>>> saying shared mode is disabled and setuptools patch.43.0.6c11 must be
>>> applied to enable it. So I apply the patch with the friendly help from the
>>> displayed message: `sudo patch -d /usr/lib/python2.7/dist-**packages
>>> -Nup0 <
>>> /home/caleb/Exclude/Downloads/**pylucene-3.4.0-1/jcc/jcc/**
>>> patches/patch.43.0.6c11`.
>>> Then if I try to build again with `python setup.py build`, it builds
>>> successfully but I get "libjcc.a" under "jcc/build/lib.linux-x86_64-2.**
>>> 7/"
>>> instead of "libjcc.so". If I pass `--shared` to `python setup.py build` I
>>> simply get "error: option --shared not recognized". If I apply
>>> "patch.43.0.6c7" instead of "patch.43.0.6c11" on a fresh reinstall of
>>> setuptools and then build with `python setup.py build`, the resulting
>>> build
>>> has "libjcc.so" instead of "libjcc.a". Is this supposed to work this way?
>>> Where is the `--shared` flag involved? And why does `setup.py` say to
>>> use "patch.43.0.6c11" to enabled shared mode when only "patch.43.0.6c7"
>>> seems to enable it?
>>> 
>> 
>> The suggested patch version is figured out from the version of setuptools
>> you have. If you have a setuptools version < 0.6c11, it suggests you use
>> patch.43.0.6c7, otherwise patch.43.0.6c11. If a new version of setuptools
>> appeared that breaks this logic or were to need a new patch, all bets are
>> off, of course.
>> 
>> What version of setuptools do you have installed ?
>> Did the patch patch.43.0.6c7 install cleanly ?
>> 
>> Andi..
>> 
>> The reason I'm asking is because I working on a Python C++ module for
>>> performing quick calculations that interacts with Lucene (specifically
>>> PyLucene).
>>> 
>>> 
>>> --
>>> Caleb Burns
>>> Developer | Riders Discount
>>> 866.931.6644 x851 | www.RidersDiscount.com <http://www.ridersdiscount.**
>>> com/ <http://www.ridersdiscount.com/>>
>>> [image: image.png] <http://www.facebook.com/**ridersdiscount<http://www.facebook.com/ridersdiscount>>
>>> [image:
>>> image.png] <https://twitter.com/#!/**ridersdiscount<https://twitter.com/#!/ridersdiscount>
>>>> 
>>> Deal of the Day <http://www.twitter.com/#!/rd_**dealoftheday<http://www.twitter.com/#!/rd_dealoftheday>
>>>> 
>>> 
>>> 

Re: Compiling JCC as shared object

Posted by Caleb Burns <ca...@ridersdiscount.com>.
My version of setuptools is 0.6.15-1ubuntu1

patch.43.0.6c11 fails on Hunk #1:

sudo patch -d /usr/lib/python2.7/dist-packages -Nup0 <
/home/caleb/Exclude/Downloads/pylucene-3.4.0-1/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

patch.43.0.6c7 succeeds:

sudo patch -d /usr/lib/python2.7/dist-packages -Nup0 <
/home/caleb/Exclude/Downloads/pylucene-3.4.0-1/jcc/jcc/patches/patch.43.0.6c7
patching file setuptools/extension.py
patching file setuptools/command/build_ext.py
Hunk #1 succeeded at 86 with fuzz 1 (offset 2 lines).
Hunk #2 succeeded at 181 (offset 7 lines).
Hunk #3 succeeded at 263 (offset 7 lines).

NOTE: Each after reinstalls of setuptools.

On Wed, Mar 28, 2012 at 12:57 PM, Andi Vajda <va...@apache.org> wrote:

>
> On Wed, 28 Mar 2012, Caleb Burns wrote:
>
>  According to
>> http://lucene.apache.org/**pylucene/jcc/install#shared_**
>> mode_support_for_the_code--**sharedcode_flag<http://lucene.apache.org/pylucene/jcc/install#shared_mode_support_for_the_code--sharedcode_flag>
>> (or
>> doc/jcc/documentation/install.**html#shared from pylucene tarball), I
>> can set
>> the `--shared` flag in order to compile JCC as a shared object instead of
>> a
>> static one. There's also mention about applying a patch to setuptools on
>> Linux (I'm running Ubuntu 11.04). I'm confused as to how exactly one is
>> supposed to do this.
>>
>> If I run `python setup.py build` from "jcc/" I'm greeted with a message
>> saying shared mode is disabled and setuptools patch.43.0.6c11 must be
>> applied to enable it. So I apply the patch with the friendly help from the
>> displayed message: `sudo patch -d /usr/lib/python2.7/dist-**packages
>> -Nup0 <
>> /home/caleb/Exclude/Downloads/**pylucene-3.4.0-1/jcc/jcc/**
>> patches/patch.43.0.6c11`.
>> Then if I try to build again with `python setup.py build`, it builds
>> successfully but I get "libjcc.a" under "jcc/build/lib.linux-x86_64-2.**
>> 7/"
>> instead of "libjcc.so". If I pass `--shared` to `python setup.py build` I
>> simply get "error: option --shared not recognized". If I apply
>> "patch.43.0.6c7" instead of "patch.43.0.6c11" on a fresh reinstall of
>> setuptools and then build with `python setup.py build`, the resulting
>> build
>> has "libjcc.so" instead of "libjcc.a". Is this supposed to work this way?
>> Where is the `--shared` flag involved? And why does `setup.py` say to
>> use "patch.43.0.6c11" to enabled shared mode when only "patch.43.0.6c7"
>> seems to enable it?
>>
>
> The suggested patch version is figured out from the version of setuptools
> you have. If you have a setuptools version < 0.6c11, it suggests you use
> patch.43.0.6c7, otherwise patch.43.0.6c11. If a new version of setuptools
> appeared that breaks this logic or were to need a new patch, all bets are
> off, of course.
>
> What version of setuptools do you have installed ?
> Did the patch patch.43.0.6c7 install cleanly ?
>
> Andi..
>
>  The reason I'm asking is because I working on a Python C++ module for
>> performing quick calculations that interacts with Lucene (specifically
>> PyLucene).
>>
>>
>> --
>> Caleb Burns
>> Developer | Riders Discount
>> 866.931.6644 x851 | www.RidersDiscount.com <http://www.ridersdiscount.**
>> com/ <http://www.ridersdiscount.com/>>
>> [image: image.png] <http://www.facebook.com/**ridersdiscount<http://www.facebook.com/ridersdiscount>>
>> [image:
>> image.png] <https://twitter.com/#!/**ridersdiscount<https://twitter.com/#!/ridersdiscount>
>> >
>> Deal of the Day <http://www.twitter.com/#!/rd_**dealoftheday<http://www.twitter.com/#!/rd_dealoftheday>
>> >
>>
>>

Re: Compiling JCC as shared object

Posted by Andi Vajda <va...@apache.org>.
On Wed, 28 Mar 2012, Caleb Burns wrote:

> According to
> http://lucene.apache.org/pylucene/jcc/install#shared_mode_support_for_the_code--sharedcode_flag
> (or
> doc/jcc/documentation/install.html#shared from pylucene tarball), I can set
> the `--shared` flag in order to compile JCC as a shared object instead of a
> static one. There's also mention about applying a patch to setuptools on
> Linux (I'm running Ubuntu 11.04). I'm confused as to how exactly one is
> supposed to do this.
>
> If I run `python setup.py build` from "jcc/" I'm greeted with a message
> saying shared mode is disabled and setuptools patch.43.0.6c11 must be
> applied to enable it. So I apply the patch with the friendly help from the
> displayed message: `sudo patch -d /usr/lib/python2.7/dist-packages -Nup0 <
> /home/caleb/Exclude/Downloads/pylucene-3.4.0-1/jcc/jcc/patches/patch.43.0.6c11`.
> Then if I try to build again with `python setup.py build`, it builds
> successfully but I get "libjcc.a" under "jcc/build/lib.linux-x86_64-2.7/"
> instead of "libjcc.so". If I pass `--shared` to `python setup.py build` I
> simply get "error: option --shared not recognized". If I apply
> "patch.43.0.6c7" instead of "patch.43.0.6c11" on a fresh reinstall of
> setuptools and then build with `python setup.py build`, the resulting build
> has "libjcc.so" instead of "libjcc.a". Is this supposed to work this way?
> Where is the `--shared` flag involved? And why does `setup.py` say to
> use "patch.43.0.6c11" to enabled shared mode when only "patch.43.0.6c7"
> seems to enable it?

The suggested patch version is figured out from the version of setuptools 
you have. If you have a setuptools version < 0.6c11, it suggests you use
patch.43.0.6c7, otherwise patch.43.0.6c11. If a new version of setuptools 
appeared that breaks this logic or were to need a new patch, all bets are 
off, of course.

What version of setuptools do you have installed ?
Did the patch patch.43.0.6c7 install cleanly ?

Andi..

> The reason I'm asking is because I working on a Python C++ module for
> performing quick calculations that interacts with Lucene (specifically
> PyLucene).
>
>
> -- 
> Caleb Burns
> Developer | Riders Discount
> 866.931.6644 x851 | www.RidersDiscount.com <http://www.ridersdiscount.com/>
> [image: image.png] <http://www.facebook.com/ridersdiscount> [image:
> image.png] <https://twitter.com/#!/ridersdiscount>
> Deal of the Day <http://www.twitter.com/#!/rd_dealoftheday>
>