Richard Hughes
9e5675e1b4
trivial: Allow compiling without <glib-unix.h>
2019-11-26 17:15:45 +00:00
Richard Hughes
5c508de173
trivial: Allow compiling without <fnmatch.h>
...
This also allows us to add a Win32 implementation if required in the future.
2019-11-26 13:13:31 +00:00
Richard Hughes
be956bdb66
Allow setting the device flags using GObject properties
2019-11-25 18:10:38 -06:00
Richard Hughes
668ee21567
trivial: Use prefixes for DATADIR in config.h for portability
...
DATADIR is an enumerated type in MinGW, and the other names are very generic.
2019-11-24 14:17:38 -06:00
Richard Hughes
b026e456f3
trivial: Allow compiling without HAVE_LC_MESSAGES
2019-11-23 17:07:53 +00:00
Richard Hughes
fc1e267d33
trivial: Allow compiling without <sys/utsname.h>
2019-11-23 17:07:53 +00:00
Richard Hughes
17957ebf13
Ensure the _get_type() gets the same ABI version as the constructor
...
This was also causing the _get_type() symbol to be ignored for objects without
any class methods except constructors.
2019-11-23 12:59:47 +00:00
Mario Limonciello
eb4c76416c
Add a new property Interactive
to the daemon
...
Clients can use this as a hint whether the daemon is running on
a terminal.
`fwupdmgr` uses this to bypass the systemd service check.
2019-11-11 11:16:21 -06:00
Richard Hughes
5272cfc63d
Add versions formats for the Microsoft Surface devices
...
Apparently there are yet more ways to encode a 32 bit number...
2019-11-07 21:34:09 +00:00
Mario Limonciello
856f33b53a
libfwupd: Add a new error type for user action needed
2019-11-01 14:31:03 +00:00
Richard Hughes
f4998a7636
trivial: Fix up some NULL/FALSE confusion
2019-11-01 13:55:32 +00:00
Mario Limonciello
97c1e727c4
Add new device flags indicating update resilience
...
fwupd clients will ideally use this information as part of a policy to schedule
updates in the background without user interactions on safe devices.
2019-10-17 11:38:46 -05:00
Mario Limonciello
8fa0b382fa
Add new flags can-verify
and can-verify-image
...
These are used to indicate that the device can verify checksums or
can dump an image for checksumming.
2019-10-14 12:41:09 -05:00
Mario Limonciello
e1b4d8ebcd
Add a new device flag for indicating device won't come back
...
Devices like this can't be verified that the version was updated
until they're manually put into the correct mode by the user.
2019-10-12 14:07:34 -05:00
Richard Hughes
d8a8d5e776
Set all FuUdevDevice plugins to use FU_QUIRKS_PLUGIN
...
This speeds up startup as we're only calling fu_plugin_udev_device_added() on
plugins that can actually handle the device.
2019-10-09 20:02:16 +01:00
Mario Limonciello
34c366aab2
Add support for automatically uploading reports
2019-09-30 16:21:23 -05:00
Richard Hughes
868db4e1a8
Export the instructions for detaching the device
...
Somewhat embarrassingly we were not actually showing the 8bitdo manual detach
images because... we were not actually exporting them. I don't know how this
ever worked in GNOME Software, but it would also explain the low 'success' rate
of the 8bitdo firmware on the LVFS.
This will also be used by Logitech in the future for the C1 Unifying devices.
To work in gnome-softare, this also needs the matching functionality to call
gs_app_add_screenshot() with the new exported data.
2019-09-26 16:40:12 +01:00
Richard Hughes
f54ddf42d4
Add support for '<name_variant_suffix>' to disambiguate some firmware
2019-09-25 10:20:10 -05:00
Mario Limonciello
481929459f
trivial: libfwupd: skip tests if machine-id is empty too
...
Ubuntu's buildds seem to have changed and this is causing test suite
failures.
2019-09-24 11:26:05 -05:00
Richard Hughes
0917fb6aec
Export the salted machine ID as a daemon property
2019-09-23 17:34:47 +01:00
Richard Hughes
a45994cb4a
Fall back to /var/lib/dbus/machine-id when required
...
Fixes https://github.com/fwupd/fwupd/issues/1365
2019-09-23 17:34:47 +01:00
Richard Hughes
17c02b8b1f
trivial: Fix some NULL/FALSE confusion
2019-09-23 09:59:30 +01:00
Richard Hughes
6d0e7fddd5
trivial: Return the correct property when getting the host product
2019-09-21 12:58:31 +01:00
Mario Limonciello
3be596b907
fu-util/fu-tool: Better display historical information
...
* When firmware has been modified use the device key "Previous version"
instead of "Current version".
* Show release as a child node when looking at history
* Don't output empty flags for release
* Use the key "New version" for releases
Sample output from `get-history`
```
├Integrated Webcam™:
│ │ Device ID: 08d460be0f1f9f128413f816022a6439e0078018
│ │ Previous version: 1.2.2
│ │ Update State: success
│ │ Flags: updatable
│ │ Last modified: 2019-09-20 14:53
│ │ GUID: b585990a-003e-5270-89d5-3705a17f9a43
│ │
│ └ New version: 1.2.3
│
└Integrated Webcam™:
│ Device ID: 08d460be0f1f9f128413f816022a6439e0078018
│ Modified version: 1.2.2
│ Update State: success
│ Flags: updatable
│ Last modified: 2019-09-20 14:53
│ GUID: b585990a-003e-5270-89d5-3705a17f9a43
│
└ New version: 1.2.4
```
Sample output from `get-updates`
```
Integrated Webcam™:
│ Device ID: 08d460be0f1f9f128413f816022a6439e0078018
│ Summary: A fake webcam
│ Current version: 1.2.2
│ Previous Version: 1.2.0
│ Bootloader Version: 0.1.2
│ Vendor: ACME Corp. (USB:0x046D)
│ Flags: updatable|supported|registered
│ GUID: b585990a-003e-5270-89d5-3705a17f9a43
│
├FakeDevice Firmware:
│ New version: 1.2.4
│ Remote ID: fwupd-tests
│ Summary: Firmware for the ACME Corp Integrated Webcam
│ License: GPL-2.0+
│ Size: 17 bytes
│ Vendor: ACME Corp
│ Flags: is-upgrade
│ Description: Fixes another bug with the flux capacitor to prevent time going backwards.
│
└FakeDevice Firmware:
New version: 1.2.3
Remote ID: fwupd-tests
Summary: Firmware for the ACME Corp Integrated Webcam
License: GPL-2.0+
Size: 17 bytes
Vendor: ACME Corp
Flags: is-upgrade
Description: Fixes a bug with the flux capacitor to avoid year 2038 overflow.
```
2019-09-20 16:02:55 -05:00
Richard Hughes
33cb526248
Print the instance IDs if the GUIDs are unconverted
...
This caused some head scratching about the 'missing' values when doing
fu_device_to_string() before fu_device_convert_instance_ids() had been called.
2019-09-18 17:07:39 +01:00
Richard Hughes
0ad59cbc03
Support <issues> in AppStream metadata
...
When the LVFS switches over to outputting <issues> rather than appending to the
update description we need to be in a position to display the new data.
2019-09-17 13:48:44 +01:00
Richard Hughes
89def5ea51
Include all GUIDs when uploading a report
...
The LVFS already knows how to deal with arrays of strings, so this is a forwards
and backwards compatible change.
Fixes https://github.com/fwupd/fwupd/issues/1363
2019-09-17 13:46:15 +01:00
Mario Limonciello
20cc9eebc5
Try to only show DMI product name once
...
* libfwupd: export new property HostProduct
* clients: Use this property for setting the title of trees
Before:
```
○
├─XPS 13 7390 TPM 2.0:
│ Device ID: c56e9f77cfee65151bdef90310776f9d62827f5a
│ Summary: Platform TPM device
│ Current version: 7.2.1.0
│ Vendor: Dell Inc.
│ Update Error: Updating disabled due to TPM ownership
│ Flags: internal|require-ac|registered
└─XPS 13 7390 System Firmware:
Device ID: b6c08fb9e5384d9d101853cc1ca20cf0ce2df2e2
Current version: 0.1.1.1
Minimum Version: 0.1.1.1
Vendor: Dell Inc.
Flags: internal|updatable|require-ac|registered|needs-reboot
```
After:
```
XPS 13 7390
│
├─TPM 2.0:
│ Device ID: c56e9f77cfee65151bdef90310776f9d62827f5a
│ Summary: Platform TPM device
│ Current version: 7.2.1.0
│ Vendor: Dell Inc.
│ Update Error: Updating disabled due to TPM ownership
│ Flags: internal|require-ac|registered
└─System Firmware:
Device ID: b6c08fb9e5384d9d101853cc1ca20cf0ce2df2e2
Current version: 0.1.1.1
Minimum Version: 0.1.1.1
Vendor: Dell Inc.
Flags: internal|updatable|require-ac|registered|needs-reboot
```
2019-09-05 11:22:39 -05:00
Mario Limonciello
d1681e6de5
libfwupd: Add a new private function fwupd_remote_set_remotes_dir
...
This allows the daemon to set the base directory to store remotes.
This fixes issues with systemd where the installation prefix was set
to soemthing not writable such as `/usr/local` but systemd
`STATE_DIRECTORY` doesn't match up.
```
$ fwupdmgr refresh
Fetching metadata https://cdn.fwupd.org/downloads/firmware.xml.gz
Downloading… [***************************************] Less than one minute remaining…
Fetching signature https://cdn.fwupd.org/downloads/firmware.xml.gz.asc
Failed to update metadata for lvfs: Error creating directory /usr/local/var/lib/fwupd/remotes.d: Read-only file system
```
It should also hopefully help with immutable systems.
2019-08-29 11:44:32 -05:00
Richard Hughes
4266ac4765
Add a specific error code for the low battery case
...
Users are getting confused when they're being told that AC power is required
when they are already on AC power... but the battery is too low to perform the
update.
2019-07-11 09:31:34 -07:00
Richard Hughes
e2a92690da
Allow client code to construct objects from GVariant blobs
...
Rather than wrapping every sync D-Bus call with a GTask helper (hundreds of
additional lines of code and dozens of new entrypoints in libfwupd) I think it
is best for client software wanting async operation just uses the D-Bus
interface. I consider it part of the API as much as the shared library and
I don't see it changing in a non-compatible way any time soon.
Exposing these already-exported symbols allows client software to use the
demarshalling functionality and to operate on the GObjects directly from an
existing GDBus async return value.
2019-07-03 11:44:31 +01:00
Richard Hughes
dd71b729e8
Export functionality to build an array of objects
...
This makes it possible to call GetDevices in an async D-Bus call, and easily
construct an array of objects from the return value.
2019-07-03 11:44:31 +01:00
Richard Hughes
749b50f3d1
trivial: Fix the version script to pick up boxed types
...
This matches what we use in libxmlb.
2019-06-28 08:28:12 +01:00
Richard Hughes
e7026b41cd
trivial: Correctly order the map entries according to vercmp rules
2019-06-28 08:28:12 +01:00
Richard Hughes
89e2fda459
trivial: Fix pylint issue in the version script
2019-06-28 08:28:12 +01:00
Richard Hughes
94422f651e
Only force a semver when the device opts-in
...
This is only used by one, so-far out-of-tree plugin. Reduce complexity by not
using the version format to decide if we're forcing a semver.
2019-04-30 09:25:41 +01:00
Richard Hughes
c84b36c541
Export the version-format to clients
...
This allows a vendor to verify the VersionFormat of a device without running
the daemon in verbose mode.
2019-04-30 09:25:41 +01:00
Richard Hughes
7886c086a1
Don't upload reports when the user has configured their system in a broken way
...
I'm getting a bit fed up with failed reports from arch users where they just
have a broken system. I don't think it's useful to upload to the LVFS or notify
the vendor about failures like this.
2019-04-18 22:06:01 +08:00
Mario Limonciello
bfcf75b7a6
Allow fwupdmgr to modify the daemon config
...
This allows several things, for instance:
* Adding or removing blacklisted plugins or devices
* Changing the idle timeout where allowed
...without a user needing to manually modify a configuration file.
2019-04-17 12:12:13 -04:00
Richard Hughes
cce6a1cb5a
Do not report transient failures
...
We don't need to report failures to do with AC or battery level to the LVFS.
2019-04-17 08:20:44 +08:00
Richard Hughes
dce91204c9
Fix some typos spotted using codespell
2019-04-08 12:47:53 +01:00
Richard Hughes
02ac92c17c
Add a component categories to express the firmware type
...
Some firmwares only update one part of the system, e.g. the EC or ME firmware.
Other updates include all the updates needed for the whole system, and vendors
have been doing different things with the component name due to this.
To fix, add an enumerated set of firmware 'categories' that can be set by the
uploader in the metainfo.xml file (or changed the LVFS) which automatically
set the name suffix.
Only append the translated version in the client when <categories> has
not been set, as the LVFS is still operating in compatibility mode and setting
the <name> with the prefix. Add the support to fwupd now so we can switch in
about 9 months time.
2019-04-04 17:35:02 -04:00
Mario Limonciello
2df922c23d
Move the core built-in 'fwupd' remote over to the dell-esrt plugin
...
This metadata is useless to other systems, so if compiling a custom
fwupd without -Dplugin_dell=true it shouldn't be included.
2019-04-02 07:18:29 -05:00
Richard Hughes
8356a83c4a
trivial: Fix potential critical when converting empty object to GVariant
2019-03-21 17:15:43 +00:00
Richard Hughes
23b1a9d3be
trivial: Add missing gtk-doc for _REMOTE_KIND_DIRECTORY
2019-03-21 10:09:11 +00:00
Richard Hughes
3d60762bed
Add a D-Bus method to generate a signature using the self-signed client certificate
2019-03-11 13:57:39 +00:00
Richard Hughes
06ef7f7e46
Include all device checksums in the LVFS report
...
On some hardware the SHA1 checksum is not set and so we want to use the SHA256
hash value as well.
The LVFS doesn't currently read the ChecksumDevice value and so nothing will
explode serverside when changing this type from 'string' to 'array of strings'.
2019-03-11 06:42:26 -05:00
Richard Hughes
e9058499a1
trivial: Add fwupd_release_has_checksum()
2019-03-05 19:05:28 +00:00
Richard Hughes
56c9c797e2
trivial: Do not print the display checksum in the JSON output
...
We're only guessing the format from the length, and not adding the wrapper
means it can be consumed more easily from other APIs.
2019-03-05 19:05:19 +00:00
Richard Hughes
8dd4c1c4dd
Allow restricting firmware updates for enterprise use
2019-03-05 19:05:07 +00:00