Commit Graph

570 Commits

Author SHA1 Message Date
Mario Limonciello
12d25460b2 standalone-installer: Be smarter about existing installed fwupd
Allow setting a minimum fwupd version requirement using `--minimum`.

If running on a distro with apt, try to use this to detect an already
installed version and compare what was passed in to `--minimum`.
* If new enough version, use the built in version
* If too old of a version or not specified, require package removal.
2019-05-14 14:14:52 -05:00
Richard Hughes
c7bdded2c6 Add a plugin to update Synaptics Prometheus fingerprint readers 2019-05-14 17:18:55 +01:00
Mario Limonciello
0156b8fa78 trivial: standalone-installer: rename uninstall argument to cleanup 2019-05-08 10:05:31 -05:00
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
Mario Limonciello
15e4b0caaf installed-tests: Adjust to actually use a remote for installed tests
By using a remote, this should allow using gnome-software to do the
installed tests without hacking around much.

Fixes: https://github.com/hughsie/fwupd/issues/862
Fixes: https://github.com/hughsie/fwupd/issues/809
2018-11-29 09:40:06 -06:00
Richard Hughes
57908bebc1 wacomhid: Rename to wacom-usb
We're adding another Wacom plugin soon, this one also using hidraw -- but the
new protocol uses a different 'raw' protocol and does not use USB.
2018-11-29 13:26:29 +00:00
Richard Hughes
634da03730 Create a silo index to speed up GUID queries
This speeds up matching for GUIDs by about 90%, taking the query from 3.17ms to
about 0.33ms on my Thinkpad. This is more important for slow ARM hardware,
where strcmp() is more expensive than on x64.
2018-11-21 18:51:07 +00:00
Richard Hughes
8a2eaa5514 trivial: Move the release descriptions to the metainfo.xml file
This matches what a lot of other projects do, and means we can easily format
the release notes back into NEWS format, but also into HTML and Markdown.

This also means we can show the correct update description in gnome-software
when building a flatpak, rather than falling back to the generic project
description.
2018-11-16 21:52:41 -06:00
Mario Limonciello
4039001d25 trivial: ci: fix flatpak build
The submodules need to checkout the latest remote commit, not the latest
one that was recorded by git metadata.
2018-11-09 15:12:06 +00:00
Richard Hughes
9636f28095 trivial: Drop the libxmlb insertion into the flathub manifest
The 1.2.0 release is being built in Flathub now.
2018-11-09 15:12:06 +00:00
Richard Hughes
53a049fce8 trivial: Sync example spec file with downstream 2018-11-08 20:39:46 +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
d22f215a70 contrib: Adjust flatpak build for moving to flathub
Pull the based json file from
https://github.com/flathub/org.freedesktop.fwupd

And modify it as necessary (for changes in master)
2018-11-01 06:51:23 -05:00
Mario Limonciello
355f5c12d6 firmware-packager: Make it clearer to use
1) Remove the confusing --firmware-id and build this field dynamically based on GUID and Developer name
2) Make developer name mandatory
3) Rename device-unique-id to device-guid to more closely reflect how fwupdmgr shows it
4) Allow running on Windows
2018-10-24 06:12:31 -05:00
Richard Hughes
e4ad25044a Sort the firmware sack by component priority
This allows composite firmware to be ordered in an explicit way.
2018-10-23 09:20:02 +01:00
Richard Hughes
72b7eab693 flatpak: Update gnu-efi to latest version 2018-10-23 09:20:02 +01:00
Mario Limonciello
2aaa38d77d trivial: debian: Make control file statement more generic (Closes: #911505) 2018-10-22 07:50:26 -05: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
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
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
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
7cc7b04d67 ci: Run clang static analysis for Ubuntu build rather than just clang compiler 2018-09-21 07:35:08 +01:00
Mario Limonciello
f7d8250e9d trivial: standalone: Check argument make sense with command 2018-09-20 11:56:42 -05:00
Mario Limonciello
e25675de04 trivial: standalone: If missing flatpak dependencies, download them
Most distros don't enable flathub by default, so enable it when
running the tool if the deps are missing and pull the Gnome SDK from
there.
2018-09-20 11:56:42 -05:00
Mario Limonciello
2d12a24234 contrib: Add a standalone installer creation script
This is meant to produce standalone installer binaries that can operate
on machines without current tools or internet access.

It works by wrapping around the container technologies snap and flatpak
and putting all the pieces together.
2018-09-14 12:34:09 -05:00
Richard Hughes
35a0a456e2 rts54hid: Add support for Realtek USB devices using vendor HID commands 2018-09-14 12:40:20 +01:00
Richard Hughes
161eee23ca rts54hub: Add support for Realtek USB devices using vendor HUB commands 2018-09-12 14:18:55 +01:00
Mario Limonciello
b41b2d7061 trivial: snap: fix TLS communications in classic snap 2018-09-10 21:05:06 -05:00
Mario Limonciello
9ac08995d8 trivial: snap: sync up some missing changes in master snap 2018-09-10 21:05:06 -05:00
Mario Limonciello
db9a13c5bb trivial: snap: Correct bash completion path 2018-09-10 13:21:29 -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
2da1aca6e3 trivial: snap: tear out slots as well for classic snap
Classic snaps don't allow slots either.  When switching to a confined
or devmode snap, revert this commit.
2018-09-10 08:27:15 -05:00
Mario Limonciello
8511cc54bb trivial: snap: adjust efivar prefixes to be same on all archs
Snaps aren't multiarch, so this should help snap builds on !x86_64
potentially that have FTBFS thus far.
2018-09-09 23:09:21 -05:00
Mario Limonciello
05cc3f5956 trivial: snap: disable use of plugs for classic snap
This should be reverted if switching back to devmode or confined
snap.
2018-09-09 21:52:28 -05:00
Mario Limonciello
78bc800396 trivial: snap: Add python3-apt to build-deps for signed 2018-09-09 12:46:40 -05:00
Mario Limonciello
3514a5ea84 snap: Remove setting LD_LIBRARY_PATH
When working with classic snap this causes gpg to stop working.
If switching to devmode revert this fix.
2018-09-08 08:34:36 -05:00
Mario Limonciello
e7e569255f snap: Adjust grade to stable
The snap itself is in good shape now and should be able to migrate to
stable channels as needed.
2018-09-08 08:34:36 -05:00
Mario Limonciello
2e22d316eb snap: Move fwupd to / rather than /usr 2018-09-08 08:34:36 -05:00
Mario Limonciello
e9a3a0b925 snap: Enable builds for the daemon
This requires a newer version of gettext than is in Ubuntu 16.04
in order to support GETTEXTDATADIRS
2018-09-08 08:34:36 -05:00
Richard Hughes
194c76536e trivial: Use a non-obsolete font when building the UEFI splash images 2018-09-06 14:21:24 -05:00
Richard Hughes
f5465b01af trivial: Add the script used to generate the NVMe stats 2018-09-04 20:37:17 +01:00
Mario Limonciello
30407537ff trivial: debian: Add Recommends for bolt
Newer versions of bolt provide a superior experience when using
Thunderbolt force power rather than directly using the kernel.

Pull bolt in when installing fwupd to take advantage of this.
2018-08-28 10:38:00 -05:00
Richard Hughes
c16554252b flashrom: Add a plugin for updating using the flashrom command line tool 2018-08-28 09:25:36 +01:00
Richard Hughes
cdb01590e0 nvme: Add a new plugin to update NVMe hardware 2018-08-26 19:42:28 +01:00
Richard Hughes
16e85aa8cf superio: Add a new plugin to enumerate EC firmware 2018-08-24 20:37:27 +01:00
Mario Limonciello
00b8f150dd trivial: debian: disable test suite if fwupd is currently installed 2018-08-23 10:58:50 -05:00
Mario Limonciello
840920e928 trivial: debian: Add some signing bits that were missed (Closes: #906599) 2018-08-22 23:09:45 -05:00
Mario Limonciello
3d62c8f8f9 trivial: debian: Pass -a into dh_missing (Closes: #906357)
dpkg-buildpackage -A does the architecture independent builds and
is failing due to mistakingly seeing a file that is not installed.
2018-08-17 11:58:47 -05:00
Mario Limonciello
4b9769a361 trivial: snap: Download signed fwupd instead of signed fwupdate
It took some time for the round trip to sort out.  Download the latest
signed fwupd binary rather than fwupdate binary.
2018-08-15 19:54:15 +01:00
Richard Hughes
677c36b1e8 trivial: Update the reference spec file with latest guidelines 2018-08-13 12:57:23 +01:00
Mario Limonciello
1058c7fb4f trivial: debian: use a virtual package to resolve the signed package
On Debian this will be fwupd-$ARCH-signed, on Ubuntu it's a real package
called fwupd-signed.
2018-08-09 12:41:44 -05:00
Mario Limonciello
7984859062 trivial: debian: Recommends the signed packages
This will cause fwupd to pull them in by default for the appropriate
architectures.
2018-08-09 10:46:01 -05:00
Mario Limonciello
e20a5cb839 trivial: contrib: Update README for proper docker command (Closes: #615) 2018-08-09 13:22:29 +01:00
Mario Limonciello
2a099494aa ci: enable synaptics plugin to run in more architectures
Although it's only used on Dell devices, those devices could potentially
be plugged in via a bus on a different architecture too.
2018-08-06 06:22:21 +01:00
Gary Lin
2e0e179298 redfish: Read options from redfish.conf
This commit adds redfish.conf to configure the IP and username/password
in case those are not available in SMBIOS and the EFI variables.

Since we can configure the IP in the conf file, the environment
variable, FWUPD_REDFISH_URI, is removed.

Signed-off-by: Gary Lin <glin@suse.com>
2018-08-06 06:19:56 +01:00
Mario Limonciello
5b57d7fcd3 trivial: debian: correct another syntax error in SB signing template 2018-08-05 08:33:20 -05:00
Mario Limonciello
2f7669f278 contrib/debian: generate debian/copyright dynamically 2018-08-05 08:22:23 -05:00
Mario Limonciello
7154f63397 trivial: Adjust syntax of varying copyright holders to unify across project 2018-08-05 08:22:23 -05:00
Mario Limonciello
67604eab64 trivial: debian: correct secure boot signing template name (Closes: #905471) 2018-08-05 00:05:23 -05:00
Mario Limonciello
54b0e239bd trivial: debian: refresh debian/copyright (Closes: #904671) 2018-08-04 22:31:32 -05:00
Mario Limonciello
df12c14032 trivial: debian: Fix secure boot signing template (Closes: #905468) 2018-08-04 22:25:36 -05:00
Mario Limonciello
0ad1185aa9 trivial: debian: make sure EFI binaries are in correct binary package 2018-08-04 19:49:47 -05:00
Mario Limonciello
607597d2d8 trivial: debian/rules: dynamically install EFI binaries 2018-08-04 19:40:31 -05:00
Mario Limonciello
20c0234086 trivial: debian: use pkg-config to determine when to turn on redfish and UEFI
Fixes FTBFS in Debian due to Redfish not working on !x86
2018-08-04 16:57:50 -05:00
Mario Limonciello
7beace3d9c trivial: ci: Only add gnu-efi to build-deps for supported architectures
For Debian/Ubuntu this was causing FTBFS (dep-wait) on any architectures
that didn't have gnu-efi.
2018-07-30 16:41:59 -05:00
Mario Limonciello
7769304c7b trivial: debian: fix the filename of the signed archive used for secure boot
In the process of bringing over from fwupdate this line was missed
from debian/rules.
2018-07-23 13:26:45 -05:00
Mario Limonciello
76397da55f trivial: ci: install bubblewrap in Fedora, Ubuntu, & Debian 2018-07-13 10:51:12 -05:00
Mario Limonciello
5eef1e83f7 trivial: fedora: fix missing libgcab1-devel 2018-07-12 14:24:48 -05:00
Mario Limonciello
df6b0c1491 trivial: add make to depends for the template 2018-07-12 14:24:48 -05:00
Mario Limonciello
08efb277a1 Update the template building service for the move to fwupd
Since the EFI binary copied to fwupd the signing service will
also need to use templates from fwupd.
2018-07-12 14:24:48 -05:00
Steve McIntyre
d819ebf18f Initial support for UEFI Secure Boot in Debian infrastructure
(Hopefully without breaking the Ubuntu packaging!)

When building, also generate a fwupdate-$ARCH-signed-template package
which contains metadata needed by the Debian signing service. This
will end up being turned into a new source package including a signed
version of the fwupdate binary.

Update the existing debian packaging files for fwupdate to do this,
and also add the core of the template in the debian/signing-template
directory. Also add a couple of helper scripts to drive things, and
update our README.Debian.
2018-07-12 14:24:48 -05:00
Mario Limonciello
bc5b496c61 trivial: debian: add gnu-efi to debian build deps 2018-07-12 14:24:48 -05:00
Richard Hughes
70c9ab0288 Do not use /usr/bin/env in the shebang line
According to Fedora policy env must not be used as it could be overridden by
values in the PATH.

For details, https://fedoraproject.org/wiki/Packaging:Guidelines#Shebang_lines
2018-07-12 07:08:53 -05:00
Richard Hughes
64881c0e2a trivial: Fix the Fedora spec file to build with F29 2018-07-11 20:49:37 +01:00
Mario Limonciello
44305bbde4 Rename EFI application from fwup<arch>.efi to fwupd<arch>.efi
This will prevent potentially clashing with fwupdate's EFI application
and allow them to remain co-installable.
2018-07-10 10:45:39 -05:00
Richard Hughes
ba103483fa redfish: Add a plugin that uses the Redfish API
Redfish is an open industry standard specification and schema that helps enable
simple and secure management of modern scalable platform hardware.

This has only ever been tested using an emulator and not on real hardware.
2018-06-29 20:17:45 +01:00
Mario Limonciello
f0eee65f01 trivial: fedora: Fix the signed file to match what fwupd is expecting 2018-06-29 16:33:16 +01:00
Richard Hughes
76447b2df4 trivial: Sign the Fedora fwup.efi loader 2018-06-29 08:58:12 +01:00
Mario Limonciello
b5845a8e93 Catch missing translation files in POTFILES.in 2018-06-29 06:43:06 +01:00
Richard Hughes
bf71ba6fb1 trivial: Use the address sanitizer when building the Fedora CI 2018-06-28 20:55:37 +01:00
Richard Hughes
57df956d7b uefi: Add a libexec tool to mimic the original fwupdate CLI interface 2018-06-28 15:51:11 +01:00
Mario Limonciello
f771bde71f uefi: Merge plugin_uefi and plugin_uefi_labels configure options 2018-06-28 15:51:11 +01:00
Mario Limonciello
37ea678db5 trivial: Install the various python deps as part of the flatpak build 2018-06-28 15:51:11 +01:00
Richard Hughes
ebbb13c2b4 Remove the libfwup dependency from fwupd
In Fedora the only user of libfwupdate is fwupd and the fwupdate command line
tool. It makes sense to absorb the libfwupdate library interface into the
uefi plugin in fwupd. Benefits I can see include:

* fwupd and fwupdate are very similar names; a lot of OEMs are confused

* fwupd already depends on efivar for other things

* We are maintaining an artificial library interface

* The CI and translation hooks are already in place for fwupd

* We don't need to check for features or versions in fwupd, we can just develop
the feature (e.g. BGRT) all in one place.
2018-06-28 15:51:11 +01:00
Richard Hughes
b157d6eff9 uefi: Unlock the ESRT without using libfwup
This will be handled by a Dell-specific plugin instead.
2018-06-28 15:51:11 +01:00
Mario Limonciello
411952700c Download latest signed version of fwupx64.efi during snap build
This might not match the version that's in the snap, but if someone
is booted in secure boot, it's better completely failing.
2018-06-28 15:51:11 +01:00
Richard Hughes
b1e0ab98d1 uefi: Import the fwupd.efi sources from the fwupdate project 2018-06-28 15:51:11 +01:00
Richard Hughes
44367e707d trivial: Bump the required version of libsmbios_c
Also, disable the dell plugin for the CentOS build.
2018-06-28 15:51:11 +01:00
Richard Hughes
e1d65f3f5d trivial: Enable epel-testing for the Centos build 2018-06-27 16:48:35 +01:00
Richard Hughes
cd330b09d3 trivial: include libsmbios for the Arch CI build 2018-06-27 12:52:32 +01:00
Richard Hughes
82747821f8 trivial: Enable bash completion in the example spec file 2018-06-27 12:52:00 +01:00
Richard Hughes
aa05cdf92c trivial: Fix the flatpak build 2018-06-27 10:40:05 +01:00
Mario Limonciello
303cfe0294 Move Fedora CI to fedora 28
This is to easily get the updated efivar 33 dependency
2018-06-22 09:59:06 +01:00
Mario Limonciello
8bda7ccae8 trivial: snap: sync up changes to master snap 2018-06-12 12:03:17 -05:00
Mario Limonciello
352f2c9b49 trivial: snap: fix bash completion
Since the snap is named fwupd, fwupdtool gets namespaced as
fwupd.fwupdtool so bash completion doesn't work properly.

Add a step to fixup bash completion paths
2018-06-12 12:02:41 -05:00
Mario Limonciello
e49cce5187 trivial: snap: strip some more items out 2018-06-11 14:22:08 -05:00
Mario Limonciello
90b3be33eb snap: use the 'home' interface to allow snap to access CABs in $HOME
This matches the similar flatpak commit to allow easier consumption
of CAB files manually downloaded from LVFS
2018-06-08 16:41:08 -05:00
Mario Limonciello
f8cb836d60 flatpak: Enable bind mount for xdg-download-dir (Closes: #555)
This makes it easier to install CAB files downloaded from LVFS
via your web browser.
2018-06-08 16:41:08 -05:00
Mario Limonciello
b1503e96da trivial: debian: Add bash-completion to debian/control 2018-06-07 09:35:44 -05:00
Mario Limonciello
0fdf5aec81 trivial: debian: Correct debian copyright for license changes 2018-06-07 09:35:40 -05:00
Mario Limonciello
bb1cb5af35 trivial: snap: Update the mime information
Fixes installation from CAB files in devmode
(although they need to be placed in the ratherintuitive directory
/root/snap/fwupdtool/common/ for now)
2018-06-06 17:37:37 -05:00
Mario Limonciello
2a327154c2 trivial: snap: switch to devmode instead of classic
Per discussion in trying to get classic snap approved, snap security
audience would rather see all interfaces used by fwupd added into
snapd interfaces so proper confinement works.

This will require devmode for now until that has occurred.
2018-06-06 14:42:30 -05:00
Mario Limonciello
982e74dba6 trivial: for snap/flatpak use the libsmbios 2.4.2 release 2018-06-06 16:48:05 +01:00
Mario Limonciello
f6689b8144 trivial: snap: don't build dep on xmlto
Not needed, and speeds up builds quite a bit since it doesn't pull
in the latex stack.
2018-06-05 11:33:26 -05:00
Mario Limonciello
2b1e80e79a trivial: snap: use fwupdate 11 git until fwupdate 12 release is out 2018-06-04 12:01:27 -05:00
Mario Limonciello
eafc35391c trivial: snap: build libusb and libgusb against stable releases 2018-06-04 12:01:27 -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
84f2048697 trivial: snap: Add a README 2018-06-04 12:01:27 -05:00
Richard Hughes
872ec1b68f Add an experimental plugin to update some new Wacom tablets 2018-06-04 11:29:29 +01:00
Richard Hughes
445afbf62c trivial: Don't copy the git dir when building a flatpak 2018-06-04 09:40:28 +01:00
Richard Hughes
0b522aef96 colorhug: Do not require libcolorhug to build
Requiring colord to be built before fwupd makes it hard to build packages.

The HID-based flashing protocol is stable and documented, so there's no need
to use an external library for this now.
2018-06-02 21:43:20 +01:00
Richard Hughes
5171a64a33 flatpak: Use the local directory when building fwupd 2018-06-02 21:05:14 +01:00
Mario Limonciello
e1a39e6191 trivial: snap: Cache the correct giomodules
Fixes:
'g_io_module_load': /usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so: undefined symbol: g_io_module_load
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so
'g_io_module_load': /usr/lib/x86_64-linux-gnu/gio/modules/libgiolibproxy.so: undefined symbol: g_io_module_load
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgiolibproxy.so
'g_io_module_load': /usr/lib/x86_64-linux-gnu/gio/modules/libgiognomeproxy.so: undefined symbol: g_io_module_load
Failed to load module: /usr/lib/x86_64-linux-gnu/gio/modules/libgiognomeproxy.so
2018-06-01 16:43:50 -05:00
Mario Limonciello
84e6afde9d trivial: snap: build gudev in as well
The one in Ubuntu core 16 is ancient
2018-06-01 16:43:50 -05:00
Richard Hughes
121aa439b9 trivial: Use the correct branch when building a flatpak bundle 2018-06-01 15:56:12 +01:00
Richard Hughes
7e683c96eb trivial: Use the non-sourceforge libusb download location 2018-05-31 21:39:24 +01:00
Mario Limonciello
7ff2a2ced6 trivial: remove some unneeded build deps for snap build 2018-05-31 15:14:19 -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
Richard Hughes
89239b35b6 Add support for building a flatpak bundle 2018-05-31 13:54:45 +01:00
Mario Limonciello
51308e648a Adjust all licensing to LGPL 2.1+ (Closes: #526) 2018-05-29 09:03:13 +01:00
Mario Limonciello
e7d6cdc843 trivial: Add bash completion for fwupdtool 2018-05-22 05:44:52 +01:00
Richard Hughes
b597683113 Add a low-level firmware diagnostic tool
This is designed to be run as root accessing the hardware directly rather than
using the daemon. This would allow a snap or flatpak package to write firmware
even when the host fwupd daemon is too old.

Also, move the SMBIOS parsing code here as this is not needed in fwupdmgr.
2018-05-18 10:08:10 +01:00
Richard Hughes
9b7ad9ad62 Do not use the system metainfo location
This means we can avoid loading a ton of non-fwupd files, and reduces our
running RSS from 5.4Mb to 2.8Mb. Old versions of appstream-glib caches a lot of
the localization string data which we just don't care about for firmware files.
2018-05-16 22:38:00 +01:00
Mario Limonciello
f6949b4911 Look up bash-completion paths using pkg-config 2018-05-01 16:21:31 -05:00
Richard Hughes
2984d906b6 trivial: Fix example spec file with suggestions from downstream 2018-04-30 15:36:12 +01:00
Mario Limonciello
8600b644df trivial: debian: ignore library-not-linked-against-libc
lintian is showing false positives.  See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=896012
for more details.
2018-04-23 10:29:48 -05:00
Mario Limonciello
58fc7d7467 trivial: debian: Don't require valgrind on more arch ports (Closes: #896148)
ia64, risvc64 and x32 aren't likely to get valgrind soon, so turn off self
tests on them and remove the dependency.
2018-04-20 09:10:34 -05:00
Mario Limonciello
078078d20e Don't build UEFI in CentOS (it doesn't have fwupdate 10 yet 2018-04-20 09:05:17 -05:00
Mario Limonciello
693497b961 Update Fedora dockerfile to pull from Fedora 27 2018-04-20 09:05:17 -05:00
Mario Limonciello
ed1ac2a74b Enable CentOS 7 for CI
There are a lot of hacks here;
 * Pulling newer libappstream-glib from Fedora
 * Pulling a systemd backport
 * Manually installing pillow and pygobject
 * PKCS7 is turned off (gnutls is too old)
2018-04-18 10:25:22 -05:00
Mario Limonciello
3a00164d9a trivial: Support setting a proxy while building docker container 2018-04-18 10:25:22 -05:00
Mario Limonciello
6a650193b0 trivial: debian: Reset clang to run in Ubuntu
This was accidentally dropped in a previous CI rework.
2018-04-16 10:54:44 -05:00
Mario Limonciello
59e6440dd5 trivial: debian: Remove unused override in debian/lintian/fwupd 2018-04-16 10:54:44 -05:00
Mario Limonciello
0a94c6d34a trivial: debian: rename tag for debian/source/lintian-overrides 2018-04-16 10:54:44 -05:00
Mario Limonciello
05c5b8de20 trivial: debian: Adjust to use https in debian/copyright 2018-04-16 10:54:44 -05:00
Mario Limonciello
6babe0fb40 trivial: debian: Bump debian/compat to 10 2018-04-16 10:54:44 -05:00
Mario Limonciello
f94b2f8c17 trivial: debian: Update control version 2018-04-16 10:54:44 -05:00
Sjoerd Simons
0a4409f231 contrib/ci: Fix synapticmst test under arch ci build
The synaptic mst test wants to open its test files as r/w, however as the
arch build runs as user nobody that won't work unless the test files are
also owned by user nobody. To make that happen, copy the source tree
rather then symlinking it

Signed-off-by: Sjoerd Simons <sjoerd.simons@collabora.co.uk>
2018-04-12 20:31:30 -05:00
Richard Hughes
972f6eaba5 Allow customising the warning shown when enabling the remote 2018-04-12 08:17:08 +01:00
Andrei Emeltchenko
2872867110 firmware-packager: Allow to create package out of provided binary
In a case we have firmware binary instead of exe archive allow to
create package.
2018-03-09 18:53:45 +08:00
Richard Hughes
ab4c2d13a6 Remove support for RaspberryPi
This was never used, and the foundation want to stick to the existing 'just
download a new file' distribution method.
2018-03-01 18:45:47 +00:00
Mario Limonciello
ce5ed9ce58 Add bash completion for fwupdmgr 2018-02-28 06:40:59 -06:00
Mario Limonciello
963dc4245c
uefi: Allow overriding ESP mount point via conf file (Fixes: #421) (#422)
* uefi: Allow overriding ESP mount point via conf file (Fixes: #421)
2018-02-27 14:26:58 -06:00
Robert Ancell
5c535a53ce Generate Vala bindings 2018-02-26 06:04:27 +00:00