bareboxTools: init at v2020.12.0
This adds the bareboxTools as a package. The buildBarebox function is intentionally modeled like the buildUBoot function, which should allow future expansion to build barebox for NixOS systems. The tools are useful on their own, since they allow flashing of systems via the different USB loader tools shipped in the scripts directory.
This commit is contained in:
parent
af2ab76515
commit
7a6203fffc
96
pkgs/misc/barebox/default.nix
Normal file
96
pkgs/misc/barebox/default.nix
Normal file
@ -0,0 +1,96 @@
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, bison
|
||||
, dtc
|
||||
, flex
|
||||
, libusb1
|
||||
, lzop
|
||||
, openssl
|
||||
, pkgconfig
|
||||
, buildPackages
|
||||
}:
|
||||
|
||||
let
|
||||
buildBarebox = {
|
||||
filesToInstall
|
||||
, installDir ? "$out"
|
||||
, defconfig
|
||||
, extraMeta ? {}
|
||||
, ... } @ args: stdenv.mkDerivation rec {
|
||||
pname = "barebox-${defconfig}";
|
||||
|
||||
version = "2020.12.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://www.barebox.org/download/barebox-${version}.tar.bz2";
|
||||
sha256 = "06vsd95ihaa2nywpqy6k0c7xwk2pzws4yvbp328yd2pfiigachrv";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs scripts
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
bison
|
||||
dtc
|
||||
flex
|
||||
openssl
|
||||
libusb1
|
||||
lzop
|
||||
pkgconfig
|
||||
];
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||
|
||||
hardeningDisable = [ "all" ];
|
||||
|
||||
makeFlags = [
|
||||
"DTC=dtc"
|
||||
"CROSS_COMPILE=${stdenv.cc.targetPrefix}"
|
||||
];
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
|
||||
make ${defconfig}
|
||||
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p ${installDir}
|
||||
cp ${lib.concatStringsSep " " filesToInstall} ${installDir}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.barebox.org";
|
||||
description = "The Swiss Army Knive for bare metal";
|
||||
license = licenses.gpl2;
|
||||
maintainers = with maintainers; [ emantor ];
|
||||
} // extraMeta;
|
||||
} // removeAttrs args [ "extraMeta" ];
|
||||
|
||||
in {
|
||||
inherit buildBarebox;
|
||||
|
||||
bareboxTools = buildBarebox {
|
||||
defconfig = "hosttools_defconfig";
|
||||
installDir = "$out/bin";
|
||||
extraMeta.platforms = lib.platforms.linux;
|
||||
filesToInstall = [
|
||||
"scripts/bareboximd"
|
||||
"scripts/imx/imx-usb-loader"
|
||||
"scripts/omap4_usbboot"
|
||||
"scripts/omap3-usb-loader"
|
||||
"scripts/kwboot"
|
||||
];
|
||||
};
|
||||
}
|
@ -19280,6 +19280,11 @@ in
|
||||
ubootWandboard
|
||||
;
|
||||
|
||||
# Upstream Barebox:
|
||||
inherit (callPackage ../misc/barebox {})
|
||||
buildbarebox
|
||||
bareboxTools;
|
||||
|
||||
uclibc = callPackage ../os-specific/linux/uclibc { };
|
||||
|
||||
uclibcCross = callPackage ../os-specific/linux/uclibc {
|
||||
|
Loading…
Reference in New Issue
Block a user