Commit Graph

269 Commits

Author SHA1 Message Date
Richard Hughes
1b0b51e2a6 trivial: Install libdfu properly as a shared library 2015-11-23 14:02:56 +00:00
Richard Hughes
d3afaaab9f libdfu: Add a context object to handle device hotplug
Also, add a 'watch' command to dfu-tool to test this.
2015-11-23 13:53:06 +00:00
Richard Hughes
5d6066c002 libdfu: Use signals to propagate device state
Also, add padding to the various class structs so we can add more signals in
the future without breaking ABI.
2015-11-23 10:19:24 +00:00
Richard Hughes
8e02ee2a60 libdfu: Add a pkgconfig file 2015-11-23 09:17:43 +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
e7ba943cf5 libdfu: Support download and upload to ST DfuSe devices
Also, simplify the general download and upload API now we can deal with
element data in chunks.
2015-11-20 14:14:05 +00:00
Richard Hughes
0256f04338 libdfu: Improve the output of 'dfu-util list'
Being semi-compatible with dfu-util isn't important anymore.
2015-11-20 12:30:53 +00:00
Richard Hughes
3391e6b154 libdfu: Use the progress bar for all uploads and downloads 2015-11-19 17:44:29 +00:00
Richard Hughes
2d64b19c81 libdfu: Only do a Detach notification if we're actually doing to do it 2015-11-19 17:42:21 +00:00
Richard Hughes
38e7e31e2c libdfu: Support the ST-specific bitCanAccelerate 2015-11-19 12:33:11 +00:00
Richard Hughes
6aa47bab89 libdfu: Make the element address 32 bits in size
ST devices are large, and support a large address space...
2015-11-19 12:15:53 +00:00
Richard Hughes
a941c3a9e9 Use new API available in fwup 0.5
This allows us to schedule a UEFI update without writing a temp file.
2015-11-17 11:06:29 +00:00
Richard Hughes
664bb739b0 libdfu: Require a --force flag to flash wildcard firmware 2015-11-17 08:59:24 +00:00
Richard Hughes
3ad474214b Ignore the DFU device detach:attach when verifying 2015-11-16 16:36:55 +00:00
Richard Hughes
f048fbc703 libdfu: Call the progress callback when doing detach
This allows the UI to show something sane, and also allows fwupd to start any
timeout for ignoring detach:replug.
2015-11-16 16:28:10 +00:00
Richard Hughes
a11d6efc58 trivial: Get rid of warning in dmesg when downloading firmware 2015-11-16 13:02:18 +00:00
Richard Hughes
859fe0b43e libdfu: Check for extra args to dfu-tool convert 2015-11-16 11:48:20 +00:00
Richard Hughes
e8a6d3d0cb trivial: libdfu: flip reversed command descriptions 2015-11-16 11:47:16 +00:00
Richard Hughes
b5936f9eef libdfu: Correctly implement auto-boot in dfu_device_download() 2015-11-16 11:46:36 +00:00
Richard Hughes
dc3ddc18d3 libdfu: Fix a crash when setting a NULL image name 2015-11-16 11:45:50 +00:00
Richard Hughes
07abc45268 trivial: Fix the example spec file 2015-11-16 09:01:15 +00:00
Richard Hughes
b4eaec3654 libdfu: Allow choosing a different alt-setting when downloading 2015-11-15 19:12:13 +00:00
Richard Hughes
3a40e94567 libdfu: Add a merge command to dfu-tool 2015-11-15 19:00:03 +00:00
Richard Hughes
31aa1dd3df libdfu: Allow setting the alternate settings in DfuSe firmware 2015-11-15 16:52:46 +00:00
Richard Hughes
8bbe21a6f8 libdfu: Fix crash when setting a target size 2015-11-15 13:01:14 +00:00
Richard Hughes
7d79e580bb Use the same device identification string format as Microsoft
Using our own special version for the input for the GUID calculations means
that the result is not 'googlable'.

This does have the result of changing the GUIDs stored in the 'verify' database
but given the string->GUID function in appstream-glib has also changed to
become standards compliant and that only a few people are using it I felt it
was worth the pain.
2015-11-15 11:02:33 +00:00
Richard Hughes
cfd399498d libdfu: Use a custom error domain 2015-11-14 17:34:08 +00:00
Richard Hughes
460bc2012e libdfu: Move the VID:PID checks from the tool to DfuDevice 2015-11-14 17:12:29 +00:00
Richard Hughes
eeea7f8b32 libdfu: Don't rely on specific hardware to be present 2015-11-14 16:51:53 +00:00
Richard Hughes
6d79834c55 libdfu: Generate gtk-doc documentation 2015-11-14 16:51:53 +00:00
Richard Hughes
62633af0db libdfu: Add support for DfuSe firmware
Also, move some shared stuff down from DfuTarget to DfuDevice.
2015-11-14 16:34:09 +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
e49b266fd5 trivial: Fix a small critical warning for broken USB devices 2015-11-12 17:32:48 +00:00
Richard Hughes
a48361f82f Use strerror() when printing errors from libfwupdate
Fixes https://github.com/hughsie/fwupd/issues/37
2015-11-12 17:29:30 +00:00
Mario Limonciello
e43cfdcb3d trivial: return for UEFI errors is a decimal not string.
This is for part of issue #38.
2015-11-12 10:06:39 -06:00
Mario Limonciello
6fade1ffea Fix compile error against fwupdate git due to dropped functions.
Closes #37
2015-11-10 18:13:48 -06:00
Richard Hughes
28afc0baf5 trivial: post release version bump 2015-11-05 10:56:19 +00:00
Richard Hughes
e7dccfd5e9 Release fwupd 0.5.3 2015-11-05 10:55:22 +00:00
Richard Hughes
b2fe639940 Use the correct user agent string for fwupdmgr 2015-11-05 08:48:48 +00:00
Richard Hughes
0f89bcd47d trivial: Update the run-fwupd.sh script to include all debugging 2015-10-30 08:49:03 +00:00
Richard Hughes
bb840ceaff Do not assume that the compressed XML data will be NUL terminated
In most cases this is out of chance, but in some random cases the gzip
decompressor decides to reuse the input buffer as a decompression buffer,
which means we get junk data after the decompressed text.

To solve this, just truncate the data at the reported size, and then feed this
into the XML parser.

Fixes: https://github.com/hughsie/fwupd/issues/36
2015-10-30 08:47:28 +00:00
Richard Hughes
f2fca01989 Avoid seeking when reading the file magic during refresh 2015-10-30 08:44:44 +00:00
Richard Hughes
5454783699 trivial: post release version bump 2015-10-28 10:00:17 +00:00
Richard Hughes
e22ce82dca Release fwupd 0.5.2 2015-10-28 09:59:06 +00:00
Richard Hughes
727664fa20 Clear the in-memory firmware store only after parsing a valid XML file
If we send junk to UpdateMetadata() the deamon did something like this:

* Clear existing entries from memory
* Try to load junk file into memory -> error

This left us with no entries in the in-memory store, which required the user to
either keep retrying the 'fwupdmgr update' until it worked or just forced them
to restart fwupd so it loaded the old valid store from the cache file.

Now, only clear the in-memory store and add the new firmware entries when
we know the file has been parsed correctly.

Fixes: https://github.com/hughsie/fwupd/issues/35
2015-10-27 09:56:13 +00:00
Richard Hughes
d9fa06b8c9 trivial: Fix compile with really new versions of appstream-glib 2015-10-18 20:56:16 +01:00
Richard Hughes
709d0114e3 Fix verify-update to produce components with the correct provide values 2015-10-09 12:17:08 +01:00
Richard Hughes
60f48c2013 trivial: Do no ship the old-style cleanup functions 2015-10-08 20:25:51 +01:00
Richard Hughes
3f23650f15 Add profiling data to debug slow startup times 2015-10-08 20:11:57 +01:00
Richard Hughes
d449447fc8 Add the update description to the GetDetails results 2015-10-08 20:11:34 +01:00