nixpkgs/pkgs/tools/system/efivar/default.nix
Sergei Trofimovich 2193026e9f efivar: pull gcc-13 fix pending upstream inclusion
Without the change (and without disabled warnings) the build fails as:

    esl-iter.c:84:1: error: conflicting types for 'esl_iter_next_with_size_correction' due to enum/integer mismatch; have 'esl_iter_status_t(esl_iter *, efi_guid_t *, efi_guid_t *, uint8_t **, size_t *, _Bool)' {aka 'enum esl_iter_status(esl_iter *, efi_guid_t *, efi_guid_t *, unsigned char **, long unsigned int *, _Bool)'} [-Werror=enum-int-mismatch]
       84 | esl_iter_next_with_size_correction(esl_iter *iter, efi_guid_t *type,
          | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from efisec.h:25,
                     from esl-iter.c:7:
    esl-iter.h:61:12: note: previous declaration of 'esl_iter_next_with_size_correction' with type 'int(esl_iter *, efi
    *, efi_guid_t *, uint8_t **, size_t *, _Bool)' {aka 'int(esl_iter *, efi_guid_t *, efi_guid_t *, unsigned char **, long unsigned int *, _Bool)'}
       61 | extern int esl_iter_next_with_size_correction(esl_iter *iter, efi_guid_t *type,
          |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2024-01-19 22:55:21 +00:00

60 lines
1.9 KiB
Nix

{ lib, stdenv, buildPackages, fetchFromGitHub, fetchpatch, pkg-config, popt, mandoc }:
stdenv.mkDerivation rec {
pname = "efivar";
version = "38";
outputs = [ "bin" "out" "dev" "man" ];
src = fetchFromGitHub {
owner = "rhinstaller";
repo = "efivar";
rev = version;
hash = "sha256-A38BKGMK3Vo+85wzgxmzTjzZXtpcY9OpbZaONWnMYNk=";
};
patches = [
(fetchpatch {
url = "https://github.com/rhboot/efivar/commit/15622b7e5761f3dde3f0e42081380b2b41639a48.patch";
sha256 = "sha256-SjZXj0hA2eQu2MfBoNjFPtd2DMYadtL7ZqwjKSf2cmI=";
})
# src/Makefile: build util.c separately for makeguids
# util.c needs to be built twice when cross-compiling
(fetchpatch {
url = "https://github.com/rhboot/efivar/commit/ca48d3964d26f5e3b38d73655f19b1836b16bd2d.patch";
hash = "sha256-DkNFIK4i7Eypyf2UeK7qHW36N2FSVRJ2rnOVLriWi5c=";
})
(fetchpatch {
name = "musl-backport.patch";
url = "https://github.com/rhboot/efivar/commit/cece3ffd5be2f8641eb694513f2b73e5eb97ffd3.patch";
sha256 = "7/E0gboU0A45/BY6jGPLuvds6qKtNjzpgKgdNTaVaZQ=";
})
# Fix build against gcc-13: https://github.com/rhboot/efivar/pull/242
(fetchpatch {
name = "gcc-13.patch";
url = "https://github.com/rhboot/efivar/commit/52fece47d4f3ebd588bd85598bfc7a0142365f7e.patch";
hash = "sha256-tOmxbY7kD6kzbBZ2RhQ5gCCpHtu+2gRNa7VUAWdCKu0=";
})
];
nativeBuildInputs = [ pkg-config mandoc ];
buildInputs = [ popt ];
depsBuildBuild = [ buildPackages.stdenv.cc ];
makeFlags = [
"prefix=$(out)"
"libdir=$(out)/lib"
"bindir=$(bin)/bin"
"mandir=$(man)/share/man"
"includedir=$(dev)/include"
"PCDIR=$(dev)/lib/pkgconfig"
];
meta = with lib; {
description = "Tools and library to manipulate EFI variables";
homepage = "https://github.com/rhboot/efivar";
platforms = platforms.linux;
license = licenses.lgpl21Only;
};
}