Commit Graph

610 Commits

Author SHA1 Message Date
Mario Limonciello
1b907a7d25 Drop docbook dependencies 2018-02-09 17:26:18 +00:00
Mario Limonciello
0957f37ca2 trivial: correct docker url 2018-02-02 14:00:23 -06:00
Mario Limonciello
ca9a25e855 trivial: correct README rendering error 2018-02-02 13:59:01 -06:00
Mario Limonciello
95e75c1f4d contrib/ci: Simplify docker matrix
Building:
The Dockerfile really is just an intermediary file.  While building it the
container can be built too all in one shot. No need to git ignore the
intermediary file any more as a result.

Running:
Dockerfiles support default entry points which means one docker command
can be used for starting all of them.
2018-02-02 19:55:36 +00:00
Mario Limonciello
14c5607dd3 trivial: contrib/debian: update standards version 2018-01-29 16:33:29 -06:00
Mario Limonciello
6b38dab94d trivial: try to disable arch test suite harder 2018-01-27 23:04:09 -06:00
Mario Limonciello
651b2d925c contrib: Turn off test suite for Arch CI for now (#370)
There have been some problems with changes in systemd that will require
other changes to be made in umockdev.  These changes are being sorted
out upstream. For now this makes Travis CI fail every time on the Arch
job. Until we know that's fixed upstream, disabling the test suite in
Arch at least makes CI useful again.
2018-01-27 22:48:12 -06:00
Mario Limonciello
b0398b00cf Revert "ubuntu: depend on appstream-glib 0.7.4 too"
This reverts commit 47ff62b986.

This lets master build on Ubuntu 17.10.
Ubuntu 17.10 doesn't have the newer appstream-glib, so reverting
this commit means Ubuntu 17.10 can't use the HWID's stuff from
b8f8db2082
without a manual backport.

Ubuntu 18.04 and later already have the newer appstream-glib
though, so they will get the HWIDs functionality
2018-01-12 09:55:24 -06:00
Richard Hughes
2db7528b13 trivial: Mark the remotes as config files in the rpm spec example
If a user disables the reporting URI, we don't want to re-enable it
accidentally when upgrading fwupd.
2018-01-12 14:23:08 +00:00
Richard Hughes
b58104895d trivial: Add fwupd_build_history_report_json() for future use 2018-01-11 21:28:22 +00:00
Richard Hughes
f1ed711c7e trivial: Add fwupd_build_machine_id()
This allows us to identify a specific machine using the machine-id.
2018-01-11 08:16:55 +00:00
Mario Limonciello
110accb395 debian: if OS environment variable isn't set, try to guess it 2018-01-04 00:02:52 -06:00
Igor Gnatenko
0ffc2448c0 ci: mesonintrospect -> meson introspect
Plan is to remove "old" name at some point (1.0?).
2017-12-13 11:08:45 -06:00
Richard Hughes
d9e6cca414 csr: Add a new plugin to add support for CSR "Driverless DFU"
CSR is short for Cambridge Silicon Radio, which is a the OEM that makes most
of the bluetooth audio chips in vendor hardware. The hardware vendor can enable
or disable features on the CSR microcontroller depending on licensing options.

The hardware vendor can also use a custom USB descriptor, or just set a custom
PID. In the latter case we need to set the vendor and model to reality using
quirks.

This commit allows the user to update the firmware in the AIAIAI H05 wireless
headphones.
2017-12-11 10:47:18 +00:00
Mario Limonciello
eb737f15f5 fix CI builds with -Werror
Switching to build in -werror in 4016c839a8
was not working properly.  Adjust the CI builds to use --werror instead.

Also while doing this, enable -werror in clang builds.
2017-11-30 16:42:26 -06:00
Mario Limonciello
47ff62b986 ubuntu: depend on appstream-glib 0.7.4 too 2017-11-28 15:20:32 -06:00
Mario Limonciello
7823ca8241 Bump minimum appstream-glib version to 0.7.4 2017-11-28 14:17:25 -06:00
Richard Hughes
d0cff7caec Remove autoconf-isms from the meson configure options
See https://wiki.gnome.org/Initiatives/GnomeGoals/MesonPorting
2017-11-27 18:07:53 +00:00
Richard Hughes
4016c839a8 trivial: Use the built-in -werror from Meson 2017-11-27 18:07:53 +00:00
Richard Hughes
fda44315e6 Remove the USB fallback plugin
Nobody complained when this was turned off, and it isn't really useful.
2017-11-27 18:07:53 +00:00
Richard Hughes
9b0d228ed9 Add a nitrokey plugin
This gets the firmware version from the Nitrokey storage device but does not
enable the firmware upgrade mechanism.
2017-11-13 16:25:46 +00:00
Mario Limonciello
ce051b8da5 debian: only do libsmbios on supported architectures 2017-11-09 18:53:46 -06:00
Mario Limonciello
3744e614a9 debian: debci: remove unnecessary dbus start command
Shouldn't be needed as depending on dbus-x11 depends on dbus
which should get the daemon up and running.
2017-11-09 16:36:28 -06:00
Mario Limonciello
4c6667a46e contrib/debian: dynamically generate control file
All the information necessary to generate a debian control file
is now in the XML file.  Use it rather than hardcoding in multiple
places.
2017-11-07 16:39:28 -06:00
Mario Limonciello
d607817af4 contrib: Move dependencies into XML file
Monster CSV file is a little wild.  This is more readable and
will make adding new distros and dependencies easier later.
2017-11-07 16:39:28 -06:00
Richard Hughes
9c028f06b5 Move the database of supported devices out into runtime loaded files
When fwupd is installed in long-term support distros it's very hard to backport
new versions as new hardware is released.

There are several reasons why we can't just include the mapping and quirk
information in the AppStream metadata:

 * The extra data is hugely specific to the installed fwupd plugin versions
 * The device-id is per-device, and the mapping is usually per-plugin
 * Often the information is needed before the FuDevice is created
 * There are security implications in allowing plugins to handle new devices

The idea with quirks is that the end user can drop an additional (or replace
an existing) file in a .d director with a simple format and the hardware will
magically start working. This assumes no new quirks are required, as this would
obviously need code changes, but allows us to get most existing devices working
in an easy way without the user compiling anything.

This allows us to fix issues like https://github.com/hughsie/fwupd/issues/265
2017-11-02 19:08:51 +00:00
Mario Limonciello
8b2fbb2664 trivial: debian: debci: shuffle dependency location 2017-10-26 15:44:12 -05:00
Mario Limonciello
cc9cfbc74a debian/debci: add explicit dependency on policykit-1 for the test 2017-10-25 09:12:14 -05:00
Mario Limonciello
d00b05959d debian: update standards version 2017-10-24 16:21:35 -05:00
Richard Hughes
3b84753769 Use help2man to generate the man page at build time
The man pages are always old and out-of-sync with the actual tool, so just
generate them using the output of --help.

Fixes https://github.com/hughsie/fwupd/issues/285
2017-10-23 16:47:08 +01:00
Mario Limonciello
e1ab2e8818 debian: explicitly depend on umockdev in build depends
The previous problem for umockdev wasn't caught in debian buildds
with umockdev 0.9.4 due to they weren't installing the umockdev
package.
2017-10-19 08:40:08 -05:00
Bruno Pagani
d8d90bff74 ci: Make use of arch-meson in PKGBUILD
The helper specify `-D b_lto=true` though, so override that since it fails to build with it.
2017-10-18 15:41:07 -05:00
Mario Limonciello
69b2133def debci: use the needs-root restriction 2017-10-18 14:01:43 -05:00
Mario Limonciello
7f4104176b don't use dpkg-reconfigure in CI script 2017-10-18 11:12:35 -05:00
Mario Limonciello
f7dc2faf20 Add a 32 bit debian build to CI (#273) 2017-10-12 07:02:43 +01:00
Mario Limonciello
a46c01905b run systemd in postinst (Closes: #877991) 2017-10-09 10:08:25 -05:00
Richard Hughes
b27f99ac22 trivial: Don't run from the cache when installing CI targets 2017-10-08 11:26:32 +01:00
Mario Limonciello
fa2d5f60e4 trival: debian: filter no-symbols-control-file during build for CI
e17c06 intentionally dropped this - it will be stored in
the debian branch based on when things land in debian
2017-09-28 10:17:33 -04:00
Mario Limonciello
0bc77d0658 trivial: debian: explicitly set section for libfwupd2 2017-09-28 10:15:40 -04:00
Mario Limonciello
0a06270d0e trivial: debian: update standards version 2017-09-28 10:10:13 -04:00
Mario Limonciello
e17c060925 trivial: Drop the Debian symbols file
This will stay on the debian packaging tree this is based off of.
It's really not useful in an upstream context.
2017-09-28 09:23:52 +01:00
Richard Hughes
94110f5983 Remove some deprecated #define names and bump the soname
Also, bump soname as we're going to clean up a lot of things now.

Many thanks to Mario Limonciello for all the Debian-specific changes.
2017-09-28 09:23:52 +01:00
Mario Limonciello
a790c1d360 trivial: update debci configuration 2017-09-26 08:44:52 -04:00
Mario Limonciello
d7b37c8667 trivial: fix missing-call-to-dpkg-maintscript-helper 2017-09-25 15:14:37 -05:00
Mario Limonciello
3bc46392d0 add ubuntu CI 2017-09-25 15:14:37 -05:00
Mario Limonciello
feb038099b trivial: test if running in a container in build scripts
This allows people to build without docker without root.
2017-09-21 21:52:06 +08:00
Mario Limonciello
3b55a06fec trivial: switch CI to debian testing
testing should shield CI from migrations happening in unstable
can switch back to unstable as needed in future
2017-09-20 13:53:13 +08:00
Mario Limonciello
1e4f512118 debian: remove /etc/fwupd.conf on upgrade 2017-09-19 14:25:25 -05:00
Richard Hughes
34e25a0cc5 trivial: Remove EnableTestSuite from daemon.conf
The same thing can be done using BlacklistPlugins=test
2017-09-19 20:06:44 +01:00
Richard Hughes
c2af1964b9 trivial: Move /etc/fwupd.conf to /etc/fwupd/daemon.conf 2017-09-19 20:06:44 +01:00
Richard Hughes
e8c3ce249c trivial: Bump the plugin location after the FwupdResult change 2017-09-19 09:55:28 +01:00
Mario Limonciello
8f17e1ccf4 Use the intel-wmi-thunderbolt kernel module to force power
When available on a system this module will allow force powering a TBT device with nothing plugged in.
2017-09-13 03:12:50 +08:00
Mario Limonciello
4d3025a108 Generate dockerfiles dynamically (#238) 2017-09-11 13:39:40 -05:00
Mario Limonciello
eba19fb94d Introduce an s390x cross compile target to CI 2017-09-08 09:24:54 +01:00
Mario Limonciello
abdd612722 Add a test target for Debian build, but compiled under clang 2017-09-07 19:18:04 -05:00
Mario Limonciello
b59d6a1f33 Add a README about CI 2017-09-07 19:18:04 -05:00
Richard Hughes
53237d26a1 Remove the ELF support from libdfu and move the code to the altos plugin
This was a mistake originally for two reasons:

 * The only device to use ELF as a deliverable is the altos devices
 * ELF has nothing to do with the DFU specification

This moves the code to where it belongs.
2017-09-07 18:39:23 +01:00
Richard Hughes
2a533b8de2 Use -Werror when building in Travis CI
Do NOT do this for normal package builds.

With much help from Mario Limonciello, many thanks.
2017-09-07 18:25:48 +01:00
Mario Limonciello
8e9e61c6f6 trivial: debian: try to fix debci 2017-09-07 10:43:52 -05:00
Mario Limonciello
c791d5ba92 trivial: drop libebitdo transitional packages 2017-09-07 10:43:52 -05:00
Richard Hughes
4022700bc8 Do not install the libdfu helper library
In reality fwupd is the only user and we don't want to hold this library to the
same kind of API and ABI guarantees of libfwupd.
2017-09-06 16:21:32 +01:00
Richard Hughes
1b090802f3 usb: Disable the fallback USB plugin
It's not super useful. If this has no bad effects for a couple of releases we
can either remove it completely or move the functionality to the test plugin.
2017-09-05 18:08:29 +01:00
Richard Hughes
7081975a1a trivial: Sync example spec file with downstream 2017-09-01 14:54:23 +01:00
Yehezkel Bernat
859f0f0fe8 Enable Thunderbolt plugin in CI and RPM packaging
Signed-off-by: Yehezkel Bernat <yehezkel.bernat@intel.com>
2017-08-30 12:03:03 +01:00
Mario Limonciello
614908d08b trivial: debian: only modify /etc/fwupd.conf in CI context
This satisfies piuparts not modifying the system automatically.
2017-08-24 15:05:08 -05:00
Jaroslav Lichtblau
6637f74161 thunderbolt plugin can be now tested on Arch Linux
umockdev package is now available in the community repository
of Arch Linux

https://github.com/hughsie/fwupd/issues/187
2017-08-24 11:21:55 +01:00
Mario Limonciello
3ed043abb2 trivial: debian: update for --enable-synaptics 2017-08-23 13:29:58 -05:00
Mario Limonciello
7f1ed952f2 trivial: update ubuntu dockerfile
Syncs with changes from Debian and sets it up for rolling with devel
release name changes
2017-08-22 13:50:25 -05:00
Christian Kellner
81dd85f6d1 tbtfwu: remove legacy thunderbolt plugin
Replaced by the "thunderbolt" plugin.
2017-08-21 12:12:55 -05:00
Christian Kellner
73ba7ee82c thunderbolt: plugin for new tbt kernel interface
Thunderbolt has a new kernel interface starting from version 4.13,
which simplifies updating the host controller and devices: the
kernel now exposes a sysfs interface for the non-volatile memory
as a device node. This can be used to write the new firmware blob.
Updates are then triggered also via a simple write to a sysfs
file (nvm_authenticate), which in turn is also used for error
reporting.
The plugin should be functionally, but a few items are missing:
 - image verification
 - safe mode handling
2017-08-21 17:05:44 +01:00
Richard Hughes
11d55eb62c trivial: No need for a license in the README 2017-08-18 13:32:57 +01:00
Max Ehrlich
6d0fc42685 Add a python script to create fwupd compatible cab files from Microsoft .exe files 2017-08-17 17:10:23 -05:00
Mario Limonciello
ea0e9cec50 trivial: debian: add autopkgtest tests to run the CI suite 2017-08-17 13:19:58 -05:00
Mario Limonciello
97ebd16e16 trivial: fix some insignificant debian linitan warnings 2017-08-17 13:19:08 -05:00
Mario Limonciello
d3f304c0f1 trivial: ci: build deb package with hardlinks instaed of symlinks 2017-08-17 12:41:06 -05:00
Mario Limonciello
aa20ca2e7a trivial: debian: clarify why installed tests get installed in a generic directory (Closes: #872458) 2017-08-17 12:05:29 -05:00
Matthias Klumpp
919e4ec61d ci: Echo shell commands, explicitly set error
By echoing the commands it is way easier to spot what the CI was doing
when a command failed. Setting fail-on-error mode explicitly makes sure
we always run with it, even if someone invokes the script with `bash
<scriptname>`
2017-08-16 23:00:29 -05:00
Matthias Klumpp
8a6337f146 trivial: Some small tweaks to the Debian CI
- Enable echoing in the CI script
- Use debuild
- Show info/experimental/pedantic lintian hints
- Use service instead of invoking an init script directly
2017-08-16 23:00:29 -05:00
Richard Hughes
7403dc505f Optionally use GnuTLS to verify PKCS7 certificates
We can use this as an alternative for GPG. No PKCS7 certificates are currently
installed by fwupd and it's expected that the LVFS will still only provide GPG
detached signatures.

If an OEM distributor wants to sign firmware with a PKCS7 and the corresponding
certificate is provided then the firmware will be marked as valid.

Only firmware shipping with a .p7b file will use the PKCS7 functionality,
similarly remote metadata validation will default to GPG unless Keyring=pkcs7
is specified in the config file.
2017-08-14 09:42:48 +01:00
Richard Hughes
41cbe2aab3 Add a firmware builder
This runs a script inside the firmware archive to generate firmware specific to
the machine. This uses bubblewrap to protect the local machine.
2017-08-09 10:33:39 +01:00
Mario Limonciello
465f223710 ci: switch to debian unstable
appstream-glib was uploaded to unstable so now CI can run on that.
https://tracker.debian.org/news/860552
2017-08-04 09:53:53 -05:00
Richard Hughes
7664fa7251 trivial: Target Fedora 26 for CI 2017-08-03 11:52:35 +01:00
Richard Hughes
53403360ed Release fwupd 0.9.6 2017-08-03 10:44:39 +01:00
Richard Hughes
2d95a71a0c Support embedded devices with local firmware metadata
In this mode, both the metadata and firmware is stored on the local filesystem
and distributed using a distribution system like OSTree.

Fixes https://github.com/hughsie/fwupd/issues/162
2017-07-28 17:41:24 +01:00
Mario Limonciello
24add2222b trivial: debian: correct duplicate descriptions in control file 2017-07-21 13:16:15 -05:00
Mario Limonciello
f6005940e6 debian: enable test suite via /etc/fwupd.conf 2017-07-17 14:46:50 -05:00
Mario Limonciello
47c2e9b6a8 rpm: enable test suite via /etc/fwupd.conf 2017-07-17 14:46:32 -05:00
Mario Limonciello
a8a3c6f6b6 debian: run lintian as part of CI
If any new changes are introduced that break plicy, this should
catch them much sooner.
2017-07-17 14:35:20 -05:00
Mario Limonciello
531a223b80 trivial: debian: recusively cleanup on purge 2017-07-17 12:34:08 -05:00
Mario Limonciello
ed8e4a54cf trivial: debian: remove transient items on purge (Closes: #868464, #868465) 2017-07-17 12:15:28 -05:00
Mario Limonciello
531f6a210a trivial: debian: update standards version 2017-07-17 12:15:28 -05:00
Mario Limonciello
b036d0c4ad trivial: debian: add missing dh-strip-nondeterminism dependency 2017-07-17 12:15:28 -05:00
Mario Limonciello
5ad8555f46 trivial: debian: correct some linitian errors about fwupd-tests 2017-07-17 12:15:28 -05:00
Mario Limonciello
92be642cb4 trivial: debian: move DFU introspection to it's own package 2017-07-17 12:15:22 -05:00
Mario Limonciello
c9ff8f1e33 trivial: Add a Dockerfile for Ubuntu zesty (17.04)
This won't be run through CI (already have Debian coverage)
but it should make it easier to check Ubuntu/Debian deviations
in the future
2017-07-10 16:30:24 -05:00
Mario Limonciello
1d588e0970 trivial: debian: back off polkit-1 dependency
Should allow this to compile in more places now that ITS rules
are packaged locally
2017-07-10 16:30:24 -05:00
Mario Limonciello
815c2d5ba0 trivial: packaging: lower appstream-glib requirements to match meson.build 2017-07-10 16:30:24 -05:00
Mario Limonciello
74e0a320bf trivial: debian: Add libcairo-dev to build-dependencies 2017-07-05 13:43:47 -05:00
Richard Hughes
459b6eb9b4 trivial: Fix the colord version check in the example spec file 2017-07-04 16:32:09 +01:00
Mario Limonciello
d97eb03b6b trivial: debian: calculate version number using git describe again
This will be more representative of what the build actually is
rather than a mismarked tag.

If the checkout doesn't include a tag, fallback to parsing meson.build
though.
2017-06-26 13:01:29 -05:00
Mario Limonciello
3db79f2ec2 trivial: Fixup the arch build to work on Travis
* Use sed to adjust package version while running script rather than `makepkg`
* Run script as root so it can modify `/build`
* Run `makepkg` as nobody rather than "build"
* Separate build/install steps
2017-06-26 12:57:55 -05:00
Bruno Pagani
1cc7d8d271 Add Arch Linux to CI 2017-06-26 09:50:11 -05:00
Mario Limonciello
db42f2bd27 trivial: don't pull debhelper from experimental on debian CI anymore
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=865363 has been
fixed
2017-06-26 08:55:49 -05:00
Mario Limonciello
43775d03f9 debian: use dpkg-divert to adjust the launch script for CI testing
This means that if someone wants to use the test inteface with
packages, no hacky launching needed.

Just:
2017-06-22 14:44:58 -05:00
Mario Limonciello
6db2a4057c debian: split out the test suite to it's own package
Most people won't be running the installed-tests,  but make it
easy enough for them to get at them if they want to
2017-06-22 13:59:14 -05:00
Mario Limonciello
cca4297153 trivial: Switch installedtests from python2 to python3 2017-06-22 13:42:59 -05:00
Richard Hughes
2877237f8a trivial: Fix CI harder 2017-06-22 15:49:40 +01:00
Richard Hughes
5d9e9f4a36 trivial: Fix the CI build for the new hardware installed tests 2017-06-22 11:21:03 +01:00
Richard Hughes
62e7393edf Add some installed tests which require specific hardware 2017-06-22 09:36:32 +01:00
Mario Limonciello
c5300df799 Drop additions to /etc/apt/sources.list for Debian
The docker base images include these already
2017-06-20 14:45:23 -05:00
Mario Limonciello
9a33ea6e06 Adjust debian dependencies
They were a little bit overzealous.
2017-06-20 14:17:49 -05:00
Mario Limonciello
f3f4390155 Only use the test runner plugin when CI is set in the env (#148)
This prevents an installed system from showing FakeDevices but
still allows exercising every commit with Travis CI
2017-06-20 13:56:13 -05:00
Mario Limonciello
b4208bb577 Adjust Debian version detection to just parse meson.build 2017-06-20 13:54:52 -05:00
Mario Limonciello
2c9a09f767 Add texlive-fonts-recommended to Debian container
Since the container is installed with --no-install-recommends
it isn't coming in by default.  Without it this bug occurs:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=865217
2017-06-19 16:04:12 -05:00
Mario Limonciello
35aebc838f trivial: fix typo in contrib/debian/rules:
Prevented Dell and Synaptics plugins from compiling
2017-06-19 10:22:59 -05:00
Richard Hughes
9b59676a24 Add a plugin to get the version of the AMT ME interface 2017-06-19 14:01:47 +01:00
Richard Hughes
19fdebf4f4 trivial: Install two extra packages for the fedora Travis build 2017-06-16 07:59:02 +01:00
Mario Limonciello
4ba3d25ba1 Drop the locale hack on the Debian docker file 2017-06-15 17:09:42 -05:00
Mario Limonciello
b692286690 deb packaging: cleaner locale fix 2017-06-15 17:09:42 -05:00
Richard Hughes
b7bf715435 Add an installed test for device update
This also moves the tests into one file as gnome-desktop-testing-runner
intentionally randomizes the order and runs them in parallel where allowed.
Since tests like get-updates have to be run after the metadata injection simply
put these into one test that calls a simple script.
2017-06-15 20:19:03 +01:00
Richard Hughes
ae7e0d21b2 Add an installed test for verification 2017-06-15 16:23:52 +01:00
Richard Hughes
038ab7dcb2 Add an AppStream metainfo file
This seems like the right thing to do, and also means we *could* move the NEWS
data in the future.
2017-06-15 12:53:33 +01:00
Richard Hughes
8d1054eaf1 trivial: Enable the tests in the reference spec file 2017-06-15 12:05:11 +01:00
Richard Hughes
2396b33573 trivial: Do not generate the UEFI labels if the architecture does not support UEFI 2017-06-15 10:58:23 +01:00
Richard Hughes
58de3dbe77 Run the installed tests in Travis CI 2017-06-14 17:34:10 -05:00
Mario Limonciello
3be2e295af deb: Don't strip firmware-example.xml.gz in dh_strip_nondeterminism 2017-06-14 17:34:09 -05:00
Richard Hughes
bacbac1245 Add some installed tests that use the daemon
Functionality like this would have prevented the "(shh)" bug being included in
the last release.
2017-06-14 15:36:08 +01:00
Mario Limonciello
b9386372ca Copy RPMs into build root when done 2017-06-13 17:56:57 -05:00
Mario Limonciello
5a286f86c8 Add information on how to generate deb and rpm using docker 2017-06-13 17:52:38 -05:00
Mario Limonciello
0ff9d5307b drop travis CI generic build and test case (it's implied by testing packaging) 2017-06-13 15:35:45 -05:00
Mario Limonciello
ab6884f44a enable tests in Travis CI for fedora 2017-06-13 15:35:45 -05:00
Mario Limonciello
0c50ed1af3 Generate deb & RPM packages as part of CI build (#134) 2017-06-13 15:35:45 -05:00
Mario Limonciello
d3c355e464 Add debian packaging 2017-06-13 15:35:45 -05:00
Mario Limonciello
3d77bd4ab4 Set Dockerfiles to UTF-8
Should resolve failed CI builds
2017-06-12 16:50:24 -05:00
Peter Jones
2297c09f81 Generate a pile of images for status messages during system firmware update. (#133)
This generates a pile of .bmp files to use as our status messages.

Signed-off-by: Peter Jones <pjones@redhat.com>
2017-06-12 13:11:22 -05:00
Mario Limonciello
825e881864 get debian travis builds working too
For now they'll need to build with debian experimental until
appstream-glib 0.6.13 flows up to unstable (probably after
stretch releases)
2017-06-08 09:09:32 -05:00
Richard Hughes
871618ae1b Enable Travis CI for Fedora 25
Debian Unstable is currently disabled as it does not work.
2017-06-08 12:36:41 +01:00
Richard Hughes
1fd28050da trivial: Fix typo in the example spec file 2017-06-07 17:08:23 +01:00
Richard Hughes
2ca22517e7 Release fwupd 0.9.3 2017-06-07 15:42:44 +01:00
Richard Hughes
605791d19e trivial: Remove the libgcab1-dev dep, nothing actually requires it 2017-06-06 14:51:25 +01:00
Richard Hughes
dfed515573 Allow downloading metadata from more than just the LVFS
Add the concept of 'remotes' that can dropped into /etc and used as firmware
metadata sources. This may be desirable when firmware is only accessable with
a valid support contract or from behind a VPN.
2017-06-02 13:19:05 +01:00
Richard Hughes
5408985aef trivial: Fix up the example spec file 2017-06-01 10:50:09 +01:00
Chris Mayo
f358837685 Make documentation and man pages optional
Reduce the minimum build-time dependencies.
2017-05-31 20:00:59 +01:00
Richard Hughes
a9a99bdb48 Actually use /usr/libexec/fwupd/fwupd
It appears the enormity of replacing a directory with a file is just too much
for package managers in 2017.

I guess we might ship other things in /usr/libexec/fwupd/ in the future.
2017-04-19 08:50:52 +01:00
Richard Hughes
22efc3b793 trivial: Workaround a bug in rpm using a pretrans script 2017-04-12 16:37:17 +01:00
Richard Hughes
57746cb839 Add the Meson build system as an alternate to autotools
Automake and autoconf are impossible to fully understand and Meson now provides
everything we need for a much smaller, faster, and more understandable build.

See http://mesonbuild.com/ for more information.
2017-04-12 16:35:18 +01:00
Richard Hughes
a1585c6b7f Install the daemon in libexecdir
I know Debian doesn't use libexecdir, but most other distros do. On Fedora it's
really strange to see a binary in /usr/libexec/fwupd/fwupd and supporting this
not-quite-servicedir is causing confusion in the Makefiles and also problems in
other external tools.

Simply redefine libexecdir if you need the daemon binary to be installed
somewhere different.
2017-04-12 14:38:34 +01:00
Richard Hughes
c232db23df Port away from intltool 2017-04-12 14:31:18 +01:00
Richard Hughes
e643fb283f Create directories in /var/cache as required
These can be nuked at any time by users, so don't rely on the package manager
or installer to create these for us.
2017-04-12 14:09:06 +01:00
Richard Hughes
19b336ebc8 trivial: Sync example spec file with downstream 2017-02-28 21:45:34 +00:00
Richard Hughes
576c012d20 Do not dlclose modules when running under valgrind
Without this patch, unloading the module means we can't resolve the symbols
where the memory was leaked.
2017-02-24 09:47:00 +00:00
Richard Hughes
1b36055416 trivial: Fix example rpm spec file 2017-01-17 15:45:00 +00:00
Richard Hughes
b5574b463e trivial: Fix example spec file 2017-01-10 22:10:50 +00:00
Richard Hughes
a59777ad8d Add initial skeleton for Intel Thunderbolt support 2016-12-16 12:41:57 +00:00
Richard Hughes
59a9344c1e Move the UPower functionality to a plugin 2016-12-12 16:28:16 +00:00
Richard Hughes
864363e139 Add support for Logitech Unifying devices
If you do not have Unifying hardware you can emulate writing firmware using:

$ fu-unifying-tool write file.hex -v --emulate=bootloader-nordic
2016-12-12 15:36:53 +00:00
Richard Hughes
cff38bcb3a Convert the providers to plugins to simplify code and for future features
This is a large commit that removes all the providers and turns them into
plugins. I think having both providers _and_ plugins was super confusing.

Plugins are loaded at runtime so you could in theory develop a new plugin
without putting it in the fwupd source tree, although there are no installed
headers or PC files as I'm not sure it's a good idea at this stage.

This commit moves all the per-provider docs, tests, notes, debug dumps and test
data to plugin-specific directories -- these also allows the plugin author to
"own" more of the source tree so we don't enforce fu- prefixes and the style
guide everywhere.

This allows us to run the same action on all the plugins in the future, so we
could have a prepare(FuPlugin, FuDevice) and cleanup(FuPlugin, FuDevice) run
on *all* plugins, so doing an update using one plugin would allow us to work
around hardware quirks in other plugins.

If I've broken your out-of-tree provider it's trivial to port to the new API
with sed and a fixed up build file. If you need help please let me know.
2016-12-12 12:31:23 +00:00
Richard Hughes
319a6bab12 Move the plugins into plugin-specific directories
This will allow us to add further documentation here in the future.
2016-12-12 11:52:03 +00:00
Richard Hughes
28bbab532a Unexport libebitdo
Nothing is ever going to use this except fwupd, so it makes no sense adding the
extra overhead.
2016-12-09 09:56:31 +00:00
Richard Hughes
bfef02dc43 trivial: Sync the example spec file with downstream 2016-10-31 08:40:23 +00:00
Richard Hughes
bef038b3a9 trivial: Update the reference spec file from downstream 2016-08-29 16:09:23 +01:00
Richard Hughes
67fd8006ba trivial: Always build the gtk-doc for releases 2016-08-29 09:43:52 +01:00
Richard Hughes
fda7c3c3d9 trivial: Do not require libsmbios-devel on ARM 2016-08-29 09:43:27 +01:00
Richard Hughes
3667ee7b22 libdfu: Add initial ELF reading and writing support 2016-08-26 18:44:00 +01:00
Richard Hughes
923c827fba trivial: Fix the ebitdo company name 2016-08-11 15:35:06 +01:00
Richard Hughes
f2fe6d1865 trivial: Fix up the example spec file 2016-07-27 16:57:36 +01:00
Richard Hughes
c042ff8490 Add a small library for talking with 0bitdo hardware 2016-07-27 13:54:51 +01:00
Richard Hughes
ffb99c6ff0 trivial: Add libsmbios-devel to the BRs in the example spec file 2016-07-13 12:30:32 -05:00
Richard Hughes
4eb527f873 Use a private gnupg key store
Although it's convenient that you can just log in as root and add another
trusted key, it makes the selinux developers unhappy. Use a private keystore
in /var/lib/fwupd/gnupg to avoid the possibility of a somehow hacked fwupd
being able to export the root gpg secrets if any happened to exist.

If you've trusted keys other than the LVFS for metadata or firmware you'll need
to re-import them into this new location.

See b7f12bd377

Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1303531
2016-06-28 09:18:45 +01:00
Richard Hughes
5ac25f32e0 Generate gtk-doc documentation for libfwupd 2016-04-01 11:22:31 +01:00
Richard Hughes
f7c81e312a Allow the test suite to run in %check 2016-04-01 10:25:05 +01:00
Richard Hughes
cf1767c5fa Split out the libdfu-devel package
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1322589
2016-04-01 08:16:04 +01:00
Richard Hughes
d090514f15 Add a simple plugin infrastructure
This allows vendors to write small self-contained modules that can be used to
override the default behaviour in the various providers.
2016-03-13 09:52:55 +00:00
Richard Hughes
65dfbfe54f Do not use deprecated API from libappstream-glib 2016-03-02 13:43:21 +00:00
Richard Hughes
bdb62db907 Install the hardcoded firmware AppStream file
This currently contains a few USB 3.0 chips which we know about, but can't
actually update ourselves.
2016-02-29 11:20:26 +00:00
Richard Hughes
e0b417e628 trivial: Update the example spec file to reflect reality 2015-12-07 16:59:21 +00:00
Richard Hughes
e7aaf39de2 libdfu: Fix multi-interface devices like the Neo Freerunner
The DFU specification specifies that only one of the DFU interfaces has to
export a functional descriptor; I assumed they all had to. Adding support
for this kind of device rapidly turned into a massive restructure and it was
all too complicated anyway.

Reorganise the code so that we can support these kinds of devices and clean up
the API so it's sane and easy to use. This also allows us to generate the
GObject introspection GIR and to also install libdfu as a shared library.

If you've got any comments about the API, please shout now as when 6.0 is
released it will become API and ABI stable.
2015-11-22 21:17:48 +00:00
Richard Hughes
07abc45268 trivial: Fix the example spec file 2015-11-16 09:01:15 +00:00
Richard Hughes
a3acd7f711 Add support for updating USB devices with DFU
This adds a private libdfu library and also a small utility program called
dfu-tool.
2015-11-12 17:32:48 +00:00
Richard Hughes
f184d152ec trivial: Sync example spec file with downstream 2015-09-21 08:45:22 +01:00
Richard Hughes
b6f9fbf1fe Release fwupd 0.5.0 2015-09-15 11:06:08 +01:00
Richard Hughes
9d306b3c13 trivial: Update example spec file 2015-09-10 09:34:25 +01:00
Richard Hughes
5c35abb1a5 Remove fwsignd, we have the LVFS now 2015-08-27 14:45:42 +01:00
Richard Hughes
0e3dccd34b trivial: Fix the example spec file 2015-08-20 08:09:00 +01:00
Richard Hughes
25cf6ab53e Add a Raspberry Pi firmware provider
This queries the current firmware version and also allows online or offline
updating.
2015-08-05 12:14:56 +01:00
Richard Hughes
ac8b192033 Add a simple config file to store the correct LVFS download URI 2015-08-04 14:56:39 +01:00
Richard Hughes
e223577fac trivial: Update spec file from downstream 2015-07-27 15:50:04 +01:00
Richard Hughes
ebaf7ba035 Allow running fwsignd as the non-root user
...however, most users will still want to use the root user so that the owner
and group are set correctly on the destination files.
2015-07-21 13:24:26 +01:00
Mario Limonciello
28b8151ca0 Don't call efibootmgr after fwupdate.
fwupdate will handle creating the appropriate BootNext entry.
No other changes are needed from fwupd.

Signed-off-by: Richard Hughes <richard@hughsie.com>
2015-07-20 16:21:24 +01:00
Richard Hughes
c7cf166a2f Automatically download metadata using fwupdmgr if required
Using no arguments to 'fwupdmgr update-metadata' means we use the network.
2015-07-20 16:19:20 +01:00
Richard Hughes
691e02d652 Add a simple signing server that operates on .cab files 2015-07-20 15:31:10 +01:00
Richard Hughes
ebb58a3495 Add a Udev firmware provider
This allows us to support showing firmware updates for VIA USB hubs
2015-06-29 12:53:01 +01:00
Richard Hughes
ae0efdc5a7 Provide a way for clients to add new firmware metadata to the system cache
This is only possible if the metadata has been signed by a key that we trust.
2015-06-25 09:59:53 +01:00
Richard Hughes
274818a11e trivial: Actually install the systemd service files 2015-04-27 11:10:03 +01:00
Richard Hughes
d8a02bfeeb Run the offline actions using systemd when required 2015-04-25 17:14:20 +01:00
Richard Hughes
7cdbb17777 trivial: Use fwupdate-devel in the example spec file 2015-04-22 16:43:06 +01:00
Richard Hughes
2f2bee85bc Release fwupd 0.1.2 2015-04-22 15:21:02 +01:00
Richard Hughes
36a889034c Add helper code to validate public key signatures
We'll use this in the future for checking device firmware.
2015-04-14 13:53:19 +01:00
Richard Hughes
8645ec9ad5 Create a libfwupd shared library 2015-03-19 10:54:05 +00:00
Richard Hughes
ac9721399a Add a systemd service file 2015-03-16 13:07:31 +00:00
Richard Hughes
310419856b trivial: Add some files ready for a first release 2015-03-16 12:51:04 +00:00
Richard Hughes
31ddb97066 trivial: Relax the BRs so we can build in Fedora 22 2015-03-16 11:38:03 +00:00
Richard Hughes
45255952b7 Use efibootmgr to automatically boot the UEFI firmware update process 2015-03-11 21:34:40 +00:00
Richard Hughes
d08dca72f6 Allow any admin users to install system firmware without a password
From a security point of view, this is no more scary than allowing admin users
to install a new kernel or glibc package.
2015-03-11 19:55:47 +00:00
Richard Hughes
18e7591104 Use fwup.h to actually implement the UEFI update 2015-03-05 13:56:56 +00:00
Richard Hughes
d1e823ccbf Allow scheduling updates for later
Also add a update-prepared command to fwupdmgr to process the defered updates.
In the future we'll hook into the systemd early-boot code for this.
2015-03-05 11:15:36 +00:00
Richard Hughes
3e7b27184a trivial: Fix the example spec file 2015-03-04 22:30:12 +00:00
Richard Hughes
72dff812c0 Add initial ColorHug support
This may be useful; more people have ColorHug devices than UEFI firmware that
supports system capsule updates.
2015-03-03 15:13:27 +00:00
Richard Hughes
67ec898265 Extract the .cab file and parse the .inf file 2015-03-03 11:41:01 +00:00
Richard Hughes
8dbfb1c478 Add initial build files and enough code to launch a simple D-Bus daemon 2015-02-26 18:16:40 +00:00