nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenvNoCC,
4 fetchFromGitHub,
5 buildGoModule,
6 callPackage,
7 gnumake,
8 pnpm_9,
9 fetchPnpmDeps,
10 pnpmConfigHook,
11 nodejs,
12 ocis,
13}:
14let
15 idp-assets = stdenvNoCC.mkDerivation {
16 pname = "idp-assets";
17 version = "0-unstable-2020-10-14";
18 src = fetchFromGitHub {
19 owner = "owncloud";
20 repo = "assets";
21 rev = "e8b6aeadbcee1865b9df682e9bd78083842d2b5c";
22 hash = "sha256-PzGff2Zx8xmvPYQa4lS4yz2h+y/lerKvUZkYI7XvAUw=";
23 };
24 installPhase = ''
25 mkdir -p $out/share
26 cp logo.svg favicon.ico $out/share/
27 '';
28 dontConfigure = true;
29 dontBuild = true;
30 dontFixup = true;
31 };
32in
33buildGoModule rec {
34 pname = "ocis";
35 version = "5.0.9";
36
37 vendorHash = null;
38
39 src = fetchFromGitHub {
40 owner = "owncloud";
41 repo = "ocis";
42 tag = "v${version}";
43 hash = "sha256-TsMrQx+P1F2t66e0tGG0VvRi4W7+pCpDHd0aNsacOsI=";
44 };
45
46 nativeBuildInputs = [
47 gnumake
48 nodejs
49 pnpmConfigHook
50 pnpm_9
51 ];
52
53 pnpmDeps = fetchPnpmDeps {
54 inherit
55 pname
56 version
57 src
58 ;
59 pnpm = pnpm_9;
60 sourceRoot = "${src.name}/services/idp";
61 fetcherVersion = 1;
62 hash = "sha256-gNlN+u/bobnTsXrsOmkDcWs67D/trH3inT5AVQs3Brs=";
63 };
64 pnpmRoot = "services/idp";
65
66 buildPhase = ''
67 runHook preBuild
68 cp -r ${ocis.web}/share/* services/web/assets/
69 pnpm -C services/idp build
70
71 mkdir -p services/idp/assets/identifier/static
72 cp -r ${idp-assets}/share/* services/idp/assets/identifier/static/
73
74 make -C ocis VERSION=${version} DATE=${version} build
75 runHook postBuild
76 '';
77
78 installPhase = ''
79 runHook preInstall
80 mkdir -p $out/bin/
81 cp ocis/bin/ocis $out/bin/
82 runHook postInstall
83 '';
84
85 passthru = {
86 web = callPackage ./web.nix { };
87 updateScript = ./update.sh;
88 };
89
90 meta = {
91 homepage = "https://github.com/owncloud/web";
92 description = "Next generation frontend for ownCloud Infinite Scale";
93 license = lib.licenses.asl20;
94 mainProgram = "ocis";
95 maintainers = with lib.maintainers; [ xinyangli ];
96 };
97}