fwupd: fix installed tests

This commit is contained in:
Jan Tojnar
2019-01-28 00:15:00 +01:00
parent 7dd30dd64b
commit dd06999e32
5 changed files with 72 additions and 25 deletions
@@ -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,17 +6,20 @@
, 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.3";
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 = "11qpgincndahq96rbm2kgcy9kw5n9cmbbilsrqcqcyk7mvv464sl";
@@ -39,15 +42,24 @@ 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')"
@@ -106,7 +118,6 @@ in stdenv.mkDerivation {
"fwupd/remotes.d/lvfs-testing.conf"
"fwupd/remotes.d/lvfs.conf"
"fwupd/remotes.d/vendor.conf"
"fwupd/remotes.d/fwupd-tests.conf"
"pki/fwupd/GPG-KEY-Hughski-Limited"
"pki/fwupd/GPG-KEY-Linux-Foundation-Firmware"
"pki/fwupd/GPG-KEY-Linux-Vendor-Firmware-Service"