mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-21 22:43:01 +00:00
homepage-dashboard: patch to avoid unwritable prerender cache
This commit introduces the patching of the `dist` directory of NextJS. Without this, homepage-dashboard errors when trying to write its prerender cache. This patch ensures that the cache implementation respects the env variable `HOMEPAGE_CACHE_DIR`, which is set by default in the wrapper below.
This commit is contained in:
parent
004e38bd5b
commit
41f0ed5c0e
@ -10,6 +10,7 @@
|
||||
nixosTests,
|
||||
enableLocalIcons ? false,
|
||||
nix-update-script,
|
||||
git,
|
||||
}:
|
||||
let
|
||||
dashboardIcons = fetchFromGitHub {
|
||||
@ -49,7 +50,7 @@ buildNpmPackage rec {
|
||||
patchShebangs .next/standalone/server.js
|
||||
'';
|
||||
|
||||
nativeBuildInputs = lib.optionals stdenv.isDarwin [ cctools ];
|
||||
nativeBuildInputs = [ git ] ++ lib.optionals stdenv.isDarwin [ cctools ];
|
||||
|
||||
buildInputs = [ nodePackages.node-gyp-build ] ++ lib.optionals stdenv.isDarwin [ IOKit ];
|
||||
|
||||
@ -68,9 +69,21 @@ buildNpmPackage rec {
|
||||
|
||||
chmod +x $out/share/homepage/server.js
|
||||
|
||||
# This patch must be applied here, as it's patching the `dist` directory
|
||||
# of NextJS. Without this, homepage-dashboard errors when trying to
|
||||
# write its prerender cache.
|
||||
#
|
||||
# This patch ensures that the cache implementation respects the env
|
||||
# variable `HOMEPAGE_CACHE_DIR`, which is set by default in the
|
||||
# wrapper below.
|
||||
pushd $out
|
||||
git apply ${./prerender_cache_path.patch}
|
||||
popd
|
||||
|
||||
makeWrapper $out/share/homepage/server.js $out/bin/homepage \
|
||||
--set-default PORT 3000 \
|
||||
--set-default HOMEPAGE_CONFIG_DIR /var/lib/homepage-dashboard
|
||||
--set-default HOMEPAGE_CONFIG_DIR /var/lib/homepage-dashboard \
|
||||
--set-default HOMEPAGE_CACHE_DIR /var/cache/homepage-dashboard
|
||||
|
||||
${if enableLocalIcons then installLocalIcons else ""}
|
||||
|
||||
|
18
pkgs/servers/homepage-dashboard/prerender_cache_path.patch
Normal file
18
pkgs/servers/homepage-dashboard/prerender_cache_path.patch
Normal file
@ -0,0 +1,18 @@
|
||||
diff --git a/share/homepage/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js b/share/homepage/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js
|
||||
index b1b74d8..a46c80b 100644
|
||||
--- a/share/homepage/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js
|
||||
+++ b/share/homepage/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js
|
||||
@@ -5,11 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
||||
exports.default = void 0;
|
||||
var _lruCache = _interopRequireDefault(require("next/dist/compiled/lru-cache"));
|
||||
var _path = _interopRequireDefault(require("../../../shared/lib/isomorphic/path"));
|
||||
+var path = require('node:path');
|
||||
class FileSystemCache {
|
||||
constructor(ctx){
|
||||
this.fs = ctx.fs;
|
||||
this.flushToDisk = ctx.flushToDisk;
|
||||
- this.serverDistDir = ctx.serverDistDir;
|
||||
+ this.serverDistDir = path.join(process.env.HOMEPAGE_CACHE_DIR, "homepage");
|
||||
this.appDir = !!ctx._appDir;
|
||||
if (ctx.maxMemoryCacheSize) {
|
||||
this.memoryCache = new _lruCache.default({
|
Loading…
Reference in New Issue
Block a user