diff --git a/.fwupd.metadata b/.fwupd.metadata index ed8c355..26e102d 100644 --- a/.fwupd.metadata +++ b/.fwupd.metadata @@ -1 +1,2 @@ -9777016b6b861676e3e88153f7b310e4d985871a SOURCES/fwupd-1.1.4.tar.xz +416a671623a26f425c10f01a431046f534c53518 SOURCES/fwupd-1.4.1.tar.xz +6991b6879b438a4672e97c534d10737bc54e6f39 SOURCES/libjcat-0.1.2.tar.xz diff --git a/.gitignore b/.gitignore index 7aab32e..e7d79e1 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -SOURCES/fwupd-1.1.4.tar.xz +SOURCES/fwupd-1.4.1.tar.xz +SOURCES/libjcat-0.1.2.tar.xz diff --git a/SOURCES/0001-Disable-wacomhid-by-default-as-probing-the-device-st.patch b/SOURCES/0001-Disable-wacomhid-by-default-as-probing-the-device-st.patch deleted file mode 100644 index 34e23d5..0000000 --- a/SOURCES/0001-Disable-wacomhid-by-default-as-probing-the-device-st.patch +++ /dev/null @@ -1,28 +0,0 @@ -From d4a65700c5ed9544b6445213bd5f8a0dbc2cd1e5 Mon Sep 17 00:00:00 2001 -From: Richard Hughes -Date: Fri, 29 Nov 2019 14:00:39 +0000 -Subject: [PATCH] Disable wacomhid by default as probing the device stops the - tablet working - -This is fixed properly in fwupd >= 1.2.2 but add this workaround here for -stable distros that cannot rebase to a newer branch. ---- - data/daemon.conf | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/data/daemon.conf b/data/daemon.conf -index 51ab19f4..03965d88 100644 ---- a/data/daemon.conf -+++ b/data/daemon.conf -@@ -6,7 +6,7 @@ BlacklistDevices= - - # Allow blacklisting specific plugins - # Uses semicolons as delimiter --BlacklistPlugins=test -+BlacklistPlugins=test;wacomhid - - # Maximum archive size that can be loaded in Mb, with 0 for the default - ArchiveSizeMax=0 --- -2.23.0 - diff --git a/SOURCES/0001-Do-not-use-the-LVFS.patch b/SOURCES/0001-Do-not-use-the-LVFS.patch new file mode 100644 index 0000000..427c474 --- /dev/null +++ b/SOURCES/0001-Do-not-use-the-LVFS.patch @@ -0,0 +1,26 @@ +diff --git a/data/remotes.d/lvfs.conf b/data/remotes.d/lvfs.conf +index 1249ef74..f533bf52 100644 +--- a/data/remotes.d/lvfs.conf ++++ b/data/remotes.d/lvfs.conf +@@ -1,7 +1,7 @@ + [fwupd Remote] + + # this remote provides metadata and firmware marked as 'stable' from the LVFS +-Enabled=true ++Enabled=false + Title=Linux Vendor Firmware Service + MetadataURI=https://cdn.fwupd.org/downloads/firmware.xml.gz + ReportURI=https://fwupd.org/lvfs/firmware/report +diff --git a/libfwupd/fwupd-self-test.c b/libfwupd/fwupd-self-test.c +index 679360b0..59660360 100644 +--- a/libfwupd/fwupd-self-test.c ++++ b/libfwupd/fwupd-self-test.c +@@ -182,7 +182,7 @@ fwupd_remote_download_func (void) + g_assert_cmpint (fwupd_remote_get_kind (remote), ==, FWUPD_REMOTE_KIND_DOWNLOAD); + g_assert_cmpint (fwupd_remote_get_keyring_kind (remote), ==, FWUPD_KEYRING_KIND_JCAT); + g_assert_cmpint (fwupd_remote_get_priority (remote), ==, 0); +- g_assert (fwupd_remote_get_enabled (remote)); ++// g_assert (fwupd_remote_get_enabled (remote)); + g_assert (fwupd_remote_get_metadata_uri (remote) != NULL); + g_assert (fwupd_remote_get_metadata_uri_sig (remote) != NULL); + g_assert_cmpstr (fwupd_remote_get_title (remote), ==, "Linux Vendor Firmware Service"); diff --git a/SOURCES/0001-Relax-the-certificate-time-checks-in-the-self-tests-.patch b/SOURCES/0001-Relax-the-certificate-time-checks-in-the-self-tests-.patch deleted file mode 100644 index b6be5f2..0000000 --- a/SOURCES/0001-Relax-the-certificate-time-checks-in-the-self-tests-.patch +++ /dev/null @@ -1,220 +0,0 @@ -commit 58f79c3d235290c4cecccc1d55cbcc2da8e988a6 -Author: Richard Hughes -Date: Thu Aug 1 09:45:25 2019 +0100 - - Relax the certificate time checks in the self tests for the legacy certificate - - One test verifies a firmware with a signature from the old LVFS which was - hosted on secure-lvfs.rhcloud.com and used the original PKCS-7 key. This key - had a two year validity (expiring today, ohh the naivety...) rather than the - newer fwupd.org key which expires in the year 2058. - - For this specific test only, disable the certificate time checks to fix CI. - - Fixes https://github.com/hughsie/fwupd/issues/1264 - -diff --git a/src/fu-engine.c b/src/fu-engine.c -index ac102cfa..1a57b0af 100644 ---- a/src/fu-engine.c -+++ b/src/fu-engine.c -@@ -1908,7 +1908,8 @@ fu_engine_get_existing_keyring_result (FuEngine *self, - blob_sig = fu_common_get_contents_bytes (fwupd_remote_get_filename_cache_sig (remote), error); - if (blob_sig == NULL) - return NULL; -- return fu_keyring_verify_data (kr, blob, blob_sig, error); -+ return fu_keyring_verify_data (kr, blob, blob_sig, -+ FU_KEYRING_VERIFY_FLAG_NONE, error); - } - - /** -@@ -1991,7 +1992,9 @@ fu_engine_update_metadata (FuEngine *self, const gchar *remote_id, - pki_dir = g_build_filename (sysconfdir, "pki", "fwupd-metadata", NULL); - if (!fu_keyring_add_public_keys (kr, pki_dir, error)) - return FALSE; -- kr_result = fu_keyring_verify_data (kr, bytes_raw, bytes_sig, error); -+ kr_result = fu_keyring_verify_data (kr, bytes_raw, bytes_sig, -+ FU_KEYRING_VERIFY_FLAG_NONE, -+ error); - if (kr_result == NULL) - return FALSE; - -diff --git a/src/fu-keyring-gpg.c b/src/fu-keyring-gpg.c -index af0bfbe0..a51ab7a4 100644 ---- a/src/fu-keyring-gpg.c -+++ b/src/fu-keyring-gpg.c -@@ -231,6 +231,7 @@ static FuKeyringResult * - fu_keyring_gpg_verify_data (FuKeyring *keyring, - GBytes *blob, - GBytes *blob_signature, -+ FuKeyringVerifyFlags flags, - GError **error) - { - FuKeyringGpg *self = FU_KEYRING_GPG (keyring); -diff --git a/src/fu-keyring-pkcs7.c b/src/fu-keyring-pkcs7.c -index d48dc5d0..dc310d37 100644 ---- a/src/fu-keyring-pkcs7.c -+++ b/src/fu-keyring-pkcs7.c -@@ -182,6 +182,7 @@ static FuKeyringResult * - fu_keyring_pkcs7_verify_data (FuKeyring *keyring, - GBytes *blob, - GBytes *blob_signature, -+ FuKeyringVerifyFlags flags, - GError **error) - { - FuKeyringPkcs7 *self = FU_KEYRING_PKCS7 (keyring); -@@ -231,6 +232,14 @@ fu_keyring_pkcs7_verify_data (FuKeyring *keyring, - for (gint i = 0; i < count; i++) { - gnutls_pkcs7_signature_info_st info; - gint64 signing_time = 0; -+ gnutls_certificate_verify_flags verify_flags = 0; -+ -+ /* use with care */ -+ if (flags & FU_KEYRING_VERIFY_FLAG_DISABLE_TIME_CHECKS) { -+ g_debug ("WARNING: disabling time checks"); -+ verify_flags |= GNUTLS_VERIFY_DISABLE_TIME_CHECKS; -+ verify_flags |= GNUTLS_VERIFY_DISABLE_TRUSTED_TIME_CHECKS; -+ } - - /* verify the data against the detached signature */ - rc = gnutls_pkcs7_verify (pkcs7, self->tl, -@@ -238,7 +247,7 @@ fu_keyring_pkcs7_verify_data (FuKeyring *keyring, - 0, /* vdata_size */ - i, /* index */ - &datum, /* data */ -- 0); /* flags */ -+ verify_flags); - if (rc < 0) { - g_set_error (error, - FWUPD_ERROR, -diff --git a/src/fu-keyring-utils.c b/src/fu-keyring-utils.c -index 0c5a7f04..465b4a02 100644 ---- a/src/fu-keyring-utils.c -+++ b/src/fu-keyring-utils.c -@@ -167,7 +167,9 @@ fu_keyring_get_release_trust_flags (AsRelease *release, - fu_keyring_get_name (kr)); - return FALSE; - } -- kr_result = fu_keyring_verify_data (kr, blob_payload, blob_signature, &error_local); -+ kr_result = fu_keyring_verify_data (kr, blob_payload, blob_signature, -+ FU_KEYRING_VERIFY_FLAG_NONE, -+ &error_local); - if (kr_result == NULL) { - g_warning ("untrusted as failed to verify from %s keyring: %s", - fu_keyring_get_name (kr), -diff --git a/src/fu-keyring.c b/src/fu-keyring.c -index d8a88e8c..9b582563 100644 ---- a/src/fu-keyring.c -+++ b/src/fu-keyring.c -@@ -40,13 +40,14 @@ FuKeyringResult * - fu_keyring_verify_data (FuKeyring *keyring, - GBytes *blob, - GBytes *blob_signature, -+ FuKeyringVerifyFlags flags, - GError **error) - { - FuKeyringClass *klass = FU_KEYRING_GET_CLASS (keyring); - g_return_val_if_fail (FU_IS_KEYRING (keyring), NULL); - g_return_val_if_fail (blob != NULL, NULL); - g_return_val_if_fail (blob_signature != NULL, NULL); -- return klass->verify_data (keyring, blob, blob_signature, error); -+ return klass->verify_data (keyring, blob, blob_signature, flags, error); - } - - const gchar * -diff --git a/src/fu-keyring.h b/src/fu-keyring.h -index 6e03694c..f097305d 100644 ---- a/src/fu-keyring.h -+++ b/src/fu-keyring.h -@@ -17,6 +17,20 @@ G_BEGIN_DECLS - #define FU_TYPE_KEYRING (fu_keyring_get_type ()) - G_DECLARE_DERIVABLE_TYPE (FuKeyring, fu_keyring, FU, KEYRING, GObject) - -+/** -+ * FuKeyringVerifyFlags: -+ * @FU_KEYRING_VERIFY_FLAG_NONE: No flags set -+ * @FU_KEYRING_VERIFY_FLAG_DISABLE_TIME_CHECKS: Disable checking of validity periods -+ * -+ * The flags to use when interacting with a keyring -+ **/ -+typedef enum { -+ FU_KEYRING_VERIFY_FLAG_NONE = 0, -+ FU_KEYRING_VERIFY_FLAG_DISABLE_TIME_CHECKS = 1 << 2, -+ /*< private >*/ -+ FU_KEYRING_VERIFY_FLAG_LAST -+} FuKeyringVerifyFlags; -+ - struct _FuKeyringClass - { - GObjectClass parent_class; -@@ -28,6 +42,7 @@ struct _FuKeyringClass - FuKeyringResult *(*verify_data) (FuKeyring *keyring, - GBytes *payload, - GBytes *payload_signature, -+ FuKeyringVerifyFlags flags, - GError **error); - }; - -@@ -39,6 +54,7 @@ gboolean fu_keyring_add_public_keys (FuKeyring *keyring, - FuKeyringResult *fu_keyring_verify_data (FuKeyring *keyring, - GBytes *blob, - GBytes *blob_signature, -+ FuKeyringVerifyFlags flags, - GError **error); - const gchar *fu_keyring_get_name (FuKeyring *self); - void fu_keyring_set_name (FuKeyring *self, -diff --git a/src/fu-self-test.c b/src/fu-self-test.c -index 4f359614..98fac714 100644 ---- a/src/fu-self-test.c -+++ b/src/fu-self-test.c -@@ -1947,7 +1947,9 @@ fu_keyring_gpg_func (void) - g_assert_no_error (error); - g_assert_nonnull (blob_pass); - blob_sig = g_bytes_new_static (sig_gpgme, strlen (sig_gpgme)); -- result_pass = fu_keyring_verify_data (keyring, blob_pass, blob_sig, &error); -+ result_pass = fu_keyring_verify_data (keyring, blob_pass, blob_sig, -+ FU_KEYRING_VERIFY_FLAG_NONE, -+ &error); - g_assert_no_error (error); - g_assert_nonnull (result_pass); - g_assert_cmpint (fu_keyring_result_get_timestamp (result_pass), == , 1438072952); -@@ -1960,7 +1962,8 @@ fu_keyring_gpg_func (void) - blob_fail = fu_common_get_contents_bytes (fw_fail, &error); - g_assert_no_error (error); - g_assert_nonnull (blob_fail); -- result_fail = fu_keyring_verify_data (keyring, blob_fail, blob_sig, &error); -+ result_fail = fu_keyring_verify_data (keyring, blob_fail, blob_sig, -+ FU_KEYRING_VERIFY_FLAG_NONE, &error); - g_assert_error (error, FWUPD_ERROR, FWUPD_ERROR_SIGNATURE_INVALID); - g_assert_null (result_fail); - g_clear_error (&error); -@@ -2010,7 +2013,9 @@ fu_keyring_pkcs7_func (void) - blob_sig = fu_common_get_contents_bytes (sig_fn, &error); - g_assert_no_error (error); - g_assert_nonnull (blob_sig); -- result_pass = fu_keyring_verify_data (keyring, blob_pass, blob_sig, &error); -+ result_pass = fu_keyring_verify_data (keyring, blob_pass, blob_sig, -+ FU_KEYRING_VERIFY_FLAG_DISABLE_TIME_CHECKS, -+ &error); - g_assert_no_error (error); - g_assert_nonnull (result_pass); - g_assert_cmpint (fu_keyring_result_get_timestamp (result_pass), >= , 1502871248); -@@ -2022,7 +2027,8 @@ fu_keyring_pkcs7_func (void) - blob_sig2 = fu_common_get_contents_bytes (sig_fn2, &error); - g_assert_no_error (error); - g_assert_nonnull (blob_sig2); -- result_fail = fu_keyring_verify_data (keyring, blob_pass, blob_sig2, &error); -+ result_fail = fu_keyring_verify_data (keyring, blob_pass, blob_sig2, -+ FU_KEYRING_VERIFY_FLAG_NONE, &error); - g_assert_error (error, FWUPD_ERROR, FWUPD_ERROR_SIGNATURE_INVALID); - g_assert_null (result_fail); - g_clear_error (&error); -@@ -2033,7 +2039,8 @@ fu_keyring_pkcs7_func (void) - blob_fail = fu_common_get_contents_bytes (fw_fail, &error); - g_assert_no_error (error); - g_assert_nonnull (blob_fail); -- result_fail = fu_keyring_verify_data (keyring, blob_fail, blob_sig, &error); -+ result_fail = fu_keyring_verify_data (keyring, blob_fail, blob_sig, -+ FU_KEYRING_VERIFY_FLAG_NONE, &error); - g_assert_error (error, FWUPD_ERROR, FWUPD_ERROR_SIGNATURE_INVALID); - g_assert_null (result_fail); - g_clear_error (&error); diff --git a/SOURCES/0001-trivial-Relax-the-timing-requirements-on-the-FuDevic.patch b/SOURCES/0001-trivial-Relax-the-timing-requirements-on-the-FuDevic.patch deleted file mode 100644 index 2aff6ff..0000000 --- a/SOURCES/0001-trivial-Relax-the-timing-requirements-on-the-FuDevic.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 48cea11bd5d3d8c7f7423ad9807b1e537bc051c8 Mon Sep 17 00:00:00 2001 -From: Richard Hughes -Date: Thu, 8 Nov 2018 20:05:12 +0000 -Subject: [PATCH] trivial: Relax the timing requirements on the FuDevice poll - test - -If the poll source is scheduled just at the right time, we might only get 8x -'10ms ticks' in a 100ms window. This fixes an occasional build failure on -slower hardware and in CI. ---- - src/fu-self-test.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/fu-self-test.c b/src/fu-self-test.c -index 3c774b55..edc0088d 100644 ---- a/src/fu-self-test.c -+++ b/src/fu-self-test.c -@@ -2806,7 +2806,7 @@ fu_device_poll_func (void) - fu_test_loop_run_with_timeout (100); - fu_test_loop_quit (); - cnt = fu_device_get_metadata_integer (device, "cnt"); -- g_assert_cmpint (cnt, >=, 9); -+ g_assert_cmpint (cnt, >=, 8); - - /* disable the poll */ - fu_device_set_poll_interval (device, 0); --- -2.19.1 - diff --git a/SOURCES/0001-uefi-add-a-new-option-to-specify-the-os-name.patch b/SOURCES/0001-uefi-add-a-new-option-to-specify-the-os-name.patch deleted file mode 100644 index f9f4e43..0000000 --- a/SOURCES/0001-uefi-add-a-new-option-to-specify-the-os-name.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 3cd6171c44ef217acef059c871efc726eb9df062 Mon Sep 17 00:00:00 2001 -From: Gary Lin -Date: Thu, 28 Mar 2019 16:20:22 +0800 -Subject: [PATCH] uefi: add a new option to specify the os name - -fu_uefi_get_esp_path_for_os() generates the path to the OS directory -based on "ID" in /etc/os-release, and it may not work for some distros. - -Take openSUSE as an example, the "ID" for openSUSE Leap is -"opensuse-leap" and that for openSUSE Tumbleweed is "opensuse-tumbleweed". -However, both of them use the same OS directory in the ESP, i.e. -"/EFI/opensuse". - -This commit adds a new build option, efi_os_dir, to allow the packager to -specify the name of OS directory at build time instead of the runtime -detection. - -Signed-off-by: Gary Lin ---- - meson_options.txt | 1 + - plugins/uefi/fu-uefi-common.c | 4 ++++ - plugins/uefi/meson.build | 5 +++++ - 3 files changed, 10 insertions(+) - -diff --git a/meson_options.txt b/meson_options.txt -index 23ef8cdb..c1767205 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -24,3 +24,4 @@ option('efi-ld', type : 'string', value : 'ld', description : 'the linker to use - option('efi-libdir', type : 'string', description : 'path to the EFI lib directory') - option('efi-ldsdir', type : 'string', description : 'path to the EFI lds directory') - option('efi-includedir', type : 'string', value : '/usr/include/efi', description : 'path to the EFI header directory') -+option('efi_os_dir', type: 'string', description : 'the name of OS directory in ESP') -diff --git a/plugins/uefi/fu-uefi-common.c b/plugins/uefi/fu-uefi-common.c -index 2e3268aa..4d9d03d7 100644 ---- a/plugins/uefi/fu-uefi-common.c -+++ b/plugins/uefi/fu-uefi-common.c -@@ -246,6 +246,7 @@ gchar * - fu_uefi_get_esp_path_for_os (const gchar *esp_path) - { - const gchar *os_release_id = NULL; -+#ifndef EFI_OS_DIR - g_autoptr(GError) error_local = NULL; - g_autoptr(GHashTable) os_release = fwupd_get_os_release (&error_local); - if (os_release != NULL) { -@@ -255,6 +256,9 @@ fu_uefi_get_esp_path_for_os (const gchar *esp_path) - } - if (os_release_id == NULL) - os_release_id = "unknown"; -+#else -+ os_release_id = EFI_OS_DIR; -+#endif - return g_build_filename (esp_path, "EFI", os_release_id, NULL); - } - -diff --git a/plugins/uefi/meson.build b/plugins/uefi/meson.build -index 140418a8..21d4b6c8 100644 ---- a/plugins/uefi/meson.build -+++ b/plugins/uefi/meson.build -@@ -3,6 +3,11 @@ subdir('efi') - cargs = ['-DG_LOG_DOMAIN="FuPluginUefi"'] - cargs += '-DEFI_APP_LOCATION_BUILD="' + app.full_path() + '"' - -+efi_os_dir = get_option('efi_os_dir') -+if efi_os_dir != '' -+ cargs += '-DEFI_OS_DIR="' + efi_os_dir + '"' -+endif -+ - shared_module('fu_plugin_uefi', - sources : [ - 'fu-plugin-uefi.c', --- -2.24.1 - diff --git a/SOURCES/centos-ca-secureboot.der b/SOURCES/centos-ca-secureboot.der deleted file mode 100644 index 44a2563..0000000 Binary files a/SOURCES/centos-ca-secureboot.der and /dev/null differ diff --git a/SOURCES/centossecureboot001.crt b/SOURCES/centossecureboot001.crt deleted file mode 100644 index 321c4ec..0000000 --- a/SOURCES/centossecureboot001.crt +++ /dev/null @@ -1,81 +0,0 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: - b6:16:15:71:72:fb:31:7e - Signature Algorithm: sha256WithRSAEncryption - Issuer: CN=CentOS Secure Boot (CA key 1)/emailAddress=security@centos.org - Validity - Not Before: Aug 1 11:47:30 2018 GMT - Not After : Dec 31 11:47:30 2037 GMT - Subject: CN=CentOS Secure Boot (key 1)/emailAddress=security@centos.org - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (2048 bit) - Modulus (2048 bit): - 00:c1:a3:6a:f4:2d:71:83:6c:21:ca:0c:b7:ac:fa: - 76:80:43:03:40:87:5d:de:e9:1e:df:ad:e7:2b:51: - cb:f8:31:0f:9a:db:ab:23:25:04:11:05:57:7d:f2: - 4b:8d:1e:b3:75:78:1d:b9:57:8b:18:0b:bb:7e:e3: - 24:0f:6a:40:5f:2b:4f:03:a5:85:94:d2:f9:08:a0: - bc:db:a5:ea:4f:7f:e8:7c:d1:a9:f8:f0:9c:25:18: - 00:14:c4:c4:35:7d:1d:4c:8a:8d:95:f8:ed:65:97: - a5:a4:da:7d:cb:f0:33:3b:b7:03:94:68:47:05:57: - 6c:96:91:ac:14:f2:e3:f6:6d:4a:18:cf:68:8a:35: - 6f:8e:26:99:7f:db:c9:83:54:c2:c3:bf:ad:45:a0: - aa:a0:86:5f:20:b1:86:1b:ae:b7:28:15:11:f9:65: - 53:5d:70:33:9b:a3:c7:b5:c8:11:ff:55:3b:e7:46: - f1:6c:6b:8c:bb:f2:9f:36:23:b1:2d:23:2f:8f:4f: - 6c:a8:cc:ae:f5:56:9e:22:6c:0e:9a:4a:b1:bd:b2: - 76:15:5c:05:85:b8:5e:dc:8c:a5:c3:e0:75:51:a4: - 94:9b:03:2e:7b:f8:d3:b9:dd:7f:88:ce:2e:2f:28: - 4c:b4:92:2f:e6:e0:67:0a:d0:ff:c5:d2:79:a6:ef: - 94:0f - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: critical - CA:FALSE - X509v3 Key Usage: - Digital Signature - X509v3 Subject Key Identifier: - F0:37:C6:EA:EC:36:D4:05:7A:52:6C:0E:C6:D5:A9:5B:32:4E:E1:29 - X509v3 Authority Key Identifier: - keyid:54:EC:81:85:89:3E:E9:1A:DB:08:F7:44:88:54:7E:8E:3F:74:3A:F3 - - Signature Algorithm: sha256WithRSAEncryption - 97:97:ba:a6:0b:5b:bb:84:39:2e:ef:8b:51:9a:89:bb:65:3c: - dc:15:d0:5a:88:c5:af:ce:93:f5:c1:74:98:15:59:a9:38:da: - 11:fd:46:d5:4f:23:7c:03:1f:ae:0c:70:93:94:a7:61:2f:4b: - 2f:5f:bb:cc:8a:d7:4a:24:66:73:85:b4:19:13:fc:6a:61:4a: - 28:1f:a2:38:f4:72:90:03:c4:3e:64:63:8b:fb:15:22:22:4e: - b9:43:d9:b4:3d:3a:60:c1:4d:3a:09:85:68:7a:bc:3b:f9:ef: - f3:f5:e9:c9:4f:80:8c:c6:e9:cb:ef:28:44:b0:5d:d4:9e:4f: - 0f:02:9a:65:aa:98:35:b4:6f:d2:80:e3:08:ef:12:d0:17:56: - a6:a1:42:1e:1d:ab:e5:33:c0:fd:88:0d:40:42:81:c8:27:30: - 17:07:57:3e:05:9d:aa:05:0e:5b:3a:79:b4:29:aa:7c:42:5a: - ad:43:59:fb:34:4d:dc:62:58:63:e4:fb:de:bb:fd:6c:4e:97: - 58:f4:b9:99:4a:71:fe:7f:16:50:55:25:46:39:96:9b:88:6c: - 75:19:33:9e:70:b3:04:82:fe:16:a8:8e:22:47:83:6d:16:77: - da:26:ad:31:d8:06:6d:c5:7e:46:4b:21:ab:ae:ec:2a:93:71: - da:7f:89:1d ------BEGIN CERTIFICATE----- -MIIDdTCCAl2gAwIBAgIJALYWFXFy+zF+MA0GCSqGSIb3DQEBCwUAMEwxJjAkBgNV -BAMMHUNlbnRPUyBTZWN1cmUgQm9vdCAoQ0Ega2V5IDEpMSIwIAYJKoZIhvcNAQkB -FhNzZWN1cml0eUBjZW50b3Mub3JnMB4XDTE4MDgwMTExNDczMFoXDTM3MTIzMTEx -NDczMFowSTEjMCEGA1UEAxMaQ2VudE9TIFNlY3VyZSBCb290IChrZXkgMSkxIjAg -BgkqhkiG9w0BCQEWE3NlY3VyaXR5QGNlbnRvcy5vcmcwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQDBo2r0LXGDbCHKDLes+naAQwNAh13e6R7frecrUcv4 -MQ+a26sjJQQRBVd98kuNHrN1eB25V4sYC7t+4yQPakBfK08DpYWU0vkIoLzbpepP -f+h80an48JwlGAAUxMQ1fR1Mio2V+O1ll6Wk2n3L8DM7twOUaEcFV2yWkawU8uP2 -bUoYz2iKNW+OJpl/28mDVMLDv61FoKqghl8gsYYbrrcoFRH5ZVNdcDObo8e1yBH/ -VTvnRvFsa4y78p82I7EtIy+PT2yozK71Vp4ibA6aSrG9snYVXAWFuF7cjKXD4HVR -pJSbAy57+NO53X+Izi4vKEy0ki/m4GcK0P/F0nmm75QPAgMBAAGjXTBbMAwGA1Ud -EwEB/wQCMAAwCwYDVR0PBAQDAgeAMB0GA1UdDgQWBBTwN8bq7DbUBXpSbA7G1alb -Mk7hKTAfBgNVHSMEGDAWgBRU7IGFiT7pGtsI90SIVH6OP3Q68zANBgkqhkiG9w0B -AQsFAAOCAQEAl5e6pgtbu4Q5Lu+LUZqJu2U83BXQWojFr86T9cF0mBVZqTjaEf1G -1U8jfAMfrgxwk5SnYS9LL1+7zIrXSiRmc4W0GRP8amFKKB+iOPRykAPEPmRji/sV -IiJOuUPZtD06YMFNOgmFaHq8O/nv8/XpyU+AjMbpy+8oRLBd1J5PDwKaZaqYNbRv -0oDjCO8S0BdWpqFCHh2r5TPA/YgNQEKByCcwFwdXPgWdqgUOWzp5tCmqfEJarUNZ -+zRN3GJYY+T73rv9bE6XWPS5mUpx/n8WUFUlRjmWm4hsdRkznnCzBIL+FqiOIkeD -bRZ32iatMdgGbcV+Rkshq67sKpNx2n+JHQ== ------END CERTIFICATE----- diff --git a/SPECS/fwupd.spec b/SPECS/fwupd.spec index 24e14e9..5d4d636 100644 --- a/SPECS/fwupd.spec +++ b/SPECS/fwupd.spec @@ -1,10 +1,10 @@ %global glib2_version 2.45.8 -%global libappstream_version 0.7.4 +%global libxmlb_version 0.1.3 %global libgusb_version 0.2.11 %global libsoup_version 2.51.92 %global systemd_version 231 %global json_glib_version 1.1.1 -%global pesign_name centossecureboot001 +%global __meson_wrap_mode default %global enable_tests 1 %global enable_dummy 1 @@ -24,25 +24,27 @@ %global have_dell 1 %endif +# only available recently +%if 0%{?fedora} >= 30 || 0%{?rhel} >= 8 +%global have_modem_manager 1 +%endif + Summary: Firmware update daemon Name: fwupd -Version: 1.1.4 -Release: 6%{?dist} +Version: 1.4.1 +Release: 1%{?dist} License: LGPLv2+ -URL: https://github.com/hughsie/fwupd +URL: https://github.com/fwupd/fwupd Source0: http://people.freedesktop.org/~hughsient/releases/%{name}-%{version}.tar.xz -Source1: centos-ca-secureboot.der -Source2: centossecureboot001.crt +Source1: securebootca.cer +Source2: secureboot.cer +Source3: http://people.freedesktop.org/~hughsient/releases/libjcat-0.1.2.tar.xz -# backport from upstream -Patch0: 0001-trivial-Relax-the-timing-requirements-on-the-FuDevic.patch -Patch1: 0001-Relax-the-certificate-time-checks-in-the-self-tests-.patch -Patch2: 0001-Disable-wacomhid-by-default-as-probing-the-device-st.patch -Patch3: 0001-uefi-add-a-new-option-to-specify-the-os-name.patch +Patch2: 0001-Do-not-use-the-LVFS.patch BuildRequires: gettext BuildRequires: glib2-devel >= %{glib2_version} -BuildRequires: libappstream-glib-devel >= %{libappstream_version} +BuildRequires: libxmlb-devel >= %{libxmlb_version} BuildRequires: libgcab1-devel BuildRequires: libgudev1-devel BuildRequires: libgusb-devel >= %{libgusb_version} @@ -60,7 +62,6 @@ BuildRequires: valgrind-devel %endif BuildRequires: elfutils-libelf-devel BuildRequires: gtk-doc -BuildRequires: libuuid-devel BuildRequires: gnutls-devel BuildRequires: gnutls-utils BuildRequires: meson @@ -69,9 +70,15 @@ BuildRequires: json-glib-devel >= %{json_glib_version} BuildRequires: vala BuildRequires: python3-devel BuildRequires: bash-completion +BuildRequires: git-core +%if 0%{?have_flashrom} +BuildRequires: flashrom-devel >= 1.2-2 +%endif -# until rh-signing-tools is fixed -BuildRequires: nss-tools +%if 0%{?have_modem_manager} +BuildRequires: ModemManager-glib-devel >= 1.10.0 +BuildRequires: libqmi-devel >= 1.22.0 +%endif %if 0%{?have_redfish} BuildRequires: efivar-devel >= 33 @@ -99,10 +106,11 @@ Requires(preun): systemd Requires(postun): systemd Requires: glib2%{?_isa} >= %{glib2_version} -Requires: libappstream-glib%{?_isa} >= %{libappstream_version} +Requires: libxmlb%{?_isa} >= %{libxmlb_version} Requires: libgusb%{?_isa} >= %{libgusb_version} Requires: libsoup%{?_isa} >= %{libsoup_version} Requires: bubblewrap +Requires: shared-mime-info Obsoletes: fwupd-sign < 0.1.6 Obsoletes: libebitdo < 0.7.5-3 @@ -123,24 +131,28 @@ Files for development with %{name}. %package tests Summary: Data files for installed tests -BuildArch: noarch -Recommends: python3 %description tests Data files for installed tests. %prep -%autosetup -p1 +%setup -q +%patch2 -p1 -b .lvfs-disabled + +mkdir -p subprojects/libjcat +tar xfvs %{SOURCE3} -C subprojects/libjcat --strip-components=1 sed -ri '1s=^#!/usr/bin/(env )?python3=#!%{__python3}=' \ - libfwupd/generate-version-script.py \ - data/installed-tests/hardware.py \ - po/test-deps \ + contrib/ci/*.py \ + contrib/firmware_packager/*.py \ + contrib/*.py \ + contrib/standalone-installer/assets/*.py \ + contrib/standalone-installer/*.py \ + data/device-tests/*.py \ + libfwupdplugin/*.py \ + plugins/dfu/contrib/*.py \ po/make-images \ - contrib/ci/generate_debian.py \ - contrib/ci/generate_docker.py \ - contrib/firmware-packager/firmware-packager \ - plugins/dfu/contrib/parse-avrdude-conf.py + po/test-deps %build @@ -150,6 +162,10 @@ export RHEL_ALLOW_PYTHON2_FOR_BUILD=1 %meson \ -Dgtkdoc=true \ -Defi_os_dir=redhat \ + -Dplugin_tpm=false \ + -Dlibjcat:gtkdoc=false \ + -Dlibjcat:introspection=false \ + -Dlibjcat:tests=false \ %if 0%{?enable_tests} -Dtests=true \ %else @@ -160,6 +176,11 @@ export RHEL_ALLOW_PYTHON2_FOR_BUILD=1 %else -Dplugin_dummy=false \ %endif +%if 0%{?have_flashrom} + -Dplugin_flashrom=true \ +%else + -Dplugin_flashrom=false \ +%endif -Dplugin_thunderbolt=true \ %if 0%{?have_redfish} -Dplugin_redfish=true \ @@ -180,6 +201,11 @@ export RHEL_ALLOW_PYTHON2_FOR_BUILD=1 -Dplugin_dell=false \ -Dplugin_synaptics=false \ %endif +%if 0%{?have_modem_manager} + -Dplugin_modem_manager=true \ +%else + -Dplugin_modem_manager=false \ +%endif -Dman=true %meson_build @@ -201,82 +227,117 @@ export RHEL_ALLOW_PYTHON2_FOR_BUILD=1 %global efiarch aa64 %endif %global fwup_efi_fn $RPM_BUILD_ROOT%{_libexecdir}/fwupd/efi/fwupd%{efiarch}.efi -%pesign -s -i %{fwup_efi_fn} -o %{fwup_efi_fn}.signed -a %{SOURCE1} -c %{SOURCE2} -n %{pesign_name} +%pesign -s -i %{fwup_efi_fn} -o %{fwup_efi_fn}.signed -a %{SOURCE1} -c %{SOURCE2} -n redhatsecureboot301 %endif mkdir -p --mode=0700 $RPM_BUILD_ROOT%{_localstatedir}/lib/fwupd/gnupg +# workaround for https://bugzilla.redhat.com/show_bug.cgi?id=1757948 +mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/cache/fwupd + %find_lang %{name} %post -/sbin/ldconfig %systemd_post fwupd.service %preun %systemd_preun fwupd.service %postun -/sbin/ldconfig %systemd_postun_with_restart fwupd.service %systemd_postun_with_restart pesign.service %files -f %{name}.lang -%doc README.md AUTHORS NEWS +%doc README.md AUTHORS %license COPYING +%config(noreplace)%{_sysconfdir}/fwupd/ata.conf %config(noreplace)%{_sysconfdir}/fwupd/daemon.conf +%config(noreplace)%{_sysconfdir}/fwupd/upower.conf %if 0%{?have_uefi} %config(noreplace)%{_sysconfdir}/fwupd/uefi.conf %endif %if 0%{?have_redfish} %config(noreplace)%{_sysconfdir}/fwupd/redfish.conf %endif +%config(noreplace)%{_sysconfdir}/fwupd/thunderbolt.conf %dir %{_libexecdir}/fwupd %{_libexecdir}/fwupd/fwupd -%{_libexecdir}/fwupd/fwupdtool +%{_libexecdir}/fwupd/fwupdoffline %if 0%{?have_uefi} %{_libexecdir}/fwupd/efi/*.efi %{_libexecdir}/fwupd/efi/*.efi.signed -%{_libexecdir}/fwupd/fwupdate +%{_bindir}/fwupdate %endif %{_bindir}/dfu-tool %{_bindir}/fwupdmgr +%{_bindir}/fwupdtool +%{_bindir}/fwupdagent +%{_bindir}/jcat-tool %dir %{_sysconfdir}/fwupd %dir %{_sysconfdir}/fwupd/remotes.d -%config(noreplace)%{_sysconfdir}/fwupd/remotes.d/fwupd.conf +%if 0%{?have_dell} +%config(noreplace)%{_sysconfdir}/fwupd/remotes.d/dell-esrt.conf +%endif %config(noreplace)%{_sysconfdir}/fwupd/remotes.d/lvfs.conf %config(noreplace)%{_sysconfdir}/fwupd/remotes.d/lvfs-testing.conf %config(noreplace)%{_sysconfdir}/fwupd/remotes.d/vendor.conf +%config(noreplace)%{_sysconfdir}/fwupd/remotes.d/vendor-directory.conf %config(noreplace)%{_sysconfdir}/pki/fwupd %{_sysconfdir}/pki/fwupd-metadata -%{_sysconfdir}/dbus-1/system.d/org.freedesktop.fwupd.conf +%{_datadir}/dbus-1/system.d/org.freedesktop.fwupd.conf %{_datadir}/bash-completion/completions/fwupdmgr %{_datadir}/bash-completion/completions/fwupdtool +%{_datadir}/bash-completion/completions/fwupdagent +%{_datadir}/fish/vendor_completions.d/fwupdmgr.fish %{_datadir}/fwupd/metainfo/org.freedesktop.fwupd*.metainfo.xml -%{_datadir}/fwupd/remotes.d/fwupd/metadata.xml +%if 0%{?have_dell} +%{_datadir}/fwupd/remotes.d/dell-esrt/metadata.xml +%endif %{_datadir}/fwupd/remotes.d/vendor/firmware/README.md %{_datadir}/dbus-1/interfaces/org.freedesktop.fwupd.xml %{_datadir}/polkit-1/actions/org.freedesktop.fwupd.policy %{_datadir}/polkit-1/rules.d/org.freedesktop.fwupd.rules %{_datadir}/dbus-1/system-services/org.freedesktop.fwupd.service +%{_datadir}/man/man1/fwupdtool.1.gz +%{_datadir}/man/man1/fwupdagent.1.gz %{_datadir}/man/man1/dfu-tool.1.gz %{_datadir}/man/man1/fwupdmgr.1.gz +%if 0%{?have_uefi} +%{_datadir}/man/man1/fwupdate.1.gz +%endif +%{_datadir}/man/man1/jcat-tool.1* %{_datadir}/metainfo/org.freedesktop.fwupd.metainfo.xml -%{_datadir}/fwupd/firmware-packager +%{_datadir}/icons/hicolor/scalable/apps/org.freedesktop.fwupd.svg +%{_datadir}/fwupd/firmware_packager.py +%{_datadir}/fwupd/simple_client.py +%{_datadir}/fwupd/add_capsule_header.py +%{_datadir}/fwupd/install_dell_bios_exe.py %{_unitdir}/fwupd-offline-update.service %{_unitdir}/fwupd.service +%{_unitdir}/fwupd-refresh.service +%{_unitdir}/fwupd-refresh.timer +%{_presetdir}/fwupd-refresh.preset %{_unitdir}/system-update.target.wants/ %dir %{_localstatedir}/lib/fwupd +%dir %{_localstatedir}/cache/fwupd %dir %{_datadir}/fwupd/quirks.d %{_datadir}/fwupd/quirks.d/*.quirk %{_localstatedir}/lib/fwupd/builder/README.md %{_libdir}/libfwupd*.so.* +%{_libdir}/libjcat.so.* %{_libdir}/girepository-1.0/Fwupd-2.0.typelib +%{_libdir}/girepository-1.0/FwupdPlugin-1.0.typelib /usr/lib/udev/rules.d/*.rules +/usr/lib/systemd/system-shutdown/fwupd.shutdown %dir %{_libdir}/fwupd-plugins-3 %{_libdir}/fwupd-plugins-3/libfu_plugin_altos.so %{_libdir}/fwupd-plugins-3/libfu_plugin_amt.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_ata.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_ccgx.so %{_libdir}/fwupd-plugins-3/libfu_plugin_colorhug.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_coreboot.so %{_libdir}/fwupd-plugins-3/libfu_plugin_csr.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_cpu.so %if 0%{?have_dell} %{_libdir}/fwupd-plugins-3/libfu_plugin_dell.so %{_libdir}/fwupd-plugins-3/libfu_plugin_dell_esrt.so @@ -284,33 +345,53 @@ mkdir -p --mode=0700 $RPM_BUILD_ROOT%{_localstatedir}/lib/fwupd/gnupg %{_libdir}/fwupd-plugins-3/libfu_plugin_dell_dock.so %{_libdir}/fwupd-plugins-3/libfu_plugin_dfu.so %{_libdir}/fwupd-plugins-3/libfu_plugin_ebitdo.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_emmc.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_ep963x.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_fastboot.so +%if 0%{?have_flashrom} %{_libdir}/fwupd-plugins-3/libfu_plugin_flashrom.so +%endif +%{_libdir}/fwupd-plugins-3/libfu_plugin_fresco_pd.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_jabra.so +%if 0%{?have_modem_manager} +%{_libdir}/fwupd-plugins-3/libfu_plugin_modem_manager.so +%endif %{_libdir}/fwupd-plugins-3/libfu_plugin_nitrokey.so %if 0%{?have_uefi} %{_libdir}/fwupd-plugins-3/libfu_plugin_nvme.so %endif +%{_libdir}/fwupd-plugins-3/libfu_plugin_optionrom.so %if 0%{?have_redfish} %{_libdir}/fwupd-plugins-3/libfu_plugin_redfish.so %endif %{_libdir}/fwupd-plugins-3/libfu_plugin_rts54hid.so %{_libdir}/fwupd-plugins-3/libfu_plugin_rts54hub.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_solokey.so %{_libdir}/fwupd-plugins-3/libfu_plugin_steelseries.so %{_libdir}/fwupd-plugins-3/libfu_plugin_superio.so %if 0%{?have_dell} -%{_libdir}/fwupd-plugins-3/libfu_plugin_synapticsmst.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_synaptics_mst.so %endif +%{_libdir}/fwupd-plugins-3/libfu_plugin_synaptics_cxaudio.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_synaptics_prometheus.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_synaptics_rmi.so %if 0%{?enable_dummy} %{_libdir}/fwupd-plugins-3/libfu_plugin_test.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_invalid.so %endif +%{_libdir}/fwupd-plugins-3/libfu_plugin_thelio_io.so %{_libdir}/fwupd-plugins-3/libfu_plugin_thunderbolt.so %{_libdir}/fwupd-plugins-3/libfu_plugin_thunderbolt_power.so -%{_libdir}/fwupd-plugins-3/libfu_plugin_udev.so %if 0%{?have_uefi} %{_libdir}/fwupd-plugins-3/libfu_plugin_uefi.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_uefi_recovery.so %endif -%{_libdir}/fwupd-plugins-3/libfu_plugin_unifying.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_logind.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_logitech_hidpp.so %{_libdir}/fwupd-plugins-3/libfu_plugin_upower.so -%{_libdir}/fwupd-plugins-3/libfu_plugin_wacomhid.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_vli.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_wacom_raw.so +%{_libdir}/fwupd-plugins-3/libfu_plugin_wacom_usb.so %ghost %{_localstatedir}/lib/fwupd/gnupg %if 0%{?have_uefi} %{_datadir}/locale/*/LC_IMAGES/fwupd* @@ -318,22 +399,33 @@ mkdir -p --mode=0700 $RPM_BUILD_ROOT%{_localstatedir}/lib/fwupd/gnupg %files devel %{_datadir}/gir-1.0/Fwupd-2.0.gir -%{_datadir}/gtk-doc/html/libfwupd +%{_datadir}/gir-1.0/FwupdPlugin-1.0.gir +%{_datadir}/gtk-doc/html/fwupd %{_datadir}/vala/vapi %{_includedir}/fwupd-1 +%{_includedir}/libjcat-1 %{_libdir}/libfwupd*.so +%{_libdir}/libjcat.so %{_libdir}/pkgconfig/fwupd.pc +%{_libdir}/pkgconfig/fwupdplugin.pc +%{_libdir}/pkgconfig/jcat.pc %files tests +%if 0%{?enable_tests} %dir %{_datadir}/installed-tests/fwupd -%{_datadir}/installed-tests/fwupd/firmware-example.xml.gz -%{_datadir}/installed-tests/fwupd/firmware-example.xml.gz.asc +%{_datadir}/installed-tests/fwupd/fwupd-tests.xml %{_datadir}/installed-tests/fwupd/*.test %{_datadir}/installed-tests/fwupd/*.cab %{_datadir}/installed-tests/fwupd/*.sh -%{_datadir}/installed-tests/fwupd/*.py* +%dir %{_sysconfdir}/fwupd/remotes.d +%config(noreplace)%{_sysconfdir}/fwupd/remotes.d/fwupd-tests.conf +%endif %changelog +* Mon Apr 27 2020 Richard Hughes 1.4.1-1 +- New upstream release +- Resolves: #1775277 + * Wed Feb 19 2020 Richard Hughes 1.1.4-6 - Rebuild to get the EFI executable signed with the Red Hat key - Resolves: #1713033