3
0
Fork 0
forked from mirrors/nixpkgs

fwupd: clean up

* reorder attributes to match standard
* do not use package aliases
* add some comments
* fix license (https://github.com/fwupd/fwupd/issues/526)
This commit is contained in:
Jan Tojnar 2020-09-12 13:12:14 +02:00
parent f66d92b585
commit f9fbbd519e
No known key found for this signature in database
GPG key ID: 7FAB2A15F7A607A4

View file

@ -5,7 +5,7 @@
, fetchpatch
, substituteAll
, gtk-doc
, pkgconfig
, pkg-config
, gobject-introspection
, intltool
, libgudev
@ -29,7 +29,7 @@
, libuuid
, colord
, docbook_xml_dtd_43
, docbook_xsl
, docbook-xsl-nons
, ninja
, gcab
, python3
@ -67,10 +67,6 @@ let
requests
]);
fontsConf = makeFontsConf {
fontDirectories = [ freefont_ttf ];
};
isx86 = stdenv.isx86_64 || stdenv.isi686;
# Dell isn't supported on Aarch64
@ -95,28 +91,53 @@ let
pname = "fwupd";
version = "1.4.5";
src = fetchurl {
url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz";
sha256 = "0hpqxwqbbqn440c2swpnc06z8dskisrli4ynsxrzzqyp0dan46xw";
};
# libfwupd goes to lib
# daemon, plug-ins and libfwupdplugin go to out
# CLI programs go to out
outputs = [ "out" "lib" "dev" "devdoc" "man" "installedTests" ];
src = fetchurl {
url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz";
sha256 = "0hpqxwqbbqn440c2swpnc06z8dskisrli4ynsxrzzqyp0dan46xw";
};
patches = [
# Do not try to create useless paths in /var.
./fix-paths.patch
# Allow installing
./add-option-for-installation-sysconfdir.patch
# Install plug-ins and libfwupdplugin to out,
# they are not really part of the library.
./install-fwupdplugin-to-out.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;
})
(fetchpatch {
url = "https://github.com/fwupd/fwupd/commit/3e82beeddac31292c50229e59e2404865edee5ad.patch";
sha256 = "17p9r8qddqkrnhy9bvp9207afh5fcl1whn79nqcp57b4q4c17zgk";
})
];
nativeBuildInputs = [
meson
ninja
gtk-doc
pkgconfig
pkg-config
gobject-introspection
intltool
shared-mime-info
valgrind
gcab
docbook_xml_dtd_43
docbook_xsl
docbook-xsl-nons
help2man
libxslt
python
@ -152,55 +173,6 @@ let
libsmbios
];
patches = [
./fix-paths.patch
./add-option-for-installation-sysconfdir.patch
# Install plug-ins and libfwupdplugin to out,
# they are not really part of the library.
./install-fwupdplugin-to-out.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;
})
(fetchpatch {
url = "https://github.com/fwupd/fwupd/commit/3e82beeddac31292c50229e59e2404865edee5ad.patch";
sha256 = "17p9r8qddqkrnhy9bvp9207afh5fcl1whn79nqcp57b4q4c17zgk";
})
];
postPatch = ''
patchShebangs \
contrib/get-version.py \
contrib/generate-version-script.py \
meson_post_install.sh \
po/make-images \
po/make-images.sh \
po/test-deps
'';
# /etc/os-release not available in sandbox
# doCheck = true;
preFixup = let
binPath = [
efibootmgr
bubblewrap
tpm2-tools
] ++ stdenv.lib.optional haveFlashrom flashrom;
in ''
gappsWrapperArgs+=(
--prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
# See programs reached with fu_common_find_program_in_path in source
--prefix PATH : "${stdenv.lib.makeBinPath binPath}"
)
'';
mesonFlags = [
"-Dgtkdoc=true"
"-Dplugin_dummy=true"
@ -228,20 +200,57 @@ let
"-Dplugin_flashrom=true"
];
FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
# TODO: wrapGAppsHook wraps efi capsule even though it is not ELF
dontWrapGApps = true;
# /etc/os-release not available in sandbox
# doCheck = true;
# Environment variables
# Fontconfig error: Cannot load default config file
FONTCONFIG_FILE =
let
fontsConf = makeFontsConf {
fontDirectories = [ freefont_ttf ];
};
in fontsConf;
# 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
dontWrapGApps = true;
# Phase hooks
postPatch = ''
patchShebangs \
contrib/get-version.py \
contrib/generate-version-script.py \
meson_post_install.sh \
po/make-images \
po/make-images.sh \
po/test-deps
'';
preCheck = ''
addToSearchPath XDG_DATA_DIRS "${shared-mime-info}/share"
'';
# so we need to wrap the executables manually
preFixup = let
binPath = [
efibootmgr
bubblewrap
tpm2-tools
] ++ stdenv.lib.optional haveFlashrom flashrom;
in ''
gappsWrapperArgs+=(
--prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
# See programs reached with fu_common_find_program_in_path in source
--prefix PATH : "${stdenv.lib.makeBinPath binPath}"
)
'';
# Since we had to disable wrapGAppsHook, we need to wrap the executables manually.
postFixup = ''
find -L "$out/bin" "$out/libexec" -type f -executable -print0 \
| while IFS= read -r -d ''' file; do
@ -312,7 +321,7 @@ let
meta = with stdenv.lib; {
homepage = "https://fwupd.org/";
maintainers = with maintainers; [ jtojnar ];
license = [ licenses.gpl2 ];
license = licenses.lgpl21Plus;
platforms = platforms.linux;
};
};