Package: locales Version: 2.24-5 Severity: normal Tags: patch Dear Maintainer,
Although this is being reported against 2.24-5, I have only confirmed that that version is affected by inspecting the contents of its deb file and confirming that the problem is still present in it. I actually run Ubuntu 16.04.1, and the version I have is 2.23-0ubuntu3. But I believe that the details on #663203 as well as the current contents of http://ftp.au.debian.org/debian/pool/main/g/glibc/locales_2.24-5_all.deb mean that this is a Debian bug, not an Ubuntu one. I have Cc'd the Ubuntu package maintainer list anyway, just in case. The fix for #663203 changes the date_fmt string for the en_AU locate from the upstream default of: $ locale date_fmt %a %b %e %H:%M:%S %Z %Y $ date Mon Oct 24 16:32:39 AEDT 2016 to instead be: $ locale date_fmt %A %-e %B %H:%M:%S %Z %Y $ date Monday 24 October 16:32:39 AEDT 2016 This change has introduced several problems beyond the intended fix for the original problem: * Full date-of-week and month names are used, rather than the abbreviations which are more canonically used in date_fmt strings, eg. in the other major English-speaking locales such as en_US and en_GB, as well as in the previous (and upstream) en_AU date_fmt. * Single digit day-of-the-month are not padded with a space, which leads to alignment problems. * There is an extra space between the name of the month and the hour, which looks weird. From the look of the patch, this appears to be an accident. The value of d_t_fmt (used by strftime %c, and unchanged by #663203's patch) is: $ locale d_t_fmt %a %d %b %Y %T %Z $ date +%c Mon 24 Oct 2016 16:32:48 AEDT By contrast, the other main English-speaking locales put the day of the month after the name of the month for d_t_fmt: $ LANG=en_US.UTF8 date +%c Mon 24 Oct 2016 04:32:48 PM AEDT $ LANG=en_GB.UTF8 date +%c Mon 24 Oct 2016 16:32:48 AEDT Those locales also have date_fmt which is consistent with d_t_fmt (ie. identical apart from the inclusion of the timezone and the use of %d instead of %e): $ LANG=en_US.UTF8 date Mon Oct 24 16:32:48 AEDT 2016 $ LANG=en_GB.UTF8 date Mon 24 Oct 16:32:48 AEDT 2016 Based on all of this, I suggest that the intention of #663203 was to make date_fmt be more consistent with d_t_fmt, and more similar to en_GB (since Australia and Great Britain share the DD/MM/YYYY approach to dates), in terms of putting the day of the month ahead of the (abbreviated) month name, ie. that the %b and %e should simply be swapped, and that it was not about issues related to abbreviated vs full day/month names, padding on fields, or whitespace. Therefore, I believe that it would be more approprate for patches/localedata/submitted-en_AU-date_fmt.diff to have the following contents instead: --- a/localedata/locales/en_AU +++ b/localedata/locales/en_AU @@ -114,7 +114,7 @@ am_pm "<U0041><U004D>";"<U0050><U004D>" t_fmt_ampm "<U0025><U0049><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/ <U0025><U0070>" -date_fmt "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/ +date_fmt "<U0025><U0061><U0020><U0025><U0065><U0020><U0025><U0062>/ <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/ <U0025><U005A><U0020><U0025><U0059>" % FIXME: found in CLDR Thanks, Kev -- System Information: Debian Release: stretch/sid APT prefers xenial-updates APT policy: (500, 'xenial-updates'), (500, 'xenial-security'), (500, 'xenial'), (100, 'xenial-backports') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.4.0-42-generic (SMP w/4 CPU cores) Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages locales depends on: ii debconf [debconf-2.0] 1.5.58ubuntu1 ii libc-bin 2.23-0ubuntu3 locales recommends no packages. locales suggests no packages. -- debconf information: locales/locales_to_be_generated: locales/default_environment_locale: None