commit:     d69213cd70673f5fb9460ef89215fe04f8b31653
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Jul  9 22:41:33 2023 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Jul  9 22:41:33 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d69213cd

sys-boot/grub: backport locale fixes

Closes: https://bugs.gentoo.org/910170
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 sys-boot/grub/files/grub-2.06-locale.patch         | 68 ++++++++++++++++++++++
 .../{grub-2.06-r6.ebuild => grub-2.06-r7.ebuild}   |  1 +
 2 files changed, 69 insertions(+)

diff --git a/sys-boot/grub/files/grub-2.06-locale.patch 
b/sys-boot/grub/files/grub-2.06-locale.patch
new file mode 100644
index 000000000000..14706cbca3a2
--- /dev/null
+++ b/sys-boot/grub/files/grub-2.06-locale.patch
@@ -0,0 +1,68 @@
+From 5983c2c6adf1c1bbb3ecd751253d1e898bdfd8a3 Mon Sep 17 00:00:00 2001
+From: Michael Chang <[email protected]>
+Date: Tue, 26 Oct 2021 15:11:00 +0800
+Subject: templates: Filter out POSIX locale for translation
+
+The POSIX locale is default or native operating system's locale
+identical to the C locale, so no translation to human speaking languages
+are provided. For this reason we should filter out LANG=POSIX as well as
+LANG=C upon generating grub.cfg to avoid looking up for it's gettext's
+message catalogs that will consequently result in an unpleasant message:
+
+  error: file `/boot/grub/locale/POSIX.gmo' not found
+
+Signed-off-by: Michael Chang <[email protected]>
+Reviewed-by: Daniel Kiper <[email protected]>
+---
+ util/grub.d/00_header.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in
+index 93a9023..f74c2a4 100644
+--- a/util/grub.d/00_header.in
++++ b/util/grub.d/00_header.in
+@@ -191,7 +191,7 @@ EOF
+ EOF
+ 
+ # Gettext variables and module
+-if [ "x${LANG}" != "xC" ] &&  [ "x${LANG}" != "x" ]; then
++if [ "x${LANG}" != "xC" ] && [ "x${LANG}" != "xPOSIX" ] && [ "x${LANG}" != 
"x" ]; then
+   cat << EOF
+   set locale_dir=\$prefix/locale
+   set lang=${grub_lang}
+-- 
+cgit v1.1
+
+From f42266a8a2a4215e4ffe419b8092bdf9ced33e8e Mon Sep 17 00:00:00 2001
+From: Christian Hesse <[email protected]>
+Date: Mon, 19 Sep 2022 15:31:28 +0200
+Subject: templates: Filter C.UTF-8 locale for translation
+
+In addition to C locale there is also C.UTF-8 locale now. Filter that as
+well, by using ${grub_lang}, which contains a stripped value.
+This fixes the following message and resulting boot failure:
+
+    error: file `/boot/grub/locale/C.gmo' not found.
+
+Signed-off-by: Christian Hesse <[email protected]>
+Reviewed-by: Daniel Kiper <[email protected]>
+---
+ util/grub.d/00_header.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in
+index f74c2a4..6a316a5 100644
+--- a/util/grub.d/00_header.in
++++ b/util/grub.d/00_header.in
+@@ -191,7 +191,7 @@ EOF
+ EOF
+ 
+ # Gettext variables and module
+-if [ "x${LANG}" != "xC" ] && [ "x${LANG}" != "xPOSIX" ] && [ "x${LANG}" != 
"x" ]; then
++if [ "x${grub_lang}" != "xC" ] && [ "x${LANG}" != "xPOSIX" ] && [ "x${LANG}" 
!= "x" ]; then
+   cat << EOF
+   set locale_dir=\$prefix/locale
+   set lang=${grub_lang}
+-- 
+cgit v1.1
+

diff --git a/sys-boot/grub/grub-2.06-r6.ebuild 
b/sys-boot/grub/grub-2.06-r7.ebuild
similarity index 99%
rename from sys-boot/grub/grub-2.06-r6.ebuild
rename to sys-boot/grub/grub-2.06-r7.ebuild
index 707acec900be..15a8221a1c13 100644
--- a/sys-boot/grub/grub-2.06-r6.ebuild
+++ b/sys-boot/grub/grub-2.06-r7.ebuild
@@ -63,6 +63,7 @@ PATCHES=(
        
"${FILESDIR}"/grub-2.06-gentpl.py-Remove-.interp-section-from-.img-files.patch
        "${FILESDIR}"/grub-2.06-fs-ext2-ignore-checksum-seed.patch
        "${FILESDIR}"/grub-2.06-riscv.patch
+       "${FILESDIR}"/grub-2.06-locale.patch
 )
 
 DEJAVU=dejavu-sans-ttf-2.37

Reply via email to