Richard Hughes
a30d933ac4
Show a translated warning when the server is limiting downloads
2018-05-02 13:23:49 +01:00
Mario Limonciello
5a25653177
Improve the update report message ( Closes : #437 )
2018-04-23 10:30:27 -05: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
Richard Hughes
1fd3ecf7a3
Export fwupd_remote_get_agreement()
...
We need to show this agreement text in every fwupd frontend and exporting a
helper function allows us to do two things:
* Share the semi-complicated code (and fallback) to avoid copy and pasting
* Easily change the code in the future, for instance allowing merging Metainfo
and AppStream metadata without updating all the front ends with new logic.
2018-04-16 16:44:27 +01:00
Richard Hughes
64da68a33b
trivial: Use the same get-remotes output as the daemon expects for modify-repo
2018-04-12 08:17:08 +01:00
Richard Hughes
972f6eaba5
Allow customising the warning shown when enabling the remote
2018-04-12 08:17:08 +01:00
Richard Hughes
9e7d69ccb1
Show a warning with interactive prompt when enabling a remote
2018-04-12 08:17:08 +01:00
Richard Hughes
dfd228a132
Add enable-remote and disable-remote commands to fwupdmgr
...
This makes it easier to enable the LVFS on distributions where it is disabled
by default.
2018-04-12 08:17:08 +01:00
Mario Limonciello
336158a355
If no remotes are enabled try to enable the LVFS
...
Signed-off-by: Richard Hughes <richard@hughsie.com>
2018-04-10 20:28:36 +01:00
Richard Hughes
1901093431
Reboot using logind, not directly using systemd
...
This allows us to use PolicyKit, which means we will get prompted for
authorization if logged in as a user without permissions.
Fixes https://github.com/hughsie/fwupd/issues/455
2018-04-09 15:01:34 -05:00
Mario Limonciello
5dbdd0b243
Allow exiting device prompt with a "0" device too
...
This makes it more obvious for people that don't know about ctrl-d
2018-03-01 10:28:48 -06:00
Mario Limonciello
80d1a294d1
Allow ctrl-d out of the prompt for devices
...
Currently this will segfault fwupdmgr
Choose a device:
1. 8a21cacfb0a8d2b30c5ee9290eb71db021619f8b (XPS 13 9370 System Firmware)
2. cb52b4cd86255a70d1d9e6b09c6bf00b9f876b61 (XPS 9370 Thunderbolt Controller)
<ctrl-d>
Thread 1 "fwupdmgr" received signal SIGSEGV, Segmentation fault.
fu_util_prompt_for_device (priv=<optimized out>, error=<optimized out>) at ../src/fu-util.c:315
315 return g_object_ref (dev);
2018-03-01 09:27:29 -06:00
Mario Limonciello
9e965ada49
Allow all functions that take device arguments to be prompted
...
As part of this ignore extra string arguments other than the device
ID for these methods.
This has two benefits:
1) No more copying and pasting device ID's for any of these methods
2) Bash completion can now show nicer output for these methods
2018-03-01 09:27:29 -06:00
Mario Limonciello
a667bfb76e
Fix a crash related to when passing device to downgrade in command line
...
(fwupdmgr:15071): Fwupd-CRITICAL **: 09:08:55.248: fwupd_client_get_device_by_id: assertion 'device_id != NULL' failed
Thread 1 "fwupdmgr" received signal SIGSEGV, Segmentation fault.
0x000055555555c5b1 in main (argc=<optimized out>, argv=<optimized out>) at ../src/fu-util.c:2401
2401 g_print ("%s\n", error->message);
2018-03-01 09:27:29 -06:00
Richard Hughes
3f0b3f8f24
Only send success and failure reports to the server
...
We were getting some composite reports with 'needs-reboot' which isn't useful.
2018-02-23 12:55:51 +00:00
Richard Hughes
271f68b740
trivial: Fix critical warning when reporting history against a broken server
2018-02-14 12:45:40 +00:00
Richard Hughes
29a9e4f105
trivial: Show the 'known issue' URI by searching the message
...
If the report replaces an existing report we'll get two messages.
2018-02-13 20:36:58 +00:00
Mario Limonciello
a076c81a07
uefi: Log the efivar library version too into the report
2018-02-13 19:19:11 +00:00
Mario Limonciello
335c30ebd2
fu-util: Add fwupdate version to --version output
2018-02-13 09:18:30 -06:00
Richard Hughes
c9cdf1dfc8
Show the user a URL when they report a known problem
...
Resolves half of https://github.com/hughsie/lvfs-website/issues/43
2018-02-12 16:08:43 +00:00
Richard Hughes
50a6f7095c
Offer to reboot when processing an offline update
...
In real user tests this was a pain point where we had to manually explain that
they needed to reboot.
2018-02-03 12:12:15 +00:00
Piotr Drąg
27cd91f559
Use ngettext for any strings with plurals
2018-01-26 10:09:06 +00:00
Richard Hughes
c269e64584
trivial: Make a string extractable with xgettext
2018-01-25 12:36:01 +00:00
Richard Hughes
f06ba475b1
Ask the user to refresh metadata when it is very old
...
Also allow skipping the questions for non-interactive scripts.
2018-01-17 20:22:18 +00:00
Richard Hughes
0d2320735d
Nag the user to upload reports when doing common operations
...
This is supposed to be a gentle nag, rather than being obnoxious. To disable
this, simply remove the ReportURI key from the relevant remote.
2018-01-11 21:31:29 +00:00
Richard Hughes
0a7bc97317
Add a 'report-history' command to fwupdmgr
...
This shares your history with a reporting server, typically the LVFS.
NOTE: no data is sent without the user opting-in, and the data sent is shown to
the user before upload.
2018-01-11 21:31:29 +00:00
Richard Hughes
d29df0819f
Allow specifying the reporting server in the remote key files
2018-01-11 20:20:00 +00:00
Richard Hughes
476363ac19
Add a D-Bus method to get the history information
2018-01-11 10:08:58 +00:00
Richard Hughes
af54a0778a
trivial: Add a 'clear-history' command to fwupdmgr
...
This needs to be run as the root user to work.
2018-01-11 10:04:50 +00:00
Richard Hughes
bc3a4e1f57
Store firmware update success and failure to a local database
...
Rename FuPending to FuHistory to better represent what the object is now doing.
Also, while we're here, switch to using SQLite prepared statements to avoid a
possible invalid read on i386 hardware.
2018-01-11 09:59:34 +00:00
Richard Hughes
696e6fdcf3
trivial: Don't allow deleting the pending database
...
If we're going to use this for history we have to be a little more subtle.
2018-01-11 08:16:25 +00:00
Richard Hughes
718be2de6b
trivial: Prefer https_proxy for metadata downloads
2018-01-11 08:16:18 +00:00
Richard Hughes
74fa2ca635
Fix firmware downloading using gnome-software compiled against fwupd 1.0.x
...
Always set the AppStream app properties on the FwupdRelease. In some cases we
were returning FwupdRelease objects with no name or summary which gnome-software
was ignoring.
2018-01-10 21:37:43 +00:00
Richard Hughes
d980ccb757
trivial: Do the fwupdmgr network setup in a new function
...
This is for future use by other commands.
2018-01-08 16:57:01 +00:00
Richard Hughes
054b68457d
trivial: Use the shared FwupdClient when monitoring
2018-01-08 16:56:56 +00:00
Richard Hughes
8f89cf04fb
Add more metadata to the user-agent string
2017-12-21 08:25:29 +00:00
Richard Hughes
86914c52da
trivial: Fix whitespace issue
2017-11-28 14:14:36 +00:00
Richard Hughes
78c8411253
Use the correct remote-specified username and passord when using fwupdmgr
...
Spotted by clang, many thanks.
2017-11-09 12:17:24 +00: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
Richard Hughes
7f6d78fb1b
Add fwupd_remote_get_checksum() to use in client programs
2017-09-28 09:23:52 +01:00
Richard Hughes
b2fb80925c
trivial: Remove fwupd_remote_get_filename()
...
The data for these was just being generated internally based on the ID and the
basename of the original URI, and that's easy for the calling application to do
itself.
2017-09-28 09:23:52 +01:00
Richard Hughes
80893e29fe
trivial: Remove FwupdResult from libfwupd
2017-09-28 09:23:52 +01:00
Richard Hughes
b86ef97b36
trivial: Remove fwupd_remote_build_uri()
...
This also removes the long-deprecated fwupd_remote_get_uri() and fwupd_remote_get_uri_asc()
2017-09-28 09:23:52 +01:00
Richard Hughes
ba73c76d69
trivial: Remove the deprecated fwupd_client_update_metadata()
...
Also, rename fwupd_client_update_metadata_with_id() to it's now-removed counterpart.
2017-09-28 09:23:52 +01:00
Richard Hughes
07f963a52d
trivial: Remove the deprecated fwupd_client_get_details()
...
Also, rename fwupd_client_get_details_local() to it's now-removed counterpart.
2017-09-28 09:23:52 +01:00
Richard Hughes
eb94c14022
trivial: Remove the deprecated fwupd_client_get_devices()
...
Also, rename fwupd_client_get_devices_simple() to it's now-removed counterpart.
2017-09-28 09:23:52 +01:00
Richard Hughes
820dac7fde
trivial: Use a different SYSFSFIRMWAREDIR for self tests
...
This means we can drop some self-test specific code in fu_smbios_setup().
2017-09-16 17:46:41 +01:00
Richard Hughes
f11fa3caac
trivial: Use the new fwupd_client_get_upgrades() in fwupdmgr
2017-09-15 14:12:18 +01:00
Richard Hughes
97284b1ad8
Move the downgrade calculation to the daemon
2017-09-15 14:12:18 +01:00
Richard Hughes
6ab53111db
Never fallback to an offline update from client code
...
UEFI updates don't need to be retried since a785a1c
. If the call to Install()
failed with NOT_SUPPORTED we can just show the error rather than doing the
little dance and involving the offline pending database for no reason.
Fixes some of https://github.com/hughsie/fwupd/issues/255
2017-09-15 09:35:27 +01:00
Richard Hughes
31bbd1691b
Add a command 'clear-offline' to fwupdmgr
...
This allows us to 'unschedule' any offline updates.
2017-09-15 09:33:06 +01:00
Richard Hughes
ba15eebabb
trivial: Show the RemoteID when printing available releases
2017-09-14 10:26:15 +01:00
Richard Hughes
a1aab517d1
Move the update state to FwupdDevice
...
It only remained on FwupdResult because I couldn't make up my mind about whether
it was a property of the device, or the firmware release. It's more logically
the former, and that's how plugins are using it.
2017-09-13 14:59:32 +01:00
Richard Hughes
48ad97fd61
Add a human-readable title for each remote
...
This allows us to show something useful in a GUI.
2017-09-10 09:08:32 +01:00
Richard Hughes
a6bd5580d3
Add ModifyRemote as an easy way to enable and disable remotes like the LVFS
...
For example:
$ fwupdmgr modify-remote lvfs-testing Enabled true
2017-09-07 23:02:58 +01:00
Richard Hughes
49e5e05aa8
Parse the SMBIOS DMI table directly
...
The Linux DMI class still does not provide the information we need, and parsing
the blob directly also allows the Dell and Redfish plugins to get the raw data.
2017-09-05 18:10:36 +01:00
Richard Hughes
f315719851
trivial: Fix up a literal format string in fwupdmgr
2017-08-31 20:00:01 +01:00
Richard Hughes
1f92addd10
trivial: Remove unused function in fwupdmgr
...
Fixes 2nd half of https://github.com/hughsie/fwupd/issues/209
2017-08-30 10:51:51 +01:00
Richard Hughes
c6afb51e32
Add a FirmwareBaseURI parameter to the remote configs
...
This allows somebody to mirror the CDN without resigning the metadata files.
Fixes: https://github.com/hughsie/fwupd/issues/186
2017-08-23 14:22:12 +01:00
Richard Hughes
0dea1efb92
Use MetadataURI for both kinds of remote
...
I think this is clearer having one key for both types of remote.
2017-08-23 14:22:08 +01:00
Richard Hughes
9a7db9df7d
Show a bouncing progress bar if the percentage remains at zero
...
Device actions like a Thunderbolt replug can take 25 seconds (!) and so it's a
good idea to show the user that the calling process is still alive.
2017-08-21 15:51:38 +01:00
Richard Hughes
99e621d388
Save the metadata signature in the local cache
...
This is useful if the admin wants to re-verify the metadata, or if a public
key is removed or expires.
2017-08-16 13:42:10 +01:00
Richard Hughes
7ee42feb83
trivial: Add common function for making required parent directories
2017-08-15 15:35:36 +01: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
0724d8bde0
trivial: Bump the appstream-glib requirement to 0.6.13
2017-08-09 17:21: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
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
Richard Hughes
ba51279752
trivial: Fix two tiny leaks in fwupdmgr
2017-07-27 16:32:43 +01:00
Mario Limonciello
9ac53e28b1
Add information about compile-time dependency versions
...
Since the codebase looks at these versions for turning on and off
functionality it will be useful to use this for debugging
2017-07-24 15:30:28 -05:00
Mario Limonciello
dc8c985159
trivial: back the requirement on appstream-glib to 0.6.9
...
The items that 0.6.13 requires are now guarded by a version test.
This should allow running fwupd master on more distros that haven't
yet picked up appstream-glib 0.6.13.
2017-07-10 14:32:42 -05:00
Richard Hughes
b3dca14e90
trivial: Never compare a string against zero to avoid warnings
2017-07-06 18:28:01 +01:00
Mario Limonciello
b04c13e1cf
Include optional git checkout information in --version
...
When users are running from git this should aide in
debugging if they have a fix included.
2017-07-05 17:49:50 -05:00
Richard Hughes
89483f1bb9
Add --version option to fwupdmgr
...
$ fwupdmgr --version
client version: 0.9.6
daemon version: 0.9.6
Fixes https://github.com/hughsie/fwupd/issues/153
2017-07-04 20:49:27 +01:00
Richard Hughes
b53ad36012
trivial: Fix up a number of FALSE/NULL return issues
2017-06-19 13:50:42 +01:00
Richard Hughes
feb8027ee3
Show the age of the remote metadata in 'fwupdmgr get-remotes'
...
Note: we have to transfer the mtime (not the age) when creating the GVariant,
as we want calls to fwupd_remote_get_age() to update the value without getting
the remote from the daemon each time.
2017-06-16 20:24:41 +01:00
Richard Hughes
0a87f6fb03
Store the metadata files rather than merging to one store
...
Now we have multiple remotes that can be enabled or changed at runtime we need
to do several things better:
* Only load components from remotes that are enabled
* Only load a component if a higher priority remote has not already added it
Rather than just appending all recieved metadata into one big XML file, save
the original metadata .xml.gz files in /var/lib/fwupd/remotes.d and only load
them in the correct priority order if the remote is known and enabled.
Remove the old /var/cache/app-info/xmls/fwupd.xml file, also noting it wasn't
really a cache file at all but actually something quite important.
2017-06-16 16:43:13 +01:00
Richard Hughes
4c36970445
Move the remotes parsing from the client to the server
...
This allows us to load the metadata stores in a more sensible way in the future.
2017-06-16 15:31:40 +01:00
Richard Hughes
f0bde3e4af
Add a get-remotes command to fwupdmgr
...
This allows the user to show the configured remotes.
2017-06-16 14:31:20 +01:00
Richard Hughes
bbde1df44f
Fix downgrades when version_lowest is set
...
Also, add some tests to test this with the dummy device.
2017-06-16 12:40:15 +01:00
Richard Hughes
8a870d0399
trivial: Ensure there are no updates after the update is applied
2017-06-16 12:40:10 +01:00
Richard Hughes
954de52612
trivial: Make --verbose work in fwupdmgr
2017-06-16 07:59:02 +01:00
Richard Hughes
40aeea4167
trivial: Show the release (not device) checksums in 'fwupdmgr get-updates'
2017-06-16 07:59:02 +01:00
Richard Hughes
c2a20d7fff
trivial: Show the release (not device) checksums in 'fwupdmgr get-releases'
2017-06-15 20:19:03 +01:00
Richard Hughes
109526bf34
trivial: Fix a harmless warning when building RPMs
2017-06-15 11:07:00 +01:00
Richard Hughes
18b73a4bdd
trivial: Return with exist code 0 when there is nothing to do
2017-06-14 15:16:06 +01:00
Richard Hughes
2899cb28d5
Show progress download when refreshing metadata
2017-06-13 16:31:18 +01:00
Richard Hughes
b86484a585
Export some more API for dealing with checksums
2017-06-09 10:11:58 +01:00
Piotr Drąg
748ae3154e
trivial: Fix a typo in a translatable string ( #132 )
2017-06-07 16:59:40 -05:00
Richard Hughes
cffef2654b
trivial: Include the device name in the output of 'fwupdmgr get-releases'
...
If only one device is present, then it's not obvious what this output refers to.
2017-06-07 15:34:53 +01:00
Richard Hughes
97fc78bbc3
trivial: Fix a harmless warning from clang
2017-06-07 15:34:53 +01:00
Richard Hughes
68cc00c7e9
Allow multiple checksums on devices and releases
...
Although we supported other hashes than SHA1 (which is now moderately unsafe)
we had to switch the metadata provider and daemon on some kind of flag day to
using SHA256. Since that's somewhat impractical, just allow multiple checksums
to be set on objects and just try to match whatever is given in preference
order.
This also means we can easily transition to other hash types in the future.
The removed API was never present in a tarball release, so not an API break.
2017-06-06 20:06:53 +01:00
Richard Hughes
7e206447a8
Use the user cache directory for firmware
...
We don't need to redownload this multiple times if we have multiple devices
needing the same firmware update.
2017-06-06 12:22:30 +01:00
Richard Hughes
81c7649dd8
libfwupd: Add fwupd_client_get_devices_simple() to return us an array of devices, not results
2017-06-06 11:10:57 +01:00
Richard Hughes
45c1545b0a
Add a 'downgrade' command to fwupdmgr
...
This allows the user to downgrade the firmware on a device.
2017-06-06 09:44:47 +01:00
Richard Hughes
224002ab38
Prompt for the device ID if nothing specified in get-releases
...
This makes it somewhat easier to use for the common case.
2017-06-06 09:34:46 +01:00
Richard Hughes
e4a100cfee
Add a GetReleases() D-Bus call to return all releases for a device
...
This allows us to downgrade firmware in the future.
2017-06-05 17:42:57 +01:00
Richard Hughes
1642b3b95a
Deprecate the old FwupdResult API
...
It will be removed next time we bump soname.
2017-06-05 17:41:11 +01:00
Richard Hughes
502a2ca64a
Do not re-download firmware that exists in the cache
2017-06-05 09:23:10 +01:00
Richard Hughes
b8f8db2082
Add support for Microsoft HardwareIDs
...
This commit provides a new "hwids" subcommand for fwupdmgr that shows the
hardware GUIDs on the local system. It also provides API that plugins can use
to self-disable when a specific HWID does not match.
The GUIDs used in this implementation match that of ComputerHardwareIds.exe
2017-06-04 19:46:36 +01:00