Commit Graph

299 Commits

Author SHA1 Message Date
Aleksander Morgado
3bcd4cf44a trivial: remove QMI_REQUIRED_VERSION
We use MM_REQUIRED_VERSION to compare the running ModemManager version
with the one we require. But we don't need QMI_REQUIRED_VERSION for
anything, just remove it.

These symbols were similar to GLIB_REQUIRED_VERSION, but neither
ModemManager nor libqmi implement them in the same way as GLib does.
For the purpose of skipping deprecated APIs, ModemManager and libqmi
use the older MM_DISABLE_DEPRECATED and QMI_DISABLE_DEPRECATED macros.
2021-05-14 14:08:44 +02:00
Aleksander Morgado
dcbd979b8f trivial: fix libqmi build dependency
The build dependency of libqmi was attempted to be updated in
commit 6db69de725, but wasn't properly done, as
only the QMI_REQUIRED_VERSION symbol was updated, not the actual
pkgconfig required version.
2021-05-14 14:08:44 +02:00
Jan Blechta
197d3dc3b9 Fix regression in build system
Reverts small part of 99832622e1.
EFI_APP_LOCATION conf var (or FWUPD_EFIAPPDIR env var) is needed for

  fu_common_get_path (FU_KIND_PATH_EFIAPPDIR)

to function properly
2021-04-28 18:07:56 +01:00
Richard Hughes
fdd507957a Switch from libproxy to GProxyResolver
GProxyResolver will use libproxy only when required. TIL.
2021-04-28 15:52:45 +01:00
Richard Hughes
f992fb75cd Use libproxy to get the system proxy setting for a given URL 2021-04-26 16:30:13 +01:00
Richard Hughes
19e77ba445 trivial: post release version bump 2021-04-26 11:03:20 +01:00
Mario Limonciello
99832622e1 uefi-capsule: Move EFI binary into a subproject
This will allow distributions to package and distribute the unsigned
EFI binary separately, similar to what has been done for GRUB.
2021-04-23 13:59:10 -05:00
Norbert Kamiński
58fbbc2939 fu-tool.c: Use traditional UNIX record locks if OFD is not available
Open file description locks are Linux-specific. If fwupd is not built
for Linux, it should use the traditional UNIX record locks (F_SETLK).

Signed-off-by: Norbert Kamiński <norbert.kaminski@3mdeb.com>
2021-04-19 12:42:37 +01:00
Richard Hughes
9cf5f8f7ff Use an OFD lock to prevent more than one fwupdtool process
Fixes https://github.com/fwupd/fwupd/issues/3019
2021-04-15 08:34:55 +01:00
Ross Burton
57961cddac Add option to disable the UEFI capsule splash screen generation
The dependencies to generate the "updating..." splash screen are non-trivial, and
pointless in headless systems.  Add an option to disable the generation entirely.
2021-04-13 12:31:17 +01:00
Ross Burton
db09147679 Don't check for native dependencies as target dependencies
Don't look for cairo, fontconfig, and freetype libraries as this will
look for *target* libraries. The presence of these libraries is used as
a proxy for the gobject-introspection libraries being available for
the make-images.py script, but as this runs at build time we don't care
about target libraries at all.

Luckily there's another script, test-deps.py, which looks for the g-i
libraries so these dependencies can be removed.
2021-04-13 12:31:17 +01:00
Ross Burton
4e6cb21aaf trivial: Remove unused readelf dep
readelf isn't used by anything, so there's no need to look for it.
2021-04-13 12:31:17 +01:00
Érico Nogueira
391647f55e Fix build on musl.
malloc_trim isn't a linux function, it's a GNU extension to malloc.  We
can check for it in meson.build, which avoids hardcoding platform
knowledge.
2021-03-29 18:58:56 +01:00
Richard Hughes
276baf12f9 trivial: Rename spi to intel-spi as it's all Intel specific
If we need to export the EFI symbols into libfwupdplugin for other plugins we
can do that when we need them.
2021-03-20 12:24:27 +00:00
Norbert Kamiński
76e19930a8 fwupd port for BSD distros
Signed-off-by: Norbert Kamiński <norbert.kaminski@3mdeb.com>
2021-03-19 17:05:09 +00:00
Richard Hughes
a5966f7085 trivial: Codespell fixes 2021-03-19 16:42:33 +00:00
Richard Hughes
52441f28a4 Allow objects to deserialize to XML
This makes a lot more sense; we can parse a firmware and export the same XML
we would use in a .builder.xml file. This allows us to two two things:

 * Check we can round trip from XML -> binary -> XML

 * Using a .builder.xml file we can check ->write() is endian safe
2021-03-15 12:07:30 +00:00
Richard Hughes
278c3998a5 Parse the IFD BIOS section into EFI FV and FFS2 sections 2021-03-15 10:46:39 +00:00
Richard Hughes
70904ba820 trivial: Actually print the po/test-deps failure on the console 2021-03-12 18:21:04 +00:00
Richard Hughes
2d84386034 Remove unused, unsafe and deprecated functions from libfwupdplugin
Keeping *internal* API and ABI compatibility makes working with an already
complex codebase more mentally demanding than it needs to be.

Remember: plugins should be in-tree and upstream! If your out of tree plugin
stops working then it should be upstream.

The public-facing libfwupd will remain API and ABI stable for obvious reasons.
2021-03-09 15:47:56 +00:00
Richard Hughes
2e629313bf trivial: post branch version bump 2021-03-09 15:35:29 +00:00
Richard Hughes
cc5cea1be6 trivial: post release version bump 2021-02-23 14:57:22 +00:00
Ricardo Cañuelo
536fb85e21 Add initial support for Bluez bluetooth devices
Bare skeleton for what will be the Bluez backend and the base bluetooth
device class.
2021-02-22 16:53:41 +01:00
Mario Limonciello
d2130f73a3 trivial: Rename meson option tpm->plugin_tpm 2021-02-18 14:46:20 +00:00
Richard Hughes
e5d33b0d01 trivial: post release version bump 2021-02-16 12:16:22 +00:00
Richard Hughes
c3ecec575b fmap: Use memmem to find the FMAP signature
Trust glibc to optimize for the binary search, removing a oss-fuzz detected
crash with our bad pointer maths.
2021-02-11 20:27:20 +00:00
Richard Hughes
9b3f7aba82 trivial: Remove unused -Dlink_language support 2021-02-07 16:59:57 +00:00
Javier Martinez Canillas
fde4b1676a uefi: Rewrite generate_binary.sh script in Python
The generate_binary.sh is a script that calls the objcopy tool and
genpeimg in the case of Windows, to generate a PE binary file.

But doesn't have to be a shell script and could be rewritten as a
python script. This will make this code to generate a PE binary
easier to extend if needed.

Also, the only reason that's a template is to define the objcopy
tool used, but this can also be passed as a positional argument.
2021-02-04 12:51:05 +00:00
Richard Hughes
8e7a0dce4a trivial: Do not use deprecated symbols internally
This means shuffling things around a little, but no logic changes.
2021-01-26 14:25:56 +00:00
Mario Limonciello
75835b4a0b Use FWUPD_COMPILATION define to indicate an in tree build
When this is done, include:
* Including the hash
* Including anything that is not ABI stable in plugins yet

Suggested-by: Simon McVittie <smcv@debian.org>
2021-01-22 14:01:25 -06:00
Richard Hughes
edc0c08065 synaptics-rmi: Support parsing and writing signed firmware
Validate the firmware signature if provided
2021-01-18 21:18:02 +00:00
Richard Hughes
0d634fe81e Allow more than one plugin to use GnuTLS directly 2021-01-18 21:18:02 +00:00
Richard Hughes
1a3d3b338e Make GUsb optional for fuzzing 2021-01-14 14:23:12 +00:00
Richard Hughes
5add3a75dd Make libarchive optional for fuzzing 2021-01-13 20:12:37 +00:00
Richard Hughes
a75ef53eaf trivial: Rename the meson option for plugin_synaptics_mst 2021-01-12 21:32:12 +00:00
Richard Hughes
96c079d9f0 trivial: post release version bump 2021-01-11 10:20:48 +00:00
Richard Hughes
104459bd10 Check the AMI test key if not installed for HSI-1
Fixes https://github.com/fwupd/fwupd/issues/2695
2021-01-05 17:09:02 +00:00
Richard Hughes
6b8d57b0c5 trivial: Fix building on older meson 2021-01-05 15:38:54 +00:00
Richard Hughes
ee2e2c3674 uefi: Rename to uefi-capsule
Rename the plugin to make it clearer of the scope.

Based on a patch from Mario Limonciello <mario.limonciello@dell.com>
2021-01-05 15:31:22 +00:00
Jimmy Yu
23cd466ef1 Add plugin to update PixArt RF devices
Signed-off-by: Richard Hughes <richard@hughsie.com>
2021-01-04 17:20:13 +00:00
Richard Hughes
f9fe19f7f6 Make libcurl optional for fuzzing
For fuzzing we want to exclude libcurl support as it depends on other very heavy
libraries like OpenSSL or libtasn which make the fuzzing binary much larger if
linked statically.
2021-01-04 16:22:36 +00:00
Richard Hughes
2b850b96c2 trivial: post release version bump 2020-12-16 13:16:36 +00:00
Richard Hughes
f99dc76cfe trivial: Actually check if __get_cpuid_count exists before using cpuid.h 2020-12-15 12:21:32 +00:00
Richard Hughes
93867eda8e Allow linking with the CXX linker
This is required by oss-fuzz, for non-obvious reasons!
2020-12-14 20:34:20 +00:00
Richard Hughes
c0d4c09a02 Lower libcurl requirement further still
This allows us to build on Ubuntu 16.04!
2020-12-14 16:50:30 +00:00
Richard Hughes
68f565c441 Don't assume we have memfd_create() 2020-12-14 13:09:47 +00:00
Richard Hughes
91e5957b05 trivial: Only define HF_ITER if available... 2020-12-11 09:45:48 +00:00
Richard Hughes
c4ca8e25d1 Use honggfuzz to fuzz firmware rather than AFL
This has better multi-core performance and can run in persistent mode -- which
allows us to construct a test harness of all the parsers (which takes time) and
then just reuse the process for lots of different data.
2020-12-11 09:37:42 +00:00
Richard Hughes
f475b48718 trivial: post release version bump 2020-12-08 10:17:13 +00:00
Richard Hughes
00640f42f2 Lower the CURL version required to fix build in RHEL
Some vendors really really want 1.5.x in newer RHEL versions, but the version
of curl is too old. Add #ifdefs so that we can emulate (somewhat imperfectly)
the 'new' CURLU functonality.
2020-12-07 14:17:22 +00:00