Files
buildroot/flake.nix
2024-06-17 21:01:43 +00:00

90 lines
2.6 KiB
Nix

{
description = "A flake for build root";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system:
let pkgs = nixpkgs.legacyPackages.${system}; in
{
packages = rec {
buildroot = pkgs.stdenv.mkDerivation rec {
name = "buildroot";
version = "2024.02.3";
src = pkgs.fetchzip {
url = "https://buildroot.org/downloads/buildroot-${version}.tar.gz";
sha256 = "sha256-iG/6UHy0tz0YAUlkY93yH9NbVLaggBSJDBInWCw8S18=";
};
phases = [ "unpackPhase" "installPhase" ];
installPhase = ''
mkdir -p $out
cp -R . $out
'';
};
buildrootMakeCommand = pkgs.writeShellApplication {
name = "buildrootMakeCommand";
runtimeInputs = [
pkgs.gnumake
pkgs.which
pkgs.pkg-config
pkgs.ncurses.dev
pkgs.rsync
pkgs.bc
pkgs.unzip
pkgs.cpio
pkgs.wget
pkgs.git
pkgs.subversion
pkgs.gnused
pkgs.perl
pkgs.flock
pkgs.bash
pkgs.gnugrep
pkgs.coreutils-full
pkgs.binutils
pkgs.gcc
pkgs.gnupatch
pkgs.gzip
pkgs.bzip2
pkgs.gnutar
pkgs.cacert
pkgs.python3Full
pkgs.lzma
pkgs.gdbm
pkgs.readline
];
text = ''
mkdir -p "$PWD/.buildroot"
BR2_DL_DIR="$PWD/.buildroot/dl" ${pkgs.gnumake}/bin/make O="$PWD/.buildroot" -C "${buildroot}" "$@"
'';
};
buildrootFHSEnv = (pkgs.buildFHSEnv {
name = "buildrootFHSEnv";
targetPkgs = pkgs: ([
pkgs.file
]);
runScript = "${buildrootMakeCommand}/bin/buildrootMakeCommand";
});
default = buildrootFHSEnv;
};
apps = rec {
buildrootMakeCommand = flake-utils.lib.mkApp { drv = self.packages.${system}.buildrootMakeCommand; };
buildrootFHSEnv = flake-utils.lib.mkApp { drv = self.packages.${system}.buildrootFHSEnv; };
default = buildrootFHSEnv;
};
devShells = {
default = pkgs.mkShell {
buildInputs = [
pkgs.nixpkgs-fmt
];
};
};
}
);
}