Commit Graph

417 Commits

Author SHA1 Message Date
Richard Hughes
dce91204c9 Fix some typos spotted using codespell 2019-04-08 12:47:53 +01:00
Mario Limonciello
a3069f57b0 trivial: snap: set return code 2 on fwupd-activate.service as success
Otherwise the common case (nothing to do) will return 2 and show the systemd
unit as failed every time.
2019-04-04 22:30:25 +01:00
Mario Limonciello
14891c7934 trivial: ci: pull libxmlb from debian unstablef
Use apt pinning to not pull in the rest of debian unstable
2019-04-04 06:33:43 -05:00
Mario Limonciello
2df922c23d Move the core built-in 'fwupd' remote over to the dell-esrt plugin
This metadata is useless to other systems, so if compiling a custom
fwupd without -Dplugin_dell=true it shouldn't be included.
2019-04-02 07:18:29 -05:00
Mario Limonciello
a29ca19793 snap: Add a custom systemd unit to call activation on shutdown (Fixes: #1125)
The systemd shutdown script gets called after /snap/fwupd/* gets
unmounted meaning it can't be used to do the activation.

Explicitly check that the symlink for /snap/fwupd/current is mounted
when calling the script.
2019-04-02 07:10:56 -05:00
Richard Hughes
224a9036ae trivial: Build the ModemManager plugin on F30+ 2019-03-27 09:54:06 -04:00
Richard Hughes
363aa54605 trivial: Update the capsule header helper to work without flags set 2019-03-13 11:15:49 +00:00
Richard Hughes
b008bcab50 Add a simple script to add a capsule header
This may be helpful for OEMs and ODMs shipping 'bare' firmware.
2019-03-12 13:54:29 -05:00
connor nolan
03fbe471e8 fix makecab directive options 2019-03-12 06:28:12 -05:00
Steve McIntyre
c8de6b6398 trivial: debian: Update the format of the json metadata to match new requirements
* Move all the data under a new top-level "packages" key
* Add an empty "trusted_certs" key - our binaries do not do any
  further verification with an embedded key.
2019-03-11 17:06:21 -05:00
Richard Hughes
4499d19ba3 Move out the offline update functionality to a new binary
The offline updates environment is special, and we have to be careful to delete
the trigger before doing anything that can fail to avoid boot loops.

For this reason, split it out to a simple self-contained binary that is easy to
understand.
2019-03-08 09:45:30 -06:00
Richard Hughes
5806867ebe Add the fwupdagent binary for use in shell scripts
This currently just outputs the current list of devices with releases and makes
it possible to integrate firmware version reporting with other tools like mgmt.
2019-03-06 13:15:55 +00:00
Aleksander Morgado
a374f4c0b5 standalone-installer: new --allow-older and --allow-reinstall options 2019-03-04 09:29:44 -06:00
Mario Limonciello
6884795033 trivial: snap: fix install location for shutdown script (Fixes: #1064) 2019-03-03 19:48:27 -06: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
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
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
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
Richard Hughes
1a74b22eb0 trivial: Remove unused downstream postinst commands 2019-02-25 10:04:16 +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
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
43f390a336 standalone-installer: Fix issue found by LGTM
See https://lgtm.com/rules/6780080/ for details.
2019-02-10 13:37:06 +00:00
Richard Hughes
d3fcc39a0a trivial: Fix linting issue spotted by LGTM 2019-02-08 19:14:51 +00:00
Daniel Campello
f92e1f20e0 fwupd: Hide firmware-packager behind meson option
fwupd installs by default firmware-packager (a python3 script) into
the CrOS image. CrOS does not support python3 interpreter and fails
passing the TestValidInterpreter. Removing this script from the default
installation fixes the issue.

TEST=emerge-sarien fwupd
BUG=chromium:857263,b/121131967

Change-Id: I855c7994fd15faa0ce3d520734537674d7538b4e
2019-02-08 18:36:38 +00:00
Mario Limonciello
e8bb4e0e34 trivial: debian: bump to debhelper 11 2019-02-07 07:33:33 -06:00
Mario Limonciello
377918d422 trivial: debian: bump to newer standards version 2019-02-07 07:33:33 -06:00
Mario Limonciello
3a7899eb3f trivial: contrib/debian: remove custom compression 2019-02-07 07:33:33 -06:00
Mario Limonciello
83241fd25c trivial: contrib/debian: Add a lintian override for EFI applications 2019-02-07 07:33:33 -06:00
Mario Limonciello
e7ee719843 contrib/debian: Switch to debian unstable
Once libxmlb promotes to testing, this commit can be reverted.
2019-02-07 07:33:33 -06:00
Mario Limonciello
b3e5091349 trivial: contrib/ubuntu: set architectures for libsmbios 2019-02-07 07:33:33 -06:00
Mario Limonciello
a1e5fa6594 trivial: contrib/debian: use libxmlb from Debian archives 2019-02-07 07:33:33 -06:00
Richard Hughes
6b78d64987 Add fwupd_guid_from_string() to drop dep on uuid
This also allows us to write mixed-endian structures and adds tests. As part of
this commit we've also changed the API of something that's not yet been in any
tarball release, so no pitchforks please.
2019-02-06 14:48:04 +00:00
Richard Hughes
b8c30b8732 Do not use efivar just to print a mixed endian GUID 2019-02-04 15:19:57 +00:00
Mario Limonciello
dc73a47563 trivial: read and use all build flags used by Debian and Ubuntu builds
Filter out -Wl,-Bsymbolic-functions and run the test suite to make
sure any future build flags introduced will cause errors.
2019-02-04 08:56:43 -06:00
Mario Limonciello
39ddd968b8 trivial: contrib: debian: Don't allow -Wl,-Bsymbolic-functions
This linker flag is used by Ubuntu by default for packages.
It however doesn't work when compiled with `-Wl,-z,defs` which is
the default behavior since 0e17e6d030.

Recommended-by: Aleksander Morgado <aleksander@aleksander.es>
Signed-off-by: Mario Limonciello <mario.limonciello@dell.com>
2019-02-04 08:56:43 -06:00
Mario Limonciello
b503aa8650 ata: Add support for detecting Dell GUIDs
Similar to NVME, ATA drives distributed by Dell have special values
that should be used to designate fwupd GUIDs and only run correct
firmware.

When detecting Dell GUIDs remove the standard fwupd GUIDs.  "Generic"
firmware targeted to those GUIDs will fail to install.
2019-02-04 10:39:20 +00:00
Richard Hughes
7ccba7afba Remove the autogenerated headers in the gettext files
These change every release as we're importing from Transifex. They're not
required, so strip them out using a small python script.
2019-02-01 14:25:26 +00:00
Richard Hughes
0bf8ee810b ata: Add a new plugin to upgrade firmware on ATA/ATAPI hardware
Some of the ATA12 fixup code is by Mark Lord, taken from the hdparm project.

Fixes: https://github.com/hughsie/fwupd/issues/946
2019-01-29 22:28:09 +00:00
Richard Hughes
a08891b6cb trivial: Do not use the testing remote for the Fedora CI 2019-01-29 22:28:09 +00:00
Mario Limonciello
4f24d0bae3 When using directory remote type automatically generate metadata
The CAB files will be parsed upon `fwupd`/`fwupdtool` startup and
loaded into the daemon.
2019-01-29 09:21:54 -06:00
Richard Hughes
09cbacd771 trivial: Move Fedora CI to f29
We'll need this for some updated deps soon.
2019-01-28 15:42:30 +00:00
Richard Hughes
367f4590d6 wacom-raw: Add a plugin to update Wacom embedded EMR and AES panels 2019-01-24 10:18:40 +00:00
Richard Hughes
45bbfc9cae Check the device checksum as well as the content checksum during verify
Some firmware has a different on-device checksum to the hash of the firmware
file itself. This may be because:

 * The content is not a binary file, e.g. Intel HEX or SREC
 * Only part of the firmware is flashed, e.g. ignoring the bootloader section
 * The device checksum is calculated using another method entirely, e.g. PCR0

It's also made complicated as there may be more than one 'correct' device
checksum in some cases, but nothing that a union query can't solve.
2018-12-14 19:23:04 +00:00
Richard Hughes
b56015ed3f uefi: Add the PCR0 value as the device checksum for system firmware
We can't actually access the UEFI ROM from userspace, but the PCR0 is a hash
built from the ROM itself. We could use this value to ensure the firmware has
been written correctly, and that the PCR0 matches the expected value specified
in the metadata.
2018-12-14 19:23:04 +00:00
Richard Hughes
b4fd12a4c6 Add a plugin to update hardware that supports fastboot 2018-12-03 15:50:38 +00:00
Mario Limonciello
91a3eac28d contrib: Add a simple python3 client
The client uses GObject introspection to use the libfwupd2 library.

The client offers a reduced set of commands, but may be useful in some
environments.
2018-11-30 08:39:50 -06:00