nixpkgs/pkgs/by-name/oc/ocis/package.nix
2025-07-14 11:51:34 +02:00

90 lines
1.9 KiB
Nix

{
lib,
stdenvNoCC,
fetchFromGitHub,
buildGoModule,
callPackage,
gnumake,
pnpm_9,
nodejs,
ocis,
}:
let
idp-assets = stdenvNoCC.mkDerivation {
pname = "idp-assets";
version = "0-unstable-2020-10-14";
src = fetchFromGitHub {
owner = "owncloud";
repo = "assets";
rev = "e8b6aeadbcee1865b9df682e9bd78083842d2b5c";
hash = "sha256-PzGff2Zx8xmvPYQa4lS4yz2h+y/lerKvUZkYI7XvAUw=";
};
installPhase = ''
mkdir -p $out/share
cp logo.svg favicon.ico $out/share/
'';
dontConfigure = true;
dontBuild = true;
dontFixup = true;
};
in
buildGoModule rec {
pname = "ocis";
version = "5.0.9";
vendorHash = null;
src = fetchFromGitHub {
owner = "owncloud";
repo = "ocis";
tag = "v${version}";
hash = "sha256-TsMrQx+P1F2t66e0tGG0VvRi4W7+pCpDHd0aNsacOsI=";
};
nativeBuildInputs = [
gnumake
nodejs
pnpm_9.configHook
];
pnpmDeps = pnpm_9.fetchDeps {
inherit pname version src;
sourceRoot = "${src.name}/services/idp";
hash = "sha256-gNlN+u/bobnTsXrsOmkDcWs67D/trH3inT5AVQs3Brs=";
fetcherVersion = 1;
};
pnpmRoot = "services/idp";
buildPhase = ''
runHook preBuild
cp -r ${ocis.web}/share/* services/web/assets/
pnpm -C services/idp build
mkdir -p services/idp/assets/identifier/static
cp -r ${idp-assets}/share/* services/idp/assets/identifier/static/
make -C ocis VERSION=${version} DATE=${version} build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin/
cp ocis/bin/ocis $out/bin/
runHook postInstall
'';
passthru = {
web = callPackage ./web.nix { };
updateScript = ./update.sh;
};
meta = {
homepage = "https://github.com/owncloud/web";
description = "Next generation frontend for ownCloud Infinite Scale";
license = lib.licenses.asl20;
mainProgram = "ocis";
maintainers = with lib.maintainers; [ xinyangli ];
};
}