Commit Graph

9570 Commits

Author SHA1 Message Date
Richard Hughes
be33aaaf94 Fix fwupdtool firmware-convert to work with image-less formats
Converting 'simple' non-nested formats like Intel Hex into nested formats like
DfuSe needs us to create a binary child firmware to avoid missing data.

Fixes https://github.com/fwupd/fwupd/issues/5493
2023-02-23 13:04:11 -06:00
Richard Hughes
2da924d8bc trivial: Do not return the internal libxmlb error back to the user 2023-02-23 13:04:11 -06:00
Richard Hughes
738f7d3f9b Print errors as JSON objects when using --json
For example:

	$ fwupdmgr local-install --json foo.zip
	{
	  "Error" : {
	    "Domain" : "FwupdError",
	    "Code" : 7,
	    "Message" : "failed to open foo.zip"
	  }
	}

Fixes https://github.com/fwupd/fwupd/issues/5499
2023-02-23 13:04:11 -06:00
Valentin David
37a28e5e1d snap: read the host os-release instead of base snap
This should fix #5485. Depends on https://github.com/snapcore/snapd/pull/12545
2023-02-23 13:04:11 -06:00
Richard Hughes
3a7fa73d0a Optimise getting the list of upgrades using the legacy API
We use GetReleases for all the *possible* releases that could be installed
(although the device might be in UPDATABLE_HIDDEN), and the legacy GetUpgrades
API just wants to know what can be done right now.
2023-02-23 13:04:11 -06:00
Richard Hughes
47f17cfe55 Speed up regenerating the MOTD
This is regenerated on every device hotplug event, and although infrequent
there is no point doing all that CPU-heavy requirement checking for no reason.
2023-02-23 13:04:11 -06:00
Richard Hughes
5374e5a379 wistron-dock: Use only-wait-for-replug to speed up device replug
Also, set the progress steps correctly.
2023-02-23 13:04:11 -06:00
Richard Hughes
7f50cffc2b wistron-dock: Fix critical warning during update 2023-02-23 13:04:11 -06:00
Richard Hughes
e2be6072e5 trivial: Only use clang-format on C source files 2023-02-23 13:04:11 -06:00
Richard Hughes
2fa46d3823 Add support for Quit() in fwupdmgr
This allows us to only shut down the P2P daemon in the installed tests.
The easy fix would have been to use something like:

    gdbus call --address unix:path=/run/fwupd.sock --object-path / --method org.freedesktop.fwupd.Quit'

...but the daemon does not implement an ObjectManager, which gdbus requires.

This worked correctly for so long because the p2p tests were being run after
the bus tests, so shutting down the system daemon had no effect.

Fedora 37 seems to have flipped the order for some reason -- and now it
*sometimes* matters that we were doing the worng thing...
2023-02-23 13:04:11 -06:00
Richard Hughes
ab65987a58 trivial: Fix Fedora CI when it cannot autostart udisks 2023-02-23 13:04:11 -06:00
Richard Hughes
f6d977c354 cros-ec: Clear the bulk transfer buffer to zero before using
This allow us to emulate the device as the buffer contents are now 100%
predictable and replayable.
2023-02-23 13:04:11 -06:00
Richard Hughes
6a75c28bfc trivial: Fix a tiny coverity-spotted memory leak on error 2023-02-23 13:04:11 -06:00
Richard Hughes
8f719cb6b0 Move the Fedora CI job to F37 2023-02-23 13:04:11 -06:00
Richard Hughes
a9dbbc99f7 Use the correct range check when parsing SMBIOS
The SMBIOS specification says:

    Maximum size of SMBIOS Structure Table, pointed to by the
    Structure Table Address, in bytes. The actual size is guaranteed
    to be less or equal to the maximum size.

So, the firmware is actually allowed to return a DMI blob smaller than the
specified size.

Fixes https://github.com/fwupd/fwupd/issues/5486
2023-02-23 13:04:11 -06:00
Richard Hughes
e3c660d203 nvme: Detect and warn users with the broken firmware 3B2QGXA7 2023-02-23 13:04:11 -06:00
Richard Hughes
a82070fe0d trivial: Fix fu-self-test with libgusb from the main branch 2023-02-23 13:04:11 -06:00
Richard Hughes
22be20498f trivial: Fix critical warning when loading an emulated DFU device 2023-02-23 13:04:11 -06:00
Richard Hughes
87e829471c Revert "trivial: Fix clang-format of JSON files for newer versions of clang"
This reverts commit 2eb4357a70.
2023-02-23 13:04:11 -06:00
Richard Hughes
76b47b15a6 trivial: Fix clang-format of JSON files for newer versions of clang
This explains why Mario and I had different precommit settings.
2023-02-23 13:04:11 -06:00
Richard Hughes
82b35eb208 ti-tps6598x: Ignore the 'wrong' USB device class before calling ->setup()
No functional change, but a few less i/o operations when inserting the dock.
2023-02-23 13:04:11 -06:00
Valentin David
e33d6757ff snap: Use common directory for vendor path 2023-02-23 13:04:11 -06:00
Valentin David
0830bfe2f0 snap: Use strict confinement 2023-02-23 13:04:11 -06:00
Valentin David
45babc583b snap: Fix a meson parameter 2023-02-23 13:04:11 -06:00
Valentin David
af5c5a7d51 snap: Remove some unused/redundant dependencies 2023-02-23 13:04:11 -06:00
Valentin David
4664ff4305 snap: Remove dconf 2023-02-23 13:04:11 -06:00
Valentin David
988a6db20e snap: Add missing libraries 2023-02-23 13:04:11 -06:00
Valentin David
25dfb547c3 Optionally disable Polkit check with an environment variable
When running in a confined snap, it is not possible to check whether a
policies have been installed.
2023-02-23 13:04:11 -06:00
Valentin David
ff8b3d26a4 Allow overriding lock directory with an environment variable 2023-02-23 13:04:11 -06:00
Richard Hughes
450d8a02d4 dfu: Use more const buffer data when writing to AVR chips 2023-02-23 13:04:11 -06:00
Richard Hughes
10ffedbe7d dfu: Clear the buffer before getting the status
This makes emulation of DFU devices work as the control transfer data is then
predictable.
2023-02-23 13:04:11 -06:00
Richard Hughes
35000cd93b trivial: Enable USB debugging when backend debugging is enabled 2023-02-23 13:04:11 -06:00
Richard Hughes
13af5989b2 trivial: Use new API in libgusb to better detect USB replug 2023-02-23 13:04:11 -06:00
Richard Hughes
090a7c8b9a Add API to wait for a device
This allows us to ignore all the delays when the device is emulated, with the
idea being to do dozens of device emulations in the CI tests.

Also, do not call fu_progress_sleep() when the device is emulated.
2023-02-23 13:04:11 -06:00
Richard Hughes
11c4636984 Do not invalidate the probe for emulated devices
If the device does not replug, and we change the GUsbDevice because the phase
changed we don't want reprobe the hardware.

If we reprobe then the emulated device will request extra data compared to the
real device, which will cause emulation to fail.
2023-02-23 13:04:11 -06:00
Richard Hughes
bd99bccb1f trivial: Require --force to overwrite files with 'fwupdmgr download' 2023-02-23 13:04:11 -06:00
Richard Hughes
c3f7048e4a Return an error when the pending db could not be updated 2023-02-23 13:04:11 -06:00
dependabot[bot]
689fc23957 build(deps): bump docker/build-push-action from 3 to 4
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3 to 4.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-23 13:04:11 -06:00
Richard Hughes
b41f145f00 trivial: Do not hardcode fwupdmgr as a binary name 2023-02-23 13:04:11 -06:00
Richard Hughes
ed81983520 trivial: Record the install phase for future functionality 2023-02-23 13:04:11 -06:00
Richard Hughes
4f3aad86e9 trivial: Do not inherit history from emulated devices 2023-02-23 13:04:11 -06:00
Richard Hughes
5f8d465e9b trivial: Remove some dead comments left in after debugging 2023-02-23 13:04:11 -06:00
Richard Hughes
a21e653161 Use indexes when building the quirk prepared queries
This can save 250us on each query (of which we do a *lot*), and reduces the
number of queries by about half if the user is using a libxmlb version that can
convert from `_BOUND_TEXT` to `_BOUND_INDEX_TEXT`.

The more devices detected, the bigger the difference, and without this patch
fixing libxmlb would break fwupd as we'e been searching with an index, but not
actually providing one.
2023-02-23 13:04:11 -06:00
Richard Hughes
210b9c4353 trivial: Add FuProgress to fu_context_load_hwinfo()
TIL: fu_bios_settings_setup() takes over 50ms (10%!) at startup.
2023-02-23 13:04:11 -06:00
Richard Hughes
f204bb256b trivial: Remove duplicate call to fu_engine_ensure_device_supported()
This is moderately expensive to call as it processes each requirement on each
release on each device, so the last thing we want to do is call it *twice*.
2023-02-23 13:04:11 -06:00
Richard Hughes
601fc544d2 trivial: Update all fixes using markdownlint 2023-02-23 13:04:11 -06:00
Richard Hughes
4586a3d465 trivial: Update all fixes using codespell 2023-02-23 13:04:11 -06:00
Richard Hughes
d4821886f5 Use a more compact JSON format using precommit 2023-02-23 13:04:11 -06:00
Richard Hughes
5ddaf0f610 Remove unused API for setting backend tags
It turns out we do not want to know the current phase of the device, and we can
achieve the same thing tagging the GUsbDevice manually and clearing the events
at exactly the correct time.
2023-02-23 13:04:11 -06:00
Richard Hughes
7a619d0841 ti-tps6598x: Assign the DMC as the proxy rather than just the parent
We 'write through' the parent, and by telling fwupd this we can make better
decisions when emulating.
2023-02-23 13:04:10 -06:00