diff options
Diffstat (limited to 'app-text/jabref/jabref-2.10-r7.ebuild')
-rw-r--r-- | app-text/jabref/jabref-2.10-r7.ebuild | 132 |
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 +} |