You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by Ludovic Hirlimann <lu...@hirlimann.net> on 2020/08/21 10:25:54 UTC

Presentation and Question

Hi,


I'm ludo; I'm far from being a Java coder , but I've decided to package
JOSM for fedora. One of the first dependency is Derby.

I've managed to compile the latest derby on my fedora32 VM. I'm now
trying to figure what the next steps are in order to be able to publish
a rpm. I've asked a question onf the java/fedora devel list and the
answer came back asĀ 
<https://lists.fedoraproject.org/archives/list/java-devel@lists.fedoraproject.org/thread/QA3OGE4553TAYUTQ2K2RZJTK3DVB7LZF/>.


Where does one find version numbers of Lucene and Javacc that derbys is
happy to run with ?

eg https://src.fedoraproject.org/rpms/derby/pull-request/1#request_diff
contains 2 patches related to these projects ; I don't really understand
the scope of these patches (specially that I've built Derby without any
traces of Lucene on my systems). I'll happily read all documentation snt
to me in order for me to grasp concepts and things I clearly don't right
now.


Thanks in advance.

Ludo

-- 
https://www.hirlimann.net/Ludovic/carnet/



Re: Presentation and Question

Posted by Rick Hillegas <ri...@gmail.com>.
Hey Ludo,

Before over-rotating on the Lucene support, please keep the following in 
mind:

* The Derby Lucene support is an optional feature. Derby runs fine 
without Lucene jars on the classpath. The optional tools can be excluded 
from your installation. In fact, you have to go out of your way to 
include them.

* If you do want to use the Derby Lucene support, then use the Lucene 
jars which are bundled in the Derby source distro. They are the ones 
that have been tested. They can be found at the following location in 
the source tree:

tools/java/lucene-analyzers-common.jar

tools/java/lucene-core.jar

tools/java/lucene-queryparser.jar


* More information on the Derby optional Lucene support can be found at 
http://db.apache.org/derby/docs/10.15/tools/rtoolsoptlucene.html

* The Lucene 8 jars will almost certainly not work with Derby. Lucene 
does not make the same backward compatibility guarantees as Derby does. 
If your mission is to upgrade Derby to be able to use Lucene 8, then you 
are signing up for the task of altering the Derby code as well. At this 
point, you are not talking about an rpm package for Derby. You are 
talking about an rpm package for your own forked version of Derby. If 
you want to contribute these changes to the community, that would be 
great, and I will be happy to coach you through the process. But we are 
talking about a new Derby release here. I don't think that upgrading 
Derby to support Lucene 8 is your ultimate goal. Please correct me if I 
misunderstand your goal.

The same is true for javacc. Note that javacc is not used by the Derby 
product. It is only used to compile Derby. There are issues involved in 
upgrading javacc to a higher version. The higher versions produce parser 
diagnostics which are harder to read. That is why we have not upgraded 
to javacc 5.0.

When we went through the rpm exercise the last time, there were two 
requirements:

* The rpm must install all the code needed to compile the package. This 
should still be true. The Lucene jars and the javacc needed to compile 
Derby are bundled in the Derby source distro. The build scripts 
deliberately use the bundled Lucene jars and the bundled javacc. They do 
not use the versions of Lucene or javacc installed elsewhere on the 
platform.

* The executable code in the rpm must run on the Linux platform. This 
also should still be true, provided that the Derby version is 10.15 and 
the OS uses Java 9 or higher. If the operating system is at Java 8, then 
you want Derby 10.14 instead.

The problems you are wrestling with sound more complicated than that. 
Before forging ahead, I recommend that you verify that your goal really 
includes all of this complexity.

Hope this helps,
-Rick

On 8/23/20 12:01 AM, Ludovic Hirlimann wrote:
> On 8/22/20 12:55 AM, Rick Hillegas wrote:
>> Hi Ludo,
>>
>> Derby bundles libraries for Lucene 4.7 and javacc 4.0.
>>
> So Lucene 8 ships within Fedora, So I probably have to patch what ships
> with derby to work properly with 8.
>
> And do the same thing with javacc.
>
> Ta
>
> Ludo
>


Re: Presentation and Question

Posted by Ludovic Hirlimann <lu...@hirlimann.net>.
On 8/22/20 12:55 AM, Rick Hillegas wrote:
> Hi Ludo,
>
> Derby bundles libraries for Lucene 4.7 and javacc 4.0.
>
So Lucene 8 ships within Fedora, So I probably have to patch what ships
with derby to work properly with 8.

And do the same thing with javacc.

Ta

Ludo

-- 
https://www.hirlimann.net/Ludovic/carnet/



Re: Presentation and Question

Posted by Rick Hillegas <ri...@gmail.com>.
Hi Ludo,

Derby bundles libraries for Lucene 4.7 and javacc 4.0.

Cheers,
-Rick

On 8/21/20 6:01 AM, Ludovic Hirlimann wrote:
> On 8/21/20 2:47 PM, Rick Hillegas wrote:
>> Hi Ludo,
>>
>> The instructions for building Derby can be found here:
>> http://svn.apache.org/viewvc/db/derby/code/trunk/BUILDING.html?view=co
>> The instructions say that you need Java 9, but any version from Java 9
>> on up should work. You don't need to download either javacc or Lucene.
>> Both tools are
> It builds find. I have no build issues.
>


Re: Presentation and Question

Posted by Ludovic Hirlimann <lu...@hirlimann.net>.
On 8/21/20 2:47 PM, Rick Hillegas wrote:
> Hi Ludo,
>
> The instructions for building Derby can be found here:
> http://svn.apache.org/viewvc/db/derby/code/trunk/BUILDING.html?view=co
> The instructions say that you need Java 9, but any version from Java 9
> on up should work. You don't need to download either javacc or Lucene.
> Both tools are
It builds find. I have no build issues.

-- 
https://www.hirlimann.net/Ludovic/carnet/



Re: Presentation and Question

Posted by Ludovic Hirlimann <lu...@hirlimann.net>.
On 8/21/20 2:47 PM, Rick Hillegas wrote:
> Hi Ludo,
>
> The instructions for building Derby can be found here:
> http://svn.apache.org/viewvc/db/derby/code/trunk/BUILDING.html?view=co
> The instructions say that you need Java 9, but any version from Java 9
> on up should work. You don't need to download either javacc or Lucene.
> Both tools are bundled in the Derby source code. The bundling of 3rd
> party assets in the Derby source distro satisfied the Linux package
> rules the last time that we went through this exercise. Maybe the
> rules have changed.


I'll go and chase hte information.


> I believe that the version of Lucene bundled inside Derby is the
> highest version we have tested against. That would be Lucene 4.9.0,
> according to
> http://db.apache.org/derby/docs/10.15/tools/rtoolsoptlucene.html. I
> will double-check that this weekend. If you're in a hurry, you can
> crack open the Lucene jars located in the Derby source tree under
> tools/java and look for the version number yourself.


I'm in no hurry. What counts is that I reach My goal and keep josm
floating in fedora/redhat land.


> I will also look up the javacc version which is bundled inside Derby.
> Again, you can crack open tools/java/javacc.jar to look up that
> information if you are in a hurry.
>
> Hope this helps,
>
It does; THANK YOU

-- 
https://www.hirlimann.net/Ludovic/carnet/



Re: Presentation and Question

Posted by Rick Hillegas <ri...@gmail.com>.
Hi Ludo,

The instructions for building Derby can be found here: 
http://svn.apache.org/viewvc/db/derby/code/trunk/BUILDING.html?view=co 
The instructions say that you need Java 9, but any version from Java 9 
on up should work. You don't need to download either javacc or Lucene. 
Both tools are bundled in the Derby source code. The bundling of 3rd 
party assets in the Derby source distro satisfied the Linux package 
rules the last time that we went through this exercise. Maybe the rules 
have changed.

I believe that the version of Lucene bundled inside Derby is the highest 
version we have tested against. That would be Lucene 4.9.0, according to 
http://db.apache.org/derby/docs/10.15/tools/rtoolsoptlucene.html. I will 
double-check that this weekend. If you're in a hurry, you can crack open 
the Lucene jars located in the Derby source tree under tools/java and 
look for the version number yourself.

I will also look up the javacc version which is bundled inside Derby. 
Again, you can crack open tools/java/javacc.jar to look up that 
information if you are in a hurry.

Hope this helps,
-Rick


On 8/21/20 3:25 AM, Ludovic Hirlimann wrote:
> Hi,
>
>
> I'm ludo; I'm far from being a Java coder , but I've decided to package
> JOSM for fedora. One of the first dependency is Derby.
>
> I've managed to compile the latest derby on my fedora32 VM. I'm now
> trying to figure what the next steps are in order to be able to publish
> a rpm. I've asked a question onf the java/fedora devel list and the
> answer came back as
> <https://lists.fedoraproject.org/archives/list/java-devel@lists.fedoraproject.org/thread/QA3OGE4553TAYUTQ2K2RZJTK3DVB7LZF/>.
>
>
> Where does one find version numbers of Lucene and Javacc that derbys is
> happy to run with ?
>
> eg https://src.fedoraproject.org/rpms/derby/pull-request/1#request_diff
> contains 2 patches related to these projects ; I don't really understand
> the scope of these patches (specially that I've built Derby without any
> traces of Lucene on my systems). I'll happily read all documentation snt
> to me in order for me to grasp concepts and things I clearly don't right
> now.
>
>
> Thanks in advance.
>
> Ludo
>