Commit Graph

2018 Commits

Author SHA1 Message Date
Richard Hughes
4f70833832 trivial: Add some padding to the FuDevice class struct
If we ever support out-of-tree plugins we will be glad of this.
2018-05-03 19:56:20 +01:00
Mario Limonciello
e9046e7207 synapticsmst: Set TB16/WD15 appropriately in topology 2018-05-03 08:07:04 +01:00
Mario Limonciello
542b97d19f dell: Set parents for Dell WD15/TB16 docks 2018-05-03 08:07:04 +01:00
Mario Limonciello
4a981d599c dell: Set TPM alternate mode device under regular mode 2018-05-03 08:07:04 +01:00
Richard Hughes
2c86dc0e9a unifying: Set known parent for unifying peripherals 2018-05-03 08:07:04 +01:00
Richard Hughes
cc664d7d36 amt: Put the AMT device as a child under the system UEFI firmware 2018-05-03 08:07:04 +01:00
Mario Limonciello
6e0663ae6c thunderbolt: Set known parent for Thunderbolt devices in Dell TB16 2018-05-03 08:07:04 +01:00
Richard Hughes
42728c4d5e Add 'fwupdmgr get-topology' to show logical device tree 2018-05-03 08:07:04 +01:00
Richard Hughes
5e447293fa Add the concept of logical mappings between different devices
This allows us to find out the logical parent device, for instance in composite
devices with more than one firmware image for a single device.

We also allow lazily specifying the device parent using a GUID and the engine
then automatically sets the parent object when the GUIDs match, which allows
children and parents to exist in different plugins.
2018-05-03 08:07:04 +01:00
Richard Hughes
a30d933ac4 Show a translated warning when the server is limiting downloads 2018-05-02 13:23:49 +01:00
Richard Hughes
8aa7239240 trivial: Fix some Gtk-Doc mistakes
Fixes https://github.com/hughsie/fwupd/issues/487
2018-05-02 08:39:36 +01:00
Mario Limonciello
f6949b4911 Look up bash-completion paths using pkg-config 2018-05-01 16:21:31 -05:00
Richard Hughes
3d71c16ed3 Allow specifying hwids with OR relationships
We don't want to use the version= attribute as the HWIDs are not versions, and
thinkgs like globbing just doesn't make sense given they are from hashes.

Fixes the client side part of https://github.com/hughsie/lvfs-website/issues/110
2018-05-01 14:33:23 +01:00
Richard Hughes
db211de617 dfu: Fix a potential DoS by limiting filling holes to 1MiB 2018-05-01 11:35:53 +01:00
Richard Hughes
d7a04f6e86 trivial: Add the generated SREC examples for easy fuzzing 2018-05-01 09:53:10 +01:00
Richard Hughes
7c6b94118c Add support for parsing Motorola S-record files 2018-05-01 09:16:19 +01:00
Richard Hughes
2984d906b6 trivial: Fix example spec file with suggestions from downstream 2018-04-30 15:36:12 +01:00
Richard Hughes
f892a3b5bf trivial: post release version bump 2018-04-30 14:10:19 +01:00
Richard Hughes
0d911b84f7 Release fwupd 1.0.7 2018-04-30 14:08:50 +01:00
Richard Hughes
dd10a8f595 trivial: Fix a tiny memory leak when using 'dfu-tool dump' 2018-04-30 11:22:47 +01:00
Richard Hughes
3f4066852e Revert "trivial: Remove invalid -Wno-cast-function-type"
This reverts commit a6f44e11ff and allows us to
build on Fedora 28 without a huge number of bogus warnings.
2018-04-29 20:16:57 +01:00
Mario Limonciello
01b4f05072 uefi: Match the bootdir argument to fill in uefi.conf by default
This will make it more obvious which path it's defaulting to
2018-04-26 15:56:38 +01:00
Mario Limonciello
5a25653177 Improve the update report message (Closes: #437) 2018-04-23 10:30:27 -05:00
Mario Limonciello
f669efcc74 amt: Fix a compilation error on Fedora
../plugins/amt/fu-plugin-amt.c: In function ‘mei_context_new’:
../plugins/amt/fu-plugin-amt.c:77:2: error: implicit declaration of function ‘memcpy’ [-Werror=implicit-function-declaration]
  memcpy (&ctx->guid, guid, sizeof(*guid));
  ^~~~~~
../plugins/amt/fu-plugin-amt.c:77:2: error: incompatible implicit declaration of built-in function ‘memcpy’ [-Werror]
../plugins/amt/fu-plugin-amt.c:77:2: note: include ‘<string.h>’ or provide a declaration of ‘memcpy’
../plugins/amt/fu-plugin-amt.c:78:2: error: implicit declaration of function ‘memset’ [-Werror=implicit-function-declaration]
  memset (&data, 0, sizeof(data));
  ^~~~~~
../plugins/amt/fu-plugin-amt.c:78:2: error: incompatible implicit declaration of built-in function ‘memset’ [-Werror]
../plugins/amt/fu-plugin-amt.c:78:2: note: include ‘<string.h>’ or provide a declaration of ‘memset’
../plugins/amt/fu-plugin-amt.c: In function ‘mei_recv_msg’:
../plugins/amt/fu-plugin-amt.c:117:9: error: implicit declaration of function ‘strerror’; did you mean ‘g_strerror’? [-Werror=implicit-function-declaration]
     rc, strerror(errno));
         ^~~~~~~~
         g_strerror
../plugins/amt/fu-plugin-amt.c:117:9: error: nested extern declaration of ‘strerror’ [-Werror=nested-externs]
../plugins/amt/fu-plugin-amt.c:116:39: error: format ‘%s’ expects argument of type ‘char *’, but argument 6 has type ‘int’ [-Werror=format=]
         "read failed with status %zd %s",
                                      ~^
                                      %d
     rc, strerror(errno));
         ~~~~~~~~~~~~~~~
../plugins/amt/fu-plugin-amt.c: In function ‘mei_send_msg’:
../plugins/amt/fu-plugin-amt.c:142:40: error: format ‘%s’ expects argument of type ‘char *’, but argument 6 has type ‘int’ [-Werror=format=]
         "write failed with status %zd %s",
                                       ~^
                                       %d
         written, strerror(errno));
                  ~~~~~~~~~~~~~~~
../plugins/amt/fu-plugin-amt.c: In function ‘amt_verify_code_versions’:
../plugins/amt/fu-plugin-amt.c:288:14: error: implicit declaration of function ‘strlen’ [-Werror=implicit-function-declaration]
       len != strlen(code_ver->versions[i].version.string))
              ^~~~~~
../plugins/amt/fu-plugin-amt.c:288:14: error: incompatible implicit declaration of built-in function ‘strlen’ [-Werror]
../plugins/amt/fu-plugin-amt.c:288:14: note: include ‘<string.h>’ or provide a declaration of ‘strlen’
../plugins/amt/fu-plugin-amt.c: In function ‘fu_plugin_amt_create_device’:
../plugins/amt/fu-plugin-amt.c:430:2: error: incompatible implicit declaration of built-in function ‘memcpy’ [-Werror]
  memcpy (&ver, response->data, sizeof(struct amt_code_versions));
  ^~~~~~
../plugins/amt/fu-plugin-amt.c:430:2: note: include ‘<string.h>’ or provide a declaration of ‘memcpy’
cc1: all warnings being treated as errors
2018-04-23 10:29:48 -05: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
df860bbf4f Revert "trivial: Compile upower and test plugins with -O0 (Closes: #472)"
This reverts commit 6b0eb07886.

Per debian bug 896012 this is intentional behavior and a problem with
linitin.  An additional commit will be added to ignore this lintian
error.
2018-04-23 10:29:48 -05:00
Richard Hughes
34e0dab1f1 Add fu_plugin_add_compile_version()
This allows plugins to set and explicit build-time version. It also uses the
same AppStream component-ID scheme rather than the home-grown 'FooVersion' key.

Also, use the new runtime and compile-time versions in the report metadata.
Due to the key change we'll also need to update some LVFS rules.
2018-04-20 20:45:08 +01:00
Richard Hughes
b01b4869bb trivial: Use fu_plugin_add_runtime_version() in the Dell plugin 2018-04-20 20:45:08 +01:00
Richard Hughes
275d3b4f0f trivial: Fix a tiny memory leak introduced in the last commit 2018-04-20 20:45:08 +01:00
Richard Hughes
0eb123b986 Allow requiring specific versions of libraries for firmware updates
In some cases firmware can only be installed with an up to date GUsb (e.g. with
some STM-DFU hardware) or with a new version of fwupdate (e.g. any UEFI
UpdateCapsule without a capsule header).

We should be able to match against other software versions like we can the
fwupd version, e.g.

    <requires>
      <id compare="ge" version="0.9.2">org.freedesktop.fwupd</id>
      <id compare="ge" version="11">com.redhat.fwupdate</id>
    </requires>

Also, rather than checking each requirement we know about on the component,
check each requirement on the component about things we know. This ensures we
don't allow firmware to be installs that requires for instance fwupdate 22 when
the runtime version is only being added in fwupdate 12 and up.

This means the following is now an error that will fail to allow the firmware
to be installed:

    <requires>
      <firmware>doesnotexist</firmware>
      <some_future_tag>also_unknown</some_future_tag>
    </requires>

Also add a lot of self tests to test the various new failure modes.

Fixes https://github.com/hughsie/fwupd/issues/463
2018-04-20 16:19:05 +01: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
16d72a23ba Update the fwupdate minimum version to 10.
Similar logic as previous commit with versions in Ubuntu and Fedora.
2018-04-20 09:05:17 -05:00
Mario Limonciello
f781015607 Bump meson version requirement to 0.41
This allows dropping the previous valgrind hack.
Similar logic as previous commits.
2018-04-20 09:05:17 -05:00
Mario Limonciello
ce2a8231ea Bump appstream-glib minimum version to 0.7.4
Ubuntu's LTS and Fedora's newest releases have it.  All CI targets
have it.
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
Richard Hughes
e598fc3447 trivial: Show the VID and PID when failing to add a USB device
Fixes https://github.com/hughsie/fwupd/issues/476
2018-04-19 20:15:09 +01:00
Mario Limonciello
6b0eb07886 trivial: Compile upower and test plugins with -O0 (Closes: #472)
This is a workaround for what looks like a compiler bug introduced
in Debian and Ubuntu gcc-7.

After the compiler bug is sorted in Debian testing it should be
reverted.
2018-04-18 20:11:43 +01: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
de47f6ca1d trivial: CI: run debian-s390x first
It finishes the quickest of the builds so it will speed up CI
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
e00d05d033 Only run certtool if a new enough gnutls was on system and pkcs7 enabled 2018-04-18 10:25:22 -05:00
Mario Limonciello
6b9f07cbf7 trivial: fix a null pointer dereference
../src/fu-main.c: In function ‘fu_main_daemon_method_call’:
../src/fu-main.c:667:47: error: null pointer dereference [-Werror=null-dereference]
   polkit_authority_check_authorization (helper->priv->authority, subject,
                                         ~~~~~~^~~~~~
../src/fu-main.c:698:47: error: null pointer dereference [-Werror=null-dereference]
   polkit_authority_check_authorization (helper->priv->authority, subject,
                                         ~~~~~~^~~~~~
2018-04-17 10:10:43 +01:00
Mario Limonciello
a6f44e11ff trivial: Remove invalid -Wno-cast-function-type
Was causing this error on some configurations:
unrecognized command line option ‘-Wno-cast-function-type
2018-04-17 10:10:43 +01:00
Mario Limonciello
a98df55d82 Disable -Wunused-function on clang builds (Closes #467)
GLib creates two static inline functions for paramaters that may
not be used that set off warnings in clang but not gcc.

Ignore these on clang builds everywhere that
G_DEFINE_AUTOPTR_CLEANUP_FUNC is used.
2018-04-17 10:10:43 +01:00
Mario Limonciello
5e13aecef8 trivial: fu-util fix mismanaged memory
Caught by clang:

../src/fu-util.c:473:17: warning: assigning to 'gchar *' (aka 'char *') from 'const gchar *' (aka 'const char *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
	warning_markup = fwupd_remote_get_agreement (remote);
2018-04-17 10:10:43 +01:00
Mario Limonciello
7877769cad trivial: uefi: Remove an unused variable
Caught by clang:

../plugins/uefi/fu-plugin-uefi.c:311:32:  warning: unused variable 'iter' [-Wunused-variable]
	g_autoptr(fwup_resource_iter) iter = NULL;
2018-04-17 10:10:43 +01: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