diff options
author | Michael Lass | 2020-03-19 23:51:14 +0100 |
---|---|---|
committer | Michael Lass | 2020-03-20 00:16:08 +0100 |
commit | 4033072fa0d9411deeffd7f9fce491c606341e62 (patch) | |
tree | 695133d1f7971d11c8d1b131bf4a56465a6dbc1a | |
parent | 3a14c665846a3c77492ad531eb8a69818c8fc923 (diff) | |
download | aur-4033072fa0d9411deeffd7f9fce491c606341e62.tar.gz |
Build from source and do not include JRE
The package still includes all required java modules, in particular, we
do not use java-openjfx. It seems that the provided javafx version is
slightly different from Arch's java-openjfx, so trying to use the system
jars leads to a crash on startup.
-rw-r--r-- | .SRCINFO | 23 | ||||
-rw-r--r-- | PKGBUILD | 58 | ||||
-rw-r--r-- | jabref.sh | 40 |
3 files changed, 80 insertions, 41 deletions
@@ -1,23 +1,18 @@ pkgbase = jabref pkgdesc = Graphical Java application for managing BibTeX and biblatex (.bib) databases pkgver = 5.0 - pkgrel = 1 + pkgrel = 2 url = https://www.jabref.org/ - arch = x86_64 + arch = any license = MIT - depends = alsa-lib - depends = freetype2 - depends = libnet - depends = libxrender - depends = libxtst - depends = python - source = https://github.com/JabRef/jabref/releases/download/v5.0/JabRef-5.0-portable_linux.tar.gz - source = https://raw.githubusercontent.com/JabRef/jabref/v5.0/LICENSE.md - source = https://raw.githubusercontent.com/JabRef/jabref/v5.0/src/main/resources/icons/jabref.svg + makedepends = jdk13-openjdk + depends = bash + depends = jre13-openjdk + source = jabref-5.0.tar.gz::https://github.com/JabRef/jabref/archive/v5.0.tar.gz + source = jabref.sh source = jabref.desktop - sha256sums = 2231df4a429e819f795483419bb40242ad1f0dc2a7893e546e62649b6a275e6c - sha256sums = 057113b2e1e3eaeffdbbfbc57febca6e02c53cb63b14ffc9e1fbacf6ddc17638 - sha256sums = 84408ddc8c6e41e4367f3b6cd171909fb1cf7ac808495f3a8033b64a2ff4c40b + sha256sums = 52ac917dd96f20a05b4beb7ea4c52edcf8c6170bd49b36178f599d48ecd3a822 + sha256sums = 51379fbce194379d6c6b66cf9404361d42b916364fc1b5915553fe4b03d5f0e5 sha256sums = e499b4af1fc45223fdafd801a4dd8a1c3c59384c71bc2e6985ab701da97df717 pkgname = jabref @@ -8,39 +8,47 @@ pkgname=jabref pkgver=5.0 -pkgrel=1 +pkgrel=2 pkgdesc="Graphical Java application for managing BibTeX and biblatex (.bib) databases" -arch=(x86_64) +arch=(any) url="https://www.jabref.org/" license=(MIT) -depends=(alsa-lib freetype2 libnet libxrender libxtst python) -source=(https://github.com/JabRef/jabref/releases/download/v${pkgver}/JabRef-${pkgver}-portable_linux.tar.gz - https://raw.githubusercontent.com/JabRef/jabref/v${pkgver}/LICENSE.md - https://raw.githubusercontent.com/JabRef/jabref/v${pkgver}/src/main/resources/icons/jabref.svg +depends=(bash jre13-openjdk) +makedepends=(jdk13-openjdk) +options=(!strip !emptydirs) +source=(${pkgname}-${pkgver}.tar.gz::https://github.com/JabRef/jabref/archive/v${pkgver}.tar.gz + jabref.sh jabref.desktop) -sha256sums=('2231df4a429e819f795483419bb40242ad1f0dc2a7893e546e62649b6a275e6c' - '057113b2e1e3eaeffdbbfbc57febca6e02c53cb63b14ffc9e1fbacf6ddc17638' - '84408ddc8c6e41e4367f3b6cd171909fb1cf7ac808495f3a8033b64a2ff4c40b' +sha256sums=('52ac917dd96f20a05b4beb7ea4c52edcf8c6170bd49b36178f599d48ecd3a822' + '51379fbce194379d6c6b66cf9404361d42b916364fc1b5915553fe4b03d5f0e5' 'e499b4af1fc45223fdafd801a4dd8a1c3c59384c71bc2e6985ab701da97df717') -# Preparation for building from source. Currently, the jlink step fails with the following message: -# Process 'command '/usr/lib/jvm/java-13-openjdk/bin/jlink'' finished with non-zero exit value 1 -#build() { -# cd ... -# -# export JAVA_HOME=/usr/lib/jvm/java-13-openjdk/ -# -# ./gradlew --no-daemon assemble -# ./gradlew --no-daemon jlink -#} +build() { + cd ${pkgname}-${pkgver} + + export JAVA_HOME=/usr/lib/jvm/java-13-openjdk/ + + # Avoid storing maven packages in the user's home (comment out to cache resources) + sed -i '/^\s*mavenLocal()\s*$/d' build.gradle + + ./gradlew \ + --no-daemon \ + -PprojVersion="${pkgver}" \ + -PprojVersionInfo="${pkgver}--ArchLinux--${pkgrel}" \ + assemble +} package() { - install -dm755 "${pkgdir}/opt/jabref" "${pkgdir}/usr/bin" + install -dm755 "${pkgdir}"/usr/share/java/${pkgname} + install -Dm755 jabref.sh "${pkgdir}"/usr/bin/JabRef + install -Dm644 jabref.desktop "${pkgdir}"/usr/share/applications/${pkgname}.desktop - cp -r "${srcdir}"/JabRef/{bin,lib} "${pkgdir}"/opt/${pkgname} - ln -sf /opt/${pkgname}/bin/JabRef "${pkgdir}"/usr/bin/JabRef + cd ${pkgname}-${pkgver} + install -Dm644 LICENSE.md "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE.md + install -Dm644 src/main/resources/icons/jabref.svg "${pkgdir}"/usr/share/pixmaps/${pkgname}.svg - install -Dm644 "${srcdir}"/${pkgname}.desktop "${pkgdir}"/usr/share/applications/${pkgname}.desktop - install -Dm644 "${srcdir}"/${pkgname}.svg "${pkgdir}"/usr/share/pixmaps/${pkgname}.svg - install -Dm644 "${srcdir}"/LICENSE.md "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE.md + cd build + cp -r resources "${pkgdir}"/usr/share/java/${pkgname} + tar xf distributions/JabRef-${pkgver}.tar -C "${pkgdir}"/usr/share/java/${pkgname} JabRef-${pkgver}/lib --strip-components=1 + rm "${pkgdir}"/usr/share/java/${pkgname}/lib/*-mac.* } diff --git a/jabref.sh b/jabref.sh index 9907c1ada867..084272ea5066 100644 --- a/jabref.sh +++ b/jabref.sh @@ -1,3 +1,39 @@ -#!/bin/sh +#!/bin/bash -/usr/bin/archlinux-java-run --min 8 --max 8 --feature javafx -- -jar /usr/share/java/jabref/JabRef-VERSION.jar "$@" +# This script has been created based on the instructions at +# https://devdocs.jabref.org/getting-into-the-code/guidelines-for-setting-up-a-local-workspace +# and the output of `./gradlew -d run`. + +JRE=java-13-openjdk +ROOT=/usr/share/java/jabref + +/usr/lib/jvm/${JRE}/bin/java \ +--patch-module org.jabref=${ROOT}/resources/main \ +--add-exports javafx.controls/com.sun.javafx.scene.control=org.jabref \ +--add-exports org.controlsfx.controls/impl.org.controlsfx.skin=org.jabref \ +--add-exports javafx.graphics/com.sun.javafx.scene=org.controlsfx.controls \ +--add-exports javafx.graphics/com.sun.javafx.scene.traversal=org.controlsfx.controls \ +--add-exports javafx.graphics/com.sun.javafx.css=org.controlsfx.controls \ +--add-exports javafx.controls/com.sun.javafx.scene.control.behavior=org.controlsfx.controls \ +--add-exports javafx.controls/com.sun.javafx.scene.control=org.controlsfx.controls \ +--add-exports javafx.controls/com.sun.javafx.scene.control.inputmap=org.controlsfx.controls \ +--add-exports javafx.base/com.sun.javafx.event=org.controlsfx.controls \ +--add-exports javafx.base/com.sun.javafx.collections=org.controlsfx.controls \ +--add-exports javafx.base/com.sun.javafx.runtime=org.controlsfx.controls \ +--add-exports javafx.web/com.sun.webkit=org.controlsfx.controls \ +--add-exports javafx.graphics/com.sun.javafx.css=org.controlsfx.controls \ +--add-exports javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix \ +--add-exports com.oracle.truffle.regex/com.oracle.truffle.regex=org.graalvm.truffle \ +--add-opens javafx.controls/javafx.scene.control=org.jabref \ +--add-opens org.controlsfx.controls/org.controlsfx.control.textfield=org.jabref \ +--add-opens javafx.controls/javafx.scene.control.skin=org.controlsfx.controls \ +--add-opens javafx.graphics/javafx.scene=org.controlsfx.controls \ +--add-opens javafx.controls/com.sun.javafx.scene.control=org.jabref \ +--add-opens javafx.controls/com.sun.javafx.scene.control.behavior=com.jfoenix \ +--add-opens javafx.base/com.sun.javafx.binding=com.jfoenix \ +--add-opens javafx.graphics/com.sun.javafx.stage=com.jfoenix \ +--add-opens javafx.base/com.sun.javafx.event=com.jfoenix \ +--module-path ${ROOT}/lib \ +--add-modules javafx.controls,javafx.fxml,javafx.swing,javafx.web \ +--module org.jabref/org.jabref.JabRefLauncher \ +"$@" |