Revert "Revert "nix: move to flakes, update nixpkgs""

This commit is contained in:
Josh Robson Chase
2024-03-08 15:40:34 -05:00
committed by GitHub
parent 254bf4e43f
commit 02bceba083
7 changed files with 238 additions and 130 deletions
+2
View File
@@ -0,0 +1,2 @@
dotenv_if_exists
use flake
+2
View File
@@ -1 +1,3 @@
.env
.direnv
result*
+120
View File
@@ -0,0 +1,120 @@
{ pkgs, stdenv, pkgsCross, fetchurl, unzip, writeTextDir }:
with stdenv;
let
configDir = "/var/lib/ngrok";
releases = builtins.fromJSON (builtins.readFile ./releases.json);
version = releases.version;
ngrokDrv = { sha256, url }:
stdenv.mkDerivation {
name = "ngrok-${version}";
version = version;
src = fetchurl { inherit sha256 url; };
sourceRoot = ".";
unpackPhase = "${unzip}/bin/unzip $src ngrok";
buildPhase = "chmod a+x ngrok";
installPhase = ''
install -D ngrok $out/bin/ngrok
'';
};
ngrokBinArm = ngrokDrv releases.arm;
ngrokBinAmd64 = ngrokDrv releases.amd64;
ngrokBinArm64 = ngrokDrv releases.arm64;
ngrokBini386 = ngrokDrv releases.i386;
shadowSetup = [
(writeTextDir "etc/shadow" ''
root:!x:::::::
ngrok:!:::::::
'')
(writeTextDir "etc/passwd" ''
root:x:0:0::/root:/bin/bash
ngrok:x:1000:100::/home/ngrok:
'')
(writeTextDir "etc/group" ''
root:x:0:
ngrok:x:100:
'')
(writeTextDir "etc/gshadow" ''
root:x::
ngrok:x::
'')
];
entrypoint = ./scripts;
extraCommands = ''
mkdir -p .${configDir}
chmod a+rw -R .${configDir}
echo "version: 2" > .${configDir}/ngrok.yml
echo "web_addr: 0.0.0.0:4040" >> .${configDir}/ngrok.yml
'';
in
rec {
debianArm64 = import ./debian.nix {
ngrokBin = ngrokBinArm64;
arch = "arm64";
pkgs = pkgsCross.aarch64-multiplatform;
imageSha256 = "0n2i0862bahqdwwxf1gypvlrzrl8cdmph6h76r45awh1lcxn650f";
imageDigest =
"sha256:eb9b613b4f63193f4476e62af4cb5bff5e3ba0683c4c7f317b2a2c7e3ec22ee6";
inherit extraCommands entrypoint shadowSetup version;
};
alpineArm64 = import ./alpine.nix {
ngrokBin = ngrokBinArm64;
arch = "arm64";
pkgs = pkgsCross.aarch64-multiplatform;
imageSha256 = "13h5sh8fnxyaw7n69h7865ybda6lr7vhagf5fgxwjm8yr1pxf3li";
imageDigest =
"sha256:53b74ddfc6225e3c8cc84d7985d0f34666e4e8b0b6892a9b2ad1f7516bc21b54";
inherit extraCommands entrypoint shadowSetup version;
};
debianAmd64 = import ./debian.nix {
ngrokBin = ngrokBinAmd64;
arch = "amd64";
imageSha256 = "1rqvk4zhxx7xi5gqzwdz5f36s40avan4fbimkfbvg2jq8i0jqnd5";
imageDigest =
"sha256:5625c115ad881f19967a9b66416f8d40710bb307ad607d037f8ad8289260f75f";
inherit pkgs extraCommands entrypoint shadowSetup version;
};
alpineAmd64 = import ./alpine.nix {
ngrokBin = ngrokBinAmd64;
arch = "amd64";
imageDigest =
"sha256:1775bebec23e1f3ce486989bfc9ff3c4e951690df84aa9f926497d82f2ffca9d";
imageSha256 = "1jjqqp6vkmmy1i37dk0z3slsdbjahy9shsm7vhhrk07kgx8ia7xs";
inherit pkgs extraCommands entrypoint shadowSetup version;
};
debianArm = import ./debian.nix {
ngrokBin = ngrokBinArm;
arch = "arm";
pkgs = pkgsCross.armv7l-hf-multiplatform;
imageSha256 = "0hxqdcwnkv55l56jgg1iqk9lhgnz43v4kqbycnb3zhjvkkjk6b51";
imageDigest =
"sha256:32c2874ad59bf7908d2a9f7b25409b17cd2927e852d46ed91acfcca4fb64590f";
inherit extraCommands entrypoint shadowSetup version;
};
alpineArm = import ./alpine.nix {
ngrokBin = ngrokBinArm;
arch = "arm";
pkgs = pkgsCross.armv7l-hf-multiplatform;
imageSha256 = "1idf4x6dk290wm731yjpf2swyrlajbdd9bg3z7vvsrrzz2gsdgjn";
imageDigest =
"sha256:8d99168167baa6a6a0d7851b9684625df9c1455116a9601835c2127df2aaa2f5";
inherit extraCommands entrypoint shadowSetup version;
};
debian386 = import ./debian.nix {
ngrokBin = ngrokBini386;
arch = "i386";
pkgs = pkgsCross.gnu32;
imageSha256 = "19fcclfrd6wpdxkxccfg23f7zvaqm4sdd9vyfv9fssi4662809ps";
imageDigest =
"sha256:8aa52e36d688dfaf6a949884cecc0aa5bd0bc92a626b11c2feeb8a23fbcf3190";
inherit extraCommands entrypoint shadowSetup version;
};
alpine386 = import ./alpine.nix {
ngrokBin = ngrokBini386;
arch = "i386";
pkgs = pkgsCross.gnu32;
imageSha256 = "07lapaqi63rz58fxhp13h673aj3mpsxkl0mhb4hxprkpg58hfgh0";
imageDigest =
"sha256:52a197664c8ed0b4be6d3b8372f1d21f3204822ba432583644c9ce07f7d6448f";
inherit extraCommands entrypoint shadowSetup version;
};
}
+13 -119
View File
@@ -1,119 +1,13 @@
with import (import ./pkgs.nix) { };
with stdenv;
let
configDir = "/var/lib/ngrok";
releases = builtins.fromJSON (builtins.readFile ./releases.json);
version = releases.version;
ngrokDrv = { sha256, url }:
stdenv.mkDerivation {
name = "ngrok-${version}";
version = version;
src = fetchurl { inherit sha256 url; };
sourceRoot = ".";
unpackPhase = "${pkgs.unzip}/bin/unzip $src ngrok";
buildPhase = "chmod a+x ngrok";
installPhase = ''
install -D ngrok $out/bin/ngrok
'';
};
ngrokBinArm = ngrokDrv releases.arm;
ngrokBinAmd64 = ngrokDrv releases.amd64;
ngrokBinArm64 = ngrokDrv releases.arm64;
ngrokBini386 = ngrokDrv releases.i386;
shadowSetup = with pkgs; [
(writeTextDir "etc/shadow" ''
root:!x:::::::
ngrok:!:::::::
'')
(writeTextDir "etc/passwd" ''
root:x:0:0::/root:/bin/bash
ngrok:x:1000:100::/home/ngrok:
'')
(writeTextDir "etc/group" ''
root:x:0:
ngrok:x:100:
'')
(writeTextDir "etc/gshadow" ''
root:x::
ngrok:x::
'')
];
entrypoint = ./scripts;
extraCommands = ''
mkdir -p .${configDir}
chmod a+rw -R .${configDir}
echo "version: 2" > .${configDir}/ngrok.yml
echo "web_addr: 0.0.0.0:4040" >> .${configDir}/ngrok.yml
'';
in {
debianArm64 = import ./debian.nix {
ngrokBin = ngrokBinArm64;
arch = "arm64";
pkgs = pkgsCross.aarch64-multiplatform;
imageSha256 = "0n2i0862bahqdwwxf1gypvlrzrl8cdmph6h76r45awh1lcxn650f";
imageDigest =
"sha256:eb9b613b4f63193f4476e62af4cb5bff5e3ba0683c4c7f317b2a2c7e3ec22ee6";
inherit extraCommands entrypoint shadowSetup version;
};
alpineArm64 = import ./alpine.nix {
ngrokBin = ngrokBinArm64;
arch = "arm64";
pkgs = pkgsCross.aarch64-multiplatform;
imageSha256 = "13h5sh8fnxyaw7n69h7865ybda6lr7vhagf5fgxwjm8yr1pxf3li";
imageDigest =
"sha256:53b74ddfc6225e3c8cc84d7985d0f34666e4e8b0b6892a9b2ad1f7516bc21b54";
inherit extraCommands entrypoint shadowSetup version;
};
debianAmd64 = import ./debian.nix {
ngrokBin = ngrokBinAmd64;
arch = "amd64";
imageSha256 = "1rqvk4zhxx7xi5gqzwdz5f36s40avan4fbimkfbvg2jq8i0jqnd5";
imageDigest =
"sha256:5625c115ad881f19967a9b66416f8d40710bb307ad607d037f8ad8289260f75f";
inherit pkgs extraCommands entrypoint shadowSetup version;
};
alpineAmd64 = import ./alpine.nix {
ngrokBin = ngrokBinAmd64;
arch = "amd64";
imageDigest =
"sha256:1775bebec23e1f3ce486989bfc9ff3c4e951690df84aa9f926497d82f2ffca9d";
imageSha256 = "1jjqqp6vkmmy1i37dk0z3slsdbjahy9shsm7vhhrk07kgx8ia7xs";
inherit pkgs extraCommands entrypoint shadowSetup version;
};
debianArm = import ./debian.nix {
ngrokBin = ngrokBinArm;
arch = "arm";
pkgs = pkgsCross.armv7l-hf-multiplatform;
imageSha256 = "0hxqdcwnkv55l56jgg1iqk9lhgnz43v4kqbycnb3zhjvkkjk6b51";
imageDigest =
"sha256:32c2874ad59bf7908d2a9f7b25409b17cd2927e852d46ed91acfcca4fb64590f";
inherit extraCommands entrypoint shadowSetup version;
};
alpineArm = import ./alpine.nix {
ngrokBin = ngrokBinArm;
arch = "arm";
pkgs = pkgsCross.armv7l-hf-multiplatform;
imageSha256 = "1idf4x6dk290wm731yjpf2swyrlajbdd9bg3z7vvsrrzz2gsdgjn";
imageDigest =
"sha256:8d99168167baa6a6a0d7851b9684625df9c1455116a9601835c2127df2aaa2f5";
inherit extraCommands entrypoint shadowSetup version;
};
debian386 = import ./debian.nix {
ngrokBin = ngrokBini386;
arch = "i386";
pkgs = pkgsCross.gnu32;
imageSha256 = "19fcclfrd6wpdxkxccfg23f7zvaqm4sdd9vyfv9fssi4662809ps";
imageDigest =
"sha256:8aa52e36d688dfaf6a949884cecc0aa5bd0bc92a626b11c2feeb8a23fbcf3190";
inherit extraCommands entrypoint shadowSetup version;
};
alpine386 = import ./alpine.nix {
ngrokBin = ngrokBini386;
arch = "i386";
pkgs = pkgsCross.gnu32;
imageSha256 = "07lapaqi63rz58fxhp13h673aj3mpsxkl0mhb4hxprkpg58hfgh0";
imageDigest =
"sha256:52a197664c8ed0b4be6d3b8372f1d21f3204822ba432583644c9ce07f7d6448f";
inherit extraCommands entrypoint shadowSetup version;
};
}
(import
(
let
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
in
fetchTarball {
url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz";
sha256 = lock.nodes.flake-compat.locked.narHash;
}
)
{
src = ./.;
}).defaultNix.packages.x86_64-linux
Generated
+78
View File
@@ -0,0 +1,78 @@
{
"nodes": {
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1709126324,
"narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "d465f4819400de7c8d874d50b982301f28a84605",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1709703039,
"narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}
+23
View File
@@ -0,0 +1,23 @@
{
description = "The ngrok docker container";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
flake-compat = {
url = "github:edolstra/flake-compat";
flake = false;
};
};
outputs = { self, nixpkgs, flake-utils, ... }:
let
pkgs = import nixpkgs {
system = "x86_64-linux";
};
in
{
packages.x86_64-linux = pkgs.callPackage ./build.nix { };
devShells.x86_64-linux.default = pkgs.mkShell { };
};
}
-11
View File
@@ -1,11 +0,0 @@
let
# Follow from http://hydra.nixos.org/job/nixpkgs/trunk/unstable through a
# passing hydra build and nab the commit from that.
# This ensures the upstream nix cache has all artifacts for this commit.
commit = "a916ffbb2752be32b1d44cf40bed4dbc1974da62";
url = "https://github.com/NixOS/nixpkgs/archive/${commit}.tar.gz";
in builtins.fetchTarball {
inherit url;
sha256 = "1xn3lqiyp1x1qq9kb7prqzbdy2brabspsyh7j8x6srj4600gif5l";
}