diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix index ee59f0d078d4..0f5f59209660 100644 --- a/pkgs/applications/office/libreoffice/default.nix +++ b/pkgs/applications/office/libreoffice/default.nix @@ -72,6 +72,8 @@ in stdenv.mkDerivation rec { configureScript = "./autogen.sh"; dontUseCmakeConfigure = true; + patches = [ ./xdg-open.patch ]; + postUnpack = '' mkdir -v $sourceRoot/src '' + (stdenv.lib.concatMapStrings (f: "ln -sfv ${f} $sourceRoot/src/${f.md5 or f.outputHash}-${f.name}\nln -sfv ${f} $sourceRoot/src/${f.name}\n") srcs.third_party) diff --git a/pkgs/applications/office/libreoffice/still.nix b/pkgs/applications/office/libreoffice/still.nix index 7a2174b557e1..7c122c0725af 100644 --- a/pkgs/applications/office/libreoffice/still.nix +++ b/pkgs/applications/office/libreoffice/still.nix @@ -73,11 +73,14 @@ in stdenv.mkDerivation rec { dontUseCmakeConfigure = true; # ICU 58, included in 5.3.x - patches = [(fetchurl { - url = "https://gerrit.libreoffice.org/gitweb?p=core.git;a=patch;h=3e42714c76b1347babfdea0564009d8d82a83af4"; - sha256 = "10bid0jdw1rpdsqwzzk3r4rp6bjs2cvi82h7anz2m1amfjdv86my"; - name = "libreoffice-5.2.x-icu4c-58.patch"; - })]; + patches = [ + (fetchurl { + url = "https://gerrit.libreoffice.org/gitweb?p=core.git;a=patch;h=3e42714c76b1347babfdea0564009d8d82a83af4"; + sha256 = "10bid0jdw1rpdsqwzzk3r4rp6bjs2cvi82h7anz2m1amfjdv86my"; + name = "libreoffice-5.2.x-icu4c-58.patch";} + ) + ./xdg-open.patch + ]; postUnpack = '' mkdir -v $sourceRoot/src diff --git a/pkgs/applications/office/libreoffice/xdg-open.patch b/pkgs/applications/office/libreoffice/xdg-open.patch new file mode 100644 index 000000000000..3ff7e5d80f7a --- /dev/null +++ b/pkgs/applications/office/libreoffice/xdg-open.patch @@ -0,0 +1,25 @@ +diff --git a/shell/source/unix/exec/shellexec.cxx b/shell/source/unix/exec/shellexec.cxx +--- a/shell/source/unix/exec/shellexec.cxx ++++ b/shell/source/unix/exec/shellexec.cxx +@@ -150,7 +150,7 @@ void SAL_CALL ShellExec::execute( const OUString& aCommand, const OUString& aPar + if (std::getenv("LIBO_FLATPAK") != nullptr) { + aBuffer.append("/app/bin/xdg-open"); + } else { +- aBuffer.append("/usr/bin/xdg-open"); ++ aBuffer.append("xdg-open"); + } + #endif + aBuffer.append(" "); +diff --git a/shell/source/unix/misc/senddoc.sh b/shell/source/unix/misc/senddoc.sh +index 4519e01f26e2..8985711a2c01 100755 +--- a/shell/source/unix/misc/senddoc.sh ++++ b/shell/source/unix/misc/senddoc.sh +@@ -393,6 +393,8 @@ case `basename "$MAILER" | sed 's/-.*$//'` in + MAILER=/usr/bin/kde-open + elif [ -x /usr/bin/xdg-open ] ; then + MAILER=/usr/bin/xdg-open ++ elif type -p xdg-open >/dev/null 2>&1 ; then ++ MAILER="$(type -p xdg-open)" + else + echo "Unsupported mail client: `basename $MAILER | sed 's/-.*^//'`" + exit 2