commit:     e78efb63107558c492825f9aaa0a35f61b29a2a9
Author:     Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net>
AuthorDate: Sun Mar 21 12:35:36 2021 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net>
CommitDate: Sun Mar 21 12:35:36 2021 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=e78efb63

dev-java/lucene: add new lucene versions for scilab

At the moment this only builds with USE="-modules"
because we are missing a dependency. Will add the
keywords if/when I get the dependency working

Also added a fixed ebuild for version 3.6.2,
the one in ::gentoo fails with USE="contrib"
see linked bug

Bug: https://bugs.gentoo.org/733258
Bug: https://bugs.gentoo.org/579086
Package-Manager: Portage-3.0.17, Repoman-3.0.2
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> riseup.net>

 dev-java/lucene/files/lucene-3.6.2-ant-1.10.patch  |  24 +++
 .../lucene/files/lucene_contrib_icu4j_v50.patch    |  20 +++
 dev-java/lucene/lucene-3.6.2-r2.ebuild             | 162 +++++++++++++++++++
 dev-java/lucene/lucene-5.2.1.ebuild                | 165 +++++++++++++++++++
 dev-java/lucene/lucene-8.4.0.ebuild                | 180 +++++++++++++++++++++
 dev-java/lucene/metadata.xml                       |  12 ++
 6 files changed, 563 insertions(+)

diff --git a/dev-java/lucene/files/lucene-3.6.2-ant-1.10.patch 
b/dev-java/lucene/files/lucene-3.6.2-ant-1.10.patch
new file mode 100644
index 000000000..8d70c406f
--- /dev/null
+++ b/dev-java/lucene/files/lucene-3.6.2-ant-1.10.patch
@@ -0,0 +1,24 @@
+diff --git 
a/lucene/test-framework/src/java/org/apache/lucene/util/LuceneJUnitDividingSelector.java
 
b/lucene/test-framework/src/java/org/apache/lucene/util/LuceneJUnitDividingSelector.java
+index 5a9509c..beecebe 100644
+--- 
a/test-framework/src/java/org/apache/lucene/util/LuceneJUnitDividingSelector.java
++++ 
b/test-framework/src/java/org/apache/lucene/util/LuceneJUnitDividingSelector.java
+@@ -21,6 +21,7 @@ import java.io.File;
+ import org.apache.tools.ant.BuildException;
+ import org.apache.tools.ant.types.Parameter;
+ import org.apache.tools.ant.types.selectors.BaseExtendSelector;
++import org.apache.tools.ant.types.Resource;
+ 
+ /** Divides filesets into equal groups */
+ public class LuceneJUnitDividingSelector extends BaseExtendSelector {
+@@ -30,6 +31,11 @@ public class LuceneJUnitDividingSelector extends 
BaseExtendSelector {
+   /** Current part to accept. */
+   private int part;
+ 
++  @Override
++  public boolean isSelected(Resource r) {
++      return false;
++  }
++
+   @Override
+   public void setParameters(Parameter[] pParameters) {
+     super.setParameters(pParameters);

diff --git a/dev-java/lucene/files/lucene_contrib_icu4j_v50.patch 
b/dev-java/lucene/files/lucene_contrib_icu4j_v50.patch
new file mode 100644
index 000000000..8c3dd8a01
--- /dev/null
+++ b/dev-java/lucene/files/lucene_contrib_icu4j_v50.patch
@@ -0,0 +1,20 @@
+--- 
a/contrib/icu/src/java/org/apache/lucene/analysis/icu/segmentation/BreakIteratorWrapper.java
++++ 
b/contrib/icu/src/java/org/apache/lucene/analysis/icu/segmentation/BreakIteratorWrapper.java
+@@ -21,7 +21,6 @@ import java.text.CharacterIterator;
+ 
+ import com.ibm.icu.lang.UCharacter;
+ import com.ibm.icu.text.BreakIterator;
+-import com.ibm.icu.text.DictionaryBasedBreakIterator;
+ import com.ibm.icu.text.RuleBasedBreakIterator;
+ import com.ibm.icu.text.UTF16;
+ 
+@@ -67,8 +66,7 @@ abstract class BreakIteratorWrapper {
+    * it like a generic BreakIterator.
+    */
+   static BreakIteratorWrapper wrap(BreakIterator breakIterator) {
+-    if (breakIterator instanceof RuleBasedBreakIterator
+-        && !(breakIterator instanceof DictionaryBasedBreakIterator))
++    if (breakIterator instanceof RuleBasedBreakIterator)
+       return new RBBIWrapper((RuleBasedBreakIterator) breakIterator);
+     else
+       return new BIWrapper(breakIterator);

diff --git a/dev-java/lucene/lucene-3.6.2-r2.ebuild 
b/dev-java/lucene/lucene-3.6.2-r2.ebuild
new file mode 100644
index 000000000..97e5c8d6e
--- /dev/null
+++ b/dev-java/lucene/lucene-3.6.2-r2.ebuild
@@ -0,0 +1,162 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+JAVA_PKG_IUSE="doc source test contrib"
+JAVA_PKG_BSFIX_ALL="no"
+JAVA_PKG_BSFIX_NAME="build.xml common-build.xml contrib-build.xml"
+
+inherit java-pkg-2 java-ant-2
+
+DESCRIPTION="High-performance, full-featured text search engine written 
entirely in Java"
+HOMEPAGE="https://lucene.apache.org";
+SRC_URI="mirror://apache/lucene/java/${PV}/${P}-src.tgz"
+
+LICENSE="Apache-2.0"
+SLOT="3.6"
+KEYWORDS="~amd64 ~x86"
+
+CDEPEND="
+       dev-java/ant-core:0
+       dev-java/ant-junit:0
+       dev-java/hamcrest-core:0
+       dev-java/jflex:0
+       contrib? (
+               dev-java/junit:4
+               dev-java/jakarta-regexp:1.4
+               dev-java/commons-compress:0
+               dev-java/commons-collections:0
+               dev-java/commons-digester:0
+               dev-java/commons-logging:0
+               dev-java/commons-beanutils:1.7
+               dev-java/commons-codec:0
+               dev-java/icu4j:56
+       )"
+
+DEPEND="
+       ${CDEPEND}
+       >=virtual/jdk-1.6"
+
+RDEPEND="
+       ${CDEPEND}
+       >=virtual/jre-1.6"
+
+DOCS=(
+       CHANGES.txt README.txt
+       NOTICE.txt CHANGES.txt
+       JRE_VERSION_MIGRATION.txt
+)
+
+# [0]: Patch so that we can compile the package against ICU 50 and above
+PATCHES=(
+       "${FILESDIR}"/lucene_contrib_icu4j_v50.patch
+       "${FILESDIR}"/${P}-ant-1.10.patch
+)
+
+EANT_GENTOO_CLASSPATH="
+       ant-core
+       ant-junit
+       junit-4
+       hamcrest-core
+       jflex
+       "
+EANT_EXTRA_ARGS="-Dversion=${PV} -Dfailonjavadocwarning=false"
+EANT_DOC_TARGET="javadocs-core"
+
+EANT_TEST_TARGET="test-core"
+EANT_TEST_EXTRA_ARGS="-Dheadless=true -Djava.io.tmpdir=${T}"
+EANT_TEST_GENTOO_CLASSPATH="
+       ant-core
+       ant-junit
+       junit-4
+       "
+EANT_TEST_ANT_TASKS="ant-junit"
+
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+
+# All tests in contrib/icu/test fail.
+RESTRICT="test"
+
+src_prepare() {
+       default
+
+       sed -i \
+               -e '/-Xmax/ d' \
+               -e 
'/property="ivy.available"/s,resource="${ivy.resource}",file="." type="dir",g' \
+               -e '/<ivy:retrieve/d' \
+               common-build.xml || die
+
+       # FIXME: docs do not build if behind a proxy, -autoproxy does not work
+       java-ant_xml-rewrite -f common-build.xml \
+               -c -e javadoc \
+               -a failonerror \
+               -v "false" \
+               -a additionalparam \
+               -v "-Xdoclint:none"
+
+       # There are some JS in the javadocs's bootom and in VM >= 1.8 the 
--allow-script-in-comments
+       # is needed so docs could be built
+       if java-pkg_is-vm-version-ge "1.8" ; then
+               java-ant_xml-rewrite -f common-build.xml \
+                       -c -e javadoc \
+                       -a additionalparam \
+                       -v "-Xdoclint:none --allow-script-in-comments"
+       fi
+
+       java-pkg-2_src_prepare
+}
+
+src_compile() {
+       EANT_BUILD_TARGET="jar-core"
+
+       if use contrib; then
+           EANT_GENTOO_CLASSPATH+="
+                       jakarta-regexp-1.4
+                       commons-compress
+                       commons-collections
+                       commons-digester
+                       commons-logging
+                       commons-beanutils-1.7
+                       commons-codec
+                       icu4j-56
+                       "
+               EANT_BUILD_TARGET+=" build-contrib"
+               EANT_DOC_TARGET+=" javadocs-all"
+       fi
+
+       java-ant_rewrite-classpath common-build.xml
+
+       default
+       java-pkg-2_src_compile
+}
+
+src_test() {
+       if use contrib; then
+           EANT_TEST_GENTOO_CLASSPATH+=" commons-codec 
${EANT_GENTOO_CLASSPATH}"
+           EANT_TEST_TARGET+=" test-contrib"
+       fi
+
+       java-pkg-2_src_test
+}
+
+src_install() {
+       einstalldocs
+       java-pkg_newjar build/core/${PN}-core-${PV}.jar ${PN}-core.jar
+
+       if use contrib; then
+               local i j
+               for i in $(find build/contrib -name \*-${PV}.jar); do
+                   j=${i##*/}
+                       java-pkg_newjar $i ${j%%-${PV}.jar}.jar
+               done
+       fi
+       if use doc; then
+               dodoc -r docs
+               java-pkg_dohtml -r build/docs/api
+       fi
+       if use source; then
+            java-pkg_dosrc core/src/java/org
+                use contrib && java-pkg_dosrc contrib
+       fi
+}

diff --git a/dev-java/lucene/lucene-5.2.1.ebuild 
b/dev-java/lucene/lucene-5.2.1.ebuild
new file mode 100644
index 000000000..beadf6aab
--- /dev/null
+++ b/dev-java/lucene/lucene-5.2.1.ebuild
@@ -0,0 +1,165 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+JAVA_PKG_IUSE="doc source test modules"
+JAVA_PKG_BSFIX_ALL="no"
+JAVA_PKG_BSFIX_NAME="build.xml common-build.xml"
+
+inherit java-pkg-2 java-ant-2
+
+DESCRIPTION="High-performance, full-featured text search engine written 
entirely in Java"
+HOMEPAGE="https://lucene.apache.org";
+SRC_URI="https://archive.apache.org/dist/lucene/java/${PV}/${P}-src.tgz";
+
+LICENSE="Apache-2.0"
+SLOT="5.2"
+KEYWORDS=""
+
+CDEPEND="
+       dev-java/ant-core:0
+       dev-java/ant-junit:0
+       dev-java/hamcrest-core:0
+       dev-java/jflex:0
+       modules? (
+               dev-java/junit:4
+               dev-java/jakarta-regexp:1.4
+               dev-java/commons-compress:0
+               dev-java/commons-collections:0
+               dev-java/commons-digester:0
+               dev-java/commons-logging:0
+               dev-java/commons-beanutils:1.7
+               dev-java/commons-codec:0
+               dev-java/icu4j:56
+       )"
+
+DEPEND="
+       ${CDEPEND}
+       >=virtual/jdk-1.7"
+
+RDEPEND="
+       ${CDEPEND}
+       >=virtual/jre-1.7"
+
+DOCS=(
+       CHANGES.txt README.txt
+       NOTICE.txt CHANGES.txt
+       JRE_VERSION_MIGRATION.txt
+)
+
+EANT_GENTOO_CLASSPATH="
+       ant-core
+       ant-junit
+       junit-4
+       hamcrest-core
+       jflex
+       "
+EANT_EXTRA_ARGS="-Dversion=${PV} -Dfailonjavadocwarning=false"
+EANT_DOC_TARGET="javadocs-lucene-core"
+
+EANT_TEST_TARGET="test-core"
+EANT_TEST_EXTRA_ARGS="-Dheadless=true -Djava.io.tmpdir=${T}"
+EANT_TEST_GENTOO_CLASSPATH="
+       ant-core
+       ant-junit
+       junit-4
+       "
+EANT_TEST_ANT_TASKS="ant-junit"
+
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+
+# All tests in contrib/icu/test fail.
+RESTRICT="test"
+
+src_prepare() {
+       default
+
+       sed -i \
+               -e '/-Xmax/ d' \
+               -e 
'/property="ivy.available"/s,resource="${ivy.resource}",file="." type="dir",g' \
+               -e '/<ivy:retrieve/d' \
+               -e '/conf="${ivy.default.configuration}" sync="${ivy.sync}"/d' \
+               -e '/<fail>Ivy is not available<\/fail>/d' \
+               -e '/ivy:configure/d' \
+               -e '/svnversion.exe/d' \
+               common-build.xml || die
+
+       # do not build tests if modules enabled, we are missing a dependency
+       sed -i \
+               -e 's/<target name="build-modules" 
depends="compile-test"/<target name="build-modules"/g' \
+               build.xml
+
+       # FIXME: docs do not build if behind a proxy, -autoproxy does not work
+       java-ant_xml-rewrite -f common-build.xml \
+               -c -e javadoc \
+               -a failonerror \
+               -v "false" \
+               -a additionalparam \
+               -v "-Xdoclint:none"
+
+       # There are some JS in the javadocs's bootom and in VM >= 1.8 the 
--allow-script-in-comments
+       # is needed so docs could be built
+       if java-pkg_is-vm-version-ge "1.8" ; then
+               java-ant_xml-rewrite -f common-build.xml \
+                       -c -e javadoc \
+                       -a additionalparam \
+                       -v "-Xdoclint:none --allow-script-in-comments"
+       fi
+
+       java-pkg-2_src_prepare
+}
+
+src_compile() {
+       EANT_BUILD_TARGET="jar-core"
+
+       if use modules; then
+           EANT_GENTOO_CLASSPATH+="
+                       jakarta-regexp-1.4
+                       commons-compress
+                       commons-collections
+                       commons-digester
+                       commons-logging
+                       commons-beanutils-1.7
+                       commons-codec
+                       icu4j-56
+                       "
+               EANT_BUILD_TARGET+=" build-modules"
+               EANT_DOC_TARGET+=" javadocs-modules"
+       fi
+
+       java-ant_rewrite-classpath common-build.xml
+
+       default
+       java-pkg-2_src_compile
+}
+
+src_test() {
+       if use modules; then
+           EANT_TEST_GENTOO_CLASSPATH+=" commons-codec 
${EANT_GENTOO_CLASSPATH}"
+           EANT_TEST_TARGET+=" test-modules"
+       fi
+
+       java-pkg-2_src_test
+}
+
+src_install() {
+       einstalldocs
+       java-pkg_newjar build/core/${PN}-core-${PV}.jar ${PN}-core.jar
+
+       if use modules; then
+               local i j
+               for i in $(find build/modules -name \*-${PV}.jar); do
+                   j=${i##*/}
+                       java-pkg_newjar $i ${j%%-${PV}.jar}.jar
+               done
+       fi
+       if use doc; then
+               dodoc -r docs
+               java-pkg_dohtml -r build/docs
+       fi
+       if use source; then
+            java-pkg_dosrc core/src/java/org
+                use modules && java-pkg_dosrc modules
+       fi
+}

diff --git a/dev-java/lucene/lucene-8.4.0.ebuild 
b/dev-java/lucene/lucene-8.4.0.ebuild
new file mode 100644
index 000000000..c6856b6f7
--- /dev/null
+++ b/dev-java/lucene/lucene-8.4.0.ebuild
@@ -0,0 +1,180 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+JAVA_PKG_IUSE="doc source test modules"
+JAVA_PKG_BSFIX_ALL="no"
+JAVA_PKG_BSFIX_NAME="build.xml common-build.xml"
+
+inherit java-pkg-2 java-ant-2
+
+DESCRIPTION="High-performance, full-featured text search engine written 
entirely in Java"
+HOMEPAGE="https://lucene.apache.org";
+SRC_URI="https://archive.apache.org/dist/lucene/java/${PV}/${P}-src.tgz";
+
+LICENSE="Apache-2.0"
+SLOT="8.4"
+KEYWORDS=""
+
+CDEPEND="
+       dev-java/ant-core:0
+       dev-java/ant-junit:0
+       dev-java/hamcrest-core:0
+       dev-java/jflex:0
+       modules? (
+               dev-java/junit:4
+               dev-java/jakarta-regexp:1.4
+               dev-java/commons-compress:0
+               dev-java/commons-collections:0
+               dev-java/commons-digester:0
+               dev-java/commons-logging:0
+               dev-java/commons-beanutils:1.7
+               dev-java/commons-codec:0
+               dev-java/icu4j:56
+       )"
+
+DEPEND="
+       ${CDEPEND}
+       >=virtual/jdk-1.8"
+
+RDEPEND="
+       ${CDEPEND}
+       >=virtual/jre-1.8"
+
+DOCS=(
+       CHANGES.txt README.txt
+       NOTICE.txt CHANGES.txt
+       JRE_VERSION_MIGRATION.txt
+)
+
+EANT_GENTOO_CLASSPATH="
+       ant-core
+       ant-junit
+       junit-4
+       hamcrest-core
+       jflex
+       "
+EANT_EXTRA_ARGS="-Dversion=${PV} -Dfailonjavadocwarning=false"
+EANT_DOC_TARGET="javadocs-lucene-core"
+
+EANT_TEST_TARGET="test-core"
+EANT_TEST_EXTRA_ARGS="-Dheadless=true -Djava.io.tmpdir=${T}"
+EANT_TEST_GENTOO_CLASSPATH="
+       ant-core
+       ant-junit
+       junit-4
+       "
+EANT_TEST_ANT_TASKS="ant-junit"
+
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+
+# All tests in contrib/icu/test fail.
+RESTRICT="test"
+
+src_prepare() {
+       default
+
+       sed -i \
+               -e '/-Xmax/ d' \
+               -e 
'/property="ivy.available"/s,resource="${ivy.resource}",file="." type="dir",g' \
+               -e '/<ivy:retrieve/d' \
+               -e '/conf="${ivy.default.configuration}" sync="${ivy.sync}"/d' \
+               -e '/<fail>Ivy is not available<\/fail>/d' \
+               -e '/ivy:configure/d' \
+               -e '/<groovy /d' \
+               -e '/svnversion.exe/d' \
+               -e 's/depends="ivy-availability-check,/depends="/g' \
+               -e 's/ivy-availability-check,//g' \
+               -e 's/resolve-groovy,//g' \
+               -e 's/depends="resolve-groovy"//g' \
+               -e '/<ivy:cachepath/,/\/>/d' \
+               -e '/<ivy:cachepath/,/\/ivy:cachepath>/d' \
+               -e '/<ivy:dependency/d' \
+               -e '/<\/ivy:cachepath>/d' \
+               -e '/<taskdef name="groovy"/,/\/>/d' \
+               common-build.xml || die
+
+       # do not build tests if modules enabled, we are missing a dependency
+       sed -i \
+               -e 's/<target name="build-modules" 
depends="compile-test"/<target name="build-modules"/g' \
+               build.xml
+
+       # FIXME: docs do not build if behind a proxy, -autoproxy does not work
+       java-ant_xml-rewrite -f common-build.xml \
+               -c -e javadoc \
+               -a failonerror \
+               -v "false" \
+               -a additionalparam \
+               -v "-Xdoclint:none"
+
+       # There are some JS in the javadocs's bootom and in VM >= 1.8 the 
--allow-script-in-comments
+       # is needed so docs could be built
+       if java-pkg_is-vm-version-ge "1.8" ; then
+               java-ant_xml-rewrite -f common-build.xml \
+                       -c -e javadoc \
+                       -a additionalparam \
+                       -v "-Xdoclint:none --allow-script-in-comments"
+       fi
+
+       if use modules; then
+               mkdir -p analysis/icu/lib
+               java-pkg_jar-from --into analysis/icu/lib icu4j-56
+       fi
+
+       java-pkg-2_src_prepare
+}
+
+src_compile() {
+       EANT_BUILD_TARGET="jar-core"
+
+       if use modules; then
+           EANT_GENTOO_CLASSPATH+="
+                       jakarta-regexp-1.4
+                       commons-compress
+                       commons-collections
+                       commons-digester
+                       commons-logging
+                       commons-beanutils-1.7
+                       commons-codec
+                       icu4j-56
+                       "
+               EANT_BUILD_TARGET+=" build-modules"
+               EANT_DOC_TARGET+=" javadocs-modules"
+       fi
+
+       java-ant_rewrite-classpath common-build.xml
+
+       default
+       java-pkg-2_src_compile
+}
+
+src_test() {
+       if use modules; then
+           EANT_TEST_GENTOO_CLASSPATH+=" commons-codec 
${EANT_GENTOO_CLASSPATH}"
+           EANT_TEST_TARGET+=" test-modules"
+       fi
+
+       java-pkg-2_src_test
+}
+
+src_install() {
+       einstalldocs
+       java-pkg_newjar build/core/${PN}-core-${PV}.jar ${PN}-core.jar
+
+       if use modules; then
+               local i j
+               for i in $(find build/modules -name \*-${PV}.jar); do
+                   j=${i##*/}
+                       java-pkg_newjar $i ${j%%-${PV}.jar}.jar
+               done
+       fi
+       if use doc; then
+               dodoc -r docs
+               java-pkg_dohtml -r build/docs
+       fi
+       if use source; then
+            java-pkg_dosrc core/src/java/org
+                use modules && java-pkg_dosrc modules
+       fi
+}

diff --git a/dev-java/lucene/metadata.xml b/dev-java/lucene/metadata.xml
new file mode 100644
index 000000000..8bfdfa59a
--- /dev/null
+++ b/dev-java/lucene/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="project">
+               <email>[email protected]</email>
+               <name>Gentoo Science Project</name>
+       </maintainer>
+       <use>
+               <flag name="contrib">Include extra functionality from 
contrib/</flag>
+               <flag name="modules">Also build optional modules</flag>
+       </use>
+</pkgmetadata>

Reply via email to