Commit Graph

247 Commits

Author SHA1 Message Date
Richard Hughes
e00d70dabe trivial: Fix compile with AppStreamGlib git master 2015-08-04 14:44:37 +01:00
Richard Hughes
c6ff8fa574 Move the verification and metadata matching phase to the daemon
This allows us to use the functionality in gnome-software or cockpit without
loading the system AppStream store.
2015-08-03 18:00:54 +01:00
Richard Hughes
9985a24a29 Fix validation of written firmware
It turns out comparing sha1{firmware.cab} and sha1{firmware.bin} doesn't match.
Require appstream-glib 0.5.x for the new API required to fix this.
2015-08-03 13:22:34 +01:00
Richard Hughes
fe8b96e74e Do not pre-convert the update description from AppStream XML
This allows the text clients like fwupdmgr to convert to UTF-8 text, and
graphical clients can use the markdown target to ensure the links are made
clickable and paragraphs are presented in the right way.
2015-07-28 13:13:41 +01:00
Thomas Hindoe Paaboel Andersen
1058ce8155 trivial: remove unused variables 2015-07-27 00:24:01 +02:00
Mario Limonciello
3ed5447c92 Reload appstream data after refreshing. 2015-07-23 19:01:15 -05:00
Richard Hughes
63a407ab34 Change the DBus method for installing firmware to 'Install'
It seems a little odd to call it 'Update' when it's being used for downgrading
and reinstalling as well.

As we're making things simpler, just use a single 'install' action in fwupdmgr
rather than 'install', 'update-online', 'update-offline'. We can use the flags
and fallbacks to do the right thing in all cases, and make the typical case
(installing a local file to any matching hardware) simple.

Fixes half of https://github.com/hughsie/fwupd/pull/23
2015-07-22 10:36:00 +01:00
Richard Hughes
7708a0f3fd Move GetUpdates to the daemon
This only returns the latest version, if you actually need to know details
about all versions including downgrades then you still need to load the
AppStream metadata and match devices manually.
2015-07-22 10:35:05 +01:00
Richard Hughes
2b60a33c8f Do not merge existing LVFS metadata
If we change the filenames or hash values we don't want duplicate locations.
2015-07-21 17:19:54 +01:00
Richard Hughes
1a886b1b76 Allow cab files to be saved
This means reworking the way we load the file as we have to keep the full
filelist in case we have to re-extract and save each and every file.
2015-07-20 15:31:05 +01:00
Thomas Hindoe Paaboel Andersen
80b85676bb remove unused variables 2015-06-30 20:47:15 +02:00
Richard Hughes
a043c2e376 Add a 'verify' command that verifies the cryptographic hash of device firmware
Goes some way towards fixing https://github.com/hughsie/fwupd/issues/15
2015-06-29 12:53:01 +01:00
Richard Hughes
ebb58a3495 Add a Udev firmware provider
This allows us to support showing firmware updates for VIA USB hubs
2015-06-29 12:53:01 +01:00
Richard Hughes
ae0efdc5a7 Provide a way for clients to add new firmware metadata to the system cache
This is only possible if the metadata has been signed by a key that we trust.
2015-06-25 09:59:53 +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
c89c1b0e9b Support OpenHardware devices using the fwupd vendor extensions
We won't be able to update these devices ourself, but we can detect if there
are updates available.
2015-05-05 15:22:00 +01:00
Richard Hughes
fd4688408d Coldplug the devices before acquiring the well known name
This prevents getting no added devices when 'fwupdmgr get-devices' autostarts
the fwupd process.
2015-04-22 16:44:10 +01:00
Richard Hughes
63bbbf544f Only allow signed firmware to be upgraded without a password
This does not affect UEFI capsule updates as the signing is checked by the
machine itself. We don't know anything about the trust level at all because
NIST SP800-147 pretty much says we're not allowed to.

For BIOS or ColorHug updates however we really do need to request authentication
before downgrading or installing non-signed code.

At the moment only the Hughski Limited key is trusted for firmware, although I
hope in the future we can also include Red Hat, Microsoft, Intel, AMD and other
hardware vendors in that list too.

Fixes: https://github.com/hughsie/fwupd/issues/5
2015-04-14 16:19:39 +01:00
Richard Hughes
d8fa049693 Show the firmware trust status when doing GetDetails() 2015-04-14 15:57:08 +01:00
Richard Hughes
8818151196 Export the status as an enumerated value rather than a string 2015-03-19 10:57:44 +00: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
Richard Hughes
0e883ee815 Add and document the offline-update lifecycle
Also allow providers to override getting and clearing the last update status.
2015-03-19 10:31:23 +00:00
Richard Hughes
9a38c03fe2 Do not crash when there are no devices to return 2015-03-17 20:58:46 +00:00
Richard Hughes
8ded6ca0f1 trivial: Mark some more strings as translatable
Also fix up some translator comments.
2015-03-16 12:51:43 +00:00
Richard Hughes
bbac6d7932 Return some more fields when returning data about firmware files 2015-03-12 11:41:20 +00:00
Richard Hughes
d7022b50e6 Emit ::Changed() when devices are added or removed
This allows clients to reget any available updates.
2015-03-11 19:47:08 +00:00
Richard Hughes
3bf9480d34 Parse the firmware name when exploding the cab file 2015-03-10 15:57:30 +00:00
Richard Hughes
773ce988e8 Add a 'Status' property which is updated when the daemon is active 2015-03-09 22:43:25 +00:00
Richard Hughes
a8e8394b70 Do not require the root password to update removable devices 2015-03-09 22:43:25 +00:00
Richard Hughes
184232918d Do not require authentication to update devices when the root user 2015-03-09 22:43:25 +00:00
Richard Hughes
cccc775b60 Add a method to get details about a firmware file 2015-03-09 11:04:32 +00:00
Richard Hughes
d079b1a6ca Allow installing firmware without a specified device ID 2015-03-06 10:09:55 +00:00
Richard Hughes
18e7591104 Use fwup.h to actually implement the UEFI update 2015-03-05 13:56:56 +00:00
Richard Hughes
3c99ba4d3c Make both the ColorHug and UEFI support optional 2015-03-05 12:17:48 +00:00
Richard Hughes
412034adaa Add actual error codes for failure 2015-03-05 11:30:58 +00:00
Richard Hughes
d1e823ccbf Allow scheduling updates for later
Also add a update-prepared command to fwupdmgr to process the defered updates.
In the future we'll hook into the systemd early-boot code for this.
2015-03-05 11:15:36 +00:00
Richard Hughes
e7c1264f3b Add a --force option to fwupdmgr to allow installing old firmware 2015-03-04 22:30:12 +00:00
Richard Hughes
def3175655 Compare the specified and installed firmare versions 2015-03-04 19:26:54 +00:00
Richard Hughes
a2288a3fce trivial: Fix build after the ColorHug rename 2015-03-04 18:45:15 +00:00
Richard Hughes
72dff812c0 Add initial ColorHug support
This may be useful; more people have ColorHug devices than UEFI firmware that
supports system capsule updates.
2015-03-03 15:13:27 +00:00
Richard Hughes
67ec898265 Extract the .cab file and parse the .inf file 2015-03-03 11:41:01 +00:00
Richard Hughes
1ffde6cd72 Return the device properties when calling GetDevices()
This allows us to discover a version number, and other things.
2015-03-02 22:44:58 +00:00
Richard Hughes
74cc217f9d Support online updates
This doesn't make sense for UEFI firmware, but allows us to support other
future usecases.
2015-03-01 20:33:54 +00:00
Richard Hughes
f508e76a7a Use PolicyKit to check the authorisation of the firmware update 2015-02-27 12:49:36 +00:00
Richard Hughes
8bbfdf49a8 Flesh out the provider interface and allow offline updates 2015-02-27 08:29:13 +00:00
Richard Hughes
8dbfb1c478 Add initial build files and enough code to launch a simple D-Bus daemon 2015-02-26 18:16:40 +00:00