aboutsummaryrefslogtreecommitdiff
path: root/etc/time-travel-manifest.scm
blob: 80c4c7c3463d4366b0c158e3b0676ffaa39902a6 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.

;;; This file returns a manifest containing entries to build past Guix
;;; releases from the current Guix, as per 'guix time-machine'.

(use-modules (srfi srfi-9) (ice-9 match)
             (guix channels) (guix gexp)
             ((guix store) #:select (%store-monad))
             ((guix monads) #:select (mparameterize return))
             ((guix git) #:select (%repository-cache-directory))
             ((guix build utils) #:select (mkdir-p)))

;; Representation of the latest channels.  This type exists just so we can
;; refer to such records in a gexp.
(define-record-type <guix-instance>
  (guix-instance channels)
  guix-instance?
  (channels guix-instance-channels))

(define-gexp-compiler (guix-instance-compiler (instance <guix-instance>)
                                              system target)
  (match instance
    (($ <guix-instance> channels)
     ;; When this manifest is evaluated by Cuirass, make sure it does not
     ;; fiddle with the cached checkout that Cuirass is also using since
     ;; concurrent accesses are unsafe.
     (mparameterize %store-monad ((%repository-cache-directory
                                   (string-append (%repository-cache-directory)
                                                  "/time-travel/" system)))
       (return (mkdir-p (%repository-cache-directory)))
       (latest-channel-derivation channels)))))

(define (guix-instance->manifest-entry instance)
  "Return a manifest entry for INSTANCE."
  (define (shorten commit)
    (string-take commit 7))

  (manifest-entry
    (name "guix")
    (version (string-join (map (compose shorten channel-commit)
                               (guix-instance-channels instance))
                          "-"))
    (item instance)))

(define (commit->guix-instance commit)
  "Return a Guix instance for COMMIT."
  (guix-instance (list (channel
                        (inherit %default-guix-channel)
                        (commit commit)))))

(define %release-commits
  ;; Release commits: the list of version/commit pairs.
  '(("1.4.0" . "8e2f32cee982d42a79e53fc1e9aa7b8ff0514714")
    ("1.3.0" . "a0178d34f582b50e9bdbb0403943129ae5b560ff")

    ;; FIXME: To merely compute the derivation of these revisions, we need to
    ;; be able to build their dependencies.  However, pre-built binaries are
    ;; currently missing and some of these no longer build from source due to
    ;; time bombs like <https://issues.guix.gnu.org/58650>.  Thus, comment
    ;; them output until we have substitutes for these old things.

    ;; ("1.2.0" . "a099685659b4bfa6b3218f84953cbb7ff9e88063")
    ;; ("1.1.0" . "d62c9b2671be55ae0305bebfda17b595f33797f2")
    ;; ("1.0.1" . "d68de958b60426798ed62797ff7c96c327a672ac")
    ;; ("1.0.0" . "6298c3ffd9654d3231a6f25390b056483e8f407c")
    ;; ("0.16.0" . "4a0b87f0ec5b6c2dcf82b372dd20ca7ea6acdd9c")
    ))

(manifest
 (map (match-lambda
        ((version . commit)
         (let ((entry (guix-instance->manifest-entry
                       (commit->guix-instance commit))))
           (manifest-entry
             (inherit entry)
             (version version)))))
      %release-commits))
ulib-tests.patch. Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Thiago Jung Bauermann 2021-11-11gnu: diffutils: Fix signal processing....diffutils has a race condition in its signal processing code which is easy to trigger on powerpc64le-linux. More often than not, it causes the ‘colors’ test to fail and therefore the build of the package fails as well. Add the patch proposed in Debian bug 922552 which fixes the problem. * gnu/packages/patches/diffutils-fix-signal-processing.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/base.scm (diffutils)[source]: Use it. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Thiago Jung Bauermann 2021-11-11gnu: tzdata: Update to 2021e....* gnu/packages/base.scm (tzdata, tzdata-for-tests): Update to 2021e. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Leo Famulari 2021-11-11gnu: glibc: Look for the current timezone in /etc/localtime....Fixes <https://issues.guix.gnu.org/50830>. Reported by podiki on #guix. Previously, glibc 2.33 would look for /gnu/store/...-glibc-2.33/etc/localtime instead of /etc/localtime. * gnu/packages/base.scm (glibc)[arguments]: Remove #:make-flags. [phases]: In 'pre-configure', modify 'inet/Makefile' instead of 'sunrpc/Makefile' since this is where these bits are in 2.33. (glibc-2.31)[arguments]: Add 'set-etc-rpc-installation-directory' phase. (glibc-2.30): Inherit from GLIBC-2.31. * gnu/tests/base.scm (run-basic-test)["libc honors /etc/localtime"]: New test. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Ludovic Courtès 2021-11-11gnu: glibc: Remove unneeded nscd patching....This change had no effect already in glibc 2.29, which has proper versioning. * gnu/packages/base.scm (glibc)[arguments]: Remove obsolete 'nscd/nscd_stat.c' 'substitute*' statement. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Ludovic Courtès 2021-09-14gnu: make-4.2: Fix build....* gnu/packages/base.scm (gnu-make-4.2)[arguments]: Add "-D__stat=stat" to 'configure-flags'. Guillaume Le Vaillant 2021-09-08gnu: glibc@2.29: Fix build error....* gnu/packages/base.scm (glibc-2.29): Inherit from GLIBC-2.30. [sources]: Use "glibc-skip-c++.patch". Ludovic Courtès 2021-09-08gnu: glibc@2.30: Fix build error....* gnu/packages/base.scm (glibc-2.30)[native-inputs]: New field. [source]: Use "glibc-skip-c++.patch". Ludovic Courtès 2021-09-08gnu: glibc@2.31: Fix build error....* gnu/packages/patches/glibc-skip-c++.patch: New file. * gnu/packages/base.scm (glibc-2.31)[source]: Use it. * gnu/local.mk (dist_patch_DATA): Add it. Ludovic Courtès 2021-09-08gnu: binutils: Fix file decriptor leak....* gnu/packages/patches/binutils-2.37-file-descriptor-leak.patch: New file. * gnu/packages/local.mk (dist_patch_DATA): Add it. * gnu/packages/base.scm (binutils)[source]: Use it. Guillaume Le Vaillant 2021-07-24gnu: glibc: Remove versions 2.27 and 2.28....* gnu/packages/base.scm (glibc-2.28, glibc-2.27): Remove. * gnu/packages/patches/glibc-2.27-git-fixes.patch, gnu/packages/patches/glibc-2.27-supported-locales.patch, gnu/packages/patches/glibc-2.28-git-fixes.patch, gnu/packages/patches/glibc-2.28-supported-locales.patch: Remove. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. Ludovic Courtès 2021-07-24gnu: tzdata: Remove input labels....* gnu/packages/base.scm (tzdata)[arguments]: Turn flags and phases into a gexp. [inputs]: Turn into a plain list. Ludovic Courtès 2021-07-23gnu: binutils: Update to 2.37....* gnu/packages/patches/binutils-loongson-workaround.patch: Adjust for upstream changes. * gnu/packages/patches/binutils-libiberty-endianness-bug.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/base.scm (binutils): Update to 2.37. [source](patches): Remove obsolete patch. Marius Bakke 2021-07-23gnu: coreutils-minimal: Do not build documentation.......and avoid an upcoming circular dependency on Perl. * gnu/packages/base.scm (coreutils-minimal)[native-inputs]: Empty field. Marius Bakke 2021-07-23gnu: tzdata-for-tests: Update to 2021a....* gnu/packages/base.scm (tzdata-for-tests): Update to 2021a. Marius Bakke 2021-07-23gnu: glibc: Remove obsolete patch....* gnu/packages/base.scm (glibc)[source](patches): Remove glibc-hidden-visibility-ldconfig.patch. Marius Bakke 2021-07-21gnu: glibc-2.31: Restore patches....Commit 87961fc965b96ac0c7a5909ac2faab2d023b5339 inadvertently modified the patch set for glibc-2.31. This change restores the original patch set. Fixes: <https://bugs.gnu.org/49516>. * gnu/packages/base.scm (glibc-2.31) [source]: Use the same patches as glibc, but replace glibc-hurd-clock_gettime_monotonic.patch with glibc-2.31-hurd-clock_gettime_monotonic.patch, and add glibc-hurd-signal-sa-siginfo.patch. * gnu/packages/patches/glibc-2.31-hurd-clock_gettime_monotonic.patch: Add it. * gnu/packages/patches/glibc-hurd-signal-sa-siginfo.patch: Add it. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. Chris Marusich 2021-07-18gnu: sed, diffutils: Patch faulty Gnulib tests....This is a followup to c823b958256ba1db6cf896400fae218e4261266e, fixing tests for sed and diffutils on armhf-linux. * gnu/packages/base.scm (sed)[source]: Add "coreutils-gnulib-tests.patch". (diffutils)[source]: Likewise. * gnu/packages/commencement.scm (diffutils-boot0)[source]: New field. Ludovic Courtès 2021-07-14tzdata: Don't bother with cross-compiling....The time zone database is architecture-independent, so trying to cross-compile it is pointless! * gnu/packages/base.scm (tzdata)[arguments]<#:target>: Set to #f. (tzdata)[allowed-references]: Only include the "out" output itself, to make sure no (architecture-dependent) binaries are installed. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org> Maxime Devos 2021-07-11gnu: Change inputs of core packages to plain lists....This is transparent: the resulting derivations are unchanged. * gnu/packages/base.scm (grep, sed, tar, patch, diffutils, glibc/hurd-headers) (coreutils, gnu-make, make-glibc-utf8-locales): Change input fields to plain package lists and use 'modify-inputs'. * gnu/packages/guile.scm (guile-1.8, guile-json-1, guile-json-3) (guile-gdbm-ffi, guile-sqlite3, guile-bytestructures) (guile-git, guile-zlib, guile-lzlib, guile-zstd, guile-next): Likewise. * gnu/packages/mes.scm (nyacc-0.86, nyacc-0.99) (nyacc, nyacc-1.00.2, mes-0.19, mes, m2-planet): Likewise. Ludovic Courtès 2021-07-10gnu: coreutils: Patch broken Gnulib tests....Fixes <https://bugs.gnu.org/49459>. * gnu/packages/patches/coreutils-gnulib-tests.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/base.scm (coreutils)[source]: Use it. Ludovic Courtès 2021-07-08gnu: glibc: Fix cross-compilation to powerpc64le-linux-gnu....Fixes <https://bugs.gnu.org/49417>. Reported by Maxime Devos <maximedevos@telenet.be>. * gnu/packages/patches/glibc-cross-objcopy.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/base.scm (glibc)[source]: Use it. Ludovic Courtès 2021-07-04gnu: glibc: Fix cross-compilation to aarch64-linux-gnu....Fixes <https://bugs.gnu.org/49113>. Reported by Maxime Devos <maximedevos@telenet.be>. Previously, the cross-compiled libc.so linker script would read: OUTPUT_FORMAT(elf64-little) instead of: OUTPUT_FORMAT(elf64-littleaarch64) This is because glibc 2.33 runs "objdump -f" instead of "aarch64-linux-gnu-objdump -f" to determine the output format. * gnu/packages/patches/glibc-cross-objdump.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/base.scm (glibc)[source]: Use it. Ludovic Courtès 2021-06-11gnu: coreutils: Disable inotify-dir-recreate test...This test fails on filesystems where tail detects that it cannot use inotify safely. See https://issues.guix.gnu.org/47935 for more details. * gnu/packages/base.scm (coreutils)[phases]: Disable inotify-dir-recreate tests, quote Hurd substitute* call to reduce rebuilds. Carl Dong 2021-05-23gnu: binutils: Fix bug in test suite in libiberty....* gnu/packages/base.scm (binutils)[source]: Add patch. * gnu/packages/patches/binutils-libiberty-endianness-bug.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Efraim Flashner 2021-05-09gnu: libcap: Update to 2.49....* gnu/packages/linux.scm (libcap-2.31): Rename to ... (libcap): ... this: Update to 2.49. [arguments]: Adjust substitution. (libcap/next): Remove variable. * gnu/packages/avahi.scm (avahi)[inputs]: Change from LIBCAP/NEXT to LIBCAP. * gnu/packages/base.scm (coreutils)[inputs]: Likewise. Marius Bakke 2021-04-16Merge remote-tracking branch 'origin/master' into core-updates... Conflicts: gnu/local.mk gnu/packages/boost.scm gnu/packages/chez.scm gnu/packages/compression.scm gnu/packages/crates-io.scm gnu/packages/docbook.scm gnu/packages/engineering.scm gnu/packages/gcc.scm gnu/packages/gl.scm gnu/packages/gtk.scm gnu/packages/nettle.scm gnu/packages/python-check.scm gnu/packages/python-xyz.scm gnu/packages/radio.scm gnu/packages/rust.scm gnu/packages/sqlite.scm guix/build-system/node.scm Efraim Flashner