summary refs log tree commit diff
path: root/pkgs/os-specific/linux
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2018-02-23 17:22:47 +0100
committerGitHub <noreply@github.com>2018-02-23 17:22:47 +0100
commit3b512ca185edb4f2462000d5ee9b0eb72425db24 (patch)
tree028528e060a64c4fe6b08a49d258d2a320fa690c /pkgs/os-specific/linux
parent36b0efc12f43da365b8d24db8f6c331edb8c2df2 (diff)
parentd4075700d65b08279ae623a53128cc3c90d41849 (diff)
downloadnixpkgs-3b512ca185edb4f2462000d5ee9b0eb72425db24.tar
nixpkgs-3b512ca185edb4f2462000d5ee9b0eb72425db24.tar.gz
nixpkgs-3b512ca185edb4f2462000d5ee9b0eb72425db24.tar.bz2
nixpkgs-3b512ca185edb4f2462000d5ee9b0eb72425db24.tar.lz
nixpkgs-3b512ca185edb4f2462000d5ee9b0eb72425db24.tar.xz
nixpkgs-3b512ca185edb4f2462000d5ee9b0eb72425db24.tar.zst
nixpkgs-3b512ca185edb4f2462000d5ee9b0eb72425db24.zip
Merge pull request #35065 from jtojnar/fwupd-1.0.5
fwupd: 1.0.5 update & cleanups
Diffstat (limited to 'pkgs/os-specific/linux')
-rw-r--r--pkgs/os-specific/linux/firmware/fwupd/default.nix35
-rw-r--r--pkgs/os-specific/linux/firmware/fwupdate/default.nix99
-rw-r--r--pkgs/os-specific/linux/firmware/fwupdate/do-not-create-sharedstatedir.patch10
-rw-r--r--pkgs/os-specific/linux/firmware/fwupdate/fix-paths.patch116
-rw-r--r--pkgs/os-specific/linux/libsmbios/default.nix25
5 files changed, 219 insertions, 66 deletions
diff --git a/pkgs/os-specific/linux/firmware/fwupd/default.nix b/pkgs/os-specific/linux/firmware/fwupd/default.nix
index 858f1448dfa..aad4f5f61df 100644
--- a/pkgs/os-specific/linux/firmware/fwupd/default.nix
+++ b/pkgs/os-specific/linux/firmware/fwupd/default.nix
@@ -6,14 +6,15 @@
 , shared_mime_info, umockdev
 }:
 let
-  version = "1.0.4";
+  # Updating? Keep $out/etc synchronized with passthru.filesInstalledToEtc
+  version = "1.0.5";
   python = python3.withPackages (p: with p; [ pygobject3 pycairo pillow ]);
   installedTestsPython = python3.withPackages (p: with p; [ pygobject3 requests ]);
 in stdenv.mkDerivation {
   name = "fwupd-${version}";
   src = fetchurl {
     url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz";
-    sha256 = "1n4d6fw3ffg051072hbxn106s52x2wlh5dh2kxwdfjsb5kh03ra3";
+    sha256 = "0wm195vkf6x1kg1dz0sbfwpdcn9f6638l7vyzplcfrb3v07pqxpq";
   };
 
   outputs = [ "out" "devdoc" "man" "installedTests" ];
@@ -31,20 +32,9 @@ in stdenv.mkDerivation {
 
   patches = [
     ./fix-missing-deps.patch
-    # https://github.com/hughsie/fwupd/issues/403
     (fetchpatch {
-      url = https://github.com/hughsie/fwupd/commit/bd6082574989e4f48b66c7270bb408d439b77a06.patch;
-      sha256 = "17pixyizkmn6wlsjmr1wwya17ivn770hdv9mp769vifxinya8w9y";
-    })
-    # drop docbook2man
-    (fetchpatch {
-      url = https://github.com/hughsie/fwupd/commit/2c43d3e6e65868b66a9a64a76123697e259ec7c2.patch;
-      sha256 = "0vjv7jnai0g96frlipk2sc59pj3mhq9di01hajycjv7y5v6qqrmc";
-    })
-    # https://github.com/hughsie/fwupd/issues/405
-    (fetchpatch {
-      url = https://github.com/hughsie/fwupd/pull/407.patch;
-      sha256 = "1dxhqps12x7bz0s974xk5hfpk4nwn1gs29vl0dfi9j54wy18f688";
+      url = https://github.com/hughsie/fwupd/commit/767210e4b1401d5d5bb7ac1e7c052a60b6529d88.patch;
+      sha256 = "00adfabxpgdg74jx7i6jihhh8njjk2r7v3fxqs4scj3vn06k5fmw";
     })
   ];
 
@@ -77,7 +67,20 @@ in stdenv.mkDerivation {
       --prefix GI_TYPELIB_PATH : "$out/lib/girepository-1.0:${libsoup}/lib/girepository-1.0"
   '';
 
-  enableParallelBuilding = true;
+  passthru = {
+    filesInstalledToEtc = [
+      "fwupd/remotes.d/fwupd.conf"
+      "fwupd/remotes.d/lvfs-testing.conf"
+      "fwupd/remotes.d/lvfs.conf"
+      "fwupd/remotes.d/vendor.conf"
+      "pki/fwupd/GPG-KEY-Hughski-Limited"
+      "pki/fwupd/GPG-KEY-Linux-Vendor-Firmware-Service"
+      "pki/fwupd/LVFS-CA.pem"
+      "pki/fwupd-metadata/GPG-KEY-Linux-Vendor-Firmware-Service"
+      "pki/fwupd-metadata/LVFS-CA.pem"
+    ];
+  };
+
   meta = with stdenv.lib; {
     homepage = https://fwupd.org/;
     maintainers = with maintainers; [];
diff --git a/pkgs/os-specific/linux/firmware/fwupdate/default.nix b/pkgs/os-specific/linux/firmware/fwupdate/default.nix
index f2bb9bddd57..fd0d222eaac 100644
--- a/pkgs/os-specific/linux/firmware/fwupdate/default.nix
+++ b/pkgs/os-specific/linux/firmware/fwupdate/default.nix
@@ -1,37 +1,62 @@
-{ 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;
-        };
-    }
+{ efivar, fetchurl, gettext, gnu-efi, libsmbios, pkgconfig, popt, stdenv }:
+let
+  version = "10";
+in stdenv.mkDerivation {
+  name = "fwupdate-${version}";
+  src = fetchurl {
+    url = "https://github.com/rhinstaller/fwupdate/releases/download/${version}/fwupdate-${version}.tar.bz2";
+    sha256 = "0fpk3q0msq2l0bs2mvk0cqp8jbwnmi17ggc81r4v96h4jxh2rx3k";
+  };
+
+  patches = [
+    # https://github.com/rhboot/fwupdate/pull/99
+    ./fix-paths.patch
+    ./do-not-create-sharedstatedir.patch
+  ];
+
+  NIX_CFLAGS_COMPILE = [ "-I${gnu-efi}/include/efi" ];
+
+  # TODO: Just apply the disable to the efi subdir
+  hardeningDisable = [ "stackprotector" ];
+
+  makeFlags = [
+    "EFIDIR=nixos"
+    "prefix=$(out)"
+    "LIBDIR=$(out)/lib"
+    "GNUEFIDIR=${gnu-efi}/lib"
+    "ESPMOUNTPOINT=$(out)/boot"
+  ];
+
+  nativeBuildInputs = [
+    pkgconfig
+    gettext
+  ];
+
+  buildInputs = [
+    gnu-efi
+    libsmbios
+    popt
+  ];
+
+  propagatedBuildInputs = [
+    efivar
+  ];
+
+  # TODO: fix wrt cross-compilation
+  preConfigure = ''
+    arch=$(cc -dumpmachine | cut -f1 -d- | sed 's,i[3456789]86,ia32,' )
+    export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${gnu-efi}/include/efi/$arch"
+  '';
+
+  postInstall = ''
+    rm -rf $out/src
+    rm -rf $out/lib/debug
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Tools for using the ESRT and UpdateCapsule() to apply firmware updates";
+    maintainers = with maintainers; [ ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/firmware/fwupdate/do-not-create-sharedstatedir.patch b/pkgs/os-specific/linux/firmware/fwupdate/do-not-create-sharedstatedir.patch
new file mode 100644
index 00000000000..b8588ef2b11
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/fwupdate/do-not-create-sharedstatedir.patch
@@ -0,0 +1,10 @@
+--- a/linux/Makefile
++++ b/linux/Makefile
+@@ -131,7 +131,6 @@
+ 		ln -fs $(x) $(patsubst %.so.1.$(VERSION),%.so.1,$(DESTDIR)$(libdir)/$(x)) ;\
+ 		ln -fs $(x) $(patsubst %.so.1.$(VERSION),%.so,$(DESTDIR)$(libdir)/$(x)) ;\
+ 		)
+-	$(INSTALL) -d -m 755 $(DESTDIR)$(sharedstatedir)/fwupdate/
+ 	$(INSTALL) -d -m 755 $(DESTDIR)$(libexecdir)/fwupdate/
+ 	$(INSTALL) -m 755 cleanup $(DESTDIR)$(libexecdir)/fwupdate/cleanup
+ 	$(INSTALL) -d -m 755 $(DESTDIR)$(libdatadir)/systemd/system
diff --git a/pkgs/os-specific/linux/firmware/fwupdate/fix-paths.patch b/pkgs/os-specific/linux/firmware/fwupdate/fix-paths.patch
new file mode 100644
index 00000000000..b01dfa355ef
--- /dev/null
+++ b/pkgs/os-specific/linux/firmware/fwupdate/fix-paths.patch
@@ -0,0 +1,116 @@
+--- a/Make.defaults
++++ b/Make.defaults
+@@ -18,19 +18,20 @@
+ ABIDIFF		:= abidiff
+ ABIDW		:= abidw
+ prefix		?= /usr/
+-prefix		:= $(abspath $(prefix))/
++prefix		:= $(abspath $(prefix))
++exec_prefix		?= $(prefix)
+ ARCH		= $(shell $(CC) -dumpmachine | cut -f1 -d- | sed s,i[3456789]86,ia32,)
+ ifeq ($(ARCH),x86_64)
+-  LIBDIR	?= $(prefix)lib64
++  LIBDIR	?= $(exec_prefix)/lib64
+ endif
+ ifeq ($(ARCH),ia32)
+-  LIBDIR	?= $(prefix)lib
++  LIBDIR	?= $(exec_prefix)/lib
+ endif
+ ifeq ($(ARCH),aarch64)
+-  LIBDIR	?= $(prefix)lib64
++  LIBDIR	?= $(exec_prefix)/lib64
+ endif
+ ifeq ($(ARCH),arm)
+-  LIBDIR	?= $(prefix)lib
++  LIBDIR	?= $(exec_prefix)/lib
+ endif
+ LIBDIR		?= unknown
+ ifeq ($(LIBDIR),unknown)
+@@ -45,13 +46,13 @@
+ GNUEFIDIR	?= $(LIBDIR)/gnuefi
+ libdir		?= $(LIBDIR)
+ pcdir		?= $(libdir)/pkgconfig
+-mandir		?= $(prefix)share/man
+-includedir	?= $(prefix)include
+-bindir		?= $(prefix)bin
+-datadir 	?= $(prefix)share
++mandir		?= $(prefix)/share/man
++includedir	?= $(prefix)/include
++bindir		?= $(exec_prefix)/bin
++datadir 	?= $(prefix)/share
+ localedir	?= $(datadir)/locale
+-libexecdir	?= $(prefix)libexec
+-libdatadir	?= $(prefix)lib
++libexecdir	?= $(exec_prefix)/libexec
++libdatadir	?= $(exec_prefix)/lib
+ sharedstatedir	?= /var/lib
+ 
+ EFIDIR		?= $(shell x=$$(which --skip-alias --skip-functions git 2>/dev/null) ; [ -n "$$x" ] && git config --get fwupdate.efidir)
+@@ -63,8 +64,8 @@
+ 	ESPMOUNTPOINT = "/boot/efi"
+ endif
+ 
+-DEBUGINFO	?= $(prefix)lib/debug
+-DEBUGSOURCE	?= $(prefix)src/debug
++DEBUGINFO	?= $(exec_prefix)/lib/debug
++DEBUGSOURCE	?= $(prefix)/src/debug
+ TARGETDIR	?= $(ESPMOUNTPOINT)/EFI/$(EFIDIR)
+ 
+ .PHONY: check_efidir_error
+--- a/linux/Makefile
++++ b/linux/Makefile
+@@ -93,16 +93,19 @@
+ 	sed -e "s,@@VERSION@@,$(VERSION),g" \
+ 		-e "s,@@FWUP_MAJOR_VERSION@@,$(MAJOR_VERSION),g" \
+ 		-e "s,@@FWUP_MINOR_VERSION@@,$(MINOR_VERSION),g" \
++		-e "s,@@PREFIX@@,$(prefix),g" \
++		-e "s,@@EXEC_PREFIX@@,$(exec_prefix),g" \
+ 		-e "s,@@SHAREDSTATEDIR@@,$(sharedstatedir),g" \
+ 		-e "s,@@ESPMOUNTPOINT@@,$(ESPMOUNTPOINT),g" \
+ 		-e "s,@@EFIDIR@@,$(EFIDIR),g" \
+ 		-e "s,@@LIBDIR@@,$(libdir),g" \
+ 		-e "s,@@LIBEXECDIR@@,$(libexecdir),g" \
++		-e "s,@@INCLUDEDIR@@,$(includedir),g" \
+ 		$< > $@
+ 
+ tester : tester.c
+-	$(CC) -Wall -Werror -ggdb -L. -I./include -I/usr/include/efivar \
+-		-lefivar -lfwup -o $@ $^
++	$(CC) -Wall -Werror -ggdb -L. -I./include $(shell $(PKG_CONFIG) --cflags efivar) \
++		$(shell $(PKG_CONFIG) --libs efivar) -lfwup -o $@ $^
+ 
+ test : tester
+ 	LD_LIBRARY_PATH=$(shell pwd) ./tester
+@@ -134,6 +137,6 @@
+ 	$(INSTALL) -d -m 755 $(DESTDIR)$(libdatadir)/systemd/system
+ 	$(INSTALL) -m 644 cleanup.service \
+ 		$(DESTDIR)$(libdatadir)/systemd/system/fwupdate-cleanup.service
+-	$(INSTALL) -d -m 755 $(DESTDIR)/usr/share/bash-completion/completions/
++	$(INSTALL) -d -m 755 $(DESTDIR)$(datadir)/bash-completion/completions/
+ 	$(INSTALL) -m 755 $(VPATH)/bash-completion \
+-		$(DESTDIR)/usr/share/bash-completion/completions/fwupdate
++		$(DESTDIR)$(datadir)/bash-completion/completions/fwupdate
+--- a/linux/fwup.pc.in
++++ b/linux/fwup.pc.in
+@@ -1,7 +1,7 @@
+-prefix=/usr
+-exec_prefix=/usr
++prefix=@@PREFIX@@
++exec_prefix=@@EXEC_PREFIX@@
+ libdir=@@LIBDIR@@
+-includedir=/usr/include
++includedir=@@INCLUDEDIR@@
+ 
+ Name: fwup
+ Description: Library for deployment of UEFI firmware updates.
+--- a/linux/libfwup.c
++++ b/linux/libfwup.c
+@@ -35,7 +35,7 @@
+ 
+ #include <dell-wmi-smi.h>
+ #ifdef FWUPDATE_HAVE_LIBSMBIOS__
+-#include </usr/include/smbios_c/token.h>
++#include <smbios_c/token.h>
+ #include <smbios_c/smi.h>
+ #endif
+ 
diff --git a/pkgs/os-specific/linux/libsmbios/default.nix b/pkgs/os-specific/linux/libsmbios/default.nix
index 5d3e0dc8c97..62898675f2b 100644
--- a/pkgs/os-specific/linux/libsmbios/default.nix
+++ b/pkgs/os-specific/linux/libsmbios/default.nix
@@ -1,38 +1,37 @@
-{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, libtool, gettext
+{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook, help2man, gettext
 , libxml2, perl, doxygen }:
 
 
 stdenv.mkDerivation rec {
   name = "libsmbios-${version}";
-  version = "2.3.3";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "dell";
     repo = "libsmbios";
     rev = "v${version}";
-    sha256 = "1cl5nb6qk8ki87hwqf9n1dd9nlhkjnlpdxlhzvm82za16gs7apkl";
+    sha256 = "158w5fz777is7nr5yhpr69b17nn6i1pavycxq1q9899frrpkzbsc";
   };
 
-  nativeBuildInputs = [ autoreconfHook doxygen gettext libtool perl pkgconfig ];
-  buildInputs = [ libxml2 ];
+  nativeBuildInputs = [ autoreconfHook doxygen gettext libxml2 help2man perl pkgconfig ];
 
   configureFlags = [ "--disable-python" "--disable-graphviz" ];
 
   enableParallelBuilding = true;
 
-  postInstall =
-    ''
-      mkdir -p $out/include
-      cp -a src/include/smbios_c $out/include/
-      cp -a out/public-include/smbios_c $out/include/
-    '';
+  postInstall = ''
+    mkdir -p $out/include
+    cp -a src/include/smbios_c $out/include/
+    cp -a out/public-include/smbios_c $out/include/
+  '';
 
   preFixup = ''rm -rf "$(pwd)" ''; # Hack to avoid TMPDIR in RPATHs
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = https://github.com/dell/libsmbios;
     description = "A library to obtain BIOS information";
-    license = with stdenv.lib.licenses; [ osl21 gpl2Plus ];
+    license = with licenses; [ osl21 gpl2Plus ];
+    maintainers = with maintainers; [ ];
     platforms = [ "i686-linux" "x86_64-linux" ];
   };
 }