106 lines
2.3 KiB
Nix
106 lines
2.3 KiB
Nix
|
{
|
||
|
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;
|
||
|
};
|
||
|
})
|