aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/perl/perl/debian/squelch-locale-warnings.diff
blob: cf212e36af7892f5d054c99f640278b8ce961824 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
From dd00a91a2b83a988d3986c0adc3e094c441d909b Mon Sep 17 00:00:00 2001
From: Niko Tyni <ntyni@debian.org>
Date: Sun, 3 Oct 2010 21:36:17 +0300
Subject: [PATCH] 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.

Patch-Name: debian/squelch-locale-warnings.diff

---
 locale.c           | 5 ++++-
 pod/perllocale.pod | 8 ++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/locale.c b/locale.c
index 258542a..1aeba7b 100644
--- a/locale.c
+++ b/locale.c
@@ -942,7 +942,10 @@ Perl_init_i18nl10n(pTHX_ int printwarn)
 
     const bool locwarn = (printwarn > 1
                           || (printwarn
-                              && (! bad_lang_use_once
+                              &&
+                                 /* Debian specific change - see http://bugs.debian.org/508764 */
+                                 (!PerlEnv_getenv("DPKG_RUNNING_VERSION")) &&
+                                 (! bad_lang_use_once
                                   || (
                                     /* disallow with "" or "0" */
                                     *bad_lang_use_once
diff --git a/pod/perllocale.pod b/pod/perllocale.pod
index 44da58f..011a506 100644
--- a/pod/perllocale.pod
+++ b/pod/perllocale.pod
@@ -1236,6 +1236,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,
 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
 
 The following environment variables are not specific to Perl: They are