{ 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 ]; }; }; } ); }