diff options
Diffstat (limited to 'nixpkgs/pkgs/tools/security/sbsigntool')
-rw-r--r-- | nixpkgs/pkgs/tools/security/sbsigntool/autoconf.patch | 29 | ||||
-rw-r--r-- | nixpkgs/pkgs/tools/security/sbsigntool/default.nix | 53 |
2 files changed, 82 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/security/sbsigntool/autoconf.patch b/nixpkgs/pkgs/tools/security/sbsigntool/autoconf.patch new file mode 100644 index 000000000000..f436a73bca72 --- /dev/null +++ b/nixpkgs/pkgs/tools/security/sbsigntool/autoconf.patch @@ -0,0 +1,29 @@ +--- sbsigntools/configure.ac 2018-09-25 10:30:00.878766256 -0500 ++++ configure.ac.new 2018-09-25 10:34:56.231277375 -0500 +@@ -71,15 +71,16 @@ + # no consistent view of where gnu-efi should dump the efi stuff, so find it + ## + for path in /lib /lib64 /usr/lib /usr/lib64 /usr/lib32 /lib/efi /lib64/efi /usr/lib/efi /usr/lib64/efi; do +- if test -e $path/crt0-efi-$EFI_ARCH.o; then +- CRTPATH=$path ++ if test -e @@NIX_GNUEFI@@/$path/crt0-efi-$EFI_ARCH.o; then ++ CRTPATH=@@NIX_GNUEFI@@/$path ++ break + fi + done + if test -z "$CRTPATH"; then + AC_MSG_ERROR([cannot find the gnu-efi crt path]) + fi + +-EFI_CPPFLAGS="-I/usr/include/efi -I/usr/include/efi/$EFI_ARCH \ ++EFI_CPPFLAGS="-I@@NIX_GNUEFI@@/include/efi -I@@NIX_GNUEFI@@/include/efi/$EFI_ARCH \ + -DEFI_FUNCTION_WRAPPER" + CPPFLAGS_save="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $EFI_CPPFLAGS" +@@ -90,5 +91,5 @@ + AC_SUBST(CRTPATH, $CRTPATH) + + AC_CONFIG_FILES([Makefile src/Makefile lib/ccan/Makefile] +- [docs/Makefile tests/Makefile]) ++ [docs/Makefile]) + AC_OUTPUT diff --git a/nixpkgs/pkgs/tools/security/sbsigntool/default.nix b/nixpkgs/pkgs/tools/security/sbsigntool/default.nix new file mode 100644 index 000000000000..7a0bb37d4a4c --- /dev/null +++ b/nixpkgs/pkgs/tools/security/sbsigntool/default.nix @@ -0,0 +1,53 @@ +{ lib, stdenv +, fetchgit, autoconf, automake, pkg-config, help2man +, openssl, libuuid, gnu-efi, libbfd +}: + +stdenv.mkDerivation { + pname = "sbsigntool"; + version = "0.9.1"; + + src = fetchgit { + url = "https://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git"; + rev = "v0.9.1"; + sha256 = "098gxmhjn8acxjw5bq59wq4xhgkpx1xn8kjvxwdzpqkwq9ivrsbp"; + }; + + patches = [ ./autoconf.patch ]; + + prePatch = "patchShebangs ."; + + nativeBuildInputs = [ autoconf automake pkg-config help2man ]; + buildInputs = [ openssl libuuid libbfd gnu-efi ]; + + configurePhase = '' + substituteInPlace configure.ac --replace "@@NIX_GNUEFI@@" "${gnu-efi}" + + lib/ccan.git/tools/create-ccan-tree --build-type=automake lib/ccan "talloc read_write_all build_assert array_size endian" + touch AUTHORS + touch ChangeLog + + echo "SUBDIRS = lib/ccan src docs" >> Makefile.am + + aclocal + autoheader + autoconf + automake --add-missing -Wno-portability + + ./configure --prefix=$out + ''; + + installPhase = '' + mkdir -p $out + make install + ''; + + meta = with lib; { + description = "Tools for maintaining UEFI signature databases"; + homepage = "http://jk.ozlabs.org/docs/sbkeysync-maintaing-uefi-key-databases"; + maintainers = [ maintainers.tstrobel ]; + platforms = [ "x86_64-linux" ]; # Broken on i686 + license = licenses.gpl3; + }; +} + |