Commit Graph

610 Commits

Author SHA1 Message Date
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