diff options
Diffstat (limited to 'pkgs/servers/gotify/ui.nix')
-rw-r--r-- | pkgs/servers/gotify/ui.nix | 48 |
1 files changed, 42 insertions, 6 deletions
diff --git a/pkgs/servers/gotify/ui.nix b/pkgs/servers/gotify/ui.nix index 36e823ac557..e7350c7d35b 100644 --- a/pkgs/servers/gotify/ui.nix +++ b/pkgs/servers/gotify/ui.nix @@ -1,5 +1,5 @@ { yarn2nix-moretea -, fetchFromGitHub +, fetchFromGitHub, applyPatches }: yarn2nix-moretea.mkYarnPackage rec { @@ -10,16 +10,52 @@ yarn2nix-moretea.mkYarnPackage rec { version = import ./version.nix; - src_all = fetchFromGitHub { - owner = "gotify"; - repo = "server"; - rev = "v${version}"; - sha256 = import ./source-sha.nix; + src_all = applyPatches { + src = fetchFromGitHub { + owner = "gotify"; + repo = "server"; + rev = "v${version}"; + sha256 = import ./source-sha.nix; + }; + postPatch = '' + substituteInPlace ui/yarn.lock \ + --replace \ + "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001237.tgz" \ + "https___registry.npmjs.org_caniuse_lite___caniuse_lite_1.0.30001237.tgz" + ''; }; src = "${src_all}/ui"; buildPhase = '' + export HOME=$(mktemp -d) + export WRITABLE_NODE_MODULES="$(pwd)/tmp" + mkdir -p "$WRITABLE_NODE_MODULES" + + # react-scripts requires a writable node_modules/.cache, so we have to copy the symlink's contents back + # into `node_modules/`. + # See https://github.com/facebook/create-react-app/issues/11263 + cd deps/gotify-ui + node_modules="$(readlink node_modules)" + rm node_modules + mkdir -p "$WRITABLE_NODE_MODULES"/.cache + cp -r $node_modules/* "$WRITABLE_NODE_MODULES" + + # In `node_modules/.bin` are relative symlinks that would be broken after copying them over, + # so we take care of them here. + mkdir -p "$WRITABLE_NODE_MODULES"/.bin + for x in "$node_modules"/.bin/*; do + ln -sfv "$node_modules"/.bin/"$(readlink "$x")" "$WRITABLE_NODE_MODULES"/.bin/"$(basename "$x")" + done + + ln -sfv "$WRITABLE_NODE_MODULES" node_modules + cd ../.. + yarn build + + cd deps/gotify-ui + rm -rf node_modules + ln -sf $node_modules node_modules + cd ../.. ''; } |