# nix-build --expr 'with import {}; callPackage ./buildroot.nix {}' { pkgs ? import {}, packagName ? "buildroot", packageVersion ? "2021.02.7", packageSha256 ? "0kdkar2pbd9k0q4i4a87xnqmsdr7njj6mc8x2avvhh9skw2qrg64", outputFolder ? "$PWD/.buildroot", withXConfig ? false, withGConfig ? false, }: let buildRootPath = "usr/src/${packagName}-${packageVersion}"; package = pkgs.stdenv.mkDerivation rec { name = "${packagName}"; version = "${packageVersion}"; src = pkgs.fetchzip { url = "https://buildroot.org/downloads/buildroot-${packageVersion}.tar.gz"; sha256 = "${packageSha256}"; }; phases = [ "unpackPhase" "installPhase" ]; installPhase = '' mkdir -p $out/${buildRootPath} cp -R . $out/${buildRootPath} ''; }; makeBuildRoot = pkgs.writeShellScriptBin "makeBuildRoot" '' BR2_DL_DIR="${outputFolder}/dl" ${pkgs.gnumake}/bin/make O="${outputFolder}" -C "${package}/${buildRootPath}" $@ ''; makeBuildRootScriptPaths = [ pkgs.gnumake]; qtPaths = if withXConfig then [pkgs.qt5.base] else []; gtkPaths = if withGConfig then [ pkgs.gtk2.dev pkgs.gtkmm2 pkgs.gnome2.libglade pkgs.glib ] else []; in { package = package; makeBuildRoot = { command = makeBuildRoot; scriptPaths = makeBuildRootScriptPaths; paths = makeBuildRootScriptPaths ++ [ 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.file 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 ] ++ qtPaths ++ gtkPaths; }; }