Commit Graph

2953 Commits

Author SHA1 Message Date
Mario Limonciello
2b020efa5e trivial: modify appstream metadata for some warnings
The following warnings were displayed by Debian appstream metadata
validation.

```
metainfo-validation-issue
Validation of the metainfo file found a problem: Found empty 'url' tag.
metainfo-validation-issue
Validation of the metainfo file found a problem: Type 'console-application' component, but no information about binaries in $PATH was provided via a provides/binary tag.
metainfo-validation-issue
Validation of the metainfo file found a problem: Found empty 'url' tag.
```
2019-02-28 09:38:12 -06:00
Mario Limonciello
91670710a8 trival: snap: build libqmi, libmbim both for MM support in the snap 2019-02-27 16:09:13 +00:00
Mario Limonciello
6db69de725 trivial: meson.build: bump libqmi runtime dep to 1.23.1
This is the minimum version needed for DW5821e, which is one of the
important devices that prompted MM support in the first place.
2019-02-27 16:09:13 +00:00
Mario Limonciello
386f05bea5 trivial: meson.build: bump modem manager dependencies
These match the absolute minimums needed to use MM support.
2019-02-27 16:09:13 +00:00
Aleksander Morgado
fc8093626c modem-manager: implement support for qmi-pdc
If a device reports that qmi-pdc is supported (e.g. DW5821e that
supports both fastboot and qmi-pdc), we'll end up first running the
fastboot installation before doing the qmi-pdc installation procedure.

These changes also make sure that the MM device inhibition is kept for
as long as the whole process is ongoing. Only after the last method is
run, the inhibition will be removed.

In order to handle devices being exposed in the system while the MM
inhibition is in place, e.g. to be able to run qmi-pdc after fastboot,
a simple udev based watcher is included, which will take care of
creating the FuMmDevice that is not associated to any modem currently
exposed by MM, but that shares all the details of the original device.

This new logic assumes that the devices don't change their USB layout
during a firmware upgrade, which is not a very good assumption, but it
works for the case at hand. If this is not the case, we may need to
end up doing some custom AT port probing instead of relying on the
original one reported by MM being still valid (note that we don't rely
on the device name, as that may change if some other device is plugged
in the system while we're doing the update, we rely on the USB
interface number).
2019-02-27 16:09:13 +00:00
Richard Hughes
ffa3b84706 Add a plugin to support ModemManager hardware 2019-02-27 16:09:13 +00:00
Mario Limonciello
e8dd4d7d5a fu-tool: Don't let failing to find dbus prevent engine from starting 2019-02-27 09:04:54 +00:00
Richard Hughes
8a3ab68fcb ata: Support delayed activation
This will allow us to switch to the new firmware version during shutdown when
the filesystems have been remounted readonly.

Activating manually means we don't have to get the user to shutdown and then
do a fresh power-on, rather than the more usual restart.
2019-02-27 09:04:54 +00:00
Mario Limonciello
75784c5644 dell-dock: Use activation when calling fwupdtool activate
This will finish passive flow without unplugging the cable.
This feature requires EC27 or later.
2019-02-27 09:04:54 +00:00
Mario Limonciello
96a0dd5606 Add a support for delayed activation
This is intended for devices that it is not safe to immediately activate
the firmware.  It may be called at a more convenient time instead.

Both fwupdmgr and fwupdtool support the feature.

- if called at runtime with fwupdmgr it uses the daemon
- during shutdown fwupdtool uses the pending.db to perform this feature.
2019-02-27 09:04:54 +00:00
Richard Hughes
f45c651dd1 uefi: Fix the self tests when running on Fedora SilverBlue 2019-02-26 19:13:35 +00:00
Richard Hughes
b768e4d924 Do not fail to start the daemon if tpm2_pcrlist hangs
In some situations SELinux prevents fwupd from executing tpm2_pcrlist, but the
failure mode is that the process just hangs and never completes. This causes
systemd to time out the fwupd daemon startup and then errors to be shown in
GNOME Software.

To prevent this happening, add an optional timeout argument to
fu_common_spawn_sync() and cancel the subprocess if it takes longer than this
to complete.

See https://bugzilla.redhat.com/show_bug.cgi?id=1665701 for details.
2019-02-26 14:27:13 +00:00
Mario Limonciello
56b8aa5b8c trivial: ci: Don't use strict when parsing json
This breaks some strings with newline character used for postinstall
that are harmless.
2019-02-25 21:27:18 -06:00
Mario Limonciello
6121eb26df trivial: snap: pull from edge channel to build
Due to bug https://bugs.launchpad.net/snapcraft/+bug/1817300 snaps
using classic confinement began failing to build recently when
using docker.

This is also discussed in
https://forum.snapcraft.io/t/snap-build-started-failing-with-pip-not-working/10142/3

This commit can be reverted when snapcraft migrates to the stable
channel.

Fixes: #1041
2019-02-25 21:27:18 -06:00
maxice8
b6baba5ce3 po/make-images.sh: quote LOCALEDIR and PYTHON3
Allows people to specifiy a white-space separated value for them

Void Linux runs them under qemu-user-static like so

qemu-aarch64-static -L ./usr/aarch64-linux-gnu
./usr/aarch64-linux-gnu/usr/bin/python3
2019-02-25 17:01:50 -06:00
maxice8
c82a75fe96 meson: print stderr of python3 command instead of stdout 2019-02-25 17:01:13 -06:00
Mario Limonciello
dc845bec2b trivial: debian: override newer lintian for missing ASLR on PE executable 2019-02-25 16:59:29 -06:00
Mario Limonciello
36ed8a0646 Revert "contrib/debian: Switch to debian unstable"
This reverts commit e7ee719843.
2019-02-25 10:59:13 -06:00
Marcin Sucharski
de2b70bc7d Add elogind support 2019-02-25 10:05:17 +00:00
Richard Hughes
1a74b22eb0 trivial: Remove unused downstream postinst commands 2019-02-25 10:04:16 +00:00
Richard Hughes
a4873e9abc trivial: post release version bump 2019-02-25 09:52:15 +00:00
Richard Hughes
c2b626dc2d Release fwupd 1.2.5 2019-02-25 09:42:18 +00:00
Mario Limonciello
ec762d007a trivial: Fix readme for Wyse CCM replaced by WMS (Fixes: #1038) 2019-02-19 07:51:42 -06:00
Mario Limonciello
e59bee1f45 trivial: dell-dock: make passive dependency include Hub2 1.42
An extra race condition bug exists due to the MCU firmware on Hub2.
Require to already be on 1.42 or later to use passive flow.
2019-02-18 08:03:49 -06:00
Mrmaxmeier
49448a99d4 uefi: fix segfault in fwup_set_update_statuses
If the near-zero memory region is populated, this caused UEFI
updates to get stuck trying to deref random pointers.
2019-02-15 21:26:56 +00:00
Richard Hughes
97293c4560 Show in Flathub correctly
For this we need to register as a console application (which fwupdtool is, I
suppose) and also supply a usable icon.

I've used the new GNOME icon theme guidelines so please add a drop shadow
before using: https://gitlab.gnome.org/GNOME/Initiatives/issues/2
2019-02-15 12:32:46 +00:00
Mario Limonciello
9772f8aca6 debian: explicitly depend on shared-mime-info
This helps autopkgtest issue:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=922331
2019-02-14 21:34:43 -06:00
Richard Hughes
19a9fc4e6d superio: Implement detach() and attach()
This gets us closer to actually being able to flash the hardware.
2019-02-14 09:12:26 -06:00
Richard Hughes
5acfc64a78 superio: Correct the names of some constants and improve debugging support 2019-02-14 09:12:26 -06:00
Mario Limonciello
8226f84233 trivial: libfwupd: correct a segfault when building a GUID
The order of events when casting causes an access to unintended memory.

```
0x00007ffff7bc19df in fwupd_guid_to_string (guid=0x8000000090d0, flags=FWUPD_GUID_FLAG_MIXED_ENDIAN) at ../libfwupd/fwupd-common.c:550
550		memcpy (&gnat, guid, sizeof(gnat));
(gdb) bt
 #0  0x00007ffff7bc19df in fwupd_guid_to_string (guid=0x8000000090d0, flags=FWUPD_GUID_FLAG_MIXED_ENDIAN) at ../libfwupd/fwupd-common.c:550
 #1  0x00007fffdbddd195 in fu_nvme_device_get_guid_safe (buf=0x7fffffffce70 "\\\034\\\034FI83Q060610103M66   BC501 NVMe SK hynix 128GB", ' ' <repeats 15 times>, "80001C0T\004", <incomplete sequence \344\254>, addr_start=3110) at ../plugins/nvme/fu-nvme-device.c:83
 #2  0x00007fffdbddd60c in fu_nvme_device_parse_cns_maybe_dell (self=0x5555558cc8a0, buf=0x7fffffffce70 "\\\034\\\034FI83Q060610103M66   BC501 NVMe SK hynix 128GB", ' ' <repeats 15 times>, "80001C0T\004", <incomplete sequence \344\254>) at ../plugins/nvme/fu-nvme-device.c:201
 #3  0x00007fffdbddda64 in fu_nvme_device_parse_cns (self=0x5555558cc8a0, buf=0x7fffffffce70 "\\\034\\\034FI83Q060610103M66   BC501 NVMe SK hynix 128GB", ' ' <repeats 15 times>, "80001C0T\004", <incomplete sequence \344\254>, sz=4096, error=0x7fffffffe008) at ../plugins/nvme/fu-nvme-device.c:295
 #4  0x00007fffdbddde68 in fu_nvme_device_setup (device=0x5555558cc8a0, error=0x7fffffffe008) at ../plugins/nvme/fu-nvme-device.c:376
 #5  0x0000555555587850 in fu_device_setup (self=0x5555558cc8a0, error=0x7fffffffe008) at ../src/fu-device.c:2076
 #6  0x0000555555587412 in fu_device_open (self=0x5555558cc8a0, error=0x7fffffffe008) at ../src/fu-device.c:1920
 #7  0x000055555558aa88 in fu_device_locker_new_full (device=0x5555558cc8a0, open_func=0x5555555872cb <fu_device_open>, close_func=0x555555587424 <fu_device_close>, error=0x7fffffffe008)
    at ../src/fu-device-locker.c:154
 #8  0x000055555558a925 in fu_device_locker_new (device=0x5555558cc8a0, error=0x7fffffffe008) at ../src/fu-device-locker.c:104
 #9  0x00007fffdbddc4cd in fu_plugin_udev_device_added (plugin=0x5555558a6420, device=0x5555558c6300, error=0x7fffffffe008) at ../plugins/nvme/fu-plugin-nvme.c:24
 #10 0x0000555555592cbf in fu_plugin_runner_udev_device_added (self=0x5555558a6420, device=0x5555558c6300, error=0x7fffffffe070) at ../src/fu-plugin.c:1281
 #11 0x000055555557f0a8 in fu_engine_udev_device_add (self=0x5555557f9840, udev_device=0x5555558e5900) at ../src/fu-engine.c:3491
 #12 0x000055555557f480 in fu_engine_enumerate_udev (self=0x5555557f9840) at ../src/fu-engine.c:3555
 #13 0x0000555555580fc6 in fu_engine_load (self=0x5555557f9840, error=0x7fffffffe2c8) at ../src/fu-engine.c:4117
 #14 0x0000555555566567 in fu_util_start_engine (priv=0x5555557eeb20, error=0x7fffffffe2c8) at ../src/fu-tool.c:138
 #15 0x00005555555674e2 in fu_util_get_devices (priv=0x5555557eeb20, values=0x7fffffffe5d8, error=0x7fffffffe2c8) at ../src/fu-tool.c:490
 #16 0x0000555555566aff in fu_util_run (priv=0x5555557eeb20, command=0x7fffffffe81a "get-devices", values=0x7fffffffe5d8, error=0x7fffffffe2c8) at ../src/fu-tool.c:242
 #17 0x000055555556a514 in main (argc=2, argv=0x7fffffffe5c8) at ../src/fu-tool.c:1445

```
2019-02-13 16:40:07 +00:00
Mario Limonciello
9a83af0262 dell-dock: Filter the last supported payloads of certain board 4 SKUs
EC23 is the last version that will be supported on board 4 SKUs with
base PD firmware versions 18+.

* If on EC23 already, don't mark the device as updatable anymore.

* Flashing EC24 or later when currently on EC 22 or less will potentially
  cause bricked docks that can't enumerate, so prevent this scenario
  during update path.
2019-02-13 06:44:25 +00:00
Mario Limonciello
a7bd2b9cb0 circleci: Manage the lifecycle of the snap
* Publish master snaps to edge after build.
* Publish tagged snaps to the stable channel after build.
2019-02-13 06:42:25 +00:00
Mario Limonciello
1e47c7200b trivial: circleci: run apt update before snapcraft 2019-02-12 17:38:55 +00:00
Mario Limonciello
12bc17d74e Add support to run snap build in CircleCI 2019-02-12 17:19:24 +00:00
Richard Hughes
bc7475f1a1 wacom-usb: Use the correct buffer format for the touch module
The specifications are wrong...
2019-02-12 10:16:42 -06:00
Richard Hughes
392e5aa817 wacom-usb: Set the install duration for each device type 2019-02-12 10:16:42 -06:00
Richard Hughes
1ec05cb11f wacom-usb: Return with an error if there were too many retries 2019-02-12 10:16:42 -06:00
Richard Hughes
2c292fba4f wacom-usb: Make updating less verbose 2019-02-12 10:16:42 -06:00
Richard Hughes
db4523d698 Convert all child instance IDs when converting the parent 2019-02-12 10:16:42 -06:00
Richard Hughes
0b1cbb92c7 trivial: Fix building against old versions of GLib
Fixes https://github.com/hughsie/fwupd/issues/1023
2019-02-12 09:28:36 -06:00
Mario Limonciello
5e5267d12c trivial: snap: Restore uuid-dev dependency
The snap build uses xmlb as a subproject.  libxmlb actually does
need the uuid-dev dependency.

Resolves this failure:
```
Couldn't use fallback subproject in subprojects/libxmlb for the dependency xmlb
Reason: subprojects/libxmlb/meson.build:107: Native dependency 'uuid' not found

meson.build:158:0: ERROR:  Native dependency 'xmlb' not found
```
2019-02-12 08:26:05 -06:00
Richard Hughes
20f14c29cb uefi: Allow devices to create more complete fake UEFI devices
Also, gets rid of two 'TODO' warnings with LGTM.
2019-02-12 06:28:51 -06:00
Richard Hughes
8cfbb25c31 trivial: Fix a few 'Sign check of bitwise op' LGTM warnings
Not really a bug, as @crc and @data are both unsigned.
2019-02-12 06:28:51 -06:00
Richard Hughes
10b2fef1bd trivial: Fix a 'Comparison is always true' LGTM warning
Not a bug, but somewhat muddled logic I guess.
2019-02-12 06:28:51 -06:00
Richard Hughes
71cc366522 trivial: Use the 0.1.5 snapshot when building the LGTM CI 2019-02-12 06:28:51 -06:00
Richard Hughes
c909ab3f3c unifying: Fix regression when recovering from failed flash
The unifying version numbers are of the form 'RQR24.00_B0000' which means we
have to force the plugin to 'plain' version format to avoid stripping out the
non-semver chars.

Fixes https://github.com/hughsie/fwupd/issues/1018
2019-02-12 10:00:02 +00:00
Sam Lanning
5fe32fe0a0 Ensure libxmlb dir exists for LGTM.com 2019-02-11 15:54:31 -06:00
Sam Lanning
7f2c7363d3 Add C build configuration for LGTM.com 2019-02-11 21:30:39 +00:00
Richard Hughes
2d3287a231 Use G_BEGIN_DECLS correctly for internal headers 2019-02-10 17:33:20 +00:00
Richard Hughes
43f390a336 standalone-installer: Fix issue found by LGTM
See https://lgtm.com/rules/6780080/ for details.
2019-02-10 13:37:06 +00:00