summaryrefslogtreecommitdiff
path: root/app-text/jabref/jabref-2.10-r7.ebuild
diff options
context:
space:
mode:
Diffstat (limited to 'app-text/jabref/jabref-2.10-r7.ebuild')
-rw-r--r--app-text/jabref/jabref-2.10-r7.ebuild132
1 files changed, 132 insertions, 0 deletions
diff --git a/app-text/jabref/jabref-2.10-r7.ebuild b/app-text/jabref/jabref-2.10-r7.ebuild
new file mode 100644
index 000000000000..852b9fb5305b
--- /dev/null
+++ b/app-text/jabref/jabref-2.10-r7.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc test"
+
+inherit desktop java-pkg-2 java-ant-2 virtualx xdg-utils
+
+MY_PV="${PV/_beta/b}"
+
+DESCRIPTION="Java GUI for managing BibTeX and other bibliographies"
+HOMEPAGE="https://www.jabref.org/"
+SRC_URI="mirror://sourceforge/${PN}/JabRef-${MY_PV}-src.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+
+CP_DEPEND="
+ dev-java/antlr:0
+ dev-java/antlr:3
+ dev-java/commons-logging:0
+ dev-java/fontbox:1.7
+ dev-java/jaxb-api:2
+ dev-java/jempbox:1.7
+ dev-java/log4j-12-api:2
+ dev-java/log4j-api:2
+ dev-java/spin:0
+ dev-java/microba:0
+ >=dev-java/glazedlists-1.8.0:0"
+
+TEST_DEPEND="dev-java/junit:0"
+
+# Since Java 9, all dependencies ever imported by the source files need to be
+# present in the classpath for Javadoc generation; in particular, for this
+# package, the test sources will be passed to 'javadoc' as well as the non-test
+# sources, so all test dependencies are required for Javadoc generation too.
+DEPEND="
+ >=virtual/jdk-1.8:*
+ doc? ( ${TEST_DEPEND} )
+ test? ( ${TEST_DEPEND} )
+ ${CP_DEPEND}"
+
+# Java 17+ requires "--add-opens=java.desktop/java.awt=ALL-UNNAMED" in
+# arguments to the JVM that runs this application; Java 8 and 11 are OK,
+# but dev-java/java-config currently does not support declaration like
+# RDEPEND="|| ( virtual/jre:1.8 virtual/jre:11 )" yet, so only one JRE
+# version can be chosen to run this application at the moment.
+RDEPEND="
+ virtual/jre:1.8
+ ${CP_DEPEND}"
+
+IDEPEND="dev-util/desktop-file-utils"
+
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-javax.swing-java-9+.patch"
+ "${FILESDIR}/${P}-skip-failing-tests.patch"
+ "${FILESDIR}/${P}-test-jvm-props-args.patch"
+)
+
+JAVA_ANT_REWRITE_CLASSPATH="true"
+EANT_BUILD_TARGET="jars"
+EANT_DOC_TARGET="docs"
+
+# Some dependencies that are also used by the tests need to be explicitly
+# listed to avoid "package does not exist" compiler errors.
+EANT_TEST_GENTOO_CLASSPATH="junit"
+EANT_TEST_GENTOO_CLASSPATH+=",antlr-3,commons-logging,glazedlists"
+EANT_TEST_GENTOO_CLASSPATH+=",jempbox-1.7,microba,spin"
+EANT_TEST_EXTRA_ARGS="-Djava.io.tmpdir=${T} -Duser.home=${HOME}"
+
+src_prepare() {
+ default
+
+ # If we cleanup it complains about missing jarbundler
+ # BUILD FAILED
+ # taskdef class net.sourceforge.jarbundler.JarBundler cannot be found
+# java-pkg_clean
+
+ # Remove bundled dependencies.
+ rm lib/antlr*.jar || die
+ rm lib/fontbox*.jar || die
+ rm lib/glazedlists*.jar || die
+ rm lib/jempbox*.jar || die
+ rm lib/microba.jar || die
+ rm lib/spin.jar || die
+ rm lib/plugin/commons-logging.jar || die
+
+ # Remove unjarlib target (do this only once we have removed all
+ # bundled dependencies in lib).
+ #sed -i -e 's:depends="build, unjarlib":depends="build":' build.xml
+
+ # Fix license file copy operation for microba bundled lib.
+ sed -i -e 's:^.*microba-license.*::' build.xml
+
+ use doc && EANT_GENTOO_CLASSPATH_EXTRA="$(\
+ java-pkg_getjars --build-only junit)"
+}
+
+src_test() {
+ # Tests will launch the application, which requires an X environment.
+ # An existing application preference file is needed to make the tests
+ # non-interactive; otherwise, the application will hang for user input.
+ local prefs_dir="${HOME}/.java/.userPrefs/net/sf/jabref"
+ mkdir -p "${prefs_dir}" ||
+ die "Failed to create application preference directory for tests"
+ cp "${FILESDIR}/${P}-test-prefs.xml" "${prefs_dir}/prefs.xml" ||
+ die "Failed to copy application preference file for tests"
+ virtx java-pkg-2_src_test
+}
+
+src_install() {
+ java-pkg_newjar build/lib/JabRef-${MY_PV}.jar
+
+ dodoc src/txt/README
+ use doc && java-pkg_dojavadoc build/docs/API
+
+ java-pkg_dolauncher ${PN} --main net.sf.jabref.JabRef
+ newicon src/images/JabRef-icon-48.png JabRef-icon.png
+ make_desktop_entry ${PN} JabRef JabRef-icon Office
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+}