Commit Graph

34 Commits

Author SHA1 Message Date
Richard Hughes
58ba785915 Install the new dbx utility as fwupdbxtool 2020-08-18 17:34:26 +01:00
Richard Hughes
9a04ce8f29 msr: Add a new plugin to detect the Intel DCI state 2020-07-16 20:13:06 +01:00
Mario Limonciello
13f4240881 trivial: snap: move to newer modem manager stuff
Fixes: #2200
2020-06-23 15:21:09 -05:00
Mario Limonciello
cafea91f53 trivial: fix windows and snap CI
Introducing newer gusb caused these builds to run gusb as a subproject
and hence the introspection binaries were looked for.

Fixes: cd65ae ("Require libgusb 0.3.3")
2020-05-29 08:08:32 -05:00
Mario Limonciello
0392665051 trivial: snap: build using meson 0.54
libjcat bumped the meson dep up newer than we were using.
2020-03-30 19:22:47 -05:00
Richard Hughes
d5aab65f30 Use Jcat files in firmware archives and for metadata
A Jcat file can be used to store GPG, PKCS-7 and SHA-256 checksums for multiple
files. This allows us to sign a firmware or metadata multiple times (perhaps
by the OEM and also then the LVFS) which further decentralizes the trust model
of the LVFS.

The Jcat format was chosen as the Microsoft catalog format is nonfree and not
documented. We also don't want to modify an existing .cat file created from WU
as this may make it unsuitable to use on Windows.

More information can be found here: https://github.com/hughsie/libjcat
2020-03-23 19:55:12 +00:00
Mario Limonciello
c4bc1ad881 trivial: snap: add fwupdagent command 2020-03-20 11:18:00 -05:00
Mario Limonciello
d6baddc772 trivial: snap: include fwupdtpmevlog command (fixes: #1885) 2020-03-20 11:18:00 -05:00
Mario Limonciello
506ef63a59 trivial: snap: correct install hook root directory 2019-09-26 13:34:26 -05:00
Mario Limonciello
0a9665c708 trivial: Move dbus directory location for snap too
This error was happening on fresh snap install (not upgrade):
```
install: cannot stat '/snap/fwupd/1065/etc/dbus-1/system.d/org.freedesktop.fwupd.conf': No such file or directory
```

Fixes 41a25be6 ("Move D-Bus conf file to datadir/dbus-1/system.d")
2019-09-23 09:08:49 -05:00
Mario Limonciello
ae71a62620 snap: switch to core18
This makes the snap build quicker by using more distro dependencies
and also fixes some unicode output errors.
2019-09-22 08:46:01 -05:00
Jonas Witschel
1b5f1da202 uefi: use tpm2-tss library to read PCR values
Using the library instead of the command line tools provides a more
stable interface. This implementation only fetches PCR 0 for all
available hash algorithms since this is the only PCR that is actually
used in fwupd.
2019-08-27 06:23:42 -05:00
Artur Raglis
13fd21d806 flashrom: Use libflashrom
This also means we now include a flashrom subproject as no distro currently has
a flashrom new enough to build the plugin.

Signed-off-by: Richard Hughes <richard@hughsie.com>
Signed-off-by: Artur Raglis <artur.raglis@3mdeb.com>
Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
2019-06-28 08:28:51 +01:00
Mario Limonciello
c8bfb40527 trivial: snap: make polkit directories if they don't exist (Fixes: #1205) 2019-05-23 14:29:04 -05:00
Mario Limonciello
4eb251c4e5 trivial: snap: start/stop fwupd-activate on install/remove 2019-04-02 09:14:37 -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
Mario Limonciello
6884795033 trivial: snap: fix install location for shutdown script (Fixes: #1064) 2019-03-03 19:48:27 -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
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
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
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
Mario Limonciello
3561d9bef9 trivial: snap: move to efivar 37 2018-12-06 08:20:38 +00:00
Mario Limonciello
7cff2dcb25 trivial: Bump meson dependency to 0.47.0
The current libxmlb dependency requires this and when run in subproject
mode will cause failures otherwise.

Also bump the snap to use meson 0.47.2 to fix snap build due to this
failure.
2018-11-07 11:40:26 -06:00
Mario Limonciello
a8240caf2e trivial: snap: Use libxmlb subproject instead
This avoids having to bump the snap on libxmlb releases.
2018-10-18 21:25:56 +01:00
Richard Hughes
481aa2a923 Port from libappstream-glib to libxmlb
The libxmlb library is much faster to query, and does not require the daemon
to parse the XML metadata at startup. It's a zero-copy mmap design that is more
modern and less clunky.

RSS has reduced from 3Mb (peak 3.61Mb) to 1Mb (peak 1.07Mb) and the startup
time has gone from 280ms to 250ms.
2018-10-17 14:41:13 +01: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
c60012c784 trivial: snap: Install dbus service in classic snap
This should be reverted if switching to a devmode or confined snap.
2018-09-10 13:21:12 -05:00
Mario Limonciello
b91d3d9bff trivial: snap: set up proper permissions for copied filed in hook 2018-09-09 12:46:40 -05:00
Mario Limonciello
25b49b7943 snap: Add an install hook for classic snap
Install the policykit rules and actions into the host system.
If switched to a devmode snap this should be reverted.
2018-09-08 08:34:36 -05:00
Mario Limonciello
71515d6a9c trivial: snap: Split up to a snapcraft.yaml for stable and unstable builds
This allows easily building all the dependencies but makes snaps more
likely to be stable.
2018-06-04 12:01:27 -05:00
Mario Limonciello
f290bcce1a trivial: snap: make snap/ a directory instead of symlink
This was causing stray files to end up in /snap directory of the snap
2018-06-01 16:43:50 -05:00
Mario Limonciello
0238a9b2f2 Add support for creating snaps
They can be built one of three ways:
* Through Travis CI (Add to the OS matrix)
* Through build.snapcraft.io
* Locally (snapcraft cleanbuild)
2018-05-31 14:12:06 -05:00