commit:     e12b0b309a5b731666bc52efb7232942ca36f522
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Mon Apr 14 17:20:14 2025 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Mon Apr 14 17:22:08 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e12b0b30

app-text/jabref: new package, add 5.15

This was my first attempt to create gradle based ebuild. I suspect I've
done some mistakes with the "-deps" tarball, but it does work well on 2
of my PCs, and in a stage3 container.

Closes: https://bugs.gentoo.org/851219
Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 app-text/jabref/Manifest             |  7 ++++
 app-text/jabref/files/jabref.desktop | 12 ++++++
 app-text/jabref/files/jabref.sh      | 38 +++++++++++++++++++
 app-text/jabref/jabref-5.15.ebuild   | 72 ++++++++++++++++++++++++++++++++++++
 app-text/jabref/metadata.xml         | 11 ++++++
 5 files changed, 140 insertions(+)

diff --git a/app-text/jabref/Manifest b/app-text/jabref/Manifest
new file mode 100644
index 000000000000..958641b53928
--- /dev/null
+++ b/app-text/jabref/Manifest
@@ -0,0 +1,7 @@
+DIST jabref-5.15-abbrv.tar.gz 1044290 BLAKE2B 
0aeaf5307849fe8a7822e6a1bffbd1db7e3f14b6e5d5c4923084777c91dad7a42c4e6cbdd53197d6e454cab12fd9e6472369cec5a91ec783bd94f377a7b9c3d4
 SHA512 
8604451e685a943b8a8c9c212dc083bfd314435c5484c3d694b428b22d03093579ea3e576980f313d110ac98baaa3d24fa05eb8094f735bf5222e0f96447f631
+DIST jabref-5.15-fix-11517.patch 762 BLAKE2B 
319e81d292be30d390bb5866d74c9a3c7851ebef4d9b938060d6352af968093833e97312c79e96dc3d60018181a35955b1dc3dd9cf854ba103970a891d826a23
 SHA512 
a2a724b37fcfac731152d5f790585f2ea994f5b4754df2dacf4249ddfe4417633c5fe37e982ef4260417faae39a5c36314b067ac782db18b7de01e96bfc3f60e
+DIST jabref-5.15-fix-11544.patch 1337 BLAKE2B 
612296d8efb28f6efd4bf000ea774e7538ec29d02e6c5d345ed065355f5c8e7130bc44b2a9b8fa00a42c716c9e405868803beda62d5f0d9afa8e5d7d44e41221
 SHA512 
95785e7d0df7cb3789c6785a25db6ba0c742f1067ede3a920d9474de03da149883961dae53c387151cadcb94f6f287d7e128bfcc1f3667214c29c4b963ff4704
+DIST jabref-5.15-gradle-deps.tar.xz 152137652 BLAKE2B 
7a5b60f6c3470fea6c9121ca744e21edf7a4d57f2f90159d4615dd9ab6212a08488ae0eb3f6d177c79aa449f238e554737cccfd31e24ab2286b5796409d55b85
 SHA512 
b6753ed109b26d06574d9d568474775270a9d82b99a763d8270cd62272df1d864e8284861cb7d63c192cd21b105367b3cd70efe1cc608479311c1d2f389734dd
+DIST jabref-5.15-locales.tar.gz 109775 BLAKE2B 
cfb48ec1eac1407ab84db782d669e62df98201f8d01051a1cc54a972665da23f049d9ee66e6260efe0d6e60ec51efe98c25a409b7cbcb61c7b243fcdbf7e25a0
 SHA512 
9f46e5d3f62c65510deb0bfc33cb94a2ead59a72d14fa5d5562ddb33216646d7fcbcca4583a95995326b92668b08f2cbfea1bf8fc141bebb548ff3bd6fe461df
+DIST jabref-5.15-styles.tar.gz 3970487 BLAKE2B 
00036cc517b43c0d0c514ef1f99187824cea6b4b130c67074e1c0c2a16a133af76fc7455e0ab4e534858d3ef3af0b0e01822c97967874e64e11da1654b0f5a93
 SHA512 
f86ada293304be147969c2b88646bbef774d60b865f8625a7a7dcf5064d7a42fc41f49f2f105ad51a39a3dd5627d012e48719ba5d2be1b338225f27170ffc8e0
+DIST jabref-5.15.tar.gz 26875537 BLAKE2B 
b5a13416a6b07410434e68032507b5104bddb89317c25392ac0371707ce75c0aff62aa5173e7d24aa7e6ceeba73db08ab44dc0a57f6c3bff139e73cd33d30aee
 SHA512 
69170c254085b355c565ce11c5434049f1c961607a93c8a39792f1a7dacb57530065bcd80f5eb2050de0d09960d300702f61e14e6a815515fb83c14509e31f3a

diff --git a/app-text/jabref/files/jabref.desktop 
b/app-text/jabref/files/jabref.desktop
new file mode 100644
index 000000000000..7661d2723c52
--- /dev/null
+++ b/app-text/jabref/files/jabref.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=JabRef
+GenericName=BibTeX Editor
+Comment=Graphical Java application for managing BibTeX and biblatex (.bib) 
databases
+Type=Application
+Terminal=false
+Icon=jabref
+Exec=JabRef %U
+Keywords=bibtex;biblatex;latex;bibliography
+Categories=Office;
+StartupWMClass=org.jabref.gui.JabRefGUI
+MimeType=text/x-bibtex;

diff --git a/app-text/jabref/files/jabref.sh b/app-text/jabref/files/jabref.sh
new file mode 100644
index 000000000000..51f06e2d1712
--- /dev/null
+++ b/app-text/jabref/files/jabref.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+# JabRef may need some custom options to work and look properly on certain
+# systems. You can set them via the JABREF_OPTIONS environment variable.
+#     -Dglass.gtk.uiScale=144dpi   scale up the UI to look better on high DPI 
displays
+#     -Djdk.gtk.version=2          workaround for misbehaving menus, e.g. on 
i3wm
+# You can for example run JabRef as follows:
+#     JABREF_OPTIONS="-Dglass.gtk.uiScale=144dpi -Djdk.gtk.version=2" jabref
+
+# 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,
+# the output of `./gradlew -d run` and the contents of build/scripts/JabRef in 
the build
+# directory.
+
+ROOT=/usr/share/jabref
+
+exec java \
+       --add-exports 
javafx.controls/com.sun.javafx.scene.control=org.controlsfx.controls \
+       --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.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-opens javafx.controls/javafx.scene.control=org.jabref \
+       --add-opens 
org.controlsfx.controls/org.controlsfx.control.textfield=org.jabref \
+       --add-opens javafx.controls/com.sun.javafx.scene.control=org.jabref \
+       --add-opens 
javafx.controls/javafx.scene.control.skin=org.controlsfx.controls \
+       --add-opens javafx.graphics/javafx.scene=org.controlsfx.controls \
+       --module-path ${ROOT}/lib \
+       --patch-module org.jabref=${ROOT}/resources/main \
+       ${JABREF_OPTIONS} \
+       --module org.jabref/org.jabref.Launcher \
+       "$@"

diff --git a/app-text/jabref/jabref-5.15.ebuild 
b/app-text/jabref/jabref-5.15.ebuild
new file mode 100644
index 000000000000..8567641b51d9
--- /dev/null
+++ b/app-text/jabref/jabref-5.15.ebuild
@@ -0,0 +1,72 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit desktop edo multiprocessing xdg
+
+VER_ABBRV=7f27d794befacdb279039c3bae807ea0f3faacca
+VER_LOCALES=606fa26be1d87837c4e607362b28ed58a7576875
+VER_STYLES=616763159e5fbedcfb574ac02648e727b8166dad
+
+DESCRIPTION="Graphical Java application for managing BibTeX and biblatex 
(.bib) databases"
+HOMEPAGE="https://www.jabref.org/ https://github.com/JabRef/jabref";
+SRC_URI="
+       https://github.com/JabRef/jabref/archive/v${PV}.tar.gz -> ${P}.tar.gz
+       
https://dev.gentoo.org/~arthurzam/distfiles/app-text/${PN}/${P}-gradle-deps.tar.xz
+       https://github.com/JabRef/abbrv.jabref.org/archive/${VER_ABBRV}.tar.gz 
-> ${P}-abbrv.tar.gz
+       
https://github.com/citation-style-language/locales/archive/${VER_LOCALES}.tar.gz
 -> ${P}-locales.tar.gz
+       
https://github.com/citation-style-language/styles/archive/${VER_STYLES}.tar.gz 
-> ${P}-styles.tar.gz
+       
https://github.com/JabRef/jabref/commit/a64bb070259dd93de8cb88188e4c5bf892f2af2b.patch
 -> ${P}-fix-11517.patch
+       
https://github.com/JabRef/jabref/commit/e2ab9c016e41902d867da1d7e13ce0e5da44615f.patch
 -> ${P}-fix-11544.patch
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND=">=virtual/jdk-21:*"
+RDEPEND=">=virtual/jre-21"
+BDEPEND="
+       >=dev-java/gradle-bin-8
+       dev-java/java-config
+"
+
+PATCHES=(
+       "${DISTDIR}/${P}-fix-11517.patch"
+       "${DISTDIR}/${P}-fix-11544.patch"
+)
+
+src_unpack() {
+       default
+       cp -a "${WORKDIR}"/abbrv.jabref.org-${VER_ABBRV}/* 
"${S}"/buildres/abbrv.jabref.org/ || die
+       cp -a "${WORKDIR}"/locales-${VER_LOCALES}/* 
"${S}"/src/main/resources/csl-locales/ || die
+       cp -a "${WORKDIR}"/styles-${VER_STYLES}/* 
"${S}"/src/main/resources/csl-styles/ || die
+}
+
+src_compile() {
+       local -x JAVA_HOME="$(java-config --jdk-home || die)"
+       einfo "Using JAVA_HOME: ${JAVA_HOME}"
+
+       local GRADLE_ARGS=(
+               --offline
+               --no-daemon
+               --no-watch-fs
+               --parallel --max-workers="$(get_makeopts_jobs)"
+               --gradle-user-home="${WORKDIR}/gradle-deps"
+               -PprojVersion="${PV}"
+               -PprojVersionInfo="${PV}--Gentoo"
+       )
+       edo gradle "${GRADLE_ARGS[@]}" assemble
+}
+
+src_install() {
+       doicon -s scalable src/main/resources/icons/jabref.svg
+       domenu "${FILESDIR}"/jabref.desktop
+       newbin "${FILESDIR}"/jabref.sh JabRef
+       dosym "JabRef" "/usr/bin/jabref"
+
+       dodir /usr/share/${PN}
+       cp -r build/resources "${ED}"/usr/share/${PN} || die
+       tar -xf build/distributions/JabRef-${PV}.tar -C "${ED}"/usr/share/${PN} 
--strip-components=1 || die
+}

diff --git a/app-text/jabref/metadata.xml b/app-text/jabref/metadata.xml
new file mode 100644
index 000000000000..bcbb74a46459
--- /dev/null
+++ b/app-text/jabref/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>[email protected]</email>
+               <name>Arthur Zamarin</name>
+       </maintainer>
+       <upstream>
+               <remote-id type="github">JabRef/jabref</remote-id>
+       </upstream>
+</pkgmetadata>

Reply via email to