Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / misc / barebox / default.nix
blobcb77a607e01608e4c4a4cb51d39a9ca0c5f6f94a
1 { stdenv
2 , lib
3 , fetchurl
4 , bison
5 , dtc
6 , flex
7 , libusb1
8 , lzop
9 , openssl
10 , pkg-config
11 , buildPackages
14 let
15   buildBarebox = {
16     filesToInstall
17   , installDir ? "$out"
18   , defconfig
19   , extraMeta ? {}
20   , ... } @ args: stdenv.mkDerivation rec {
21     pname = "barebox-${defconfig}";
23     version = "2020.12.0";
25     src = fetchurl {
26       url = "https://www.barebox.org/download/barebox-${version}.tar.bz2";
27       sha256 = "06vsd95ihaa2nywpqy6k0c7xwk2pzws4yvbp328yd2pfiigachrv";
28     };
30     postPatch = ''
31       patchShebangs scripts
32     '';
34     nativeBuildInputs = [
35       bison
36       dtc
37       flex
38       openssl
39       libusb1
40       lzop
41       pkg-config
42     ];
43     depsBuildBuild = [ buildPackages.stdenv.cc ];
45     hardeningDisable = [ "all" ];
47     makeFlags = [
48       "DTC=dtc"
49       "CROSS_COMPILE=${stdenv.cc.targetPrefix}"
50     ];
52     configurePhase = ''
53       runHook preConfigure
55       make ${defconfig}
57       runHook postConfigure
58     '';
60     installPhase = ''
61       runHook preInstall
63       mkdir -p ${installDir}
64       cp ${lib.concatStringsSep " " filesToInstall} ${installDir}
66       runHook postInstall
67     '';
69     enableParallelBuilding = true;
71     dontStrip = true;
73     meta = with lib; {
74       homepage = "https://www.barebox.org";
75       description = "The Swiss Army Knive for bare metal";
76       license = licenses.gpl2;
77       maintainers = with maintainers; [ emantor ];
78     } // extraMeta;
79   } // removeAttrs args [ "extraMeta" ];
81 in {
82   inherit buildBarebox;
84   bareboxTools = buildBarebox {
85     defconfig = "hosttools_defconfig";
86     installDir = "$out/bin";
87     extraMeta.platforms = lib.platforms.linux;
88     filesToInstall = [
89       "scripts/bareboximd"
90       "scripts/imx/imx-usb-loader"
91       "scripts/omap4_usbboot"
92       "scripts/omap3-usb-loader"
93       "scripts/kwboot"
94     ];
95   };