From 98352dd0aca72499bf914b4526c57dcc2f91d29a Mon Sep 17 00:00:00 2001 From: tdro Date: Sat, 12 Jun 2021 10:12:50 -0400 Subject: .config/nixpkgs/shells: Set up for easier automation Fix broken coreboot sources. --- .config/nixpkgs/shells/ansible.nix | 18 +++++++++++++----- .config/nixpkgs/shells/coreboot.nix | 33 ++++++++++++++++++--------------- .config/nixpkgs/shells/falcon.nix | 29 ++++++++++++++++------------- .config/nixpkgs/shells/nixops.nix | 14 +++++++++----- 4 files changed, 56 insertions(+), 38 deletions(-) diff --git a/.config/nixpkgs/shells/ansible.nix b/.config/nixpkgs/shells/ansible.nix index 5da5e38..3f6de79 100644 --- a/.config/nixpkgs/shells/ansible.nix +++ b/.config/nixpkgs/shells/ansible.nix @@ -1,10 +1,17 @@ -with import { }; +let -let project = "${builtins.getEnv "HOME"}/Shares/Projects/infrastructure/ansible"; + # nix-shell -E 'import (builtins.fetchurl "$url")' + + name = "nix-shell.ansible"; + pkgs = import { }; + project = "${builtins.getEnv "HOME"}/Shares/Projects/infrastructure/ansible"; + +in pkgs.mkShell { + + inherit name; + + buildInputs = with pkgs; [ python38.pkgs.pip ansible_2_9 ]; -in mkShell rec { - name = "ansible-mitogen"; - buildInputs = [ python38.pkgs.pip ansible_2_9 ]; shellHook = '' export virtualenvs=$HOME/.local/share/virtualenvs mkdir -p $virtualenvs @@ -18,3 +25,4 @@ in mkShell rec { ssh -T git@github.com ''; } + diff --git a/.config/nixpkgs/shells/coreboot.nix b/.config/nixpkgs/shells/coreboot.nix index 57ca4e5..0ea776c 100644 --- a/.config/nixpkgs/shells/coreboot.nix +++ b/.config/nixpkgs/shells/coreboot.nix @@ -1,15 +1,18 @@ -# Shell derivation condensed from https://git.petabyte.dev/petabyteboy/corenix +let -with import (builtins.fetchTarball { - url = "https://releases.nixos.org/nixos/20.09/nixos-20.09.3824.dec334fa196/nixexprs.tar.xz"; - sha256 = "1i38d1z672gzn73k6gsas2zjbbradg06w7dw3zs9f64l0hr3qd94"; }) { }; + # Shell derivation condensed from https://git.petabyte.dev/petabyteboy/corenix -let + # nix-shell -E 'import (builtins.fetchurl "$url")' + name = "nix-shell.coreboot"; architecture = "i386"; url = "https://review.coreboot.org/coreboot"; project = "${builtins.getEnv "HOME"}/Shares/Projects/coreboot"; + pkgs = import (builtins.fetchTarball { + url = "https://releases.nixos.org/nixos/20.09/nixos-20.09.3824.dec334fa196/nixexprs.tar.xz"; + sha256 = "1i38d1z672gzn73k6gsas2zjbbradg06w7dw3zs9f64l0hr3qd94"; }) {}; + dependencies = { fetchurl }: [ rec { name = "Python-3.8.5.tar.xz"; archive = fetchurl { sha256 = "1c43dbv9lvlp3ynqmgdi4rh8q94swanhqarqrdx62zmigpakw073"; url = "https://www.python.org/ftp/python/3.8.5/${name}"; }; } rec { name = "acpica-unix2-20200717.tar.gz"; archive = fetchurl { sha256 = "0jyy71szjr40c8v40qqw6yh3gfk8d6sl3nay69zrn5d88i3r0jca"; url = "https://acpica.org/sites/acpica/files/${name}"; }; } @@ -18,7 +21,7 @@ let rec { name = "clang-tools-extra-10.0.1.src.tar.xz"; archive = fetchurl { sha256 = "06n1yp638rh24xdxv9v2df0qajxbjz4w59b7dd4ky36drwmpi4yh"; url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/${name}"; }; } rec { name = "cmake-3.18.1.tar.gz"; archive = fetchurl { sha256 = "0215srmc9l7ygwdpfms8yx0wbd96qgz2d58ykmdiarvysf5k7qy0"; url = "https://cmake.org/files/v3.18/${name}"; }; } rec { name = "compiler-rt-10.0.1.src.tar.xz"; archive = fetchurl { sha256 = "1yjqjri753w0fzmxcyz687nvd97sbc9rsqrxzpq720na47hwh3fr"; url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/${name}"; }; } - rec { name = "expat-2.2.9.tar.bz2"; archive = fetchurl { sha256 = "0dx2m58gkj7cadk51lmp54ma7cqjhff4kjmwv8ks80j3vj2301pi"; url = "https://downloads.sourceforge.net/sourceforge/expat/${name}"; }; } + rec { name = "expat-2.2.9.tar.bz2"; archive = fetchurl { sha256 = "0dx2m58gkj7cadk51lmp54ma7cqjhff4kjmwv8ks80j3vj2301pi"; url = "https://github.com/libexpat/libexpat/releases/download/R_2_2_9/${name}"; }; } rec { name = "gcc-8.3.0.tar.xz"; archive = fetchurl { sha256 = "0b3xv411xhlnjmin2979nxcbnidgvzqdf4nbhix99x60dkzavfk4"; url = "https://ftpmirror.gnu.org/gcc/gcc-8.3.0/${name}"; }; } rec { name = "gdb-9.2.tar.xz"; archive = fetchurl { sha256 = "0mf5fn8v937qwnal4ykn3ji1y2sxk0fa1yfqi679hxmpg6pdf31n"; url = "https://ftpmirror.gnu.org/gdb/${name}"; }; } rec { name = "gmp-6.2.0.tar.xz"; archive = fetchurl { sha256 = "09hmg8k63mbfrx1x3yy6y1yzbbq85kw5avbibhcgrg9z3ganr3i5"; url = "https://ftpmirror.gnu.org/gmp/${name}"; }; } @@ -28,23 +31,23 @@ let rec { name = "nasm-2.15.03.tar.bz2"; archive = fetchurl { sha256 = "0y6p3d5lhmwzvgi85f00sz6c485ir33zd1nskzxby4pikcyk9rq4"; url = "https://www.nasm.us/pub/nasm/releasebuilds/2.15.03/${name}"; }; } ]; - toolchain = stdenv.mkDerivation rec { + toolchain = pkgs.stdenv.mkDerivation rec { pname = "crossgcc-${architecture}"; version = "4.13"; - src = fetchgit { + src = pkgs.fetchgit { inherit url; rev = version; sha256 = "0xwzwplyf2zc267ddprh7963p582q3jrdvxc7r4cwzj0lhgrv6rv"; fetchSubmodules = true; }; - nativeBuildInputs = [ curl m4 flex bison zlib gnat ]; + nativeBuildInputs = builtins.attrValues { inherit (pkgs) curl m4 flex bison zlib gnat; }; buildPhase = '' mkdir -p util/crossgcc/tarballs - ${lib.concatMapStringsSep "\n" + ${pkgs.lib.concatMapStringsSep "\n" (file: "ln -s ${file.archive} util/crossgcc/tarballs/${file.name}") - (callPackage dependencies { })} + (pkgs.callPackage dependencies { })} NIX_HARDENING_ENABLE="$\{NIX_HARDENING_ENABLE/ format/\}" make crossgcc-i386 CPUS=$(nproc) ''; @@ -55,14 +58,14 @@ let ''; }; -in mkShell { +in pkgs.mkShell { - name = "coreboot"; + inherit name; - buildInputs = [ git coreboot-utils flashrom me_cleaner ncurses qemu m4 flex bison zlib gnat ]; + buildInputs = builtins.attrValues { inherit (pkgs) git coreboot-utils flashrom me_cleaner ncurses qemu m4 flex bison zlib gnat; }; shellHook = '' - export PS1='\h (coreboot) \W \$ ' + export PS1='\h (${name}) \W \$ ' mkdir -p '${project}' git clone '${url}' '${project}' || true diff --git a/.config/nixpkgs/shells/falcon.nix b/.config/nixpkgs/shells/falcon.nix index 0d1a76e..7bd0b54 100644 --- a/.config/nixpkgs/shells/falcon.nix +++ b/.config/nixpkgs/shells/falcon.nix @@ -1,19 +1,24 @@ -with import (builtins.fetchTarball { - url = "https://github.com/NixOS/nixpkgs/archive/360e2af4f87.tar.gz"; - sha256 = "1i3i9cpn6m3r07pgw4w3xinbqmxkm7pmnqjlz96x424ngbc21sg2"; }) {}; - let + + # nix-shell -E 'import (builtins.fetchurl "$url")' + + name = "nix-shell.falcon-kernel"; + + pkgs = import (builtins.fetchTarball { + url = "https://github.com/NixOS/nixpkgs/archive/360e2af4f87.tar.gz"; + sha256 = "1i3i9cpn6m3r07pgw4w3xinbqmxkm7pmnqjlz96x424ngbc21sg2"; }) {}; + project = "${builtins.getEnv "HOME"}/Desktop/moto-falcon/lineageos-kernel/lineageos-motorala-msm8226"; - toolchain = stdenv.mkDerivation rec { + toolchain = pkgs.stdenv.mkDerivation rec { name = "gcc-linaro-4.9.4"; src = builtins.fetchTarball { url = "https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz"; sha256 = "11zznrx0hkq34bn7x7kxn5q9icrf22vqgmd1ifxmdskm2g14x3l8"; }; dontBuild = true; - buildInputs = [ python2 zlib ncurses5 expat lzma ]; - nativeBuildInputs = [ autoPatchelfHook ]; + buildInputs = builtins.attrValues { inherit (pkgs) python2 zlib ncurses5 expat lzma; }; + nativeBuildInputs = builtins.attrValues { inherit (pkgs) autoPatchelfHook; }; installPhase = '' runHook preInstall mkdir $out @@ -22,18 +27,16 @@ let ''; }; -in - -mkShell { +in pkgs.mkShell { - name = "falcon-kernel"; + inherit name; - buildInputs = [ gnumake ncurses ]; + buildInputs = builtins.attrValues { inherit (pkgs) gnumake ncurses; }; shellHook = '' export CROSS_COMPILE=${toolchain}/bin/arm-linux-gnueabihf- export ARCH=arm - export PS1='\h (falcon kernel) \W \$ ' + export PS1='\h (${name}) \W \$ ' cd '${project}' || exit 1 ''; } diff --git a/.config/nixpkgs/shells/nixops.nix b/.config/nixpkgs/shells/nixops.nix index 03756cd..7f98285 100644 --- a/.config/nixpkgs/shells/nixops.nix +++ b/.config/nixpkgs/shells/nixops.nix @@ -1,18 +1,22 @@ -with import { }; - let + # nix-shell -E 'import (builtins.fetchurl "$url")' + + name = "nix-shell.nixops.${version}."; + pkgs = import { }; version = "20.09"; project = "${builtins.getEnv "HOME"}/Shares/Projects/infrastructure"; channel = (import "${project}/nixos/versions.nix")."${version}".channel; -in mkShell { - name = "nixops-${version}"; +in pkgs.mkShell { + + inherit name; + shellHook = '' export VAULT_ADDR='http://vault.test' export NIX_PATH=${channel}/nixexprs.tar.xz export _NIX_CHANNEL=${channel} - export PS1='\h (nixos ${version} ''${_NIX_CHANNEL##*.}) \W \$ ' + export PS1='\h (${name}''${_NIX_CHANNEL##*.}) \W \$ ' cd '${project}' || exit 1 ssh -T git@github.com ''; -- cgit v1.2.3