84 lines
1.9 KiB
Nix
84 lines
1.9 KiB
Nix
# nix-build --expr 'with import <nixpkgs> {}; callPackage ./buildroot.nix {}'
|
|
{
|
|
pkgs ? import <nixpkgs> {},
|
|
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;
|
|
};
|
|
} |