Merge pull request #101287 from wamserma/jabref-5.1
jabref: 3.8.1 -> 5.1
This commit is contained in:
commit
c46d66d07e
@ -1,14 +1,17 @@
|
|||||||
{ stdenv, fetchurl, makeWrapper, makeDesktopItem, jdk, jre, wrapGAppsHook, gtk3, gsettings-desktop-schemas }:
|
{ stdenv, fetchurl, makeWrapper, makeDesktopItem, wrapGAppsHook, gtk3, gsettings-desktop-schemas
|
||||||
|
, zlib , libX11, libXext, libXi, libXrender, libXtst, libGL, alsaLib, libav, cairo, freetype, pango, gdk-pixbuf, glib }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "3.8.1";
|
version = "5.1";
|
||||||
pname = "jabref";
|
pname = "jabref";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/JabRef/jabref/releases/download/v${version}/JabRef-${version}.jar";
|
url = "https://github.com/JabRef/jabref/releases/download/v${version}/JabRef-${version}-portable_linux.tar.gz";
|
||||||
sha256 = "11asfym74zdq46i217z5n6vc79gylcx8xn7nvwacfqmym0bz79cg";
|
sha256 = "04f612byrq3agzy26byg1sgrjyhcpa8xfj0ssh8dl8d8vnhx9742";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
preferLocalBuild = true;
|
||||||
|
|
||||||
desktopItem = makeDesktopItem {
|
desktopItem = makeDesktopItem {
|
||||||
comment = meta.description;
|
comment = meta.description;
|
||||||
name = "jabref";
|
name = "jabref";
|
||||||
@ -19,21 +22,44 @@ stdenv.mkDerivation rec {
|
|||||||
exec = "jabref";
|
exec = "jabref";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ makeWrapper jdk wrapGAppsHook gtk3 gsettings-desktop-schemas ];
|
nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
|
||||||
|
buildInputs = [ gsettings-desktop-schemas ] ++ systemLibs;
|
||||||
|
|
||||||
dontUnpack = true;
|
systemLibs = [ gtk3 zlib libX11 libXext libXi libXrender libXtst libGL alsaLib libav cairo freetype pango gdk-pixbuf glib ];
|
||||||
|
systemLibPaths = stdenv.lib.makeLibraryPath systemLibs;
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin $out/share/java $out/share/icons
|
mkdir -p $out/share/java $out/share/icons
|
||||||
|
|
||||||
|
cp -r lib $out/lib
|
||||||
|
|
||||||
|
for f in $out/lib/runtime/bin/j*; do
|
||||||
|
patchelf \
|
||||||
|
--set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
|
||||||
|
--set-rpath "${ stdenv.lib.makeLibraryPath [ zlib ]}:$out/lib/runtime/lib:$out/lib/runtime/lib/server" $f
|
||||||
|
done
|
||||||
|
|
||||||
|
for f in $out/lib/runtime/lib/*.so; do
|
||||||
|
patchelf \
|
||||||
|
--set-rpath "${systemLibPaths}:$out/lib/runtime/lib:$out/lib/runtime/lib/server" $f
|
||||||
|
done
|
||||||
|
|
||||||
|
# patching the libs in the JImage runtime image is quite impossible as there is no documented way
|
||||||
|
# of rebuilding the image after it has been extracted
|
||||||
|
# the image format itself is "intendedly not documented" - maybe one of the reasons the
|
||||||
|
# devolpers constantly broke "jimage recreate" and dropped it in OpenJDK 9 Build 116 Early Access
|
||||||
|
# so, for now just copy the image and provide our lib paths through the wrapper
|
||||||
|
|
||||||
|
makeWrapper $out/lib/runtime/bin/java $out/bin/jabref \
|
||||||
|
--add-flags '-Djava.library.path=${systemLibPaths}' --add-flags "-p $out/lib/app -m org.jabref/org.jabref.JabRefLauncher" \
|
||||||
|
--run 'export LD_LIBRARY_PATH=${systemLibPaths}:$LD_LIBRARY_PATH'
|
||||||
|
|
||||||
cp -r ${desktopItem}/share/applications $out/share/
|
cp -r ${desktopItem}/share/applications $out/share/
|
||||||
|
|
||||||
jar xf $src images/icons/JabRef-icon-mac.svg
|
# we still need to unpack the runtime image to get the icon
|
||||||
cp images/icons/JabRef-icon-mac.svg $out/share/icons/jabref.svg
|
mkdir unpacked
|
||||||
|
$out/lib/runtime/bin/jimage extract --dir=./unpacked lib/runtime/lib/modules
|
||||||
ln -s $src $out/share/java/jabref-${version}.jar
|
cp unpacked/org.jabref/icons/jabref.svg $out/share/icons/jabref.svg
|
||||||
makeWrapper ${jre}/bin/java $out/bin/jabref \
|
|
||||||
--add-flags "-jar $out/share/java/jabref-${version}.jar"
|
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user