Can't set LC_TIME in Slint installer if based on the initrd of Slackware-current (glibc-2.30)
by Didier Spaier from LinuxQuestions.org on (#4SW2B)
Background: the initrd in Slint installer in based on Slackware's initrd, with modifications mostly aimed at internationalize it and make it speak. Until now, I modified an initrd for Slackware version 14.2 to build Slint's installer.
I have tested modifying an initrd for Slackware current instead (the one provided on Fri Oct 11 21:23:09 UTC 2019, associated with kernel version 4.19.79). Everything worked, but nothing was translated (starting the installer in French). This is because my locale (fr_FR.utf8) didn't work. This specific setting in bash:
LC_TIME=en_US.utf8 give this error message:
sh: warning: setlocale: LC_TIME: cannot change locale (en_US.utf8)
All other locale settings work, unfortunately this prevents localization as gettext fails to translate. Running it through strace shows that it doesn't succeed using the file /usr/lib64/locale/fr_FR.utf8/LC_TIME although it be present, then try the usual fallback locations, that indeed fail.
To confirm my assumption that glibc was guilty, I have rebuilt a Slackware initrd with the same source files, just extracting the libs from glibc-solibs 2.23 instead of glibc-solibs 2.30 (only the path to this package being modified in build_installer.sh).I then rebuilt the Slint installer. Of course some programs complained not to find expected glibc versions, but the localization worked.
So my question is: which changes between glibc-solibs 2.23 and 2.30 could have caused this issue with LC_TIME?


I have tested modifying an initrd for Slackware current instead (the one provided on Fri Oct 11 21:23:09 UTC 2019, associated with kernel version 4.19.79). Everything worked, but nothing was translated (starting the installer in French). This is because my locale (fr_FR.utf8) didn't work. This specific setting in bash:
LC_TIME=en_US.utf8 give this error message:
sh: warning: setlocale: LC_TIME: cannot change locale (en_US.utf8)
All other locale settings work, unfortunately this prevents localization as gettext fails to translate. Running it through strace shows that it doesn't succeed using the file /usr/lib64/locale/fr_FR.utf8/LC_TIME although it be present, then try the usual fallback locations, that indeed fail.
To confirm my assumption that glibc was guilty, I have rebuilt a Slackware initrd with the same source files, just extracting the libs from glibc-solibs 2.23 instead of glibc-solibs 2.30 (only the path to this package being modified in build_installer.sh).I then rebuilt the Slint installer. Of course some programs complained not to find expected glibc versions, but the localization worked.
So my question is: which changes between glibc-solibs 2.23 and 2.30 could have caused this issue with LC_TIME?