Commit Graph

112 Commits

Author SHA1 Message Date
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
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
502a2ca64a Do not re-download firmware that exists in the cache 2017-06-05 09:23:10 +01:00
Richard Hughes
b8f8db2082 Add support for Microsoft HardwareIDs
This commit provides a new "hwids" subcommand for fwupdmgr that shows the
hardware GUIDs on the local system. It also provides API that plugins can use
to self-disable when a specific HWID does not match.

The GUIDs used in this implementation match that of ComputerHardwareIds.exe
2017-06-04 19:46:36 +01:00
Richard Hughes
0b57806b68 Use the correct user and password for the firmware download 2017-06-02 13:19:08 +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
Eric Koegel
23603f0452 Add support for ConsoleKit2
Make systemd and ConsoleKit support an optional compile time flag
with both enabled by default. If both are used, the ifdef/elif will
ensure only the systemd calls are used so there's no conflict.
2017-06-01 09:00:16 +01:00
Richard Hughes
741dc5054a trivial: Use g_autoptr for the fwupdmgr private data 2017-05-08 20:38:17 +01:00
Richard Hughes
df5652ffb5 trivial: Return a sensible error if DownloadURI is intentionaly left blank 2017-05-08 19:06:08 +01:00
Richard Hughes
860640e32a trivial: Fallback to the system-wide config file if running from tree 2017-05-08 19:04:25 +01:00
Richard Hughes
b0fce88754 Do not spew a critial warning when parsing an invalid URI 2017-05-08 19:02:24 +01:00
Richard Hughes
ee401a17c4 Support proxy servers in fwupdmgr 2017-04-14 19:56:04 +01:00
Richard Hughes
da3ec457c4 Use a 60 second timeout on all client downloads 2017-04-14 19:46:57 +01:00
Richard Hughes
74702297b2 Move the Option ROM parsing to the Udev plugin 2016-12-15 17:09:38 +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
cff38bcb3a Convert the providers to plugins to simplify code and for future features
This is a large commit that removes all the providers and turns them into
plugins. I think having both providers _and_ plugins was super confusing.

Plugins are loaded at runtime so you could in theory develop a new plugin
without putting it in the fwupd source tree, although there are no installed
headers or PC files as I'm not sure it's a good idea at this stage.

This commit moves all the per-provider docs, tests, notes, debug dumps and test
data to plugin-specific directories -- these also allows the plugin author to
"own" more of the source tree so we don't enforce fu- prefixes and the style
guide everywhere.

This allows us to run the same action on all the plugins in the future, so we
could have a prepare(FuPlugin, FuDevice) and cleanup(FuPlugin, FuDevice) run
on *all* plugins, so doing an update using one plugin would allow us to work
around hardware quirks in other plugins.

If I've broken your out-of-tree provider it's trivial to port to the new API
with sed and a fixed up build file. If you need help please let me know.
2016-12-12 12:31:23 +00:00
Mario Limonciello
11dee100af Clarify the test in --help and man page related to offline (#69) 2016-10-19 15:56:48 -05:00
Richard Hughes
da004cf318 Show a progress notification when installing firmware 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
33a518a615 Add another compile warning and fix up any build failures 2016-07-27 16:57:36 +01:00
Richard Hughes
f192bf025a trivial: Switch to compiling with C99 by default
We're already using non-MSVC features like g_autoptr().
2016-07-22 08:41:59 +01:00
Richard Hughes
ce38d94d5e trivial: Get rid of useless internal-only gtk-doc markup 2016-06-29 11:25:25 +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
99147f180b Allow devices to have multiple assigned GUIDs 2016-05-17 09:35:04 +01: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
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
cfc44fa0ae Add a 'monitor' debugging command for fwupdmgr
This allows us to watch for signals from the daemon.
2016-04-28 16:56:23 +01:00
Richard Hughes
3c694baf2d trivial: Make it clear the version from get-updates is an update version 2016-04-25 12:28:08 +01:00
Richard Hughes
1d3567056c trivial: Fix alignment of multi-line update descriptions 2016-04-25 12:17:42 +01:00
Mario Limonciello
d9c234aeb3 trivial: update get-results error to be clearer 2016-04-14 13:44:01 -05:00
Richard Hughes
7105e42af8 trivial: Do not show the argument list for an internal error 2016-03-31 11:23:04 +01:00
Richard Hughes
b8956d41ee Do not use /tmp for downloaded files
The files are signed but downloading into user-cachedir is probably safer.
2016-03-29 19:18:18 +01:00
Richard Hughes
b8f6b737e6 Show the checksum kind in the fwupdmgr output 2016-03-18 12:33:47 +00:00
Richard Hughes
48a5117fde trivial: Allow different checksum types in FuRom 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
cb07a3eb3f Use FwupdClient from libfwupd in fwupdmgr 2016-03-17 10:09:03 +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
6d39d37039 Show device flags in 'fwupdmgr get-devices' 2016-03-15 21:40:36 +00:00
Richard Hughes
65dfbfe54f Do not use deprecated API from libappstream-glib 2016-03-02 13:43:21 +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
1d96633198 Add 'Created' and 'Modified' properties on managed devices
This allows us to show suitable UI in GNOME Software when reporting historical
firmware updates.
2016-01-27 13:25:45 +00:00
Richard Hughes
a2b2b1cc68 Export the AppStream ID when returning device results
This allows us to match up the AppStream data we've parsed in gnome-software and the firmware update we've got from fwupd. This means we can get access to some of the data that fwupd doesn't care about, for instance the how-to-upgrade screenshots.
2015-11-25 15:00:51 +00:00
Richard Hughes
b2fe639940 Use the correct user agent string for fwupdmgr 2015-11-05 08:48:48 +00:00
Richard Hughes
709d0114e3 Fix verify-update to produce components with the correct provide values 2015-10-09 12:17:08 +01:00
Richard Hughes
60f48c2013 trivial: Do no ship the old-style cleanup functions 2015-10-08 20:25:51 +01:00
Richard Hughes
2d32b8f0e9 trivial: Include the filename in the error when fwupd.conf is not found
This can happen if the user deletes it from /etc or is running inside a prefix
shell, e.g. jhbuild.
2015-09-28 13:56:42 +01:00