Loading pkgs/by-name/go/gotify-server/package.nix +23 −23 Original line number Diff line number Diff line Loading @@ -8,45 +8,40 @@ nix-update-script, }: buildGoModule rec { buildGoModule (finalAttrs: { pname = "gotify-server"; version = "2.6.3"; src = fetchFromGitHub { owner = "gotify"; repo = "server"; rev = "v${version}"; tag = "v${finalAttrs.version}"; hash = "sha256-9vIReA29dWf3QwUYEW8JhzF9o74JZqG4zGobgI+gIWE="; }; # With `allowGoReference = true;`, `buildGoModule` adds the `-trimpath` # argument for Go builds which apparently breaks the UI like this: # # server[780]: stat /var/lib/private/ui/build/index.html: no such file or directory allowGoReference = true; vendorHash = "sha256-rs6EfnJT6Jgif2TR5u5Tp5/Ozn+4uhSapksyKFnQiCo="; # No test doCheck = false; buildInputs = [ sqlite ]; ui = callPackage ./ui.nix { }; ui = callPackage ./ui.nix { inherit (finalAttrs) src version; }; preBuild = '' if [ -n "$ui" ] # to make the preBuild a no-op inside the goModules fixed-output derivation, where it would fail then cp -r $ui ui/build fi # Use preConfigure instead of preBuild to keep goModules independent from ui preConfigure = '' cp -r ${finalAttrs.ui} ui/build ''; passthru = { # For nix-update to detect the location of this attribute from this # derivation. inherit (ui) offlineCache; updateScript = nix-update-script { }; updateScript = nix-update-script { extraArgs = [ "--subpackage" "ui" ]; }; tests = { nixos = nixosTests.gotify-server; }; Loading @@ -56,16 +51,21 @@ buildGoModule rec { # produce binaries which panic when executed and are not interesting at all subPackages = [ "." ]; # Based on LD_FLAGS in upstream's .github/workflows/build.yml: # https://github.com/gotify/server/blob/v2.6.3/.github/workflows/build.yml#L33 ldflags = [ "-X main.Version=${version}" "-s" "-X main.Version=${finalAttrs.version}" "-X main.Mode=prod" "-X main.Commit=refs/tags/v${finalAttrs.version}" "-X main.BuildDate=unknown" ]; meta = with lib; { meta = { description = "Simple server for sending and receiving messages in real-time per WebSocket"; homepage = "https://gotify.net"; license = licenses.mit; maintainers = with maintainers; [ doronbehar ]; license = lib.licenses.mit; maintainers = with lib.maintainers; [ doronbehar ]; mainProgram = "server"; }; } }) pkgs/by-name/go/gotify-server/ui.nix +13 −27 Original line number Diff line number Diff line { src, version, stdenv, yarn, fixup-yarn-lock, yarnConfigHook, yarnBuildHook, nodejs-slim, fetchYarnDeps, gotify-server, }: stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: { pname = "gotify-ui"; inherit (gotify-server) version; inherit version; src = gotify-server.src + "/ui"; src = src + "/ui"; offlineCache = fetchYarnDeps { yarnLock = "${src}/yarn.lock"; yarnOfflineCache = fetchYarnDeps { yarnLock = "${finalAttrs.src}/yarn.lock"; hash = "sha256-ejHzo6NHCMlNiYePWvfMY9Blb58pj3UQ5PFI0V84flI="; }; nativeBuildInputs = [ yarn fixup-yarn-lock yarnConfigHook yarnBuildHook nodejs-slim ]; postPatch = '' export HOME=$NIX_BUILD_TOP/fake_home yarn config --offline set yarn-offline-mirror $offlineCache fixup-yarn-lock yarn.lock yarn install --offline --frozen-lockfile --ignore-scripts --no-progress --non-interactive patchShebangs node_modules/ ''; buildPhase = '' runHook preBuild export NODE_OPTIONS=--openssl-legacy-provider yarn --offline build runHook postBuild ''; env.NODE_OPTIONS = "--openssl-legacy-provider"; installPhase = '' runHook preInstall Loading @@ -48,4 +34,4 @@ stdenv.mkDerivation rec { runHook postInstall ''; } }) Loading
pkgs/by-name/go/gotify-server/package.nix +23 −23 Original line number Diff line number Diff line Loading @@ -8,45 +8,40 @@ nix-update-script, }: buildGoModule rec { buildGoModule (finalAttrs: { pname = "gotify-server"; version = "2.6.3"; src = fetchFromGitHub { owner = "gotify"; repo = "server"; rev = "v${version}"; tag = "v${finalAttrs.version}"; hash = "sha256-9vIReA29dWf3QwUYEW8JhzF9o74JZqG4zGobgI+gIWE="; }; # With `allowGoReference = true;`, `buildGoModule` adds the `-trimpath` # argument for Go builds which apparently breaks the UI like this: # # server[780]: stat /var/lib/private/ui/build/index.html: no such file or directory allowGoReference = true; vendorHash = "sha256-rs6EfnJT6Jgif2TR5u5Tp5/Ozn+4uhSapksyKFnQiCo="; # No test doCheck = false; buildInputs = [ sqlite ]; ui = callPackage ./ui.nix { }; ui = callPackage ./ui.nix { inherit (finalAttrs) src version; }; preBuild = '' if [ -n "$ui" ] # to make the preBuild a no-op inside the goModules fixed-output derivation, where it would fail then cp -r $ui ui/build fi # Use preConfigure instead of preBuild to keep goModules independent from ui preConfigure = '' cp -r ${finalAttrs.ui} ui/build ''; passthru = { # For nix-update to detect the location of this attribute from this # derivation. inherit (ui) offlineCache; updateScript = nix-update-script { }; updateScript = nix-update-script { extraArgs = [ "--subpackage" "ui" ]; }; tests = { nixos = nixosTests.gotify-server; }; Loading @@ -56,16 +51,21 @@ buildGoModule rec { # produce binaries which panic when executed and are not interesting at all subPackages = [ "." ]; # Based on LD_FLAGS in upstream's .github/workflows/build.yml: # https://github.com/gotify/server/blob/v2.6.3/.github/workflows/build.yml#L33 ldflags = [ "-X main.Version=${version}" "-s" "-X main.Version=${finalAttrs.version}" "-X main.Mode=prod" "-X main.Commit=refs/tags/v${finalAttrs.version}" "-X main.BuildDate=unknown" ]; meta = with lib; { meta = { description = "Simple server for sending and receiving messages in real-time per WebSocket"; homepage = "https://gotify.net"; license = licenses.mit; maintainers = with maintainers; [ doronbehar ]; license = lib.licenses.mit; maintainers = with lib.maintainers; [ doronbehar ]; mainProgram = "server"; }; } })
pkgs/by-name/go/gotify-server/ui.nix +13 −27 Original line number Diff line number Diff line { src, version, stdenv, yarn, fixup-yarn-lock, yarnConfigHook, yarnBuildHook, nodejs-slim, fetchYarnDeps, gotify-server, }: stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: { pname = "gotify-ui"; inherit (gotify-server) version; inherit version; src = gotify-server.src + "/ui"; src = src + "/ui"; offlineCache = fetchYarnDeps { yarnLock = "${src}/yarn.lock"; yarnOfflineCache = fetchYarnDeps { yarnLock = "${finalAttrs.src}/yarn.lock"; hash = "sha256-ejHzo6NHCMlNiYePWvfMY9Blb58pj3UQ5PFI0V84flI="; }; nativeBuildInputs = [ yarn fixup-yarn-lock yarnConfigHook yarnBuildHook nodejs-slim ]; postPatch = '' export HOME=$NIX_BUILD_TOP/fake_home yarn config --offline set yarn-offline-mirror $offlineCache fixup-yarn-lock yarn.lock yarn install --offline --frozen-lockfile --ignore-scripts --no-progress --non-interactive patchShebangs node_modules/ ''; buildPhase = '' runHook preBuild export NODE_OPTIONS=--openssl-legacy-provider yarn --offline build runHook postBuild ''; env.NODE_OPTIONS = "--openssl-legacy-provider"; installPhase = '' runHook preInstall Loading @@ -48,4 +34,4 @@ stdenv.mkDerivation rec { runHook postInstall ''; } })