Commit Graph

2860 Commits

Author SHA1 Message Date
Mario Limonciello
6754f5aa70 fu-main: Catch SIGTERM while update is in progress
This prevents systemd from stopping while a firmware update is in
progress.
2018-10-16 13:06:23 -05:00
Mario Limonciello
e61c94dd25 fu-tool: Stop any running daemon over dbus before loading engine
This helps to prevent conflicts of the daemon trying to claim devices
at the same time as the tool.
2018-10-16 13:06:23 -05:00
Mario Limonciello
7e5c6eebfe meson: Bump dependency to 0.44 and adjust sysconfdir handling
Some code was put in place to workaround sysconfdir behavior of meson
0.43 and less.  This is no longer needed.
2018-10-16 08:21:24 +01:00
Mario Limonciello
860e99357b dell-dock: If marketing name is invalid don't fail initialization
These are certainly bugs with one of the components, but if the situation
happens in the field the plugin needs to finish initialization to allow
upgrading to a fixed component.

We'll just fall back to the name in the quirk (Dell dock) in this case.
2018-10-14 17:23:38 -05:00
Abhijeet Sharma
327c37d58e Readme Updated: Added KDE Discover as one more graphical front-end available for fwupd. 2018-10-14 09:18:10 +01:00
Mario Limonciello
4bd12b376a dell-dock: Correct a situation that error wasn't propagating
This code was from an earlier instance that had special fallbacks
and error_local wasn't removed.
2018-10-14 06:33:04 +01:00
Mario Limonciello
802a279bd2 trivial: snap: drop the stable symlink
Leading to this problem:

Building fwupd-wrappers
Failed to copy '/build/fwupd/parts/fwupd-wrappers/build/snapcraft-stable.yaml': it's a symlink pointing outside the snap.
Fix it to be valid when snapped and try again.
Build failed
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/lpbuildd/target/build_snap.py", line 229, in run
    self.build()
  File "/usr/lib/python2.7/dist-packages/lpbuildd/target/build_snap.py", line 218, in build
    env=env)
  File "/usr/lib/python2.7/dist-packages/lpbuildd/target/build_snap.py", line 75, in run_build_command
    return self.backend.run(args, env=full_env, **kwargs)
  File "/usr/lib/python2.7/dist-packages/lpbuildd/target/lxd.py", line 460, in run
    subprocess.check_call(cmd, **kwargs)
  File "/usr/lib/python2.7/subprocess.py", line 541, in check_call
    raise CalledProcessError(retcode, cmd)

Scanning for processes to kill in build SNAPBUILD-351860
2018-10-12 11:59:04 -05:00
Mario Limonciello
3e54789ee3 trivial: snap: Swap the type of snap/snapcraft.yaml to be a real file
Workaround for https://bugs.launchpad.net/launchpad/+bug/1797366

It was previously a symlink to contrib/snap/snapcraft-stable.yaml
however infrastructure changes in launchpad have caused this to break
automatic snap builds.
2018-10-12 08:41:41 -05:00
Mario Limonciello
c9a7541120 trivial: bump master to 1.2.0
This is a little unusual since 1.1.3 was never in master, only in
1_1_X.
2018-10-12 08:38:05 -05:00
Richard Hughes
3c8ada3f80 Don't segfault if a plugin returns FALSE from UpdateFunc with no error set
This is clearly a plugin bug that needs fixing, but exploding in a ball of
flames is not what anybody wants to see.
2018-10-12 10:34:12 +01:00
Richard Hughes
c012c81540 dell-dock: Use different debug strings for each device type 2018-10-12 10:34:09 +01:00
Richard Hughes
6abc2b9e0e trivial: Remove some pretty intense debugging that crept in 2018-10-12 09:36:12 +01:00
Richard Hughes
5e84da6bfe dell-dock: Don't use the VLA feature in the new dock
This is a massive co-incidence.
2018-10-12 08:08:33 +01:00
Richard Hughes
c8faf5e69f trivial: Do not allow VLA features in plugins 2018-10-12 07:58:53 +01:00
Mario Limonciello
558055c9b7 Add a plugin for an upcoming Dell USB-C dock
This plugin requires infrastructure introduced in fwupd 1.1.3
and can not be backported to earlier versions of fwupd.

It works together with the Synaptics and Thunderbolt plugins to
coordinate the proper flashing procedure for devices in this dock.
2018-10-12 07:58:29 +01:00
Mario Limonciello
2ea87013cd contrib: Add information on how to use debugging scripts
At least for me it was a challenge to get the debugger properly
configured to allow debugging fwupd when built in tree.

This should allow very simple debugging.
2018-10-11 07:43:56 -05:00
Richard Hughes
416ade7f30 trivial: Hardcode the AppStream-glib version
This is the version we've imported from, which allows cabinet files requiring a
specific version of this library to continue working.
2018-10-11 07:54:01 +01:00
Richard Hughes
2b9ba9f756 trivial: Don't care so much about the AppStream-glib version 2018-10-11 07:54:01 +01:00
Richard Hughes
a3d5712b9f Allow setting the version format from a quirk entry 2018-10-11 07:54:01 +01:00
Richard Hughes
83e56c1a6c Don't use AppStream-glib for string helpers 2018-10-11 07:54:01 +01:00
Richard Hughes
05cbb7245c Don't use AppStream-glib for version helpers
Refactor the imported version format code now we now longer need to stick to
the API mistakes of libappstream-glib.
2018-10-11 07:54:01 +01:00
Richard Hughes
d3d2c2c39f Don't use AppStream-glib for the GUID helpers
Long term we want to wean ourselves away from libappstream-glib.
2018-10-11 07:54:01 +01:00
Richard Hughes
bcf875ff3b trivial: Don't use AppStream-glib in libfwupd
It's only used in one place, and that's for checking against very old versions
of the running daemon.
2018-10-11 07:54:01 +01:00
Richard Hughes
be78d0f0ce trivial: Remove unused header 2018-10-11 07:54:01 +01:00
Mario Limonciello
f20f9f65bc fu-device: Ensure that parent ID is created before creating quirked children 2018-10-10 16:24:18 -05:00
Mario Limonciello
83a8aab034 trivial: libfwupd: correct documentation for fwupd_device_set_install_duration 2018-10-10 14:31:58 -05:00
Mario Limonciello
78599edcc9 trivial: correct a memory leak of the FuDevice when replugging 2018-10-10 11:24:27 -05:00
Mario Limonciello
2dd731b2f0 Update all sub-devices for a composite update
This allows a frontend to call update on an individual device ID which will
cause a CAB file to be downloaded, but then also re-use the same CAB file to
try to process devices with a relationship as part of a transaction.
2018-10-10 11:24:27 -05:00
Mario Limonciello
91353d48bd Stop showing the current release during updates in fwupdmgr
With handling composite CAB files this information isn't relayed to the
frontend on which release is being handled, but was rather guessed.

Avoid showing invalid information in this instance.
2018-10-10 11:24:27 -05:00
Mario Limonciello
dc48bec157 uefi: Move the TPM unlocking functionality from the Dell to UEFI plugin
This allows devices that have been registered to be correctly unlocked.
2018-10-10 14:30:49 +01:00
Mario Limonciello
4ba77a4fb9 Run the Dell plugin initialization after the UEFI plugin
This corrects the data->esp_path not being initialized due to UEFI
plugin's coldplug routine not having run yet.
2018-10-10 14:30:49 +01:00
Mario Limonciello
56a4d82203 trivial: Add ESP path into fu_uefi_device_to_string() 2018-10-10 14:30:49 +01:00
Richard Hughes
affc4ffde4 thunderbolt-power: Fix possible linker problem
The linker does not know which public symbol to call if a plugin calls it's own
symbol. Without this change one plugin could call into another plugin with the
wrong GsPluginData set -- which will probably explode in a ball of flames.
2018-10-10 14:29:20 +01:00
Richard Hughes
e3a2e95628 trivial: Sync the flatpak manifest with the one from flathub 2018-10-05 07:59:59 +01:00
Richard Hughes
9a9cb9e179 trivial: Be more explicit when building the snap packages 2018-10-04 18:38:12 +01:00
Richard Hughes
3c186ce3cf trivial: Include libuuid specifically on Centos
This is seemingly not in the default buildroot.
2018-10-04 18:38:12 +01:00
Richard Hughes
19c56436b1 trivial: Be more explicit when building on Centos
Newer versions of appstream-glib do not depend on libgcab and so it has to be
installed manually to ensure the CI still passes.
2018-10-04 18:38:12 +01:00
Richard Hughes
70df6d1144 trivial: Be more explicit when building the Arch package 2018-10-04 18:38:12 +01:00
Mario Limonciello
55ab100334 trivial: nvme: Allow quirking the NVME write block size 2018-10-02 14:30:02 -05:00
Richard Hughes
12c849966d Allow firmware files to depend on versions from other devices
At the moment firmware can declare that it has certain requirements, for
instance the existing firmware version, the bootloader version, or the
vendor ID of the device.

In some situations we actually want to check the firmware version of a
*different* device. Good examples here would be only allowing an EC upgrade if
a specific BIOS update has already been done, or only allowing a wireless
reciever to be updated if the attached wireless devices have been updated first.

To use this, you can do something like:

    <requires>
      <id compare="ge" version="1.1.3">org.freedesktop.fwupd</id>
      <firmware compare="ge" version="0.9.0">guid-of-other-device</firmware>
    </requires>
2018-10-02 06:53:52 -05:00
Mario Limonciello
769d768be9 trivial: fu-engine: downgrade couldn't find new device message to debug
I've found that this message comes up sometimes due to reprobing order
and it shouldn't be considered important enough to generate a warning.
2018-10-02 11:52:28 +01:00
Richard Hughes
58bf3674e9 trivial: Show a critical warning rather than crashing
Found when constructing devices manually in the self tests, it's not possible
to hit this during normal runtime.
2018-10-02 11:03:12 +01:00
Mario Limonciello
70ae1d59ed fu-debug: Redirect all debugging output to stderr instead of stdout
This makes it easier for tools to still remain functional but capture
relevant debugging logs by calling `fwupdtool` with `--verbose 2>log`
2018-09-29 07:55:25 +01:00
Mario Limonciello
bae478f555 trivial: synapticsmst: clarify some error flows
As seen in the previous commit if ESM update failed some error prefixes
are not useful, clarify them.
2018-09-28 08:39:44 -05:00
Mario Limonciello
7cb2c1092c synapticsmst: Adjust panamera ESM update routine for some reported issues
Reported failure:
"failed to flash firmware: ESM update failed: ESM update failed:
 failed to write data: failed to write"

1) Add a sleep after erasing (matches other SPI write calls)
2) Erase & sleep between retries
2018-09-28 08:39:44 -05:00
Mario Limonciello
680d9dc228 trivial: synapticsmst: downgrade remote control retry statement to debug
This happens often enough and it does recover each time.
2018-09-28 08:39:44 -05:00
Mario Limonciello
559c52ff71 trivial: Update FU_DEVICE_REMOVE_DELAY_USER_REPLUG from 20s to 40s (Fixes: #758)
Sometimes it's difficult to get 8bitdo controllers to turn off, so
give users more time to do it.
2018-09-27 09:22:24 -05:00
Mario Limonciello
9cecbe1d1b fu-engine: Optionally wait for replug before updating a device
Plugins may have marked a device as needing to replug duing a
composite device preparation due to the order devices were plugged
in.
2018-09-27 09:18:31 -05:00
Mario Limonciello
8a45acb806 fu-device-list: Use delayed device removal when removing the tree
If a parent device being removed causes child devices to be removed,
take into account all of the delays for children.
2018-09-27 09:18:31 -05:00
Mario Limonciello
845896c954 thunderbolt: Use replugging from the daemon (Closes: #730) 2018-09-26 07:56:12 -05:00