summary refs log tree commit diff
path: root/pkgs/os-specific/linux/firmware/fwupdate/default.nix
blob: f2bb9bddd578e5a08f2b2925a248ab6044400a23 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{ stdenv, fetchurl, gnu-efi, efivar, libsmbios, popt, pkgconfig
, gettext }:
let version = "8"; in
  stdenv.mkDerivation
    { name = "fwupdate-${version}";
      src = fetchurl
        { url = "https://github.com/rhinstaller/fwupdate/releases/download/${version}/fwupdate-${version}.tar.bz2";
          sha256 = "10q8k1kghvbcb5fwcl2smzp8vqdfzimx9dkk0c3hz39py1phy4n8";
        };
      makeFlags =
        [ "EFIDIR=nixos"
          "LIBDIR=$(out)/lib"
          "GNUEFIDIR=${gnu-efi}/lib"
          "TARGETDIR=$(out)/boot/efi/nixos/"
          "prefix=$(out)/"
        ];
  nativeBuildInputs = [ pkgconfig ];
      buildInputs = [ gnu-efi libsmbios popt gettext ];
      propagatedBuildInputs = [ efivar ];
      # TODO: Just apply the disable to the efi subdir
      hardeningDisable = [ "all" ];
      patchPhase = ''
        sed -i 's|/usr/include/smbios_c/token.h|smbios_c/token.h|' \
          linux/libfwup.c
        sed -i 's|/usr/share|$(prefix)share|' linux/Makefile
        sed -i "s|/usr/include|$out/include|" linux/fwup.pc.in
        find . -type f -print0 | xargs -0 sed -i -e 's|/boot/efi|/boot|g' -e 's|/boot/efi/EFI|/boot/EFI|g'
      '';
      configurePhase = ''
        arch=$(cc -dumpmachine | cut -f1 -d- | sed 's,i[3456789]86,ia32,' )
        export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gnu-efi}/include/efi -I${efivar}/include/efivar -I${gnu-efi}/include/efi/$arch"
      '';
      meta =
        { license = [ stdenv.lib.licenses.gpl2 ];
          platforms = stdenv.lib.platforms.linux;
        };
    }