libreoffice: wrap to set JAVA_HOME, SAL_USE_VCLPLUGIN and DBus session if not set

This commit is contained in:
Michael Raskin 2018-03-27 19:18:49 +02:00
parent 7f2305c431
commit 95a819c002
5 changed files with 90 additions and 46 deletions

View File

@ -269,7 +269,7 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ wrapGAppsHook ];
passthru = {
inherit srcs;
inherit srcs jdk;
};
requiredSystemFeatures = [ "big-parallel" ];

View File

@ -261,7 +261,7 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ wrapGAppsHook ];
passthru = {
inherit srcs;
inherit srcs jdk;
};
requiredSystemFeatures = [ "big-parallel" ];

View File

@ -0,0 +1,16 @@
{ libreoffice, runCommand, dbus, bash }:
let
jdk = libreoffice.jdk;
in
(runCommand "${libreoffice.name}" {
inherit dbus libreoffice jdk bash;
} ''
mkdir -p "$out/bin"
ln -s "${libreoffice}/share" "$out/share"
substituteAll "${./wrapper.sh}" "$out/bin/soffice"
chmod a+x "$out/bin/soffice"
for i in $(ls "${libreoffice}/bin/"); do
test "$i" = "soffice" || ln -s soffice "$out/bin/$(basename "$i")"
done
'') // { inherit libreoffice dbus; }

View File

@ -0,0 +1,27 @@
#!@bash@/bin/bash
export JAVA_HOME="${JAVA_HOME:-@jdk@}"
export SAL_USE_VCLPLUGIN="${SAL_USE_VCLPLUGIN:-gen}"
if uname | grep Linux > /dev/null &&
! ( test -n "$DBUS_SESSION_BUS_ADDRESS" &&
test -n "$DBUS_SYSTEM_BUS_ADDRESS" ); then
dbus_tmp_dir="/run/user/$(id -u)/libreoffice-dbus"
mkdir "$dbus_tmp_dir"
dbus_socket_dir="$(mktemp -d -p "$dbus_tmp_dir")"
cat "@dbus@/share/dbus-1/system.conf" |
grep -v '[<]user[>]messagebus' > "$dbus_socket_dir/system.conf"
if test -z "$DBUS_SESSION_BUS_ADDRESS"; then
"@dbus@"/bin/dbus-daemon --nopidfile --nofork --config-file "@dbus@"/share/dbus-1/session.conf --address "unix:path=$dbus_socket_dir/session" >&2 &
export DBUS_SESSION_BUS_ADDRESS="unix:path=$dbus_socket_dir/session"
fi
if test -z "$DBUS_SYSTEM_BUS_ADDRESS"; then
"@dbus@"/bin/dbus-daemon --nopidfile --nofork --config-file "$dbus_socket_dir/system.conf" --address "unix:path=$dbus_socket_dir/system" >&2 &
export DBUS_SYSTEM_BUS_ADDRESS="unix:path=$dbus_socket_dir/system"
fi
fi
"@libreoffice@/bin/$(basename "$0")" "$@"
code="$?"
test -n "$dbus_socket_dir" && rm -rf "$dbus_socket_dir"
exit "$code"

View File

@ -16458,51 +16458,52 @@ with pkgs;
libreoffice = hiPrio libreoffice-still;
libreoffice-fresh = lowPrio (callPackage ../applications/office/libreoffice {
inherit (perlPackages) ArchiveZip CompressZlib;
inherit (gnome2) GConf ORBit2 gnome_vfs;
inherit (gnome3) defaultIconTheme;
zip = zip.override { enableNLS = false; };
bluez5 = bluez5_28;
fontsConf = makeFontsConf {
fontDirectories = [
carlito dejavu_fonts
freefont_ttf xorg.fontmiscmisc
liberation_ttf_v1_binary
liberation_ttf_v2_binary
];
};
clucene_core = clucene_core_2;
lcms = lcms2;
harfbuzz = harfbuzz.override {
withIcu = true; withGraphite2 = true;
};
# checking whether g++ supports C++14 or C++11... configure: error: no
stdenv = overrideCC stdenv gcc5;
});
libreoffice-still = lowPrio (callPackage ../applications/office/libreoffice/still.nix {
inherit (perlPackages) ArchiveZip CompressZlib;
inherit (gnome2) GConf ORBit2 gnome_vfs;
inherit (gnome3) defaultIconTheme;
zip = zip.override { enableNLS = false; };
bluez5 = bluez5_28;
poppler = poppler_0_61;
fontsConf = makeFontsConf {
fontDirectories = [
freefont_ttf xorg.fontmiscmisc
];
};
clucene_core = clucene_core_2;
lcms = lcms2;
harfbuzz = harfbuzz.override {
withIcu = true; withGraphite2 = true;
};
icu = icu58;
# checking whether g++ supports C++14 or C++11... configure: error: no
stdenv = overrideCC stdenv gcc5;
});
libreoffice-fresh = lowPrio (callPackage ../applications/office/libreoffice/wrapper.nix
{ libreoffice = callPackage ../applications/office/libreoffice {
inherit (perlPackages) ArchiveZip CompressZlib;
inherit (gnome2) GConf ORBit2 gnome_vfs;
inherit (gnome3) defaultIconTheme;
zip = zip.override { enableNLS = false; };
bluez5 = bluez5_28;
fontsConf = makeFontsConf {
fontDirectories = [
carlito dejavu_fonts
freefont_ttf xorg.fontmiscmisc
liberation_ttf_v1_binary
liberation_ttf_v2_binary
];
};
clucene_core = clucene_core_2;
lcms = lcms2;
harfbuzz = harfbuzz.override {
withIcu = true; withGraphite2 = true;
};
# checking whether g++ supports C++14 or C++11... configure: error: no
stdenv = overrideCC stdenv gcc5;
};});
libreoffice-still = lowPrio (callPackage ../applications/office/libreoffice/wrapper.nix
{ libreoffice = callPackage ../applications/office/libreoffice/still.nix {
inherit (perlPackages) ArchiveZip CompressZlib;
inherit (gnome2) GConf ORBit2 gnome_vfs;
inherit (gnome3) defaultIconTheme;
zip = zip.override { enableNLS = false; };
bluez5 = bluez5_28;
poppler = poppler_0_61;
fontsConf = makeFontsConf {
fontDirectories = [
freefont_ttf xorg.fontmiscmisc
];
};
clucene_core = clucene_core_2;
lcms = lcms2;
harfbuzz = harfbuzz.override {
withIcu = true; withGraphite2 = true;
};
icu = icu58;
# checking whether g++ supports C++14 or C++11... configure: error: no
stdenv = overrideCC stdenv gcc5;
};});
liferea = callPackage ../applications/networking/newsreaders/liferea {
inherit (gnome3) libpeas gsettings-desktop-schemas dconf;