Commit Graph

328 Commits

Author SHA1 Message Date
Richard Hughes
68cc00c7e9 Allow multiple checksums on devices and releases
Although we supported other hashes than SHA1 (which is now moderately unsafe)
we had to switch the metadata provider and daemon on some kind of flag day to
using SHA256. Since that's somewhat impractical, just allow multiple checksums
to be set on objects and just try to match whatever is given in preference
order.

This also means we can easily transition to other hash types in the future.

The removed API was never present in a tarball release, so not an API break.
2017-06-06 20:06:53 +01:00
Richard Hughes
812d1b708d trivial: Spit out non-enum functionality into a common file 2017-06-06 16:27:47 +01:00
Richard Hughes
6b8528632c trivial: Update the bump soname list 2017-06-06 12:26:43 +01:00
Richard Hughes
81c7649dd8 libfwupd: Add fwupd_client_get_devices_simple() to return us an array of devices, not results 2017-06-06 11:10:57 +01:00
Richard Hughes
45c1545b0a Add a 'downgrade' command to fwupdmgr
This allows the user to downgrade the firmware on a device.
2017-06-06 09:44:47 +01:00
Richard Hughes
e4a100cfee Add a GetReleases() D-Bus call to return all releases for a device
This allows us to downgrade firmware in the future.
2017-06-05 17:42:57 +01:00
Richard Hughes
fdce4f57a3 Remove deprecated API added since the last tarball release 2017-06-05 17:41:57 +01:00
Richard Hughes
1642b3b95a Deprecate the old FwupdResult API
It will be removed next time we bump soname.
2017-06-05 17:41:11 +01:00
Richard Hughes
4db6c4a4b0 libfwupd: Split up FwupdResult into FwupdDevice and FwupdRelease
This retains the old API to avoid breaking ABI.
2017-06-05 17:34:36 +01:00
Richard Hughes
90bcd058f0 Return the remote ID when getting updates about hardware 2017-06-02 13:19:08 +01:00
Richard Hughes
1b50d960f2 Send the daemon the remote ID when sending updated firmware metadata
This allows us to 'tag' the components with the correct remote ID value, which
then means we can tell where the firmware information has come from when saving
a composite store. It also allows us use the correct username and password in
the future when downloading the firmware blob itself.

Keep the old D-Bus method around to preserve API for existing clients.
2017-06-02 13:19:05 +01:00
Richard Hughes
dfed515573 Allow downloading metadata from more than just the LVFS
Add the concept of 'remotes' that can dropped into /etc and used as firmware
metadata sources. This may be desirable when firmware is only accessable with
a valid support contract or from behind a VPN.
2017-06-02 13:19:05 +01:00
Richard Hughes
3f3cb69bb7 trivial: Generate the pkg-config files using meson 2017-04-20 08:07:38 +01:00
Richard Hughes
e1c9a5c476 trivial: Fix substitution of FWUPD_x_VERSION in fwupd-version.h 2017-04-19 10:15:16 +01:00
Richard Hughes
1fdb335025 Remove the automake build system 2017-04-13 18:42:08 +01:00
Richard Hughes
57746cb839 Add the Meson build system as an alternate to autotools
Automake and autoconf are impossible to fully understand and Meson now provides
everything we need for a much smaller, faster, and more understandable build.

See http://mesonbuild.com/ for more information.
2017-04-12 16:35:18 +01:00
Richard Hughes
7ceb318a27 Add fwupd_result_get_device_version_bootloader()
This functionality is required so that AppStream metadata can check the fwupd
version, the firmware version, bootloader version or a combination of all three.
2016-12-23 11:21:22 +00:00
Richard Hughes
29c220db9f Add VerifyUpdate to update the device checksums server-side 2016-12-15 17:09:37 +00:00
Mario Limonciello
e781bb9b64 trivial: fix cosmetic fallout from provider -> plugin
some code (such as libfwupd) still internally refers to provider,
but this will need to be more carefully massaged
2016-12-13 12:25:09 -06:00
Richard Hughes
59a9344c1e Move the UPower functionality to a plugin 2016-12-12 16:28:16 +00:00
Richard Hughes
102ddb8fda trivial: Remove some code that cannot be reached
Found using Coverity.
2016-11-09 20:14:15 +00:00
Richard Hughes
dd7713d27d trivial: Fix a tiny resource leak if the signature file cannot be opened
Found using Coverity.
2016-11-09 19:28:38 +00:00
Mario Limonciello
a91214f545 Enable hardening flags on more binaries 2016-10-14 12:43:02 -05:00
Richard Hughes
7d78347549 Fix libfwupd self tests when a host-provided fwupd is not available
Resolves: https://github.com/hughsie/fwupd/issues/64
2016-08-31 11:41:46 +01:00
Richard Hughes
644562e291 Use the correct define prefix for FwupdDeviceFlags
Also, add the compat flags so we don't break API.
2016-08-22 10:30:24 +01:00
Richard Hughes
fa782a3915 Add fwupd_result_get_unique_id()
This allows us to have a unique string that identifies the component and can be
used as a cache key.
2016-08-18 18:36:11 +01:00
Richard Hughes
abf42df355 Add fwupd_client_get_status() 2016-08-17 17:46:15 +01:00
Richard Hughes
876c007b1a Allow providers to export percentage completion 2016-08-17 17:46:15 +01:00
Richard Hughes
adb7a4979b Add FU_DEVICE_FLAG_NEEDS_BOOTLOADER 2016-08-17 17:46:15 +01:00
Richard Hughes
20003d1c88 Add fwupd_result_remove_device_flag() 2016-08-17 17:46:15 +01:00
Richard Hughes
c2651fb687 trivial: Do not timeout of very long firmware operations 2016-08-16 18:13:50 +01:00
Richard Hughes
33a518a615 Add another compile warning and fix up any build failures 2016-07-27 16:57:36 +01:00
Mario Limonciello
76e631825e Only display flashes left in results output when it gets low. 2016-07-20 17:39:40 -05:00
Mario Limonciello
4a586715e1 in get-details output, display update_name rather than Unknown Device 2016-06-29 09:30:03 -05:00
Richard Hughes
ce38d94d5e trivial: Get rid of useless internal-only gtk-doc markup 2016-06-29 11:25:25 +01:00
Richard Hughes
0e3aae27f8 trivial: Add a tiny doc explaining what to change next soname break 2016-05-29 09:57:24 +01:00
Richard Hughes
7289a6b5f0 Add a GetDetailsLocal() method to eventually replace GetDetails()
This allows us to return multiple results from one file, for instance where the
firmware.cab file contains multiple metainfo.xml files.

This allows us to show all the entries in the firmware file, rather than
searching for the installed device that matches and falling back to just the
first listed item.
2016-05-29 09:57:24 +01:00
Richard Hughes
2c553607e3 trivial: Fix gtk-doc wording of the device flags 2016-05-17 16:05:49 +01:00
Richard Hughes
99147f180b Allow devices to have multiple assigned GUIDs 2016-05-17 09:35:04 +01:00
Richard Hughes
2fc5b88503 trivial: Only show the trust flags when there is an update 2016-05-13 14:48:20 +01:00
Mario Limonciello
a1cebd6e67 trivial: treat flashes_left as an unsigned integer 2016-05-11 15:21:22 -05:00
Mario Limonciello
71a5b98d30 Add support for a --force flag to override provider warnings
Under some circumstances a provider may want to prevent a user from
performing a flash without additional user interaction.

Providers can opt into this behavior by checking for
FWUPD_INSTALL_FLAG_FORCE in the update routine.
2016-05-10 15:41:16 -05:00
Mario Limonciello
f81f42a84c Add support for a new device field "Flashes Left".
For devices that can report the number of flash cycles supported this field can
be used to prevent allowing the device to be flashed again.
2016-05-10 12:21:09 -05:00
Richard Hughes
662920ccf7 Show 'Unknow Device' in fwupdmgr when a device name is not set 2016-04-28 18:28:16 +01:00
Richard Hughes
8ca33784ec Add device-added, device-removed and device-changed signals
This allows us to watch a specific device from client code without
re-requesting the device list on every Changed() signal.
2016-04-28 16:56:23 +01:00
Richard Hughes
1773e83060 Add fwupd_client_connect()
This exposes the client connection functionality so we can watch for signals
without being forced to perform an action beforehand.
2016-04-28 16:56:23 +01:00
Richard Hughes
4f4e1f3478 Add a 'supported' flag to the FuDevice
This is TRUE when the device has been found in the LVFS metadata.
2016-04-28 16:56:23 +01:00
Mario Limonciello
72ec147259 Re-order output of get-devices to be easier to read 2016-04-14 13:10:34 -05:00
Richard Hughes
5ac25f32e0 Generate gtk-doc documentation for libfwupd 2016-04-01 11:22:31 +01:00
Richard Hughes
0195b86a1f trivial: Use g_autoptr() when checking for the bus 2016-04-01 08:09:26 +01:00
Mario Limonciello
e6e445ee4c Validate that the dbus system bus is available before running libfwupd tests
In a chroot (or buildd) environment dbus isn't necessarily available so this
test will always fail.
2016-03-31 17:27:58 -05:00
Richard Hughes
88492a3cd0 trivial: Add some more self tests for enums 2016-03-31 11:16:56 +01:00
Richard Hughes
12de5d8f23 Return errors of the correct type when using libfwupd
This also allows us to skip errors when doing 'make check' in a VM with no
hardware devices.
2016-03-31 11:04:49 +01:00
Richard Hughes
5bf2837485 Add fwupd_result_has_device_flag() 2016-03-29 19:18:52 +01:00
Richard Hughes
1f2f6ce1cd Allow other checksum kinds in FwupdResult
SHA1 is still the default, but others are allowed as well.
2016-03-18 12:33:47 +00:00
Richard Hughes
f3c1b56e73 trivial: Fix a potential crash spotted with clang 2016-03-18 12:33:47 +00:00
Richard Hughes
bdea096742 trivial: Add asserts for valid cancellables and errors in FwupdClient 2016-03-18 12:33:47 +00:00
Richard Hughes
9d8126ec63 libfwup: Fix up some NULL/FALSE confusion 2016-03-18 12:33:47 +00:00
Richard Hughes
2d6e186800 Rename some of the new libfwupd API to align with the D-Bus names 2016-03-18 09:20:40 +00:00
Richard Hughes
ac97288ddb Emit a FwupdClient::changed when the daemon emits this signal 2016-03-17 13:10:16 +00:00
Richard Hughes
0f41340740 Add FwupdClient to libfwupd
This is a client-side object which can get results from the daemon.
2016-03-17 10:04:19 +00:00
Richard Hughes
7542c53749 Add a self test framework for libfwupd 2016-03-17 09:59:20 +00:00
Richard Hughes
1aec596e5f Add FwupdResult to libfwupd
This is a client-side object representing a result from the daemon.
2016-03-17 09:57:48 +00:00
Richard Hughes
b94f2f0488 Export FwupdUpdateFlags in libfwupd 2016-03-17 09:52:00 +00:00
Richard Hughes
a475eecda2 Export FwupdUpdateState in libfwupd 2016-03-17 09:48:34 +00:00
Richard Hughes
c1e3ded9a3 Add fwupd_trust_flag_to_string() 2016-03-17 09:43:04 +00:00
Richard Hughes
da887df142 trivial: Add note for next API break 2016-03-17 09:42:52 +00:00
Richard Hughes
2d041f370f trivial: post branch version bump 2016-03-16 18:14:11 +00:00
Richard Hughes
23583f9d0b Add fwupd_device_flag_to_string() 2016-03-15 16:31:47 +00:00
Richard Hughes
9a410ce459 Add an unlock method for devices
This is based on an idea from Mario Limonciello which can be used to enable a
PCI OptionROM read, or possibly enable ESRT functionality.
2016-03-02 10:17:02 +00:00
Richard Hughes
b75c92db47 Require AC power before scheduling some types of firmware update
Fixes half of https://github.com/hughsie/fwupd/issues/42
2016-02-20 20:25:56 +00:00
Richard Hughes
441785d215 trivial: Fix up some harmless lint, no code changes 2015-07-28 14:56:19 +01:00
Richard Hughes
d7dba98e68 Move boolean properties on the device to a set of flags
This is much less boilerplate and allows us to expand in the future.
2015-05-05 16:02:20 +01:00
Richard Hughes
046db72555 Add an UNKNOWN status so we can return meaningful enum values 2015-04-24 12:33:16 +01:00
Richard Hughes
8a08f9d8f3 Verify firmware if a detached signature is present 2015-04-14 15:41:44 +01:00
Richard Hughes
36a889034c Add helper code to validate public key signatures
We'll use this in the future for checking device firmware.
2015-04-14 13:53:19 +01:00
Richard Hughes
f910ac9541 trivial: Also export the status enum codes 2015-03-19 10:54:06 +00:00
Richard Hughes
8645ec9ad5 Create a libfwupd shared library 2015-03-19 10:54:05 +00:00