From 53dd2a1ae2cf94f967a9bd5f4722f737605baee1 Mon Sep 17 00:00:00 2001 From: Erik Arvstedt Date: Sun, 21 Aug 2022 14:41:38 +0200 Subject: [PATCH] cl-rest: 0.7.2 -> 0.8.0 - Use `fetch-node-modules` - Only use nodejs-slim as a runtime dependency --- pkgs/clightning-rest/composition.nix | 17 - pkgs/clightning-rest/default.nix | 54 +- pkgs/clightning-rest/generate.sh | 66 +- pkgs/clightning-rest/node-packages.nix | 1476 ------------------------ pkgs/clightning-rest/pkg.json | 3 - pkgs/default.nix | 2 +- 6 files changed, 75 insertions(+), 1543 deletions(-) delete mode 100644 pkgs/clightning-rest/composition.nix delete mode 100644 pkgs/clightning-rest/node-packages.nix delete mode 100644 pkgs/clightning-rest/pkg.json diff --git a/pkgs/clightning-rest/composition.nix b/pkgs/clightning-rest/composition.nix deleted file mode 100644 index 01c4b77..0000000 --- a/pkgs/clightning-rest/composition.nix +++ /dev/null @@ -1,17 +0,0 @@ -# This file has been generated by node2nix 1.9.0. Do not edit! - -{pkgs ? import { - inherit system; - }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}: - -let - nodeEnv = import "${toString pkgs.path}/pkgs/development/node-packages/node-env.nix" { - inherit (pkgs) stdenv lib python2 runCommand writeTextFile writeShellScript; - inherit pkgs nodejs; - libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; - }; -in -import ./node-packages.nix { - inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit; - inherit nodeEnv; -} diff --git a/pkgs/clightning-rest/default.nix b/pkgs/clightning-rest/default.nix index ca44d4c..db2a917 100644 --- a/pkgs/clightning-rest/default.nix +++ b/pkgs/clightning-rest/default.nix @@ -1,16 +1,48 @@ -{ pkgs, lib, makeWrapper }: -let - inherit (pkgs) nodejs; - nodePackages = import ./composition.nix { inherit pkgs nodejs; }; -in -nodePackages.package.overrideAttrs (old: { - nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ +{ lib +, stdenvNoCC +, nodejs-16_x +, nodejs-slim-16_x +, fetchNodeModules +, fetchurl +, makeWrapper +, rsync +}: +let self = stdenvNoCC.mkDerivation { + pname = "clightning-rest"; + version = "0.8.0"; + + src = fetchurl { + url = "https://github.com/Ride-The-Lightning/c-lightning-REST/archive/refs/tags/v${self.version}.tar.gz"; + hash = "sha256-Rg0/lN7exNFlsMj+HQcFwVqNRzCd1ztu56q5VIkglko="; + }; + + passthru = { + nodejs = nodejs-16_x; + nodejsRuntime = nodejs-slim-16_x; + + nodeModules = fetchNodeModules { + inherit (self) src nodejs; + hash = "sha256-aG60RANqmWQ4sbm450MS2DWEoRksjj9/z6PoKBLtDB4="; + }; + }; + + nativeBuildInputs = [ makeWrapper ]; - postInstall = '' - makeWrapper ${nodejs}/bin/node $out/bin/cl-rest \ - --add-flags $out/lib/node_modules/c-lightning-rest/cl-rest + phases = "unpackPhase patchPhase installPhase"; + + installPhase = '' + dest=$out/lib/node_modules/clightning-rest + mkdir -p $dest + ${rsync}/bin/rsync -a --inplace * ${self.nodeModules}/lib/node_modules \ + --exclude=/{screenshots,'*.Dockerfile'} \ + $dest + + makeWrapper ${self.nodejsRuntime}/bin/node $out/bin/cl-rest \ + --add-flags $dest/cl-rest.js + + runHook postInstall ''; meta = with lib; { @@ -20,4 +52,4 @@ nodePackages.package.overrideAttrs (old: { maintainers = with maintainers; [ nixbitcoin earvstedt ]; platforms = platforms.unix; }; -}) +}; in self diff --git a/pkgs/clightning-rest/generate.sh b/pkgs/clightning-rest/generate.sh index 4537f44..75f75fd 100755 --- a/pkgs/clightning-rest/generate.sh +++ b/pkgs/clightning-rest/generate.sh @@ -1,44 +1,40 @@ #!/usr/bin/env nix-shell -#! nix-shell -i bash -p nodePackages.node2nix gnupg wget jq gnused +#! nix-shell -i bash -p gnupg wget gnused set -euo pipefail -TMPDIR="$(mktemp -d -p /tmp)" -trap "rm -rf $TMPDIR" EXIT - -version="0.7.2" +version="0.8.0" repo=https://github.com/Ride-The-Lightning/c-lightning-REST -# Fetch and verify source tarball -file=v${version}.tar.gz -url=$repo/archive/refs/tags/$file -export GNUPGHOME=$TMPDIR -gpg --keyserver hkps://keyserver.ubuntu.com --recv-key 3E9BD4436C288039CA827A9200C9E2BC2E45666F -wget -P $TMPDIR $url -wget -P $TMPDIR $repo/releases/download/v${version}/$file.asc -gpg --verify $TMPDIR/$file.asc $TMPDIR/$file -hash=$(nix hash file $TMPDIR/$file) +scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd) -# Extract source -src=$TMPDIR/src -mkdir $src -tar xvf $TMPDIR/$file -C $src --strip-components 1 >/dev/null +updateSrc() { + TMPDIR="$(mktemp -d /tmp/clightning-rest.XXX)" + trap "rm -rf $TMPDIR" EXIT -# Generate nix pkg -node2nix \ - --input $src/package.json \ - --lock $src/package-lock.json \ - --composition composition.nix \ - --no-copy-node-env + # Fetch and verify source tarball + export GNUPGHOME=$TMPDIR + # Fetch saubyk's key + gpg --keyserver hkps://keyserver.ubuntu.com --recv-key 3E9BD4436C288039CA827A9200C9E2BC2E45666F + file=v${version}.tar.gz + wget -P $TMPDIR $repo/archive/refs/tags/$file + wget -P $TMPDIR $repo/releases/download/v${version}/$file.asc + gpg --verify $TMPDIR/$file.asc $TMPDIR/$file + hash=$(nix hash file $TMPDIR/$file) -# Use node-env.nix from nixpkgs -nodeEnvImport='import "${toString pkgs.path}/pkgs/development/node-packages/node-env.nix"' -sed -i "s|import ./node-env.nix|$nodeEnvImport|" composition.nix + sed -i " + s|\bversion = .*;|version = \"$version\";| + s|\bhash = .*;|hash = \"$hash\";| + " default.nix +} -# Use the verified package src -read -d '' fetchurl <