diff options
author | Rouven Czerwinski <rouven@czerwinskis.de> | 2020-12-13 06:19:08 +0100 |
---|---|---|
committer | Andreas Rammhold <andreas@rammhold.de> | 2020-12-14 21:49:37 +0100 |
commit | 7a6203fffc16227e5a0f4477fff050c32ddd27b0 (patch) | |
tree | 97b512a68abf4da122e73d3c7b3f80f340e8784e /pkgs/misc/barebox | |
parent | af2ab765157d623533098ddc97662e27bd568c72 (diff) |
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.
Diffstat (limited to 'pkgs/misc/barebox')
-rw-r--r-- | pkgs/misc/barebox/default.nix | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/pkgs/misc/barebox/default.nix b/pkgs/misc/barebox/default.nix new file mode 100644 index 000000000000..78d4228abb3b --- /dev/null +++ b/pkgs/misc/barebox/default.nix @@ -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" + ]; + }; +} |