Subject: bug#26238: core-updates: Fix time zone bug in `date` 8.26

From: Marius Bakke <[email-masked]>
Date: Wed, 19 Apr 2017 18:49:04 +0200

Ludovic Courtès <[email-masked]> writes:

> Marius Bakke <[email-masked]> skribis:
>
>> Here is a WIP patch that adds a graft for coreutils 8.27. I stole Leos
>> code for the (gnu packages commencement) part. It builds with
>> `./pre-inst-env guix build coreutils`, but my after reconfiguring my
>> system on it, `date --version` still shows 8.26.
>>
>> Any idea what's wrong?
>
> Bah!  The system uses ‘coreutils-final’ due to this stanza in (gnu
> system):
>
>      ;; The packages below are also in %FINAL-INPUTS, so take them from
>      ;; there to avoid duplication.
>      (map canonical-package
>           (list guile-2.0 bash coreutils findutils grep sed
>                 diffutils patch gawk tar gzip bzip2 xz lzip))
>
> Not sure how to handle it.  We could explicitly write ‘coreutils-8.27’
> above, which would solve the problem.  It would also make the graft much
> less useful, except for people explicitly doing:
>
>   guix package -i coreutils
>
> So we might just as well remove the graft.

Okay, that makes sense. I dropped the graft in the patch below and can
confirm it works on my system. Note that coreutils-8.27 is now public so
that `guix package -i coreutils` will pull in 8.27 regardless. PTAL.

From 5be25413a76ca84c18e4f4174629af5fe6e87db1 Mon Sep 17 00:00:00 2001
From: Marius Bakke <[email-masked]>
Date: Tue, 18 Apr 2017 20:13:45 +0200
Subject: [PATCH] gnu: Add workaround for `date` regression in [email-masked].

See <https://bugs.gnu.org/23035> and <https://bugs.gnu.org/26238>.

* gnu/packages/base.scm (coreutils-8.27): New variable.
* gnu/system.scm (%base-packages): Use that instead of COREUTILS.
---
 gnu/packages/base.scm | 16 ++++++++++++++++
 gnu/system.scm        |  2 +-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 5c36b612f..a95ca2888 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -361,6 +361,22 @@ functionality beyond that which is outlined in the POSIX standard.")
    (license gpl3+)
    (home-page "https://www.gnu.org/software/coreutils/")))
 
+;; We add version 8.27 here for use in (gnu system) due to a time
+;; zone bug in `date' versions 8.25 - 8.26.
+;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=23035
+;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26238
+(define-public coreutils-8.27
+  (package
+    (inherit coreutils)
+    (version "8.27")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnu/coreutils/coreutils-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "0sv547572iq8ayy8klir4hnngnx92a9nsazmf1wgzfc7xr4x74c8"))))))
+
 (define-public coreutils-minimal
   ;; Coreutils without its optional dependencies.
   (package
diff --git a/gnu/system.scm b/gnu/system.scm
index 89c4150f9..f6ab7ded8 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -385,7 +385,7 @@ explicitly appear in OS."
          ;; The packages below are also in %FINAL-INPUTS, so take them from
          ;; there to avoid duplication.
          (map canonical-package
-              (list guile-2.0 bash coreutils findutils grep sed
+              (list guile-2.0 bash coreutils-8.27 findutils grep sed
                     diffutils patch gawk tar gzip bzip2 xz lzip))))
 
 (define %default-issue
-- 
2.12.2