depot/third_party/nixpkgs/pkgs/by-name/co/collabora-online/package.nix

106 lines
2.3 KiB
Nix
Raw Normal View History

{
autoreconfHook,
cairo,
cppunit,
fetchFromGitHub,
fetchNpmDeps,
lib,
libcap,
libpng,
libreoffice-collabora,
nodejs,
npmHooks,
pam,
pango,
pixman,
pkg-config,
poco,
python3,
rsync,
stdenv,
zstd,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "collabora-online";
version = "24.04.6-1";
src = fetchFromGitHub {
owner = "CollaboraOnline";
repo = "online";
rev = "refs/tags/cp-${finalAttrs.version}";
hash = "sha256-0IvymvXAozsjm+GXJK9AGWo79QMaIACrAfkYfX67fBc=";
};
nativeBuildInputs = [
autoreconfHook
nodejs
npmHooks.npmConfigHook
pkg-config
python3
python3.pkgs.lxml
python3.pkgs.polib
rsync
];
buildInputs = [
cairo
cppunit
libcap
libpng
pam
pango
pixman
poco
zstd
];
configureFlags = [
"--disable-setcap"
"--disable-werror"
"--enable-silent-rules"
"--with-lo-path=${libreoffice-collabora}/lib/collaboraoffice"
"--with-lokit-path=${libreoffice-collabora.src}/include"
];
patches = [ ./fix-file-server-regex.patch ];
postPatch = ''
cp ${./package-lock.json} ${finalAttrs.npmRoot}/package-lock.json
patchShebangs browser/util/*.py coolwsd-systemplate-setup scripts/*
substituteInPlace configure.ac --replace-fail '/usr/bin/env python3' python3
substituteInPlace coolwsd-systemplate-setup --replace-fail /bin/pwd pwd
'';
# Copy dummy self-signed certificates provided for testing.
postInstall = ''
cp etc/ca-chain.cert.pem etc/cert.pem etc/key.pem $out/etc/coolwsd
'';
npmDeps = fetchNpmDeps {
unpackPhase = "true";
# TODO: Use upstream `npm-shrinkwrap.json` once it's fixed
# https://github.com/CollaboraOnline/online/issues/9644
postPatch = ''
cp ${./package-lock.json} package-lock.json
'';
hash = "sha256-CUh+jwJnKtmzk8w6QwH1Nh92500dFj63ThkI4tN5FyQ=";
};
npmRoot = "browser";
passthru = {
libreoffice = libreoffice-collabora; # Used by NixOS module.
updateScript = ./update.sh;
};
meta = {
description = "Collaborative online office suite based on LibreOffice technology";
license = lib.licenses.mpl20;
maintainers = [ lib.maintainers.xzfc ];
homepage = "https://www.collaboraonline.com";
platforms = lib.platforms.linux;
};
})