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:
Rouven Czerwinski 2020-12-13 06:19:08 +01:00 committed by Andreas Rammhold
parent af2ab76515
commit 7a6203fffc
2 changed files with 101 additions and 0 deletions

View 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"
];
};
}

View file

@ -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 {