From 0a4d431e1150e367db35f5d925b4cd9484754747 Mon Sep 17 00:00:00 2001 From: Gary Pendergast Date: Wed, 27 Mar 2019 23:05:54 +0000 Subject: [PATCH] Upgrades: Allow upgrades to proceed when a soft failure occurs on package signatures. In particular, this allows downgrading from WordPress 5.2 to 5.1.1, if sites wish to opt out of the beta. Props dd32. See #46615. Built from https://develop.svn.wordpress.org/trunk@45046 git-svn-id: http://core.svn.wordpress.org/trunk@44855 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/includes/class-core-upgrader.php | 19 +++++++++++++++++++ wp-includes/version.php | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/wp-admin/includes/class-core-upgrader.php b/wp-admin/includes/class-core-upgrader.php index 58daba77ea..bef173c23b 100644 --- a/wp-admin/includes/class-core-upgrader.php +++ b/wp-admin/includes/class-core-upgrader.php @@ -122,6 +122,25 @@ class Core_Upgrader extends WP_Upgrader { } $download = $this->download_package( $current->packages->$to_download ); + + // Allow for signature soft-fail. + // WARNING: This may be removed in the future. + if ( is_wp_error( $download ) && $download->get_error_data( 'softfail-filename' ) ) { + // Outout the failure error as a normal feedback, and not as an error: + apply_filters( 'update_feedback', $download->get_error_message() ); + + // Report this failure back to WordPress.org for debugging purposes. + wp_version_check( + array( + 'signature_failure_code' => $download->get_error_code(), + 'signature_failure_data' => $download->get_error_data(), + ) + ); + + // Pretend this error didn't happen. + $download = $download->get_error_data( 'softfail-filename' ); + } + if ( is_wp_error( $download ) ) { WP_Upgrader::release_lock( 'core_updater' ); return $download; diff --git a/wp-includes/version.php b/wp-includes/version.php index 20ea471ff7..d2daa4809b 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -13,7 +13,7 @@ * * @global string $wp_version */ -$wp_version = '5.2-alpha-45045'; +$wp_version = '5.2-alpha-45046'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.