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>
