90 lines
2.6 KiB
Nix
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
|
|
];
|
|
};
|
|
};
|
|
}
|
|
);
|
|
}
|