Commit Graph

219 Commits

Author SHA1 Message Date
Richard Hughes
ebbb13c2b4 Remove the libfwup dependency from fwupd
In Fedora the only user of libfwupdate is fwupd and the fwupdate command line
tool. It makes sense to absorb the libfwupdate library interface into the
uefi plugin in fwupd. Benefits I can see include:

* fwupd and fwupdate are very similar names; a lot of OEMs are confused

* fwupd already depends on efivar for other things

* We are maintaining an artificial library interface

* The CI and translation hooks are already in place for fwupd

* We don't need to check for features or versions in fwupd, we can just develop
the feature (e.g. BGRT) all in one place.
2018-06-28 15:51:11 +01:00
Richard Hughes
8848675f9b trivial: Show supported device without using --show-all-devices
In the case of a device that is unlockable, but is not updatable we want to
show it by default.
2018-06-27 14:07:11 +01:00
Mario Limonciello
51308e648a Adjust all licensing to LGPL 2.1+ (Closes: #526) 2018-05-29 09:03:13 +01:00
Mario Limonciello
ba9e5b94ff Bring get-topology to fwupdtool
Also ammend the behavior of get-devices to match fwupdmgr
2018-05-22 05:44:52 +01:00
Richard Hughes
a7689dab33 trivial: Fix a compile warning when ConsoleKit and systemd are disabled 2018-05-21 14:18:52 +01:00
Richard Hughes
db7dfae566 trivial: Fix a build warning when building without ConsoleKit support 2018-05-21 14:18:48 +01:00
Richard Hughes
b597683113 Add a low-level firmware diagnostic tool
This is designed to be run as root accessing the hardware directly rather than
using the daemon. This would allow a snap or flatpak package to write firmware
even when the host fwupd daemon is too old.

Also, move the SMBIOS parsing code here as this is not needed in fwupdmgr.
2018-05-18 10:08:10 +01:00
Richard Hughes
f761640aa1 trivial: Split out some CLI functionality for future use 2018-05-18 10:08:10 +01:00
Richard Hughes
76e0f94c86 Allow the client tools to avoid writing the history database 2018-05-14 18:54:15 +01:00
Mario Limonciello
78956cc9ff fwupdmgr: Hide devices that aren't updatable by default
They are hidden from get-devices, get-updates, and get-topology
They can be viewed by adding '--show-all-devices' to command line
2018-05-07 14:08:39 -05:00
Richard Hughes
42728c4d5e Add 'fwupdmgr get-topology' to show logical device tree 2018-05-03 08:07:04 +01:00
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