Page MenuHomePhabricator

icu warning links to unhelpful page
Open, Needs TriagePublic

Description

When going through the web configuration setup on 1.27.0 I get this warning with webtatic's php 7.0 on centos 6.x:

Using the intl PECL extension for Unicode normalization.
Warning: The installed version of the Unicode normalization wrapper uses an older version of the ICU project's library.
You should upgrade if you are at all concerned about using Unicode.

The upgrade links to Unicode_normalization_considerations documentation which does not mention ICU at all. I expected it to provide information on how to upgrade my ICU library on debian/redhat.

The talk page has 3 users mentioning they expected this behaviour as well, dating back to 28 July 2013.

I would add the information if I knew how to go about the upgrade, but as of yet I haven't figured it out.

Event Timeline

It requires your php-intl package being rebuilt against a newer version of libicu

e.g on ubuntu http://packages.ubuntu.com/xenial/php7.0-intl targets http://packages.ubuntu.com/xenial/libicu55

	/**
	 * Check the libicu version
	 */
	protected function envCheckLibicu() {
		/**
		 * This needs to be updated something that the latest libicu
		 * will properly normalize.  This normalization was found at
		 * http://www.unicode.org/versions/Unicode5.2.0/#Character_Additions
		 * Note that we use the hex representation to create the code
		 * points in order to avoid any Unicode-destroying during transit.
		 */
		$not_normal_c = $this->unicodeChar( "FA6C" );
		$normal_c = $this->unicodeChar( "242EE" );

		$useNormalizer = 'php';
		$needsUpdate = false;

		if ( function_exists( 'normalizer_normalize' ) ) {
			$useNormalizer = 'intl';
			$intl = normalizer_normalize( $not_normal_c, Normalizer::FORM_C );
			if ( $intl !== $normal_c ) {
				$needsUpdate = true;
			}
		}

		// Uses messages 'config-unicode-using-php' and 'config-unicode-using-intl'
		if ( $useNormalizer === 'php' ) {
			$this->showMessage( 'config-unicode-pure-php-warning' );
		} else {
			$this->showMessage( 'config-unicode-using-' . $useNormalizer );
			if ( $needsUpdate ) {
				$this->showMessage( 'config-unicode-update-warning' );
			}
		}
	}

"config-unicode-update-warning": "<strong>Warning:</strong> The installed version of the Unicode normalization wrapper uses an older version of [http://site.icu-project.org/ the ICU project's] library.\nYou should [https://www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations upgrade] if you are at all concerned about using Unicode.",