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


Reply via email to