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
|
# Dynamic Libraries
|
||||||
, curl, libGL, libX11, libXext, libXmu, libXrandr, libXrender
|
, 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
|
, pname, version, edition, suiteName, src, archive
|
||||||
|
|
||||||
, ...
|
, ...
|
||||||
@ -45,7 +49,22 @@ in stdenv.mkDerivation rec {
|
|||||||
runHook postUnpack
|
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
|
runHook preInstall
|
||||||
|
|
||||||
mkdir -p $out/share
|
mkdir -p $out/share
|
||||||
@ -54,9 +73,12 @@ in stdenv.mkDerivation rec {
|
|||||||
# Wrap rather than symlinking, so that the programs can determine
|
# Wrap rather than symlinking, so that the programs can determine
|
||||||
# their resource path.
|
# their resource path.
|
||||||
mkdir -p $out/bin
|
mkdir -p $out/bin
|
||||||
makeWrapper $out/share/${pname}${edition}/planmaker $out/bin/${pname}-planmaker
|
makeWrapper $out/share/${pname}${edition}/planmaker $out/bin/${pname}-planmaker \
|
||||||
makeWrapper $out/share/${pname}${edition}/presentations $out/bin/${pname}-presentations
|
${lsIntercept}
|
||||||
makeWrapper $out/share/${pname}${edition}/textmaker $out/bin/${pname}-textmaker
|
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
|
for size in 16 32 48 64 96 128 256 512 1024; do
|
||||||
mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps
|
mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps
|
||||||
|
Loading…
Reference in New Issue
Block a user