From 095650906fc97d1f70a36a682f7ff4f0a6c4f7e1 Mon Sep 17 00:00:00 2001 From: Chris Portela Date: Fri, 30 Jan 2026 16:10:45 -0500 Subject: [PATCH 1/3] maintainers: add chrisportela --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 6b51addbd890..12976b826c42 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -4808,6 +4808,12 @@ githubId = 1438690; name = "Chris Pickard"; }; + chrisportela = { + email = "chris@chrisportela.com"; + github = "chrisportela"; + githubId = 505649; + name = "Chris Portela"; + }; chrispwill = { email = "chris@chrispwill.com"; github = "ChrisPWill"; From 19cdbffe0c1fec2467f8518500df1fc54ccba4d6 Mon Sep 17 00:00:00 2001 From: Chris Portela Date: Fri, 27 Feb 2026 17:51:13 +0000 Subject: [PATCH 2/3] rolldown: init at v1.0.0-rc.5 --- pkgs/by-name/ro/rolldown/package.nix | 92 ++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 pkgs/by-name/ro/rolldown/package.nix diff --git a/pkgs/by-name/ro/rolldown/package.nix b/pkgs/by-name/ro/rolldown/package.nix new file mode 100644 index 000000000000..c72f51a8c50e --- /dev/null +++ b/pkgs/by-name/ro/rolldown/package.nix @@ -0,0 +1,92 @@ +{ + stdenv, + fetchFromGitHub, + fetchPnpmDeps, + pnpmConfigHook, + pnpm_10, + nodejs_22, + rustPlatform, + cargo, + rustc, + cmake, + version ? "1.0.0-rc.5", +}: +stdenv.mkDerivation (finalAttrs: { + pname = "rolldown"; + # Default from top-level; .override { version = "..." } replaces this via merge, and src/cargoDeps/pnpmDeps use finalAttrs.version below. + version = version; + + # To obtain hashes: use `nix store prefetch-file --unpack ` for source; set hash = "" and build for cargoDeps/pnpmDeps. + src = fetchFromGitHub { + owner = "rolldown"; + repo = "rolldown"; + rev = "v${finalAttrs.version}"; + hash = "sha256-uqgJN7jn70z3cQlEEyk+0TeiHDn1AkvMmCaEOksHxhM="; + }; + cargoDeps = rustPlatform.fetchCargoVendor { + pname = "rolldown"; + version = finalAttrs.version; + src = finalAttrs.src; + hash = "sha256-tyayOAwdqP1euzicJrstwHiHxoFRWq+IGSiN/uFNZz8="; + }; + pnpmDeps = fetchPnpmDeps { + pname = "rolldown"; + version = finalAttrs.version; + src = finalAttrs.src; + pnpm = pnpm_10; + fetcherVersion = 3; + hash = "sha256-16NBCf4dP8a8dbgnmtFawMHKD7geIkLXt4F4w18FSUM="; + }; + + # cmake is only needed for Rust build (mimalloc-sys), not for a top-level configure + dontUseCmakeConfigure = true; + + nativeBuildInputs = [ + pnpmConfigHook + pnpm_10 + nodejs_22 + rustPlatform.cargoSetupHook + cargo + rustc + cmake + ]; + + buildPhase = '' + runHook preBuild + + pnpm run --filter "@rolldown/pluginutils" build + pnpm run --filter rolldown build-native:release + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + local -r nodeModules="$out/lib/node_modules" + mkdir -p "$nodeModules" + + # Install rolldown package + local -r outPath="$nodeModules/rolldown" + mkdir -p "$outPath" + cp packages/rolldown/package.json "$outPath/" + for d in bin cli dist; do + [[ -d packages/rolldown/$d ]] && cp -r "packages/rolldown/$d" "$outPath/" + done + cp packages/rolldown/*.node "$outPath/" 2>/dev/null || true + cp packages/rolldown/dist/*.node "$outPath/dist/" 2>/dev/null || true + cp packages/rolldown/src/rolldown-binding.*.node "$outPath/dist/" 2>/dev/null || true + + # Install @rolldown/pluginutils (rolldown's runtime dependency; only built output, no node_modules) + mkdir -p "$nodeModules/@rolldown/pluginutils" + cp packages/pluginutils/package.json "$nodeModules/@rolldown/pluginutils/" + [[ -d packages/pluginutils/dist ]] && cp -r packages/pluginutils/dist "$nodeModules/@rolldown/pluginutils/" + + runHook postInstall + ''; + + meta = { + description = "Fast Rust-based bundler for JavaScript (built for openclaw)"; + inherit (nodejs_22.meta) platforms; + }; +}) From adc9c1e8dcac832422bdb19d229d08b79bf010d4 Mon Sep 17 00:00:00 2001 From: Chris Portela Date: Fri, 27 Feb 2026 17:55:00 +0000 Subject: [PATCH 3/3] openclaw: init at 2026.2.26 --- pkgs/by-name/op/openclaw/package.nix | 113 +++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 pkgs/by-name/op/openclaw/package.nix diff --git a/pkgs/by-name/op/openclaw/package.nix b/pkgs/by-name/op/openclaw/package.nix new file mode 100644 index 000000000000..17a30cd8c2af --- /dev/null +++ b/pkgs/by-name/op/openclaw/package.nix @@ -0,0 +1,113 @@ +{ + lib, + stdenvNoCC, + fetchFromGitHub, + fetchPnpmDeps, + pnpmConfigHook, + pnpm_10, + nodejs_22, + makeWrapper, + versionCheckHook, + nix-update-script, + rolldown, + version ? "2026.2.26", +}: +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "openclaw"; + version = version; + + src = fetchFromGitHub { + owner = "openclaw"; + repo = "openclaw"; + tag = "v${finalAttrs.version}"; + hash = "sha256-9kej1aK7j3/FU2X/bN983YqQClfnWfFPvByEkQKlQ4E="; + }; + + pnpmDepsHash = "sha256-Jcj0i/2Mh8Z5lp909Fkotw/isfLTIVMxtJgWwAtctEw="; + + pnpmDeps = fetchPnpmDeps { + inherit (finalAttrs) pname version src; + pnpm = pnpm_10; + fetcherVersion = 3; + hash = finalAttrs.pnpmDepsHash; + }; + + buildInputs = [ rolldown ]; + + nativeBuildInputs = [ + pnpmConfigHook + pnpm_10 + nodejs_22 + makeWrapper + ]; + + preBuild = '' + rm -rf node_modules/rolldown node_modules/@rolldown/pluginutils + mkdir -p node_modules/@rolldown + cp -r ${rolldown}/lib/node_modules/rolldown node_modules/rolldown + cp -r ${rolldown}/lib/node_modules/@rolldown/pluginutils node_modules/@rolldown/pluginutils + chmod -R u+w node_modules/rolldown node_modules/@rolldown/pluginutils + ''; + + buildPhase = '' + runHook preBuild + + pnpm install --frozen-lockfile + pnpm build + pnpm ui:build + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + libdir=$out/lib/openclaw + mkdir -p $libdir $out/bin + + + cp --reflink=auto -r package.json dist node_modules $libdir/ + cp --reflink=auto -r assets docs skills patches extensions $libdir/ 2>/dev/null || true + + rm -f $libdir/node_modules/.pnpm/node_modules/clawdbot \ + $libdir/node_modules/.pnpm/node_modules/moltbot \ + $libdir/node_modules/.pnpm/node_modules/openclaw-control-ui + + makeWrapper ${lib.getExe nodejs_22} $out/bin/openclaw \ + --add-flags "$libdir/dist/index.js" \ + --set NODE_PATH "$libdir/node_modules" + ln -s $out/bin/openclaw $out/bin/moltbot + ln -s $out/bin/openclaw $out/bin/clawdbot + + runHook postInstall + ''; + + nativeInstallCheckInputs = [ versionCheckHook ]; + doInstallCheck = true; + + passthru.updateScript = nix-update-script { }; + + meta = { + description = "Self-hosted, open-source AI assistant/agent"; + longDescription = '' + Self-hosted AI assistant/agent connected to all your apps on your Linux + or macOS machine and controlled via your choice of chat app. + + Note: Project is in early/rapid development and uses LLMs to parse untrusted + content while having full access to system by default. + + Parsing untrusted input with LLMs leaves them vulnerable to prompt injection. + + (Originally known as Moltbot and ClawdBot) + ''; + homepage = "https://openclaw.ai"; + changelog = "https://github.com/openclaw/openclaw/releases/tag/${finalAttrs.src.tag}"; + license = lib.licenses.mit; + mainProgram = "openclaw"; + maintainers = with lib.maintainers; [ chrisportela ]; + platforms = with lib.platforms; linux ++ darwin; + knownVulnerabilities = [ + "Project uses LLMs to parse untrusted content, making it vulnerable to prompt injection, while having full access to system by default." + ]; + }; +})