From 08547ff642c91deb63d7aa1f26664a287694cbae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9-Patrick=20Bubel?= Date: Sat, 2 Jun 2018 17:47:34 +0200 Subject: [PATCH 1/2] fwupd: 1.0.5 -> 1.1.0 We override the ESP mount point in the config file /etc/fwupd/uefi.conf (available since version 1.0.6), as it is set to a path in the nix store during build time. Tests are disabled as it needs /etc/os-release, which is not available when building with sandboxing enabled. --- nixos/modules/services/hardware/fwupd.nix | 7 +++ .../linux/firmware/fwupd/default.nix | 48 ++++++++++++++----- ...fix-missing-deps.patch => fix-paths.patch} | 25 ++++------ 3 files changed, 50 insertions(+), 30 deletions(-) rename pkgs/os-specific/linux/firmware/fwupd/{fix-missing-deps.patch => fix-paths.patch} (84%) diff --git a/nixos/modules/services/hardware/fwupd.nix b/nixos/modules/services/hardware/fwupd.nix index d97d690920a6..7743f81fd622 100644 --- a/nixos/modules/services/hardware/fwupd.nix +++ b/nixos/modules/services/hardware/fwupd.nix @@ -71,6 +71,13 @@ in { BlacklistPlugins=${lib.concatStringsSep ";" cfg.blacklistPlugins} ''; }; + "fwupd/uefi.conf" = { + source = pkgs.writeText "uefi.conf" '' + [uefi] + OverrideESPMountPoint=${config.boot.loader.efi.efiSysMountPoint} + ''; + }; + } // originalEtc // extraTrustedKeys; services.dbus.packages = [ pkgs.fwupd ]; diff --git a/pkgs/os-specific/linux/firmware/fwupd/default.nix b/pkgs/os-specific/linux/firmware/fwupd/default.nix index 646c18860c5d..fec1b3ed6f04 100644 --- a/pkgs/os-specific/linux/firmware/fwupd/default.nix +++ b/pkgs/os-specific/linux/firmware/fwupd/default.nix @@ -1,40 +1,48 @@ { stdenv, fetchurl, fetchpatch, gtk-doc, pkgconfig, gobjectIntrospection, intltool , libgudev, polkit, appstream-glib, gusb, sqlite, libarchive, glib-networking , libsoup, help2man, gpgme, libxslt, elfutils, libsmbios, efivar, glibcLocales -, fwupdate, libyaml, valgrind, meson, libuuid, colord, docbook_xml_dtd_43, docbook_xsl -, ninja, gcab, gnutls, python3, wrapGAppsHook, json-glib -, shared-mime-info, umockdev +, gnu-efi, libyaml, valgrind, meson, libuuid, colord, docbook_xml_dtd_43, docbook_xsl +, ninja, gcab, gnutls, python3, wrapGAppsHook, json-glib, bash-completion +, shared-mime-info, umockdev, vala, makeFontsConf, freefont_ttf }: let # Updating? Keep $out/etc synchronized with passthru.filesInstalledToEtc - version = "1.0.5"; + version = "1.1.0"; python = python3.withPackages (p: with p; [ pygobject3 pycairo pillow ]); installedTestsPython = python3.withPackages (p: with p; [ pygobject3 requests ]); + + fontsConf = makeFontsConf { + fontDirectories = [ freefont_ttf ]; + }; in stdenv.mkDerivation { name = "fwupd-${version}"; src = fetchurl { url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz"; - sha256 = "0wm195vkf6x1kg1dz0sbfwpdcn9f6638l7vyzplcfrb3v07pqxpq"; + sha256 = "0flfpzb0fxgixxddpwak4s63i35kr915pdfq5mfrnxq4bwcj24yd"; }; - outputs = [ "out" "devdoc" "man" "installedTests" ]; + outputs = [ "out" "lib" "dev" "devdoc" "man" "installedTests" ]; nativeBuildInputs = [ meson ninja gtk-doc pkgconfig gobjectIntrospection intltool glibcLocales shared-mime-info - valgrind gcab docbook_xml_dtd_43 docbook_xsl help2man libxslt python wrapGAppsHook + valgrind gcab docbook_xml_dtd_43 docbook_xsl help2man libxslt python wrapGAppsHook vala ]; buildInputs = [ - polkit appstream-glib gusb sqlite libarchive libsoup elfutils libsmbios fwupdate libyaml + polkit appstream-glib gusb sqlite libarchive libsoup elfutils libsmbios gnu-efi libyaml libgudev colord gpgme libuuid gnutls glib-networking efivar json-glib umockdev + bash-completion ]; LC_ALL = "en_US.UTF-8"; # For po/make-images patches = [ - ./fix-missing-deps.patch + ./fix-paths.patch + + # Allow localedir in lib output + # https://github.com/hughsie/fwupd/pull/626 (fetchpatch { - url = https://github.com/hughsie/fwupd/commit/767210e4b1401d5d5bb7ac1e7c052a60b6529d88.patch; - sha256 = "00adfabxpgdg74jx7i6jihhh8njjk2r7v3fxqs4scj3vn06k5fmw"; + url = https://github.com/hughsie/fwupd/commit/9822c387ea13419a0eb2624fcd13d50735cb89f8.patch; + sha256 = "12bk6ga2hvsswpc4gal95l2z5a6gp3vdjq16zm2npligcvf37b6i"; }) ]; @@ -47,7 +55,8 @@ in stdenv.mkDerivation { substituteInPlace data/installed-tests/fwupdmgr.test.in --subst-var-by installedtestsdir "$installedTests/share/installed-tests/fwupd" ''; - doCheck = true; + # /etc/os-release not available in sandbox + # doCheck = true; preFixup = '' gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share") @@ -55,18 +64,29 @@ in stdenv.mkDerivation { mesonFlags = [ "-Dplugin_dummy=true" - "-Dbootdir=/boot" "-Dudevdir=lib/udev" "-Dsystemdunitdir=lib/systemd/system" + "-Defi-libdir=${gnu-efi}/lib" + "-Defi-ldsdir=${gnu-efi}/lib" + "-Defi-includedir=${gnu-efi}/include/efi" "--localstatedir=/var" ]; + # TODO: We need to be able to override the directory flags from meson setup hook + # better – declaring them multiple times might become an error. + preConfigure = '' + mesonFlagsArray+=("--libexecdir=$out/libexec") + ''; + postInstall = '' moveToOutput share/installed-tests "$installedTests" wrapProgram $installedTests/share/installed-tests/fwupd/hardware.py \ --prefix GI_TYPELIB_PATH : "$out/lib/girepository-1.0:${libsoup}/lib/girepository-1.0" ''; + FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file + + # /etc/fwupd/uefi.conf is created by the services.hardware.fwupd NixOS module passthru = { filesInstalledToEtc = [ "fwupd/remotes.d/fwupd.conf" @@ -74,8 +94,10 @@ in stdenv.mkDerivation { "fwupd/remotes.d/lvfs.conf" "fwupd/remotes.d/vendor.conf" "pki/fwupd/GPG-KEY-Hughski-Limited" + "pki/fwupd/GPG-KEY-Linux-Foundation-Metadata" "pki/fwupd/GPG-KEY-Linux-Vendor-Firmware-Service" "pki/fwupd/LVFS-CA.pem" + "pki/fwupd-metadata/GPG-KEY-Linux-Foundation-Metadata" "pki/fwupd-metadata/GPG-KEY-Linux-Vendor-Firmware-Service" "pki/fwupd-metadata/LVFS-CA.pem" ]; diff --git a/pkgs/os-specific/linux/firmware/fwupd/fix-missing-deps.patch b/pkgs/os-specific/linux/firmware/fwupd/fix-paths.patch similarity index 84% rename from pkgs/os-specific/linux/firmware/fwupd/fix-missing-deps.patch rename to pkgs/os-specific/linux/firmware/fwupd/fix-paths.patch index d1d7c06027f9..1cd9eb0e8f17 100644 --- a/pkgs/os-specific/linux/firmware/fwupd/fix-missing-deps.patch +++ b/pkgs/os-specific/linux/firmware/fwupd/fix-paths.patch @@ -6,7 +6,7 @@ -) --- a/data/meson.build +++ b/data/meson.build -@@ -7,16 +7,12 @@ +@@ -8,16 +8,12 @@ subdir('installed-tests') endif @@ -26,8 +26,8 @@ install_data(['metadata.xml'], --- a/data/pki/meson.build +++ b/data/pki/meson.build -@@ -3,13 +3,13 @@ - 'GPG-KEY-Hughski-Limited', +@@ -4,14 +4,14 @@ + 'GPG-KEY-Linux-Foundation-Firmware', 'GPG-KEY-Linux-Vendor-Firmware-Service', ], - install_dir : join_paths(sysconfdir, 'pki', 'fwupd') @@ -35,6 +35,7 @@ ) install_data([ + 'GPG-KEY-Linux-Foundation-Metadata', 'GPG-KEY-Linux-Vendor-Firmware-Service', ], - install_dir : join_paths(sysconfdir, 'pki', 'fwupd-metadata') @@ -42,7 +43,7 @@ ) endif -@@ -17,12 +17,12 @@ +@@ -19,12 +19,12 @@ install_data([ 'LVFS-CA.pem', ], @@ -66,9 +67,9 @@ - install_dir : join_paths(sysconfdir, 'fwupd', 'remotes.d') + install_dir : join_paths(get_option('prefix'), 'etc', 'fwupd', 'remotes.d') ) - endif - -@@ -19,12 +19,12 @@ + i18n.merge_file( + input: 'lvfs.metainfo.xml', +@@ -37,12 +37,12 @@ output : 'fwupd.conf', configuration : con2, install: true, @@ -92,13 +93,3 @@ - echo 'Creating stateful directory' - mkdir -p ${DESTDIR}${LOCALSTATEDIR}/lib/fwupd #fi ---- a/po/make-images.sh -+++ b/po/make-images.sh -@@ -7,6 +7,7 @@ - # - install -m 0755 -d ${MESON_INSTALL_DESTDIR_PREFIX}/share/locale/ - ${MESON_SOURCE_ROOT}/po/make-images "Installing firmware update…" ${MESON_INSTALL_DESTDIR_PREFIX}/share/locale/ ${MESON_SOURCE_ROOT}/po/LINGUAS -+shopt -s nullglob - for x in ${MESON_INSTALL_DESTDIR_PREFIX}/share/locale/*/LC_IMAGES/*.bmp ; do - gzip -f ${x} - done From 82bf0a2cd21f6d180515da0691c3a5ec0b51fc1c Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Tue, 7 Aug 2018 22:06:37 +0200 Subject: [PATCH 2/2] gnome3.gnome-software: enable fwupd --- pkgs/desktops/gnome-3/core/gnome-software/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix index 81d401f8da2e..6172f2165439 100644 --- a/pkgs/desktops/gnome-3/core/gnome-software/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-software/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, substituteAll, pkgconfig, meson, ninja, gettext, gnome3, wrapGAppsHook, packagekit, ostree -, glib, appstream-glib, libsoup, polkit, isocodes, gspell, libxslt, gobjectIntrospection, flatpak +, glib, appstream-glib, libsoup, polkit, isocodes, gspell, libxslt, gobjectIntrospection, flatpak, fwupd , json-glib, libsecret, valgrind-light, docbook_xsl, docbook_xml_dtd_42, gtk-doc, desktop-file-utils }: stdenv.mkDerivation rec { @@ -27,12 +27,11 @@ stdenv.mkDerivation rec { gnome3.gtk glib packagekit appstream-glib libsoup gnome3.gsettings-desktop-schemas gnome3.gnome-desktop gspell json-glib libsecret ostree - polkit flatpak + polkit flatpak fwupd ]; mesonFlags = [ "-Denable-rpm=false" - "-Denable-fwupd=false" "-Denable-oauth=false" "-Denable-ubuntu-reviews=false" "-Denable-gudev=false"