commit
c7f19d7626
@ -1,18 +1,68 @@
|
|||||||
{ stdenv, fetchurl, substituteAll, gtk-doc, pkgconfig, gobject-introspection, intltool
|
|
||||||
, libgudev, polkit, libxmlb, gusb, sqlite, libarchive, glib-networking
|
|
||||||
, libsoup, help2man, gpgme, libxslt, elfutils, libsmbios, efivar, 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
|
|
||||||
, cairo, freetype, fontconfig, pango
|
|
||||||
, bubblewrap, efibootmgr, flashrom, tpm2-tools
|
|
||||||
}:
|
|
||||||
|
|
||||||
# Updating? Keep $out/etc synchronized with passthru.filesInstalledToEtc
|
# Updating? Keep $out/etc synchronized with passthru.filesInstalledToEtc
|
||||||
|
|
||||||
|
{ stdenv
|
||||||
|
, fetchurl
|
||||||
|
, substituteAll
|
||||||
|
, gtk-doc
|
||||||
|
, pkgconfig
|
||||||
|
, gobject-introspection
|
||||||
|
, intltool
|
||||||
|
, libgudev
|
||||||
|
, polkit
|
||||||
|
, libxmlb
|
||||||
|
, gusb
|
||||||
|
, sqlite
|
||||||
|
, libarchive
|
||||||
|
, glib-networking
|
||||||
|
, libsoup
|
||||||
|
, help2man
|
||||||
|
, gpgme
|
||||||
|
, libxslt
|
||||||
|
, elfutils
|
||||||
|
, libsmbios
|
||||||
|
, efivar
|
||||||
|
, 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
|
||||||
|
, cairo
|
||||||
|
, freetype
|
||||||
|
, fontconfig
|
||||||
|
, pango
|
||||||
|
, bubblewrap
|
||||||
|
, efibootmgr
|
||||||
|
, flashrom
|
||||||
|
, tpm2-tools
|
||||||
|
, nixosTests
|
||||||
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
python = python3.withPackages (p: with p; [ pygobject3 pycairo pillow ]);
|
python = python3.withPackages (p: with p; [
|
||||||
installedTestsPython = python3.withPackages (p: with p; [ pygobject3 requests ]);
|
pygobject3
|
||||||
|
pycairo
|
||||||
|
pillow
|
||||||
|
]);
|
||||||
|
|
||||||
|
installedTestsPython = python3.withPackages (p: with p; [
|
||||||
|
pygobject3
|
||||||
|
requests
|
||||||
|
]);
|
||||||
|
|
||||||
fontsConf = makeFontsConf {
|
fontsConf = makeFontsConf {
|
||||||
fontDirectories = [ freefont_ttf ];
|
fontDirectories = [ freefont_ttf ];
|
||||||
@ -26,30 +76,70 @@ let
|
|||||||
# only redfish for x86_64
|
# only redfish for x86_64
|
||||||
haveRedfish = stdenv.isx86_64;
|
haveRedfish = stdenv.isx86_64;
|
||||||
|
|
||||||
# Currently broken on Aarch64
|
# # Currently broken on Aarch64
|
||||||
haveFlashrom = isx86;
|
# haveFlashrom = isx86;
|
||||||
|
# Experimental in 1.2.10
|
||||||
|
haveFlashrom = false;
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
pname = "fwupd";
|
pname = "fwupd";
|
||||||
version = "1.2.8";
|
version = "1.2.10";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz";
|
url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz";
|
||||||
sha256 = "0qbvq52c0scn1h99i1rf2la6rrhckin6gb02k7l0v3g07mxs20wc";
|
sha256 = "0inngs7i48akm9c7fmdsf9zjif595rkaba69rl76jfwfv8r21vjb";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "lib" "dev" "devdoc" "man" "installedTests" ];
|
outputs = [ "out" "lib" "dev" "devdoc" "man" "installedTests" ];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
meson ninja gtk-doc pkgconfig gobject-introspection intltool shared-mime-info
|
meson
|
||||||
valgrind gcab docbook_xml_dtd_43 docbook_xsl help2man libxslt python wrapGAppsHook vala
|
ninja
|
||||||
|
gtk-doc
|
||||||
|
pkgconfig
|
||||||
|
gobject-introspection
|
||||||
|
intltool
|
||||||
|
shared-mime-info
|
||||||
|
valgrind
|
||||||
|
gcab
|
||||||
|
docbook_xml_dtd_43
|
||||||
|
docbook_xsl
|
||||||
|
help2man
|
||||||
|
libxslt
|
||||||
|
python
|
||||||
|
wrapGAppsHook
|
||||||
|
vala
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
polkit libxmlb gusb sqlite libarchive libsoup elfutils gnu-efi libyaml
|
polkit
|
||||||
libgudev colord gpgme libuuid gnutls glib-networking json-glib umockdev
|
libxmlb
|
||||||
bash-completion cairo freetype fontconfig pango efivar
|
gusb
|
||||||
] ++ stdenv.lib.optionals haveDell [ libsmbios ];
|
sqlite
|
||||||
|
libarchive
|
||||||
|
libsoup
|
||||||
|
elfutils
|
||||||
|
gnu-efi
|
||||||
|
libyaml
|
||||||
|
libgudev
|
||||||
|
colord
|
||||||
|
gpgme
|
||||||
|
libuuid
|
||||||
|
gnutls
|
||||||
|
glib-networking
|
||||||
|
json-glib
|
||||||
|
umockdev
|
||||||
|
bash-completion
|
||||||
|
cairo
|
||||||
|
freetype
|
||||||
|
fontconfig
|
||||||
|
pango
|
||||||
|
efivar
|
||||||
|
] ++ stdenv.lib.optionals haveDell [
|
||||||
|
libsmbios
|
||||||
|
];
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
./fix-paths.patch
|
./fix-paths.patch
|
||||||
@ -65,7 +155,12 @@ in stdenv.mkDerivation rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
patchShebangs .
|
patchShebangs \
|
||||||
|
libfwupd/generate-version-script.py \
|
||||||
|
meson_post_install.sh \
|
||||||
|
po/make-images \
|
||||||
|
po/make-images.sh \
|
||||||
|
po/test-deps
|
||||||
|
|
||||||
# we cannot use placeholder in substituteAll
|
# we cannot use placeholder in substituteAll
|
||||||
# https://github.com/NixOS/nix/issues/1846
|
# https://github.com/NixOS/nix/issues/1846
|
||||||
@ -85,9 +180,12 @@ in stdenv.mkDerivation rec {
|
|||||||
# doCheck = true;
|
# doCheck = true;
|
||||||
|
|
||||||
preFixup = let
|
preFixup = let
|
||||||
binPath = [ efibootmgr bubblewrap tpm2-tools ] ++ stdenv.lib.optional haveFlashrom flashrom;
|
binPath = [
|
||||||
in
|
efibootmgr
|
||||||
''
|
bubblewrap
|
||||||
|
tpm2-tools
|
||||||
|
] ++ stdenv.lib.optional haveFlashrom flashrom;
|
||||||
|
in ''
|
||||||
gappsWrapperArgs+=(
|
gappsWrapperArgs+=(
|
||||||
--prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
|
--prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
|
||||||
# See programs reached with fu_common_find_program_in_path in source
|
# See programs reached with fu_common_find_program_in_path in source
|
||||||
@ -128,6 +226,10 @@ in stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
|
FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
|
||||||
|
|
||||||
|
# error: “PolicyKit files are missing”
|
||||||
|
# https://github.com/NixOS/nixpkgs/pull/67625#issuecomment-525788428
|
||||||
|
PKG_CONFIG_POLKIT_GOBJECT_1_ACTIONDIR = "/run/current-system/sw/share/polkit-1/actions";
|
||||||
|
|
||||||
# TODO: wrapGAppsHook wraps efi capsule even though it is not elf
|
# TODO: wrapGAppsHook wraps efi capsule even though it is not elf
|
||||||
dontWrapGApps = true;
|
dontWrapGApps = true;
|
||||||
# so we need to wrap the executables manually
|
# so we need to wrap the executables manually
|
||||||
@ -157,11 +259,15 @@ in stdenv.mkDerivation rec {
|
|||||||
"pki/fwupd-metadata/GPG-KEY-Linux-Vendor-Firmware-Service"
|
"pki/fwupd-metadata/GPG-KEY-Linux-Vendor-Firmware-Service"
|
||||||
"pki/fwupd-metadata/LVFS-CA.pem"
|
"pki/fwupd-metadata/LVFS-CA.pem"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
tests = {
|
||||||
|
installedTests = nixosTests.fwupd;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
homepage = https://fwupd.org/;
|
homepage = https://fwupd.org/;
|
||||||
maintainers = with maintainers; [];
|
maintainers = with maintainers; [ jtojnar ];
|
||||||
license = [ licenses.gpl2 ];
|
license = [ licenses.gpl2 ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user