Commit Graph

74 Commits

Author SHA1 Message Date
Mario Limonciello
99832622e1 uefi-capsule: Move EFI binary into a subproject
This will allow distributions to package and distribute the unsigned
EFI binary separately, similar to what has been done for GRUB.
2021-04-23 13:59:10 -05:00
Norbert Kamiński
60e84c617f contrib/qubes: Add Qubes wrapper source and create packages
This patch is adding the fwupd wrapper for Qubes.
The wrapper provides fwupd functionalities for Qubes R4.1.
It creates three packages (two RPMs and one Debian package):
fwupd-qubes-dom0 (RPM)
fwupd-qubes-vm (RPM)
fwupd-qubes-vm-whonix (deb)
More information about the wrapper could be found in the
contrib/qubes/README.md

Signed-off-by: Norbert Kamiński <norbert.kaminski@3mdeb.com>
2021-02-26 06:40:21 +00:00
Richard Hughes
a76de3279b Add a test BLE plugin for a demo 2021-02-22 16:53:41 +01:00
Richard Hughes
124f2295ee trivial: Untie efi_os_dir from the SBAT distro ID
We happily fallback with an unset -Defi_os_dir and it gets confusing explaining
why the EFI dir needs to be set on a non-supported system.

In practice they'll probably have the same eventual value on most supported
distributions.

Fixes https://github.com/fwupd/fwupd/issues/2873
2021-02-12 16:01:00 +00:00
Javier Martinez Canillas
378b00018b uefi-capsule: Add SBAT metadata to the fwupd EFI binary
The Secure Boot Advanced Targeting (SBAT) [0] is a Generation Number Based
Revocation mechanism that is meant to replace the DBX revocation file list.

Binaries must contain a .sbat data section that has a set entries, each of
them consisting of UTF-8 strings as comma separated values. Allow to embed
this information into the fwupd EFI binary at build time.

The SBAT metadata must contain at least two entries. One that defines the
SBAT version used and another one that defines the component generation.

Downstream users can add additional entries if have changes that make them
diverge from the upstream code and potentially add other vulnerabilities.

[0]: https://github.com/rhboot/shim/blob/sbat/SBAT.md
2021-02-10 16:40:59 +00:00
Mario Limonciello
dcd154881a trivial: debian: fix modules-load.d directory
Fixes: #2755
2021-01-13 11:46:07 -06:00
Richard Hughes
ee2e2c3674 uefi: Rename to uefi-capsule
Rename the plugin to make it clearer of the scope.

Based on a patch from Mario Limonciello <mario.limonciello@dell.com>
2021-01-05 15:31:22 +00:00
Mario Limonciello
9547d7a4b3 trivial: debian: only install fwupd-msr.conf if needed
Fix FTBFS on !x86
2020-12-08 10:47:46 -06:00
Mario Limonciello
16566cec64 trivial: debian: switch back to defaults for nvme and redfish
these plugins don't require efivar anymore
2020-11-18 08:21:00 +00:00
Jessica Clarke
646f23edd5 debian: Add quotes around glob 2020-11-16 08:06:48 -06:00
Jessica Clarke
99c37df81c debian: Remove unnecessary ./ use 2020-11-16 08:06:48 -06:00
Jessica Clarke
f6b1ff0409 debian: Avoid looking like a set -e is missing
The exit code for an if is the final command's so single-command if
statements are safe. However, this is rather subtle and could easily be
accidentally overlooked when making future changes. We could add a set
-e to be defensive, but instead let's use the idiomatic way of doing
one-line if statements in shell that always yield the right exit code.
2020-11-16 08:06:48 -06:00
Jessica Clarke
e36ecb42ed debian: Use uniform spacing around semicolons 2020-11-16 08:06:48 -06:00
Jessica Clarke
ae4ee910b9 debian: Fix another dangerous missing set -e 2020-11-16 08:06:48 -06:00
Jessica Clarke
f69931032e debian: Build up CONFARGS list rather than individual variables
This avoids having a silly line length for the dh_auto_configure
invocation.
2020-11-16 08:06:48 -06:00
Jessica Clarke
227e281cf9 debian: Fix another instance of unusual ifeq syntax 2020-11-16 08:06:48 -06:00
Jessica Clarke
474e4135e8 debian: Fix dangerous lack of set -e
Also split the long line whilst here.
2020-11-16 08:06:48 -06:00
Jessica Clarke
8218923985 debian: Check for valgrind in Makefile not shell and don't hard-code path 2020-11-16 08:06:48 -06:00
Jessica Clarke
65b4f61110 debian: Drop pointless dh_shlibdeps override
There's no other mention of DHSLIBS in the entire tree so it'll always
be empty.
2020-11-16 08:06:48 -06:00
Jessica Clarke
4b2d77bbe9 debian: Use if/else rather than overriding default values
This makes the code easier to follow.

Whilst here use DEB_HOST_ARCH_CPU for the ia64 and use the more
conventional syntax.
2020-11-16 08:06:48 -06:00
Jessica Clarke
43d7c50609 debian: Prefer Makefile substitution over shell substitution
This makes the output show what is being run and avoids ugly multi-line
shell commands. It also avoids needlessly polluting the environment.
2020-11-16 08:06:48 -06:00
Jessica Clarke
de55495d95 debian: Check DEB_HOST_ARCH_CPU not DEB_HOST_ARCH for MSR plugin
The plugin is CPU-dependent, not kernel, ABI or libc dependent.

This makes x32 build the plugin again.
2020-11-16 08:06:48 -06:00
Mario Limonciello
e6154b3425 trivial: debian: disable msr plugin on all !x86
Fixes build failure on arm64 and armhf
2020-11-14 00:00:11 -06:00
Mario Limonciello
bd60de12be Add a flag to indicate if packages are supported
Anyone can easily add this, but it makes it clearer that by default hand
build, snap, and flatpak are not checked by anyone.
2020-11-11 14:34:59 -06:00
Mario Limonciello
258177472f trivial: debian/rules: disable flashrom for ia64 2020-09-11 13:58:11 -05:00
Mario Limonciello
c76775641b Revert "trivial: debian: don't fail CI for subprojects"
This reverts commit fc9cb560eb.
2020-08-28 10:56:20 -05:00
Mario Limonciello
fc9cb560eb trivial: debian: don't fail CI for subprojects 2020-08-26 10:14:41 -05:00
Mario Limonciello
82c3e3471d Remove support for UEFI dbx security attribute
This is no longer relevant as fwupd is providing dbxtool now.
2020-08-19 07:38:51 +01:00
Richard Hughes
9a04ce8f29 msr: Add a new plugin to detect the Intel DCI state 2020-07-16 20:13:06 +01:00
Richard Hughes
b9640a28ec uefi-dbx: Add a plugin that analyses the UEFI dbx variable
This will be used for future functionality.
2020-05-07 16:59:36 +01:00
Mario Limonciello
22306055e3 trivial: enable libjcat from Debian & Ubuntu distro builds 2020-04-08 10:32:34 -05:00
Richard Hughes
d5aab65f30 Use Jcat files in firmware archives and for metadata
A Jcat file can be used to store GPG, PKCS-7 and SHA-256 checksums for multiple
files. This allows us to sign a firmware or metadata multiple times (perhaps
by the OEM and also then the LVFS) which further decentralizes the trust model
of the LVFS.

The Jcat format was chosen as the Microsoft catalog format is nonfree and not
documented. We also don't want to modify an existing .cat file created from WU
as this may make it unsuitable to use on Windows.

More information can be found here: https://github.com/hughsie/libjcat
2020-03-23 19:55:12 +00:00
Mario Limonciello
16eea10554 ci: build Debian using libflashrom
The package is now in unstable in the 1.2-4 package.
2020-03-05 17:07:28 -06:00
Mario Limonciello
93d6131d0e trivial: debian: fix build for systems without UEFI
Just dynamically find the binaries in usr/bin rather than hardcoding
2020-02-21 10:39:55 -06:00
Mario Limonciello
21e7faa78b uefi: Move fwupdate into bindir
Intended to be executed by users for debugging purposes, create a man
page as well.
2020-02-20 09:02:11 -06:00
Laurent Bigonville
81e359199b Move the daemons from /usr/lib/fwupd to /usr/libexec/fwupd
This is supported since debian policy version 4.1.5 (FHS 3.0)
2020-02-18 11:22:58 -06:00
Richard Hughes
297d1598ef trivial: Only dlopen the test plugin once
This causes problems in the self tests when not lazy-loading symbols.

Also use g_build_filename() for the paths to be more portable and readable.
2019-12-01 20:59:19 +00:00
Mario Limonciello
f35a3dec93 trivial: debian: remove obj-* built files to fix back to back builds 2019-11-30 18:56:09 -06:00
Mario Limonciello
11503c23ee Install development files for libfwupdplugin
This splits out all development files, including headers into their
own packages where relevant.

Notably absent is `fu-hash.h` which is used for determining taint.
Out of tree developed plugins should still taint the daemon.
2019-11-27 11:32:43 +00:00
Mario Limonciello
6b0e66354b Convert libfwupdprivate to a shared library libfwupdplugin 2019-11-27 11:32:43 +00:00
Mario Limonciello
805f7990f3 trivial: disable gtkdoc by default
Since https://fwupd.github.io is now a thing, people can be directed there
rather than relying upon locally built documentation by default.

Also this will mean one less dependency to install for people who build
from source.

Lastly this finally means that I can do this set of actions without failure:
```
meson build
ninja -C build
ninja -C build install (PK prompts for password)
rm -rf build
```

Previously gtkdoc stuff was built as root due to the PK prompt and removing
it would lead to stuff like this:
```
rm: cannot remove 'build/docs/libfwupd/html/libfwupd-FwupdClient.html': Permission denied
```
2019-08-23 10:54:54 -05:00
Mario Limonciello
8837da60fa trivial: ci: debian: Only turn on flashrom when running CI
This will prevent normal debian builds from turning it on until it
has been packaged.
2019-07-07 14:29:48 -05:00
Artur Raglis
13fd21d806 flashrom: Use libflashrom
This also means we now include a flashrom subproject as no distro currently has
a flashrom new enough to build the plugin.

Signed-off-by: Richard Hughes <richard@hughsie.com>
Signed-off-by: Artur Raglis <artur.raglis@3mdeb.com>
Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
2019-06-28 08:28:51 +01:00
Mario Limonciello
e8bb4e0e34 trivial: debian: bump to debhelper 11 2019-02-07 07:33:33 -06:00
Mario Limonciello
3a7899eb3f trivial: contrib/debian: remove custom compression 2019-02-07 07:33:33 -06:00
Mario Limonciello
a1e5fa6594 trivial: contrib/debian: use libxmlb from Debian archives 2019-02-07 07:33:33 -06:00
Mario Limonciello
39ddd968b8 trivial: contrib: debian: Don't allow -Wl,-Bsymbolic-functions
This linker flag is used by Ubuntu by default for packages.
It however doesn't work when compiled with `-Wl,-z,defs` which is
the default behavior since 0e17e6d030.

Recommended-by: Aleksander Morgado <aleksander@aleksander.es>
Signed-off-by: Mario Limonciello <mario.limonciello@dell.com>
2019-02-04 08:56:43 -06:00
Mario Limonciello
15e4b0caaf installed-tests: Adjust to actually use a remote for installed tests
By using a remote, this should allow using gnome-software to do the
installed tests without hacking around much.

Fixes: https://github.com/hughsie/fwupd/issues/862
Fixes: https://github.com/hughsie/fwupd/issues/809
2018-11-29 09:40:06 -06:00
Richard Hughes
481aa2a923 Port from libappstream-glib to libxmlb
The libxmlb library is much faster to query, and does not require the daemon
to parse the XML metadata at startup. It's a zero-copy mmap design that is more
modern and less clunky.

RSS has reduced from 3Mb (peak 3.61Mb) to 1Mb (peak 1.07Mb) and the startup
time has gone from 280ms to 250ms.
2018-10-17 14:41:13 +01:00
Richard Hughes
cdb01590e0 nvme: Add a new plugin to update NVMe hardware 2018-08-26 19:42:28 +01:00