Subject: bug#67044: C.utf8 locale cannot be built

From: Tomas Volf <[email-masked]>
Date: Fri, 10 Nov 2023 15:42:59 +0100

Hi,

when trying to build a system with C.utf8 locale, I end up with the following
error:

    building /gnu/store/v6jma6kmwywr509n4y0vypchnh4y5s3m-locale-2.35.drv...
    building locale 'C.utf8'...
    [error] LC_MONETARY: value for field `mon_decimal_point' must not be an empty string
    [error] no output file produced because errors were issued
    Backtrace:
               2 (primitive-load "/gnu/store/ccv2qfrqxk166ysg6anrzj1kz4h?")
    In ice-9/boot-9.scm:
       285:13  1 (for-each #<procedure 7fffeef5c540 at ice-9/eval.scm:3?> ?)
    In guix/build/utils.scm:
        812:6  0 (invoke "localedef" "--no-archive" "--prefix" "/gnu/st?" ?)
    
    guix/build/utils.scm:812:6: In procedure invoke:
    ERROR:
      1. &invoke-error:
          program: "localedef"
          arguments: ("--no-archive" "--prefix" "/gnu/store/08rlginv27b9v1ba4n94plp7lmxjihja-locale-2.35/2.35" "-i" "C" "-f" "UTF-8" "/gnu/store/08rlginv27b9v1ba4n94plp7lmxjihja-locale-2.35/2.35/C.utf8")
          exit-status: 4
          term-signal: #f
          stop-signal: #f
    builder for `/gnu/store/v6jma6kmwywr509n4y0vypchnh4y5s3m-locale-2.35.drv' failed with exit code 1
    build of /gnu/store/v6jma6kmwywr509n4y0vypchnh4y5s3m-locale-2.35.drv failed
    View build log at '/var/log/guix/drvs/v6/jma6kmwywr509n4y0vypchnh4y5s3m-locale-2.35.drv.gz'.
    cannot build derivation `/gnu/store/g47g7zqs5la6qpfmn6q1zgbhp291l1ha-system.drv': 1 dependencies couldn't be built
    guix system: error: build of `/gnu/store/g47g7zqs5la6qpfmn6q1zgbhp291l1ha-system.drv' failed

This seems to be a known problem in 2.35,
https://sourceware.org/bugzilla/show_bug.cgi?id=28861 .  On the page there is
also a workaround, and that is to compile with the locales with -c.

So that would be one solution until we update to 2.36 or higher.  I do not see a
way to override this (add the -c) from the operating-system definition.

Tomas Volf

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.