redisinsight: 2.48.0 -> 2.68.0

This commit is contained in:
TomaSajt 2025-04-18 21:02:44 +02:00
parent b4b9c47c10
commit a68ee204a5
No known key found for this signature in database
GPG key ID: F011163C050122A1
2 changed files with 146 additions and 70 deletions

View file

@ -1,108 +1,108 @@
{
lib,
stdenv,
fetchFromGitHub,
makeWrapper,
makeDesktopItem,
copyDesktopItems,
fixup-yarn-lock,
yarn,
nodejs_18,
python3,
fetchYarnDeps,
electron,
nest-cli,
libsass,
buildPackages,
makeDesktopItem,
copyDesktopItems,
dart-sass,
makeWrapper,
nodejs_20,
pkg-config,
yarnConfigHook,
electron,
libsecret,
sqlite,
xdg-utils,
}:
let
nodejs = nodejs_18;
nodejs = nodejs_20;
in
stdenv.mkDerivation (finalAttrs: {
pname = "redisinsight";
version = "2.48.0";
version = "2.68.0";
src = fetchFromGitHub {
owner = "RedisInsight";
repo = "RedisInsight";
rev = finalAttrs.version;
hash = "sha256-ek0Fp8v6j+mZPK2cEuFNrBgInXdYIKBBUg0UD1I51Sg=";
hash = "sha256-rXp3C/Ui3vMBscsxlwU9fRF1bmvMrvXLtmJfGzfh1Rk=";
};
offlineCache = fetchYarnDeps {
yarnLock = finalAttrs.src + "/yarn.lock";
hash = "sha256-ohtU1h6wrg7asXDxTt1Jlzx9GaS3zDrGQD9P9tgzCOE=";
patches = [
# the `file:` specifier doesn't seem to be supported with fetchYarnDeps
# upstream uses it to point the cpu-features dependency to a stub package
# so it's safe to remove
./remove-cpu-features.patch
];
baseOfflineCache = fetchYarnDeps {
name = "redisinsight-${finalAttrs.version}-base-offline-cache";
inherit (finalAttrs) src patches;
hash = "sha256-ORVftwl/8Yrug2MeqWfZTsHNTRJlpKGn2P7JCHUf3do=";
};
feOfflineCache = fetchYarnDeps {
yarnLock = finalAttrs.src + "/redisinsight/yarn.lock";
hash = "sha256-9xbIdDeLUEk4eNeK7RTwidqDGinA8SPfcumqml66kTw=";
innerOfflineCache = fetchYarnDeps {
name = "redisinsight-${finalAttrs.version}-inner-offline-cache";
inherit (finalAttrs) src patches;
postPatch = "cd redisinsight";
hash = "sha256-yFfkpWV/GD2CcAzb0D3lNZwmqzEN6Bi1MjPyRwClaQ0=";
};
apiOfflineCache = fetchYarnDeps {
yarnLock = finalAttrs.src + "/redisinsight/api/yarn.lock";
hash = "sha256-4zbffuneTceMEyKb8atTXTFhTv0DhrsRMdepZWgoxMQ=";
name = "redisinsight-${finalAttrs.version}-api-offline-cache";
inherit (finalAttrs) src patches;
postPatch = "cd redisinsight/api";
hash = "sha256-go7IR1UsW8TrWjaFSlC6/biUvb9cHo3PgJa16tF0XHo=";
};
nativeBuildInputs = [
yarn
fixup-yarn-lock
nodejs
makeWrapper
(python3.withPackages (ps: [ ps.setuptools ]))
nest-cli
libsass
pkg-config
copyDesktopItems
makeWrapper
nodejs
(nodejs.python.withPackages (ps: [ ps.setuptools ]))
pkg-config
yarnConfigHook
];
buildInputs = [
sqlite
xdg-utils
sqlite # for `sqlite3` node module
libsecret # for `keytar` node module
];
postPatch = ''
substituteInPlace redisinsight/api/config/default.ts \
--replace-fail "process['resourcesPath']" "\"$out/share/redisinsight\""
# has irrelevant files
rm -r resources/app
'';
# will run yarnConfigHook manually later
dontYarnInstallDeps = true;
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror ${finalAttrs.offlineCache}
fixup-yarn-lock yarn.lock
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
yarnOfflineCache="$baseOfflineCache" yarnConfigHook
cd redisinsight
yarnOfflineCache="$innerOfflineCache" yarnConfigHook
cd api
yarnOfflineCache="$apiOfflineCache" yarnConfigHook
cd ../..
yarn config --offline set yarn-offline-mirror ${finalAttrs.feOfflineCache}
fixup-yarn-lock redisinsight/yarn.lock
yarn --offline --cwd redisinsight/ --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
yarn config --offline set yarn-offline-mirror ${finalAttrs.apiOfflineCache}
fixup-yarn-lock redisinsight/api/yarn.lock
yarn --offline --cwd redisinsight/api/ --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
patchShebangs node_modules/
patchShebangs redisinsight/node_modules/
patchShebangs redisinsight/api/node_modules/
mkdir -p "$HOME/.node-gyp/${nodejs.version}"
echo 9 >"$HOME/.node-gyp/${nodejs.version}/installVersion"
ln -sfv "${nodejs}/include" "$HOME/.node-gyp/${nodejs.version}"
export npm_config_nodedir=${nodejs}
# Build the sqlite3 package.
pushd redisinsight
npm_config_node_gyp="${buildPackages.nodejs}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" npm rebuild --verbose --sqlite=${sqlite.dev} sqlite3
popd
# Build node-sass
LIBSASS_EXT=auto npm rebuild --verbose node-sass
substituteInPlace redisinsight/api/config/default.ts \
--replace-fail "process['resourcesPath']" "\"$out/share/redisinsight\"" \
# has irrelevant files
rm -r resources/app
export npm_config_nodedir=${electron.headers}
export npm_config_sqlite=${lib.getDev sqlite}
export ELECTRON_SKIP_BINARY_DOWNLOAD=1
npm rebuild --verbose --no-progress
cd redisinsight
npm rebuild --verbose --no-progress
cd api
npm rebuild --verbose --no-progress
cd ../..
runHook postConfigure
'';
@ -110,14 +110,20 @@ stdenv.mkDerivation (finalAttrs: {
buildPhase = ''
runHook preBuild
yarn config --offline set yarn-offline-mirror ${finalAttrs.offlineCache}
# force the sass npm dependency to use our own sass binary instead of the bundled one
substituteInPlace node_modules/sass/dist/lib/src/compiler-path.js \
--replace-fail 'compilerCommand = (() => {' 'compilerCommand = (() => { return ["${lib.getExe dart-sass}"];'
yarn --offline build:prod
# TODO: Generate defaults. Currently broken because it requires network access.
# yarn --offline --cwd=redisinsight/api build:defaults
yarn --offline electron-builder \
--dir \
-c.electronDist=${electron.dist} \
-c.electronVersion=${electron.version}
-c.electronVersion=${electron.version} \
-c.npmRebuild=false # we've already rebuilt the native libs using the electron headers
runHook postBuild
'';
@ -159,7 +165,7 @@ stdenv.mkDerivation (finalAttrs: {
];
meta = {
description = "RedisInsight Redis client powered by Electron";
description = "Developer GUI for Redis";
homepage = "https://github.com/RedisInsight/RedisInsight";
license = lib.licenses.sspl;
maintainers = with lib.maintainers; [

View file

@ -0,0 +1,70 @@
diff --git a/redisinsight/api/package.json b/redisinsight/api/package.json
index 4a24ac8..fab339c 100644
--- a/redisinsight/api/package.json
+++ b/redisinsight/api/package.json
@@ -49,7 +49,6 @@
"@nestjs/platform-socket.io/socket.io": "^4.8.0",
"@nestjs/cli/**/braces": "^3.0.3",
"**/semver": "^7.5.2",
- "**/cpu-features": "file:./stubs/cpu-features",
"**/cross-spawn": "^7.0.5",
"**/redis-parser": "3.0.0",
"winston-daily-rotate-file/**/file-stream-rotator": "^1.0.0"
diff --git a/redisinsight/api/yarn.lock b/redisinsight/api/yarn.lock
index e0e8495..dfed1ae 100644
--- a/redisinsight/api/yarn.lock
+++ b/redisinsight/api/yarn.lock
@@ -3223,9 +3223,6 @@ cosmiconfig@^8.2.0:
parse-json "^5.2.0"
path-type "^4.0.0"
-"cpu-features@file:./stubs/cpu-features", cpu-features@~0.0.9:
- version "1.0.0"
-
create-jest@^29.7.0:
version "29.7.0"
resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320"
@@ -7969,7 +7966,6 @@ ssh2@^1.15.0:
asn1 "^0.2.6"
bcrypt-pbkdf "^1.0.2"
optionalDependencies:
- cpu-features "~0.0.9"
nan "^2.18.0"
ssri@^8.0.0, ssri@^8.0.1:
diff --git a/redisinsight/package.json b/redisinsight/package.json
index 8649be7..354ed42 100644
--- a/redisinsight/package.json
+++ b/redisinsight/package.json
@@ -16,8 +16,7 @@
},
"resolutions": {
"**/semver": "^7.5.2",
- "sqlite3/**/tar": "^6.2.1",
- "**/cpu-features": "file:./api/stubs/cpu-features"
+ "sqlite3/**/tar": "^6.2.1"
},
"dependencies": {
"keytar": "^7.9.0",
diff --git a/redisinsight/yarn.lock b/redisinsight/yarn.lock
index 7a063ce..22f37a7 100644
--- a/redisinsight/yarn.lock
+++ b/redisinsight/yarn.lock
@@ -183,9 +183,6 @@ console-control-strings@^1.1.0:
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==
-"cpu-features@file:./api/stubs/cpu-features", cpu-features@~0.0.10:
- version "1.0.0"
-
debug@4, debug@^4.3.3:
version "4.3.4"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
@@ -807,7 +804,6 @@ ssh2@^1.15.0:
asn1 "^0.2.6"
bcrypt-pbkdf "^1.0.2"
optionalDependencies:
- cpu-features "~0.0.10"
nan "^2.20.0"
ssri@^8.0.0, ssri@^8.0.1: