Squelch locale warnings in Debian package maintainer scripts

Bug-Debian: http://bugs.debian.org/508764

The system locales are rather frequently out of sync with the C library
during package upgrades, causing a huge amount of useless Perl locale
warnings. Squelch them when running package maintainer scripts, detected
by the DPKG_RUNNING_VERSION environment variable.

Any real locale problem will show up after the system upgrade too, and
the warning will be triggered normally again at that point.

Gbp-Pq: Topic debian
Gbp-Pq: Name squelch-locale-warnings.diff
This commit is contained in:
Niko Tyni 2010-10-03 21:36:17 +03:00 committed by openKylinBot
parent 74980b5352
commit 60779b8cb6
2 changed files with 11 additions and 0 deletions

View File

@ -3247,6 +3247,9 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
const bool locwarn = (printwarn > 1 const bool locwarn = (printwarn > 1
|| ( printwarn || ( printwarn
&&
/* Debian specific change - see http://bugs.debian.org/508764 */
( ! PerlEnv_getenv("DPKG_RUNNING_VERSION"))
&& ( ! bad_lang_use_once && ( ! bad_lang_use_once
|| ( || (
/* disallow with "" or "0" */ /* disallow with "" or "0" */

View File

@ -1297,6 +1297,14 @@ B<NOTE>: C<PERL_BADLANG> only gives you a way to hide the warning message.
The message tells about some problem in your system's locale support, The message tells about some problem in your system's locale support,
and you should investigate what the problem is. and you should investigate what the problem is.
=item DPKG_RUNNING_VERSION
On Debian systems, if the DPKG_RUNNING_VERSION environment variable is
set (to any value), the locale failure warnings will be suppressed just
like with a zero PERL_BADLANG setting. This is done to avoid floods
of spurious warnings during system upgrades.
See L<http://bugs.debian.org/508764>.
=back =back
The following environment variables are not specific to Perl: They are The following environment variables are not specific to Perl: They are