85 lines
2.5 KiB
Nix
85 lines
2.5 KiB
Nix
{
|
|
stdenvNoCC,
|
|
lib,
|
|
fetchurl,
|
|
undmg,
|
|
writeScript,
|
|
}:
|
|
|
|
let
|
|
appName = "LibreOffice.app";
|
|
scriptName = "soffice";
|
|
version = "7.6.7";
|
|
|
|
dist = {
|
|
aarch64-darwin = rec {
|
|
arch = "aarch64";
|
|
archSuffix = arch;
|
|
url = "https://download.documentfoundation.org/libreoffice/stable/${version}/mac/${arch}/LibreOffice_${version}_MacOS_${archSuffix}.dmg";
|
|
sha256 = "17686aff42734ea4feef08e1189bab3011220000f7784061314c1ae9e5942531";
|
|
};
|
|
|
|
x86_64-darwin = rec {
|
|
arch = "x86_64";
|
|
archSuffix = "x86-64";
|
|
url = "https://download.documentfoundation.org/libreoffice/stable/${version}/mac/${arch}/LibreOffice_${version}_MacOS_${archSuffix}.dmg";
|
|
sha256 = "42d2eeaeee7bcb0e76e9decdcb8f5a4beebf133ad31f7d42a5e96ea770860110";
|
|
};
|
|
};
|
|
in
|
|
stdenvNoCC.mkDerivation {
|
|
inherit version;
|
|
pname = "libreoffice";
|
|
src = fetchurl {
|
|
inherit
|
|
(dist.${stdenvNoCC.hostPlatform.system}
|
|
or (throw "Unsupported system: ${stdenvNoCC.hostPlatform.system}")
|
|
)
|
|
url
|
|
sha256
|
|
;
|
|
};
|
|
|
|
nativeBuildInputs = [ undmg ];
|
|
sourceRoot = appName;
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
mkdir -p $out/{Applications/${appName},bin}
|
|
cp -R . $out/Applications/${appName}
|
|
cat > $out/bin/${scriptName} << EOF
|
|
#!${stdenvNoCC.shell}
|
|
open -na $out/Applications/${appName} --args "\$@"
|
|
EOF
|
|
chmod +x $out/bin/${scriptName}
|
|
runHook postInstall
|
|
'';
|
|
|
|
passthru.updateScript =
|
|
let
|
|
defaultNixFile = builtins.toString ./default.nix;
|
|
updateNix = builtins.toString ./update.nix;
|
|
aarch64Url = dist."aarch64-darwin".url;
|
|
x86_64Url = dist."x86_64-darwin".url;
|
|
in
|
|
writeScript "update-libreoffice.sh" ''
|
|
#!/usr/bin/env nix-shell
|
|
#!nix-shell -i bash --argstr aarch64Url ${aarch64Url} --argstr x86_64Url ${x86_64Url} --argstr version ${version} ${updateNix}
|
|
set -eou pipefail
|
|
|
|
update-source-version libreoffice-bin $newVersion $newAarch64Sha256 --file=${defaultNixFile} --system=aarch64-darwin --ignore-same-version
|
|
update-source-version libreoffice-bin $newVersion $newX86_64Sha256 --file=${defaultNixFile} --system=x86_64-darwin --ignore-same-version
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "Comprehensive, professional-quality productivity suite, a variant of openoffice.org";
|
|
homepage = "https://libreoffice.org/";
|
|
license = licenses.lgpl3;
|
|
maintainers = with maintainers; [ tricktron ];
|
|
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
|
platforms = [
|
|
"x86_64-darwin"
|
|
"aarch64-darwin"
|
|
];
|
|
};
|
|
}
|