Commit Graph

2142 Commits

Author SHA1 Message Date
Mario Limonciello
62a64afda5 fu-tool: put lockfile in user's cache directory if no permissions for /run 2022-01-12 10:14:49 -06:00
Richard Hughes
cf5a341a51 trivial: Do not show a critical warning for an invalid device test 2022-01-12 14:23:44 +00:00
Richard Hughes
5ce93a2dd9 trivial: Show the file that failed to be downloaded 2022-01-12 14:23:44 +00:00
Richard Hughes
25ee969a27 trivial: Enable VT sequences on Win32 2022-01-06 19:21:50 +00:00
Richard Hughes
9cd9a4b8f7 trivial: Use ANSI escape codes to fix the progressbar on win32 2022-01-06 19:21:50 +00:00
Richard Hughes
dbdb207561 Increase the chances of success of WAIT_FOR_REPLUG on WIN32
Decrease the GUsb polling interval when any of the devices is in
`WAIT_FOR_REPLUG` on when running on Windows. Any device that can
re-enumerate much faster than the default 1000ms may be missed and the
detach may fail.

Linux doesn't have this problem as it has `LIBUSB_CAP_HAS_HOTPLUG`.
2022-01-06 13:20:34 -06:00
Richard Hughes
07f5ec5bed trivial: Use inhibits for missing critical device data
Also, check both after ->register() rather than using a warning.
2022-01-06 16:51:45 +00:00
Richard Hughes
133e712fc9 trivial: Do not call setup() vfuncs when we're never calling coldplug
Now all plugins define custom GTypes in the _init() vfunc, and so
there's no need to actually probe devices to just get access to those.

This means you can get results from `fwupdtool get-firmware-types`
about two orders of magnitude quicker.
2022-01-05 13:46:37 +00:00
Richard Hughes
32284e1afa Load the quirks and SMBIOS in the correct order
We need to load the quirks (respecting NO_CACHE), then load the SMBIOS,
and only then match the hwids using the quick database.

This means we don't get a console warning when using fwupdtool commands
as a non-root user.
2022-01-05 13:46:37 +00:00
Richard Hughes
62a6f39364 trivial: Move the root user prompt to the engine start 2022-01-05 13:46:37 +00:00
Richard Hughes
f885ab6d2a Allow patching firmware files at known offsets
This allows us to replace the 'dfu-tool replace' with a much more
controlled 'fwupdtool firmware-patch' command that patches at a set of
specific offsets.

Drop in the new functionality into the existing firmware ->write()
vfuncs so that the image headers, footers and/or checksums are correct.
2022-01-05 09:51:45 +00:00
Mario Limonciello
f57a6637c9 trivial: fix man page sections
They're marked in the man page as section 8 but installed into 1.
They should be installed into 1 as they're not admin tools.
2022-01-04 14:17:43 -06:00
Richard Hughes
c725e42e34 trivial: Fix various const issues 2022-01-03 22:46:23 +00:00
Richard Hughes
e17a107ce1 trivial: Cast the g_signal_connect() object to allow static analysis
This is useful when using https://gitlab.freedesktop.org/tartan/tartan
2022-01-03 22:46:23 +00:00
Richard Hughes
2e99055d1e trivial: Add some more annotations for language bindings 2022-01-03 22:46:23 +00:00
Richard Hughes
f76880182f Do not allow UEFI updates when the lid is closed
Most vendors do not mirror the firmware update to an external display,
and some don't behave correctly when the lid is shut and the machine is
docked. Add this quirk just for Lenovo for now.

Fixes https://github.com/fwupd/firmware-lenovo/issues/181
2021-12-29 19:18:26 +00:00
Richard Hughes
8e6a3f6bbb Allow devices to opt-in to metadata-provided vendor strings 2021-12-22 15:34:36 +00:00
Richard Hughes
cb110b55f8 trivial: Fix regression from 9f94dc9 on Ubuntu Focal 2021-12-17 12:19:39 +00:00
Richard Hughes
9f94dc97c4 trivial: Handle old JSON-Glib more gracefully
Fixes https://github.com/fwupd/fwupd/issues/4099
2021-12-16 19:29:49 +00:00
Mario Limonciello
bba3cd79de trivial: win32: include and enable curl support
This is needed for LVFS refreshes to work.

* Install curl binary
* Install ca-certs bundle
* Install gspawn helpers
* Reference ca-certs bundle on Win32
2021-12-15 06:46:27 -06:00
Mario Limonciello
7188e5b335 Add support to show curl/wget output from fwupdmgr/fwupdtool 2021-12-15 06:46:27 -06:00
Richard Hughes
179f250b9a trivial: Properly namespace _INTERNAL_FLAG_NO_AUTO_REMOVE 2021-12-10 17:25:54 +00:00
Richard Hughes
8fc8539146 trivial: Remove some unused variables 2021-12-10 16:00:07 +00:00
Richard Hughes
46d06bf42a Fixup the GLib error message when inotify/max_user_instances is too low
This can be reproduced using sysctl fs.inotify.max_user_instances=25
and then running the daemon.
2021-12-07 18:51:11 +00:00
Kranthi Kuntala
de1f971e14 thunderbolt: set ports offline on host controller
This change offline ports in the host controller
for retimers to enumerate in the NDA case.

-offline and rescan usb4 ports
-this enable enumeration of the retimers
-updates nvm to the enumerated retimers
-online usb4 port this will de-enumerate retimers

BUG=b:187506425
TEST=emerge-volteer fwupd

Signed-off-by: Kranthi Kuntala <kranthi.kuntala@intel.corp-partner.google.com>
2021-12-07 15:54:30 +00:00
Richard Hughes
e0d59d82d5 trivial: Emit a critical warning if something finalizes the GUsbContext 2021-12-06 17:57:23 +00:00
Richard Hughes
2bd5380780 trivial: Use 0 for no limit on security attributes
This behaviour now matches the D-Bus interface document.
2021-12-03 13:42:06 +00:00
Richard Hughes
ea5cae7c41 Enable the MOTD integration when using pam_motd
This has to be a file, not a file-in-a-directory.

Fixes https://github.com/fwupd/fwupd/issues/4047
2021-12-01 20:55:15 +00:00
Richard Hughes
211ad62623 trivial: add the motd ouptut when --verbose 2021-12-01 16:29:38 +00:00
Richard Hughes
2066b7603d trivial: Don't add the fallback FDE warning for all devices 2021-11-30 18:31:54 +00:00
Richard Hughes
beb29ff698 Add a sync-bkc subcommand to ensure a known set of firmware versions
Install or downgrade firmware on all devices to make the system match
a well known set. This allows two things:

 * Factory recovery where a device in the field has been upgraded
 * Ensuring a consistent set of tested firmware for a specific workload

A tag is assigned either during upload or added post-upload on the LVFS
which is included in the metadata. A single firmware can be marked with
multiple tags, and tags can be duplicated for different firmwares.
2021-11-29 15:16:14 +00:00
Richard Hughes
dc9ee40ef7 trivial: Show multiple tags on one line in fwupdmgr 2021-11-29 15:02:31 +00:00
Richard Hughes
c9e58e2cd9 trivial: Fix a critical warning if compiled without HSI support 2021-11-29 15:02:31 +00:00
Richard Hughes
03f8238cf8 trivial: Actually add the tag namespace to the index 2021-11-29 15:02:31 +00:00
Richard Hughes
5d09600483 Don't install DBus introspection data when using -Dintrospection=false 2021-11-29 09:30:57 +00:00
Richard Hughes
dc1d5de057 Make the HSI tests optional for embedded targets
70% of the plugins installed on OpenBMC are not being used...
2021-11-29 09:30:57 +00:00
Richard Hughes
7143e04852 Add FuArchiveFirmware
Add a FuFirmware superclass that allows us to parse an new archive in the archive. We already do this for fastboot and we're about to add another.
2021-11-26 13:47:04 +00:00
Richard Hughes
4fe8a36729 Add support for LVFS component tags
These allow us to tag components as being part of a set, e.g. a BKC.
2021-11-25 10:36:26 +00:00
Richard Hughes
b26ecb00e0 triival: Be consistent when refering to Secure Boot 2021-11-24 17:43:33 +00:00
Richard Hughes
8c4a9547a8 trivial: Allow using fwupdmgr get-releases --json for QA 2021-11-24 15:39:40 +00:00
Richard Hughes
503a1633e6 trivial: Allow using fwupdmgr get-history --json for QA 2021-11-24 15:39:40 +00:00
Richard Hughes
71d93a65fb Make sqlite optional
This isn't required when fwupd is installed on targets like a BMC.
2021-11-23 15:09:05 +00:00
Richard Hughes
5ebbfe7f7d Export the component release ID over DBus
This allows us to map a specific component on the LVFS without guessing
by using the generated checksum.
2021-11-19 06:55:53 +00:00
Gabriel Kerneis
3e8f09a0f7 Add HSI check that PCR registers 0-7 are not empty
Some BIOSes forget add measurements to PCR registers, which results in
all-zero checksums and breaks measured boot guarantees.

Fixes #3901
2021-11-17 16:21:52 +00:00
Richard Hughes
b9024e80ae trivial: Show percentage values when non-interactive
Now we have a global progressbar it's a sane amount of data to log.
2021-11-16 17:04:07 +00:00
Richard Hughes
49afe450ab Use -Dcompat_cli=false to reduce the install size by over 100Kb
We don't need these binaries for green-field projects.
2021-11-15 15:01:22 +00:00
Richard Hughes
60612294f5 trivial: Use the device GType as the debugging root
We never show the fu_device_to_string() output to the user in normal
circumstances, and it's super useful for it to match the FuFirmware
format.
2021-11-15 14:59:52 +00:00
Richard Hughes
3e88040b7f trivial: Always use a newline when at 100%, even if not idle 2021-11-15 14:59:37 +00:00
Richard Hughes
b932c16b17 Remove the FuEngine::percentage-changed signal
Proxying the values is firstly inefficient, in that there were only
three functions in fu-engine.c that did not already have FuProgress
objects passed to them.

Secondly, processing the 'status' values from the engine meant that we
reset the percentage value to 0 for a split second, which made the
progress bar jump back to zero for one frame making it flicker.

Just make it all simpler and use FuProgress directly.
2021-11-15 14:59:37 +00:00
Richard Hughes
99e903669a Revert "Wait for device reboot when using fwupdtool detach"
This reverts commit 448772b73e.
2021-11-15 12:21:32 +00:00