summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Lass2020-03-19 23:51:14 +0100
committerMichael Lass2020-03-20 00:16:08 +0100
commit4033072fa0d9411deeffd7f9fce491c606341e62 (patch)
tree695133d1f7971d11c8d1b131bf4a56465a6dbc1a
parent3a14c665846a3c77492ad531eb8a69818c8fc923 (diff)
downloadaur-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--.SRCINFO23
-rw-r--r--PKGBUILD58
-rw-r--r--jabref.sh40
3 files changed, 80 insertions, 41 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 6c9b30177c53..0735f3b39e75 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 024caeb1f4ab..5d09a09a871d 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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 \
+"$@"