From 64661f0597a49e9836d3b9cb5c1bdea5e7624922 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Forsman?= Date: Sun, 14 Dec 2014 18:05:08 +0100 Subject: [PATCH] libreoffice: fix Exec= in .desktop files Before we do substitutions, the Exec= line is (currently) "Exec=libreofficedev4.3 --some-arg". Our substitution logic doesn't handle that, resulting in broken "Exec=$out/bin/sofficedev4.3 --some-arg" ($out/bin/sofficedev4.3 doesn't exist). Looking at libreoffice source, the .desktop files refer to a UNIXBASISROOTNAME variable which come from instsetoo_native/util/openoffice.lst.in. Currently, it can have one of two values, presumably depending on whether the build is "normal" or "development": libreoffice${major}.${minor} libreofficedev${major}.${minor} Handle both these cases, and also leave the old non-versioned substitution around, just in case. Fixes issue #3463. --- pkgs/applications/office/libreoffice/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix index ceb1a9eab865..78eaa78ee10a 100644 --- a/pkgs/applications/office/libreoffice/default.nix +++ b/pkgs/applications/office/libreoffice/default.nix @@ -176,7 +176,8 @@ stdenv.mkDerivation rec { ln -s $out/lib/libreoffice/share/xdg $out/share/applications for f in $out/share/applications/*.desktop; do - substituteInPlace "$f" --replace "Exec=libreoffice4.0" "Exec=$out/bin/soffice" + substituteInPlace "$f" --replace "Exec=libreofficedev${major}.${minor}" "Exec=$out/bin/soffice" + substituteInPlace "$f" --replace "Exec=libreoffice${major}.${minor}" "Exec=$out/bin/soffice" substituteInPlace "$f" --replace "Exec=libreoffice" "Exec=$out/bin/soffice" done '';