diff --git a/flake.lock b/flake.lock index b7e6d97..8a83374 100644 --- a/flake.lock +++ b/flake.lock @@ -594,11 +594,11 @@ ] }, "locked": { - "lastModified": 1730944043, - "narHash": "sha256-DIYTHa57pQQc9ARiMpJWYkaoiTaQPLH7Y4qK0J10Khk=", + "lastModified": 1730857608, + "narHash": "sha256-94IqaCMuMtLcdPabzzwyDOCEebt9LFqvgznDnVtsq7c=", "owner": "nix-community", "repo": "nix-vscode-extensions", - "rev": "0a959b25ff573f079ed032f88d8c988561b96a96", + "rev": "b3690ec13c5fe8dba550b1f6f4c3f0acc0f86cee", "type": "github" }, "original": { @@ -609,11 +609,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1730919458, - "narHash": "sha256-yMO0T0QJlmT/x4HEyvrCyigGrdYfIXX3e5gWqB64wLg=", + "lastModified": 1730874081, + "narHash": "sha256-VK7LkfdcpUi8tqcgMIYY2jejDh4O3MNw9An0FcKveRQ=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "e1cc1f6483393634aee94514186d21a4871e78d7", + "rev": "12ad8c1bf13ff15ffa6afe82c59b4af0b9226035", "type": "github" }, "original": { @@ -685,11 +685,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1730961289, - "narHash": "sha256-WrHPXxaPWDqu5r/546jf1pdfvEEuf0CIPuo7HjRLDdU=", + "lastModified": 1730886641, + "narHash": "sha256-CEWpfRT1kF6YjNsHEnF33mbz5wtWlzn4eKzEYsdx+5A=", "owner": "xinyangli", "repo": "nixpkgs", - "rev": "82596c07592c14102071f72488ace046aa8e93a9", + "rev": "bb79ee9b6d87561bdbc8cedffc9969c7dd6a1eb0", "type": "github" }, "original": { @@ -743,11 +743,11 @@ }, "nur": { "locked": { - "lastModified": 1730959878, - "narHash": "sha256-UZ6oSptjE04ooORHvvR+kiGnr/nhzWgYwGryxUkKAv0=", + "lastModified": 1730885145, + "narHash": "sha256-UPrBEY0No1O3ULb67xYjRh2r3u7MnZovfo1oYSPCIxI=", "owner": "nix-community", "repo": "NUR", - "rev": "bc4d2a3b71c75d81cc247b1bf991b63f75358004", + "rev": "c0d8828600ef47d475e6ec33513bf9af6eb6b991", "type": "github" }, "original": { diff --git a/overlays/add-pkgs.nix b/overlays/add-pkgs.nix index 35b6981..65b2131 100644 --- a/overlays/add-pkgs.nix +++ b/overlays/add-pkgs.nix @@ -1,3 +1,4 @@ (final: prev: { oidc-agent = prev.callPackage ./pkgs/oidc-agent { }; + ocis = prev.callPackage ./pkgs/ocis { }; }) diff --git a/overlays/pkgs/ocis/default.nix b/overlays/pkgs/ocis/default.nix new file mode 100644 index 0000000..1f1aade --- /dev/null +++ b/overlays/pkgs/ocis/default.nix @@ -0,0 +1,85 @@ +{ + lib, + stdenvNoCC, + callPackage, + fetchFromGitHub, + buildGoModule, + gnumake, + pnpm, + nodejs, +}: +let + web = callPackage ./web.nix { }; + 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 = "v5.0.7"; + + vendorHash = null; + + src = fetchFromGitHub { + owner = "owncloud"; + repo = "ocis"; + rev = version; + hash = "sha256-vCEr7UCGEPm0x04U8DpsUNz9c64ZSEIK4SDcitCIDCw="; + }; + + nativeBuildInputs = [ + gnumake + nodejs + pnpm.configHook + ]; + + pnpmDeps = pnpm.fetchDeps { + inherit pname version src; + sourceRoot = "${src.name}/services/idp"; + hash = "sha256-ojrgoyl+xBsgEsx3d3gv5Wf6ziabHoFkEpAoDZcYavo="; + }; + pnpmRoot = "services/idp"; + + buildPhase = '' + runHook preBuild + cp -r ${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 = '' + mkdir -p $out/bin/ + cp ocis/bin/ocis $out/bin/ + ''; + + passthru = { + inherit web; + }; + + meta = with lib; { + homepage = "https://github.com/owncloud/ocis"; + description = "ownCloud Infinite Scale Stack"; + mainProgram = "ocis"; + license = licenses.asl20; + maintainers = with maintainers; [ xinyangli ]; + }; +} diff --git a/overlays/pkgs/ocis/package.nix b/overlays/pkgs/ocis/package.nix new file mode 100644 index 0000000..5ead795 --- /dev/null +++ b/overlays/pkgs/ocis/package.nix @@ -0,0 +1,85 @@ +{ + lib, + stdenvNoCC, + callPackage, + fetchFromGitHub, + buildGoModule, + gnumake, + pnpm, + nodejs, +}: +let + web = callPackage ./web.nix { }; + 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 = "v5.0.7"; + + vendorHash = null; + + src = fetchFromGitHub { + owner = "owncloud"; + repo = "ocis"; + rev = version; + hash = "sha256-vCEr7UCGEPm0x04U8DpsUNz9c64ZSEIK4SDcitCIDCw="; + }; + + nativeBuildInputs = [ + gnumake + nodejs + pnpm.configHook + ]; + + pnpmDeps = pnpm.fetchDeps { + inherit pname version src; + sourceRoot = "${src.name}/services/idp"; + hash = "sha256-gNlN+u/bobnTsXrsOmkDcWs67D/trH3inT5AVQs3Brs="; + }; + pnpmRoot = "services/idp"; + + buildPhase = '' + runHook preBuild + cp -r ${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 = '' + mkdir -p $out/bin/ + cp ocis/bin/ocis $out/bin/ + ''; + + passthru = { + inherit web; + }; + + meta = with lib; { + homepage = "https://github.com/owncloud/ocis"; + description = "ownCloud Infinite Scale Stack"; + mainProgram = "ocis"; + license = licenses.asl20; + maintainers = with maintainers; [ xinyangli ]; + }; +} diff --git a/overlays/pkgs/ocis/web.nix b/overlays/pkgs/ocis/web.nix new file mode 100644 index 0000000..1b44901 --- /dev/null +++ b/overlays/pkgs/ocis/web.nix @@ -0,0 +1,40 @@ +{ + lib, + stdenvNoCC, + nodejs, + pnpm, + fetchFromGitHub, +}: +stdenvNoCC.mkDerivation rec { + pname = "ocis-web"; + version = "v8.0.5"; + + src = fetchFromGitHub { + owner = "owncloud"; + repo = "web"; + rev = version; + hash = "sha256-hupdtK/V74+X7/eXoDmUjFvSKuhnoOtNQz7o6TLJXG4="; + }; + + nativeBuildInputs = [ pnpm.configHook ]; + + buildInputs = [ nodejs ]; + + buildPhase = '' + pnpm build + ''; + + installPhase = '' + mkdir -p $out/share + cp -r dist/* $out/share/ + ''; + + pnpmDeps = pnpm.fetchDeps { + inherit pname version src; + hash = "sha256-3Erva6srdkX1YQ727trx34Ufx524nz19MUyaDQToz6M="; + }; + + meta = with lib; { + license = [ licenses.agpl3Only ]; + }; +}