Commit Graph

3499 Commits

Author SHA1 Message Date
Mario Limonciello
d122facc09 trivial: fu-util: show no updatable devices error for update command
This makes it mirror the behavior of `get-updates` command.
2019-10-03 08:16:41 -05:00
Richard Hughes
eeb6c22c1e synaptics-rmi: Ignore the ATTN reports from the hardware when reading DATA
Fixes https://github.com/fwupd/fwupd/issues/1427
2019-10-03 13:10:58 +01:00
Richard Hughes
9f7a3364ae synaptics-rmi: Move the fuzzing instructions to the toplevel README 2019-10-02 16:28:28 +01:00
Richard Hughes
47ae4f89d7 Fuzz the SREC and IHEX file parsers once more 2019-10-02 16:28:28 +01:00
Richard Hughes
e9232c4fc0 Use parallel fuzzing for the SMBIOS checks too 2019-10-02 16:28:28 +01:00
Richard Hughes
e87abd81a2 synaptics-rmi: Fix the packing of the partition table
The data was part of the union, not the struct. It's also binary format and
thus needs to be packed.
2019-10-02 12:28:06 +01:00
Richard Hughes
63aa6759f0 Add a plugin to update Synaptics RMI4 devices 2019-10-02 10:45:13 +01:00
Richard Hughes
201d5ac138 trivial: Add a parallel fuzzing script
This approximately doubles performace of fuzzing for every two cores you have.
2019-10-02 09:37:43 +01:00
Mario Limonciello
2b69098d89 trivial: fu-util: output newline after prompt.
Before:
```
Uploading firmware reports helps hardware vendors to quickly identify failing and successful updates on real devices.
Upload report now? (Requires internet connection):0.	Do not upload reports at this time, but prompt again for future updates
1.	Do not upload reports, and never ask to upload reports for future updates
2.	Upload reports just this one time, but prompt again for future updates
3.	Upload reports this time and automatically upload reports after completing future updates
```

After:
```
Uploading firmware reports helps hardware vendors to quickly identify failing and successful updates on real devices.
Upload report now? (Requires internet connection):
0.	Do not upload reports at this time, but prompt again for future updates
1.	Do not upload reports, and never ask to upload reports for future updates
2.	Upload reports just this one time, but prompt again for future updates
3.	Upload reports this time and automatically upload reports after completing future updates
```
2019-10-01 16:07:48 -05:00
Mario Limonciello
fac50a8eef trivial: fix %u output in report upload
Don't bother showing the numbers, they were listed right above.
2019-10-01 16:07:48 -05:00
Richard Hughes
0b1c65ede8 Add a --no-domain logging option
This allows us to match the debug output of other legacy tools easier, which
allows us to compare output dumps for differences.
2019-10-01 10:46:09 -05:00
Richard Hughes
1002b92fb2 trivial: Fix compiler warning for impossible-to-hit condition 2019-10-01 15:34:48 +01:00
Mario Limonciello
34c366aab2 Add support for automatically uploading reports 2019-09-30 16:21:23 -05:00
Mario Limonciello
4f13bbc7e3 trivial: motd: disable updating motd for now
It looks like a systemd bug is happening, but let it be diagnosed upstream
systemd first.

https://github.com/systemd/systemd/issues/13688
2019-09-30 14:09:18 -05:00
Mario Limonciello
dc7e7c3808 trivial: fwupd-refresh: fix a clash with fwupd.service (Closes: #941360)
`fwupd-refresh.service` uses `DynamicUser=true` which causes systemd
to make `/var/cache/fwupd` a symlink to `/var/cache/private/fwupd`.

Individual units aren't allowed to access this directory, only the ones
with the directive.  This means that `fwupd.service` stops working as
soon as a user tries to start `fwupd-refresh.service`.

The bug details are present in
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=941360
2019-09-30 14:09:18 -05:00
Richard Hughes
3d6ff6e27e trivial: Fix Fedora CI 2019-09-30 17:13:07 +01:00
Mario Limonciello
dc6d0af352 trivial: fu-udev-device: fix some assertions
These seem to be caused by udev_parent being `NULL`.

```
19:26:06:0220 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0220 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0220 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0221 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0221 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0221 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0221 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0221 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0221 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0222 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0222 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0222 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0222 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0222 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0222 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0222 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0222 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0222 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0223 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0223 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0223 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0223 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0223 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0223 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0224 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0224 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0224 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0224 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0224 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0224 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0225 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0225 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0225 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0225 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0225 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0225 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0225 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0225 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0226 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0226 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0226 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0226 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0226 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0226 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0226 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0227 GLib-GObject         g_object_ref: assertion 'G_IS_OBJECT (object)' failed
19:26:06:0227 GUdev                g_udev_device_get_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
19:26:06:0227 GUdev                g_udev_device_get_parent: assertion 'G_UDEV_IS_DEVICE (device)' failed
```
2019-09-30 09:49:30 +01:00
Richard Hughes
a86790ac11 Search up the tree for a vendor name rather than (ab)using the HID_NAME 2019-09-28 21:58:04 +01:00
Richard Hughes
c56d2bd046 Add some success messages when CLI tasks have completed
Updating firware is sometimes scary, and for user-facing CLI tools we ought to
show some kind of reassurance than it went well.

Fixes some of https://github.com/fwupd/fwupd/issues/1409
2019-09-27 12:20:00 -05:00
Richard Hughes
bcee63a52d trivial: Put the boolean prompt on the same line as the text 2019-09-27 12:20:00 -05:00
Richard Hughes
07184d3822 Never show LicenseRef-proprietary to the end user
Just provide a translated string for this most common of cases.
2019-09-27 12:24:28 +01:00
Mario Limonciello
506ef63a59 trivial: snap: correct install hook root directory 2019-09-26 13:34:26 -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
Mario Limonciello
5bd649ef31 uefi: detect unmounted ESP partitions (Fixes: #1405)
Mount these while writing out updates.
Leave them mounted when done (you gotta reboot anyway).
2019-09-26 10:39:45 -05:00
Mario Limonciello
dc227c6037 uefi: stop recording efibootmgr output after flash
We've not had to reference this in a long time for bugs, all the major
IBVs and OEMs have good fwupd support now.
2019-09-26 10:39:45 -05:00
Richard Hughes
7b257d9692 trivial: post release version bump 2019-09-26 11:06:19 +01:00
Richard Hughes
0d8efd2373 Release fwupd 1.3.2 2019-09-26 11:05:06 +01:00
Richard Hughes
f54ddf42d4 Add support for '<name_variant_suffix>' to disambiguate some firmware 2019-09-25 10:20:10 -05:00
Richard Hughes
59593b0c50 thelio-io: Add a plugin to detach the Thelio IO board
This does not use the DFU runtime to detach.
2019-09-25 16:05:32 +01:00
Mario Limonciello
a1f9d5850b trivial: uefi, dell: skip self tests with TPM if non-root (Fixes: #1396)
There are some packaging problems in some distributions that lead
to TSS stack emitting warnings that will fail self tests.

These don't occur as root, and furthermore those distributions run
CI as root already.

And in the dell plugin make it non-fatal to have TPM register read failures
in case the system has TPM1.2 not TPM2.0
2019-09-25 08:38:04 -05:00
Mario Limonciello
4e343bc1b9 trivial: dell: quiet the TSS output
This is the same as commit 5206592347
2019-09-25 08:38:04 -05:00
Mario Limonciello
42ee62ef34 trivial: uefi: allow forcing to TPM2 via environment variable
Use this environment variable to ensure that TPM2 is used in self
tests even if the system has TPM1.2.
2019-09-25 08:38:04 -05:00
Richard Hughes
f1accad201 Do not ask the user to upload a report if ReportURI is not set
Fixes https://github.com/fwupd/fwupd/issues/1400
2019-09-25 05:05:31 -05:00
Richard Hughes
e37575192d Do not enumerate physical devices when running the internal self tests
We don't need to enumerate USB and UDev devices in the self tests. In the case
where the probe fails (due to a permissions error, as not running as root) we
don't want the tests to fail.
2019-09-25 04:49:52 -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
bb59837ae0 Add a new plugin to update Conexant audio devices 2019-09-24 12:26:47 +01: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
Mario Limonciello
cee877dfc4 trivial: add stalebot (Fixes: #1393) 2019-09-23 17:24:48 +01:00
Mario Limonciello
15cd821094 trivial: dell-dock: correct another write_size error
This was more fallout from 7afd7cba0d
which led to write_size being set to 0 and an endless loop.
2019-09-23 09:57:38 -05:00
Richard Hughes
ae96a1f27f Align the key values to the text *width* not the number of bytes
This fixes the output when using locales like zh_CN.utf-8
2019-09-23 15:17:28 +01:00
Mario Limonciello
0a9665c708 trivial: Move dbus directory location for snap too
This error was happening on fresh snap install (not upgrade):
```
install: cannot stat '/snap/fwupd/1065/etc/dbus-1/system.d/org.freedesktop.fwupd.conf': No such file or directory
```

Fixes 41a25be6 ("Move D-Bus conf file to datadir/dbus-1/system.d")
2019-09-23 09:08:49 -05:00
Richard Hughes
17c02b8b1f trivial: Fix some NULL/FALSE confusion 2019-09-23 09:59:30 +01:00
Richard Hughes
d1afec8e27 synaptics-prometheus: Fix tiny memory leak when using FuSynapromConfig 2019-09-23 09:59:26 +01:00
Richard Hughes
6f627aba84 trivial: Fix tiny memory leak when using FuSrecFirmware 2019-09-23 09:59:19 +01:00
Mario Limonciello
ae71a62620 snap: switch to core18
This makes the snap build quicker by using more distro dependencies
and also fixes some unicode output errors.
2019-09-22 08:46:01 -05:00
Richard Hughes
6d0e7fddd5 trivial: Return the correct property when getting the host product 2019-09-21 12:58:31 +01:00
Mario Limonciello
1dbb82d25e trivial: fu-util-common: fix description wrapping (Fixes: #1378)
Embedded newline characters don't do so well.

Before:
```
└─XPS 13 9380 System Update:
      New version:         0.1.3.2
      Remote ID:           lvfs
      Summary:             Firmware for the Dell XPS 13 9380
      License:             proprietary
      Size:                19.9 MB
      Vendor:              Dell Inc.
      Flags:               is-downgrade|blocked-version
      Description:         This stable release fixes the following issues:

    �� Fixed an issue with Secure Boot Option ROM Signature Verification.
    �� Firmware updates to address security advisory INTEL-SA-00185 (CVE-2018-12188 CVE-2018-12190 CVE-2018-12191 CVE-2018-12192 CVE-2018-12199 CVE-2018-12198 CVE-2018-12200 CVE-2018-12187 CVE-2018-12196 CVE-2018-12185).
    �� Firmware updates to address security advisories INTEL-SA-00191(CVE-2018-12201, CVE-2018- 12202, CVE-2018-12203, CVE-2018-12205).

    me new functionality has also been added:

    �� Removed the option Always Allow Dell Docks from BIOS settings. Dell dock connection and the port behavior will be controlled via the USB and Thunderbolt Adapter configuration settings under operating system environment.
    �� Replaces Absolute Software service from Computrace to Absolute Persistence Module service.
    �� Supports Dell Dock Station WD19.
```

After:
```
└─XPS 13 9380 System Update:
      New version:         0.1.3.2
      Remote ID:           lvfs
      Summary:             Firmware for the Dell XPS 13 9380
      License:             proprietary
      Size:                19.9 MB
      Vendor:              Dell Inc.
      Flags:               is-downgrade|blocked-version
      Description:         This stable release fixes the following issues:

      • Fixed an issue with Secure Boot Option ROM Signature Verification.
      • Firmware updates to address security advisory INTEL-SA-00185 (CVE-2018-12188 CVE-2018-12190 CVE-2018-12191 CVE-2018-12192 CVE-2018-12199 CVE-2018-12198 CVE-2018-12200 CVE-2018-12187 CVE-2018-12196 CVE-2018-12185).
      • Firmware updates to address security advisories INTEL-SA-00191(CVE-2018-12201, CVE-2018- 12202, CVE-2018-12203, CVE-2018-12205).

      Some new functionality has also been added:

      • Removed the option Always Allow Dell Docks from BIOS settings. Dell dock connection and the port behavior will be controlled via the USB and Thunderbolt Adapter configuration settings under operating system environment.
      • Replaces Absolute Software service from Computrace to Absolute Persistence Module service.
      • Supports Dell Dock Station WD19.
```
2019-09-21 12:23:55 +01:00
Mario Limonciello
ce94d163f8 fu-util/fu-tool: Map out changelogs from remotes
If the data is there, try to show the changelog that matches the
release.
2019-09-20 16:02:55 -05: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