diff options
Diffstat (limited to 'pkgs/os-specific/linux/firmware/fwupd/default.nix')
-rw-r--r-- | pkgs/os-specific/linux/firmware/fwupd/default.nix | 37 |
1 files changed, 26 insertions, 11 deletions
diff --git a/pkgs/os-specific/linux/firmware/fwupd/default.nix b/pkgs/os-specific/linux/firmware/fwupd/default.nix index de0a1e2ee0d7..cf6e2bf60407 100644 --- a/pkgs/os-specific/linux/firmware/fwupd/default.nix +++ b/pkgs/os-specific/linux/firmware/fwupd/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, gtk-doc, pkgconfig, gobject-introspection, intltool +{ stdenv, fetchurl, substituteAll, gtk-doc, pkgconfig, gobject-introspection, intltool , libgudev, polkit, libxmlb, gusb, sqlite, libarchive, glib-networking , libsoup, help2man, gpgme, libxslt, elfutils, libsmbios, efivar, glibcLocales , gnu-efi, libyaml, valgrind, meson, libuuid, colord, docbook_xml_dtd_43, docbook_xsl @@ -6,20 +6,23 @@ , shared-mime-info, umockdev, vala, makeFontsConf, freefont_ttf , cairo, freetype, fontconfig, pango }: + +# Updating? Keep $out/etc synchronized with passthru.filesInstalledToEtc + let - # Updating? Keep $out/etc synchronized with passthru.filesInstalledToEtc - version = "1.2.1"; 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}"; +in stdenv.mkDerivation rec { + pname = "fwupd"; + version = "1.2.3"; + src = fetchurl { url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz"; - sha256 = "126b3lsh4gkyajsqm2c8l6wqr4dd7m26krz2527khmlps0lxdhg1"; + sha256 = "11qpgincndahq96rbm2kgcy9kw5n9cmbbilsrqcqcyk7mvv464sl"; }; outputs = [ "out" "lib" "dev" "devdoc" "man" "installedTests" ]; @@ -39,15 +42,27 @@ in stdenv.mkDerivation { patches = [ ./fix-paths.patch ./add-option-for-installation-sysconfdir.patch + + # installed tests are installed to different output + # we also cannot have fwupd-tests.conf in $out/etc since it would form a cycle + (substituteAll { + src = ./installed-tests-path.patch; + # needs a different set of modules than po/make-images + inherit installedTestsPython; + }) ]; postPatch = '' - # needs a different set of modules than po/make-images - escapedInterpreterLine=$(echo "${installedTestsPython}/bin/python3" | sed 's|\\|\\\\|g') - sed -i -e "1 s|.*|#\!$escapedInterpreterLine|" data/installed-tests/hardware.py - patchShebangs . - substituteInPlace data/installed-tests/fwupdmgr.test.in --subst-var-by installedtestsdir "$installedTests/share/installed-tests/fwupd" + + # we cannot use placeholder in substituteAll + # https://github.com/NixOS/nix/issues/1846 + substituteInPlace data/installed-tests/meson.build --subst-var installedTests + + # install plug-ins to out, they are not really part of the library + substituteInPlace meson.build \ + --replace "plugin_dir = join_paths(libdir, 'fwupd-plugins-3')" \ + "plugin_dir = join_paths('${placeholder "out"}', 'fwupd_plugins-3')" ''; # /etc/os-release not available in sandbox |