diff options
Diffstat (limited to 'nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix')
-rw-r--r-- | nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix | 79 |
1 files changed, 40 insertions, 39 deletions
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix index 272bd6dbe8fc..541bef93a8a3 100644 --- a/nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix +++ b/nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix @@ -3,9 +3,8 @@ { stdenv , lib , fetchurl -, fetchpatch , fetchFromGitHub -, gtk-doc +, gi-docgen , pkg-config , gobject-introspection , gettext @@ -18,7 +17,6 @@ , libarchive , curl , libjcat -, libxslt , elfutils , libsmbios , efivar @@ -26,14 +24,12 @@ , meson , libuuid , colord -, docbook_xml_dtd_43 -, docbook-xsl-nons , ninja , gcab , gnutls , protobufc , python3 -, wrapGAppsHook +, wrapGAppsNoGuiHook , json-glib , bash-completion , shared-mime-info @@ -54,6 +50,8 @@ , modemmanager , libqmi , libmbim +, libcbor +, xz }: let @@ -116,7 +114,7 @@ let self = stdenv.mkDerivation rec { pname = "fwupd"; - version = "1.7.6"; + version = "1.8.3"; # libfwupd goes to lib # daemon, plug-ins and libfwupdplugin go to out @@ -125,7 +123,7 @@ let src = fetchurl { url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz"; - sha256 = "sha256-fr4VFKy2iNJknOzDktuSkJTaPwPPyYqcD6zKuwhJEvo="; + sha256 = "sha256-ciIpd86KhmJRH/o8CIFWb2xFjsjWHSUNlGYRfWEiOOw="; }; patches = [ @@ -140,32 +138,18 @@ let # they are not really part of the library. ./install-fwupdplugin-to-out.patch - # Fix detection of installed tests - # https://github.com/fwupd/fwupd/issues/3880 - (fetchpatch { - url = "https://github.com/fwupd/fwupd/commit/5bc546221331feae9cedc1892219a25d8837955f.patch"; - sha256 = "XcLhcDrB2/MFCXjKAyhftQgvJG4BBkp07geM9eK3q1g="; - }) - # Installed tests are installed to different output # we also cannot have fwupd-tests.conf in $out/etc since it would form a cycle. ./installed-tests-path.patch # EFI capsule is located in fwupd-efi now. ./efi-app-path.patch - - # Drop hard-coded FHS path - # https://github.com/fwupd/fwupd/issues/4360 - (fetchpatch { - url = "https://github.com/fwupd/fwupd/commit/14cc2e7ee471b66ee2ef54741f4bec1f92204620.patch"; - sha256 = "47682oqE66Y6QKPtN2mYpnb2+TIJFqBgsgx60LmC3FM="; - }) ]; nativeBuildInputs = [ meson ninja - gtk-doc + gi-docgen pkg-config gobject-introspection gettext @@ -173,12 +157,9 @@ let valgrind gcab gnutls - docbook_xml_dtd_43 - docbook-xsl-nons - libxslt protobufc # for protoc python - wrapGAppsHook + wrapGAppsNoGuiHook vala ]; @@ -204,16 +185,20 @@ let protobufc modemmanager libmbim + libcbor libqmi + xz # for liblzma. ] ++ lib.optionals haveDell [ libsmbios + ] ++ lib.optionals haveFlashrom [ + flashrom ]; mesonFlags = [ - "-Ddocs=gtkdoc" + "-Ddocs=enabled" "-Dplugin_dummy=true" # We are building the official releases. - "-Dsupported_build=true" + "-Dsupported_build=enabled" # Would dlopen libsoup to preserve compatibility with clients linking against older fwupd. # https://github.com/fwupd/fwupd/commit/173d389fa59d8db152a5b9da7cc1171586639c97 "-Dsoup_session_compat=false" @@ -224,7 +209,9 @@ let "--sysconfdir=/etc" "-Dsysconfdir_install=${placeholder "out"}/etc" "-Defi_os_dir=nixos" - "-Dplugin_modem_manager=true" + "-Dplugin_modem_manager=enabled" + # Requires Meson 0.63 + "-Dgresource_quirks=disabled" # We do not want to place the daemon into lib (cyclic reference) "--libexecdir=${placeholder "out"}/libexec" @@ -232,14 +219,14 @@ let # against libfwupdplugin which is in $out/lib. "-Dc_link_args=-Wl,-rpath,${placeholder "out"}/lib" ] ++ lib.optionals (!haveDell) [ - "-Dplugin_dell=false" - "-Dplugin_synaptics_mst=false" + "-Dplugin_dell=disabled" + "-Dplugin_synaptics_mst=disabled" ] ++ lib.optionals (!haveRedfish) [ - "-Dplugin_redfish=false" - ] ++ lib.optionals haveFlashrom [ - "-Dplugin_flashrom=true" + "-Dplugin_redfish=disabled" + ] ++ lib.optionals (!haveFlashrom) [ + "-Dplugin_flashrom=disabled" ] ++ lib.optionals (!haveMSR) [ - "-Dplugin_msr=false" + "-Dplugin_msr=disabled" ]; # TODO: wrapGAppsHook wraps efi capsule even though it is not ELF @@ -270,10 +257,20 @@ let meson_post_install.sh \ po/test-deps + # This checks a version of a dependency of gi-docgen but gi-docgen is self-contained in Nixpkgs. + echo "Clearing docs/test-deps.py" + test -f docs/test-deps.py + echo > docs/test-deps.py + substituteInPlace data/installed-tests/fwupdmgr-p2p.sh \ --replace "gdbus" ${glib.bin}/bin/gdbus ''; + preBuild = '' + # jcat-tool at buildtime requires a home directory + export HOME="$(mktemp -d)" + ''; + preCheck = '' addToSearchPath XDG_DATA_DIRS "${shared-mime-info}/share" ''; @@ -298,7 +295,7 @@ let efibootmgr bubblewrap tpm2-tools - ] ++ lib.optional haveFlashrom flashrom; + ]; in '' gappsWrapperArgs+=( --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" @@ -307,8 +304,8 @@ let ) ''; - # Since we had to disable wrapGAppsHook, we need to wrap the executables manually. postFixup = '' + # Since we had to disable wrapGAppsHook, we need to wrap the executables manually. find -L "$out/bin" "$out/libexec" -type f -executable -print0 \ | while IFS= read -r -d ''' file; do if [[ "$file" != *.efi ]]; then @@ -316,6 +313,9 @@ let wrapGApp "$file" fi done + + # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back. + moveToOutput "share/doc" "$devdoc" ''; separateDebugInfo = true; @@ -323,7 +323,6 @@ let passthru = { filesInstalledToEtc = [ "fwupd/daemon.conf" - "fwupd/msr.conf" "fwupd/remotes.d/lvfs-testing.conf" "fwupd/remotes.d/lvfs.conf" "fwupd/remotes.d/vendor.conf" @@ -341,6 +340,8 @@ let "fwupd/remotes.d/dell-esrt.conf" ] ++ lib.optionals haveRedfish [ "fwupd/redfish.conf" + ] ++ lib.optionals haveMSR [ + "fwupd/msr.conf" ]; # DisabledPlugins key in fwupd/daemon.conf |