Commit Graph

153 Commits

Author SHA1 Message Date
Richard Hughes
6b78d64987 Add fwupd_guid_from_string() to drop dep on uuid
This also allows us to write mixed-endian structures and adds tests. As part of
this commit we've also changed the API of something that's not yet been in any
tarball release, so no pitchforks please.
2019-02-06 14:48:04 +00:00
Richard Hughes
b8c30b8732 Do not use efivar just to print a mixed endian GUID 2019-02-04 15:19:57 +00:00
Mario Limonciello
b503aa8650 ata: Add support for detecting Dell GUIDs
Similar to NVME, ATA drives distributed by Dell have special values
that should be used to designate fwupd GUIDs and only run correct
firmware.

When detecting Dell GUIDs remove the standard fwupd GUIDs.  "Generic"
firmware targeted to those GUIDs will fail to install.
2019-02-04 10:39:20 +00:00
Richard Hughes
a039e72363 Disable -Wno-address-of-packed-member
It's incompatible with g_autoptr(), which is probably unintentional.
2019-02-01 16:38:14 +00:00
Richard Hughes
575eb71efc trivial: post release version bump 2019-02-01 14:31:46 +00:00
Richard Hughes
f425d29a28 Show a console warning if loading an out-of-tree plugin
Fixes https://github.com/hughsie/fwupd/issues/950
2019-01-19 07:26:20 +00:00
Richard Hughes
847959d89c trivial: post release version bump 2019-01-04 11:09:50 +00:00
Richard Hughes
fb0e10722a trivial: post release version bump 2018-12-30 15:23:27 +00:00
Richard Hughes
0e17e6d030 Fix building with -Wl,-z,defs
This allows us to find undefined references at compile time, not runtime.
2018-12-25 16:10:54 -06:00
Richard Hughes
6a53116fb5 trivial: post release version bump 2018-11-27 14:53:43 +00:00
Richard Hughes
634da03730 Create a silo index to speed up GUID queries
This speeds up matching for GUIDs by about 90%, taking the query from 3.17ms to
about 0.33ms on my Thinkpad. This is more important for slow ARM hardware,
where strcmp() is more expensive than on x64.
2018-11-21 18:51:07 +00:00
Mario Limonciello
7cff2dcb25 trivial: Bump meson dependency to 0.47.0
The current libxmlb dependency requires this and when run in subproject
mode will cause failures otherwise.

Also bump the snap to use meson 0.47.2 to fix snap build due to this
failure.
2018-11-07 11:40:26 -06:00
Richard Hughes
258aab19fa trivial: post release version bump 2018-11-07 11:25:11 +00:00
Richard Hughes
e4ad25044a Sort the firmware sack by component priority
This allows composite firmware to be ordered in an explicit way.
2018-10-23 09:20:02 +01: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
5caffbfb9c Bump requirement to meson 0.46.0 2018-10-17 06:14:18 -05:00
Mario Limonciello
7e5c6eebfe meson: Bump dependency to 0.44 and adjust sysconfdir handling
Some code was put in place to workaround sysconfdir behavior of meson
0.43 and less.  This is no longer needed.
2018-10-16 08:21:24 +01:00
Mario Limonciello
c9a7541120 trivial: bump master to 1.2.0
This is a little unusual since 1.1.3 was never in master, only in
1_1_X.
2018-10-12 08:38:05 -05:00
Richard Hughes
c8faf5e69f trivial: Do not allow VLA features in plugins 2018-10-12 07:58:53 +01:00
Richard Hughes
8121daadd3 trivial: post release version bump 2018-09-10 17:37:56 +01:00
Richard Hughes
cdb01590e0 nvme: Add a new plugin to update NVMe hardware 2018-08-26 19:42:28 +01:00
Richard Hughes
95227a919d trivial: Move gudev to the core plugin deps 2018-08-26 19:38:58 +01:00
Richard Hughes
0971192575 trivial: Remove duplicate dependency() for json-glib 2018-08-21 09:43:08 +01:00
Mario Limonciello
669d4382a0 meson: Detect location of python3 interpreter
This fixes building UEFI labels on the snap build.
2018-08-16 13:37:54 -05:00
Richard Hughes
d61a18743c trivial: post release version bump 2018-08-13 12:46:50 +01:00
Richard Hughes
68f12ddb44 trivial: Do not define _GNU_SOURCE
It prevents coverity from running with gcc7.
2018-08-09 16:59:04 +01:00
Richard Hughes
aefe2d1e6f trivial: post release version bump 2018-07-11 20:09:10 +01:00
Mario Limonciello
10a4824cb0 trivial: Allow running on an older systemd
Build the path list dynamically based on enabled plugins and use options
that are compatible with older systemd when appropriate
2018-07-10 11:05:10 -05:00
Richard Hughes
ba103483fa redfish: Add a plugin that uses the Redfish API
Redfish is an open industry standard specification and schema that helps enable
simple and secure management of modern scalable platform hardware.

This has only ever been tested using an emulator and not on real hardware.
2018-06-29 20:17:45 +01:00
Mario Limonciello
7015899c31 Continue to allow building with older meson
Commit 83d46b0579 bumped the minimum meson version to 0.46.0
This makes building on current Ubuntu LTS release more difficult
as it contains 0.45.0.

Instead conditionalize the build to run that code when on newer
meson.

This commit can be reverted when it's appropriate to bump meson
build dependency.
2018-06-28 10:41:28 -05:00
Mario Limonciello
f771bde71f uefi: Merge plugin_uefi and plugin_uefi_labels configure options 2018-06-28 15:51:11 +01:00
Richard Hughes
ebbb13c2b4 Remove the libfwup dependency from fwupd
In Fedora the only user of libfwupdate is fwupd and the fwupdate command line
tool. It makes sense to absorb the libfwupdate library interface into the
uefi plugin in fwupd. Benefits I can see include:

* fwupd and fwupdate are very similar names; a lot of OEMs are confused

* fwupd already depends on efivar for other things

* We are maintaining an artificial library interface

* The CI and translation hooks are already in place for fwupd

* We don't need to check for features or versions in fwupd, we can just develop
the feature (e.g. BGRT) all in one place.
2018-06-28 15:51:11 +01:00
Richard Hughes
1ccf35a9e4 dell: Register devices with the uefi plugin rather than using libfwup directly
The device registration allows us to create a 'virtual' device that can accept
capsule updates that is not found in the ESRT.
2018-06-28 15:51:11 +01:00
Richard Hughes
a80f79cb4d uefi: Upload the firmware capsule without using libfwup 2018-06-28 15:51:11 +01:00
Mario Limonciello
cfc22a8b90 uefi: Detect the EFI system partition location at runtime
Check across a list of common EFI system partition locations for a mounted
location before starting fwupd.

This also will cause the plugin to not initialize if the EFI system partition
is not mounted.
2018-06-28 15:51:11 +01:00
Richard Hughes
b1e0ab98d1 uefi: Import the fwupd.efi sources from the fwupdate project 2018-06-28 15:51:11 +01:00
Richard Hughes
44367e707d trivial: Bump the required version of libsmbios_c
Also, disable the dell plugin for the CentOS build.
2018-06-28 15:51:11 +01:00
Mario Limonciello
db419f066c trivial: Make gtkdoc-scan a build dependency when docs are on
Fixes #575
2018-06-28 08:54:22 -05:00
Mario Limonciello
4eff978638 trivial: make gcab a build dependency
Fixes #574
2018-06-28 08:54:22 -05:00
Richard Hughes
83d46b0579 Fix linker argument checks
Meson 0.46.0 adds has_link_argument to compiler objects, and we should use it
instead of has_argument when checking linker arguments.
2018-06-27 16:48:35 +01:00
Richard Hughes
e7cd293893 trivial: Move the prefixed paths further up the meson build file 2018-06-27 12:52:04 +01:00
Richard Hughes
3aec0e51ed trivial: Branch for 1.1.x
Given we're planning bigger changes, it seems sensible to branch now.
2018-06-23 10:43:36 +01:00
Richard Hughes
6d645c7d2d trivial: post release version bump 2018-06-07 13:28:59 +01:00
Richard Hughes
0b522aef96 colorhug: Do not require libcolorhug to build
Requiring colord to be built before fwupd makes it hard to build packages.

The HID-based flashing protocol is stable and documented, so there's no need
to use an external library for this now.
2018-06-02 21:43:20 +01:00
Richard Hughes
4be17d1364 Add support for relocating various runtime paths
This allows a snap package to be easily built.

With much help from Mario Limonciello <mario.limonciello@dell.com>, many thanks.
2018-05-31 16:25:22 +01:00
Richard Hughes
e43f832c5d trivial: Make the daemon functionality optional
This is useful when building just fwupdtool in a flatpak.
2018-05-30 14:45:16 +01:00
Richard Hughes
6813426cb5 trivial: Use new meson functionality to detect warning flags 2018-05-09 14:22:58 +01:00
Mario Limonciello
f6949b4911 Look up bash-completion paths using pkg-config 2018-05-01 16:21:31 -05:00
Richard Hughes
f892a3b5bf trivial: post release version bump 2018-04-30 14:10:19 +01:00
Richard Hughes
3f4066852e Revert "trivial: Remove invalid -Wno-cast-function-type"
This reverts commit a6f44e11ff and allows us to
build on Fedora 28 without a huge number of bogus warnings.
2018-04-29 20:16:57 +01:00