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.
This commit is contained in:
parent
6221af50c4
commit
64661f0597
@ -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
|
||||
'';
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user