public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Kerin Millar" <kfm@plushkava.net>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/locale-gen:master commit in: /
Date: Thu, 18 Sep 2025 23:04:16 +0000 (UTC)	[thread overview]
Message-ID: <1758236607.cf37b8be253e4e4a3f78976ecac4056439933761.kfm@gentoo> (raw)

commit:     cf37b8be253e4e4a3f78976ecac4056439933761
Author:     Kerin Millar <kfm <AT> plushkava <DOT> net>
AuthorDate: Thu Sep 18 22:39:36 2025 +0000
Commit:     Kerin Millar <kfm <AT> plushkava <DOT> net>
CommitDate: Thu Sep 18 23:03:27 2025 +0000
URL:        https://gitweb.gentoo.org/proj/locale-gen.git/commit/?id=cf37b8be

Tolerate a codeset/charmap of "UTF8" (for now)

It has been observed that some Gentoo installations have locale.gen(5)
files containing "C.UTF8 UTF-8" as an entry. Further, up until recently,
the catalyst tool would populate /etc/locale.gen in that way. Though
glibc tolerates "UTF8" as a codeset, locale-gen(8) does not, because no
file by that name resides in the /usr/share/i18n/charmaps directory.

For now, have the parse_config() subroutine handle "UTF8" as a special
case for both the locale and charmap fields. Where "UTF8" is seen, it
shall now be taken as "UTF-8", with a rather ostentatious warning being
issued. The intention is to ease the transition to >=locale-gen-3 in
advance of stable-keywording, while encouraging users to amend their
config files before eventually dropping support for this edge case.

Bug: https://bugs.gentoo.org/963046
Link: https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=99af83b914
Signed-off-by: Kerin Millar <kfm <AT> plushkava.net>

 locale-gen | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/locale-gen b/locale-gen
index c18858f..0299f14 100644
--- a/locale-gen
+++ b/locale-gen
@@ -13,6 +13,7 @@ use File::Spec::Functions qw(canonpath catfile catdir path splitpath);
 use File::Temp qw(tempdir);
 use Getopt::Long ();
 use List::Util qw(any);
+use Term::ANSIColor qw(colored);
 
 # Formally stable as of v5.40; sufficiently functional in both v5.36 and v5.38.
 use experimental qw(try);
@@ -360,6 +361,31 @@ sub parse_config ($fh, $path, $locale_by, $charmap_by) {
 			$thrower->('Malformed locale declaration', $line);
 		}
 
+		# Handle "UTF8" as a special case. Though glibc tolerates it,
+		# locale-gen would otherwise not because there is no charmap
+		# file by that name. The intention is to encourage users to
+		# amend their config files before eventually dropping support
+		# for "UTF8" altogether.
+		my @warnings;
+		if ($fields[0] =~ s/\.UTF\K8(?=@|\z)/-8/) {
+			push @warnings,
+				sprintf "WARNING! Codeset specified as UTF8 (should be UTF-8) at %s[%d]: %s",
+					$path, $., render_printable($line);
+		}
+		if ($fields[1] =~ s/^UTF8\z/UTF-8/) {
+			push @warnings,
+				sprintf "WARNING! Charmap specified as UTF8 (should be UTF-8) at %s[%d]: %s",
+					$path, $., render_printable($line);
+		}
+		for my $warning (@warnings) {
+			if (-t 2) {
+				*STDOUT->flush;
+				warn colored($warning, 'bold yellow') . "\n";
+			} else {
+				warn "$warning\n";
+			}
+		}
+
 		# Extract the specified locale and character map. Upon success,
 		# a canonicalised representation of the locale is also returned.
 		my ($locale, $codeset, $charmap, $canonical) = parse_entry(@fields);


             reply	other threads:[~2025-09-18 23:04 UTC|newest]

Thread overview: 148+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-18 23:04 Kerin Millar [this message]
  -- strict thread matches above, loose matches on Subject: below --
2025-09-18 23:06 [gentoo-commits] proj/locale-gen:master commit in: / Kerin Millar
2025-09-18 23:04 Kerin Millar
2025-09-15  5:08 Kerin Millar
2025-09-15  4:07 Kerin Millar
2025-09-15  4:07 Kerin Millar
2025-09-15  4:07 Kerin Millar
2025-09-14  4:24 Kerin Millar
2025-09-14  4:20 Kerin Millar
2025-09-13 23:53 Kerin Millar
2025-09-13 23:51 Kerin Millar
2025-09-13 23:51 Kerin Millar
2025-09-13 23:23 Kerin Millar
2025-09-13 23:23 Kerin Millar
2025-09-13  9:42 Kerin Millar
2025-09-13  9:35 Kerin Millar
2025-09-13  9:27 Kerin Millar
2025-09-13  8:46 Kerin Millar
2025-09-13  8:42 Kerin Millar
2025-09-13  1:23 Kerin Millar
2025-09-13  1:14 Kerin Millar
2025-09-12 16:59 Kerin Millar
2025-09-12 16:59 Kerin Millar
2025-09-12 16:59 Kerin Millar
2025-09-12 16:59 Kerin Millar
2025-09-12 16:59 Kerin Millar
2025-09-12 16:59 Kerin Millar
2025-08-22 23:42 Kerin Millar
2025-08-22 23:12 Kerin Millar
2025-08-22 23:12 Kerin Millar
2025-08-22 23:12 Kerin Millar
2025-08-22 23:12 Kerin Millar
2025-08-22 23:12 Kerin Millar
2025-08-22 23:12 Kerin Millar
2025-08-22 23:12 Kerin Millar
2025-08-22 23:12 Kerin Millar
2025-08-22 23:12 Kerin Millar
2025-08-22 23:12 Kerin Millar
2025-08-22 23:12 Kerin Millar
2025-08-22 23:12 Kerin Millar
2025-08-22 23:12 Kerin Millar
2025-08-20  2:39 Kerin Millar
2025-08-20  2:39 Kerin Millar
2025-08-19 13:37 Kerin Millar
2025-08-19 13:19 Kerin Millar
2025-08-18  2:46 Kerin Millar
2025-08-18  1:18 Kerin Millar
2025-08-18  1:18 Kerin Millar
2025-08-17  2:01 Kerin Millar
2025-08-16 23:17 Kerin Millar
2025-08-16 23:17 Kerin Millar
2025-08-16  3:46 Kerin Millar
2025-08-15 22:29 Kerin Millar
2025-08-15 22:29 Kerin Millar
2025-08-15 22:18 Kerin Millar
2025-08-15  5:35 Kerin Millar
2025-08-15  4:07 Kerin Millar
2025-08-15  3:57 Kerin Millar
2025-08-13 23:49 Kerin Millar
2025-08-13 22:53 Kerin Millar
2025-08-13 22:45 Kerin Millar
2025-08-13 21:42 Kerin Millar
2025-08-13 21:42 Kerin Millar
2025-08-13 21:42 Kerin Millar
2025-08-13 21:42 Kerin Millar
2025-08-13 21:42 Kerin Millar
2025-08-13 21:42 Kerin Millar
2025-08-13 10:09 Kerin Millar
2025-08-13 10:09 Kerin Millar
2025-08-12 17:32 Kerin Millar
2025-08-12  5:06 Kerin Millar
2025-08-12  5:06 Kerin Millar
2025-08-11 22:43 Kerin Millar
2025-08-11 16:04 Kerin Millar
2025-08-11 16:04 Kerin Millar
2025-08-11  0:39 Kerin Millar
2025-08-10 22:53 Kerin Millar
2025-08-10 22:22 Kerin Millar
2025-08-10 22:22 Kerin Millar
2025-08-10 17:05 Kerin Millar
2025-08-10  8:15 Kerin Millar
2025-08-10  1:22 Kerin Millar
2025-08-09 20:18 Kerin Millar
2025-08-09 19:42 Kerin Millar
2025-08-09 19:42 Kerin Millar
2025-08-09 19:42 Kerin Millar
2025-08-08 17:44 Kerin Millar
2025-08-08 17:44 Kerin Millar
2025-08-08 17:44 Kerin Millar
2025-08-08 17:44 Kerin Millar
2025-08-07 23:20 Kerin Millar
2025-08-07 23:20 Kerin Millar
2025-08-07 22:59 Kerin Millar
2025-08-07 22:59 Kerin Millar
2025-08-07 22:59 Kerin Millar
2025-08-07 22:59 Kerin Millar
2025-08-07 22:59 Kerin Millar
2025-08-07 19:43 Kerin Millar
2025-08-07 19:41 Kerin Millar
2025-08-07 19:41 Kerin Millar
2025-08-07 16:35 Kerin Millar
2025-08-07 16:20 Kerin Millar
2025-08-07 16:20 Kerin Millar
2025-08-07 16:20 Kerin Millar
2025-08-07 16:20 Kerin Millar
2025-08-07 16:20 Kerin Millar
2025-08-07 16:20 Kerin Millar
2025-08-06 17:02 Kerin Millar
2025-08-06  7:44 Kerin Millar
2025-08-06  6:48 Kerin Millar
2025-08-05 23:00 Kerin Millar
2025-08-05 21:53 Kerin Millar
2025-08-05 21:53 Kerin Millar
2025-08-05 21:53 Kerin Millar
2025-08-05 10:55 Kerin Millar
2025-08-05 10:32 Kerin Millar
2025-08-05 10:29 Kerin Millar
2025-08-05 10:29 Kerin Millar
2025-08-04 16:02 Kerin Millar
2025-08-04 12:13 Kerin Millar
2025-08-04 12:13 Kerin Millar
2025-08-04 11:56 Kerin Millar
2025-08-04 11:25 Kerin Millar
2025-08-04 11:19 Sam James
2025-07-01 21:02 Andreas K. Hüttel
2023-05-11 22:23 Andreas K. Hüttel
2023-03-21 17:37 Andreas K. Hüttel
2021-09-27  6:49 Mike Frysinger
2021-09-27  6:49 Mike Frysinger
2021-09-27  6:49 Mike Frysinger
2021-09-27  6:49 Mike Frysinger
2021-09-27  6:49 Mike Frysinger
2021-09-27  6:49 Mike Frysinger
2021-09-27  5:46 Mike Frysinger
2021-08-06 21:09 Andreas K. Hüttel
2021-03-12 16:28 Mike Frysinger
2020-07-27 15:38 Andreas K. Hüttel
2020-07-27 10:36 Andreas K. Hüttel
2020-07-26 17:37 Andreas K. Hüttel
2020-07-26 17:37 Andreas K. Hüttel
2020-07-15  1:56 Andreas K. Hüttel
2020-07-15  1:56 Andreas K. Hüttel
2020-05-12  4:23 Andreas K. Hüttel
2020-05-12  4:23 Andreas K. Hüttel
2020-05-12  4:23 Andreas K. Hüttel
2020-05-12  4:23 Andreas K. Hüttel
2020-05-12  4:23 Andreas K. Hüttel
2020-05-12  4:23 Andreas K. Hüttel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1758236607.cf37b8be253e4e4a3f78976ecac4056439933761.kfm@gentoo \
    --to=kfm@plushkava.net \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox