Merge pull request #71460 from danieldk/softmaker-office-fix-unlock
softmaker-office: fix product unlock error
This commit is contained in:
commit
c0dd1e5400
@ -3,6 +3,10 @@
|
||||
# Dynamic Libraries
|
||||
, curl, libGL, libX11, libXext, libXmu, libXrandr, libXrender
|
||||
|
||||
# For fixing up execution of /bin/ls, which is necessary for
|
||||
# product unlocking.
|
||||
, coreutils, libredirect
|
||||
|
||||
, pname, version, edition, suiteName, src, archive
|
||||
|
||||
, ...
|
||||
@ -45,7 +49,22 @@ in stdenv.mkDerivation rec {
|
||||
runHook postUnpack
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
installPhase = let
|
||||
# SoftMaker/FreeOffice collects some system information upon
|
||||
# unlocking the product. But in doing so, it attempts to execute
|
||||
# /bin/ls. If the execve syscall fails, the whole unlock
|
||||
# procedure fails. This works around that by rewriting /bin/ls
|
||||
# to the proper path.
|
||||
#
|
||||
# SoftMaker Office restarts itself upon some operations, such
|
||||
# changing the theme and unlocking. Unfortunately, we do not
|
||||
# have control over its environment then and it will fail
|
||||
# with an error.
|
||||
lsIntercept = ''
|
||||
--set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
|
||||
--set NIX_REDIRECTS "/bin/ls=${coreutils}/bin/ls"
|
||||
'';
|
||||
in ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share
|
||||
@ -54,9 +73,12 @@ in stdenv.mkDerivation rec {
|
||||
# Wrap rather than symlinking, so that the programs can determine
|
||||
# their resource path.
|
||||
mkdir -p $out/bin
|
||||
makeWrapper $out/share/${pname}${edition}/planmaker $out/bin/${pname}-planmaker
|
||||
makeWrapper $out/share/${pname}${edition}/presentations $out/bin/${pname}-presentations
|
||||
makeWrapper $out/share/${pname}${edition}/textmaker $out/bin/${pname}-textmaker
|
||||
makeWrapper $out/share/${pname}${edition}/planmaker $out/bin/${pname}-planmaker \
|
||||
${lsIntercept}
|
||||
makeWrapper $out/share/${pname}${edition}/presentations $out/bin/${pname}-presentations \
|
||||
${lsIntercept}
|
||||
makeWrapper $out/share/${pname}${edition}/textmaker $out/bin/${pname}-textmaker \
|
||||
${lsIntercept}
|
||||
|
||||
for size in 16 32 48 64 96 128 256 512 1024; do
|
||||
mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps
|
||||
|
Loading…
Reference in New Issue
Block a user