~ruther/guix-local

3b88f3767d9f3ad2cc64173525cd53d429bfe7e7 — Efraim Flashner 9 years ago 77e1673
gnu: Add bootstrap-binaries for 'aarch64-linux'.

These bootstrap-binaries were built against commit
8f8f250bdca917b3ce38aa0902f01b19081859a4.

* gnu/packages/bootstrap/aarch64-linux/bash,
gnu/packages/bootstrap/aarch64-linux/mkdir,
gnu/packages/bootstrap/aarch64-linux/xz,
gnu/packages/bootstrap/aarch64-linux/tar: New files.

* gnu/local.mk (bootstrap_aarch64_linuxdir)
(dist_bootstrap_aarch64_linux_DATA)
(nodist_bootstrap_aarch64_linux_DATA): New variables.
(DISTCLEANFILES): Add $(nodist_bootstrap_aarch64_linux_DATA).
(gnu/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz): New target.
* build-aux/download.scm (filename->uri): Add aarch64-linux entry.
* gnu/packages/bootstrap.scm (raw-build): Use guile-2.0.14.tar.xz on
aarch64-linux.
(glibc-dynamic-linker, %bootstrap-coreutils&co, %boostrap-binutils)
(%bootstrap-glibc, %bootstrap-gcc): Add aarch64-linux cases.
* m4/guix.m4 (GUIX_SYSTEM_TYPE): Add aarch64 case.
(GUIX_ASSERT_SUPPORTED_SYSTEM): Add aarch64-linux to supported list.
* doc/guix.texi (GNU Distribution): Add aarch64-linux to the list of
supported systems.
* tests/packages.scm (package-search-derivation, snippet): Add aarch64
case.
M build-aux/download.scm => build-aux/download.scm +13 -7
@@ 1,6 1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 45,13 46,18 @@
  "Return the URI for FILE."
  (match (string-tokenize file (char-set-complement (char-set #\/)))
    ((_ ... system basename)
     (string->uri (string-append %url-base "/" system
                                 (match system
                                   ("armhf-linux"
                                    "/20150101/")
                                   (_
                                    "/20131110/"))
                                 basename)))))
     (string->uri
       (match system
        ("aarch64-linux"
         (string-append "http://flashner.co.il/guix/bootstrap/aarch64-linux"
                        "/20170217/" basename))
        (_ (string-append %url-base "/" system
                          (match system
                                 ("armhf-linux"
                                  "/20150101/")
                                 (_
                                  "/20131110/"))
                          basename)))))))

(match (command-line)
  ((_ file expected-hash)

M doc/guix.texi => doc/guix.texi +6 -1
@@ 24,7 24,7 @@ Copyright @copyright{} 2015, 2016, 2017 Leo Famulari@*
Copyright @copyright{} 2015, 2016 Ricardo Wurmus@*
Copyright @copyright{} 2016 Ben Woodcroft@*
Copyright @copyright{} 2016 Chris Marusich@*
Copyright @copyright{} 2016 Efraim Flashner@*
Copyright @copyright{} 2016, 2017 Efraim Flashner@*
Copyright @copyright{} 2016 John Darrington@*
Copyright @copyright{} 2016 ng0@*
Copyright @copyright{} 2016 Jan Nieuwenhuizen@*


@@ 6710,6 6710,11 @@ ARMv7-A architecture with hard float, Thumb-2 and NEON,
using the EABI hard-float application binary interface (ABI),
and Linux-Libre kernel.

@item aarch64-linux
little-endian 64-bit ARMv8-A processors, Linux-Libre kernel.  This is
currently in an experimental stage, with limited support.  See
@xref{Contributing}, for how to help!

@item mips64el-linux
little-endian 64-bit MIPS processors, specifically the Loongson series,
n32 ABI, and Linux-Libre kernel.

M gnu/local.mk => gnu/local.mk +15 -0
@@ 10,6 10,7 @@
# Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
# Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
# Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com>
# Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
#
# This file is part of GNU Guix.
#


@@ 992,6 993,7 @@ bootstrapdir = $(guilemoduledir)/%D%/packages/bootstrap
bootstrap_x86_64_linuxdir = $(bootstrapdir)/x86_64-linux
bootstrap_i686_linuxdir = $(bootstrapdir)/i686-linux
bootstrap_armhf_linuxdir = $(bootstrapdir)/armhf-linux
bootstrap_aarch64_linuxdir = $(bootstrapdir)/aarch64-linux
bootstrap_mips64el_linuxdir = $(bootstrapdir)/mips64el-linux

dist_bootstrap_x86_64_linux_DATA =		\


@@ 1012,6 1014,12 @@ dist_bootstrap_armhf_linux_DATA =		\
  %D%/packages/bootstrap/armhf-linux/tar	\
  %D%/packages/bootstrap/armhf-linux/xz

dist_bootstrap_aarch64_linux_DATA =		\
  %D%/packages/bootstrap/aarch64-linux/bash	\
  %D%/packages/bootstrap/aarch64-linux/mkdir	\
  %D%/packages/bootstrap/aarch64-linux/tar	\
  %D%/packages/bootstrap/aarch64-linux/xz

dist_bootstrap_mips64el_linux_DATA =		\
  %D%/packages/bootstrap/mips64el-linux/bash	\
  %D%/packages/bootstrap/mips64el-linux/mkdir	\


@@ 1026,6 1034,8 @@ nodist_bootstrap_i686_linux_DATA =					\
  %D%/packages/bootstrap/i686-linux/guile-2.0.9.tar.xz
nodist_bootstrap_armhf_linux_DATA =					\
  %D%/packages/bootstrap/armhf-linux/guile-2.0.11.tar.xz
nodist_bootstrap_aarch64_linux_DATA =					\
  %D%/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz
nodist_bootstrap_mips64el_linux_DATA =					\
  %D%/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz



@@ 1038,6 1048,7 @@ DISTCLEANFILES =				\
  $(nodist_bootstrap_x86_64_linux_DATA)		\
  $(nodist_bootstrap_i686_linux_DATA)		\
  $(nodist_bootstrap_armhf_linux_DATA)		\
  $(nodist_bootstrap_aarch64_linux_DATA)		\
  $(nodist_bootstrap_mips64el_linux_DATA)

# Method to download a file from an external source.


@@ 1058,6 1069,10 @@ DOWNLOAD_FILE =								\
	$(AM_V_DL)$(MKDIR_P) `dirname "$@"`;	\
	$(DOWNLOAD_FILE) "$@"			\
	  "e551d05d4d385d6706ab8d574856a087758294dc90ab4c06e70a157a685e23d6"
%D%/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz:
	$(AM_V_DL)$(MKDIR_P) `dirname "$@"`;	\
	$(DOWNLOAD_FILE) "$@"			\
	  "3939909f24dcb955621aa7f81ecde6844bea8a083969c2d275c55699af123ebe"
%D%/packages/bootstrap/mips64el-linux/guile-2.0.9.tar.xz:
	$(AM_V_DL)$(MKDIR_P) `dirname "$@"`;	\
	$(DOWNLOAD_FILE) "$@" 			\

M gnu/packages/bootstrap.scm => gnu/packages/bootstrap.scm +25 -1
@@ 1,6 1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 203,6 204,8 @@ successful, or false to signal an error."
         (guile (->store (match system
                           ("armhf-linux"
                            "guile-2.0.11.tar.xz")
                           ("aarch64-linux"
                            "guile-2.0.14.tar.xz")
                           (_
                            "guile-2.0.9.tar.xz"))))
         ;; The following code, run by the bootstrap guile after it is


@@ 291,7 294,8 @@ $out/bin/guile --version~%"
  ;; This is where the initial binaries come from.
  '("ftp://alpha.gnu.org/gnu/guix/bootstrap"
    "http://alpha.gnu.org/gnu/guix/bootstrap"
    "http://www.fdn.fr/~lcourtes/software/guix/packages"))
    "http://www.fdn.fr/~lcourtes/software/guix/packages"
    "http://flashner.co.il/guix/bootstrap"))

(define %bootstrap-coreutils&co
  (package-from-tarball "bootstrap-binaries"


@@ 302,6 306,8 @@ $out/bin/guile --version~%"
                                          (match system
                                            ("armhf-linux"
                                             "/20150101/static-binaries.tar.xz")
                                            ("aarch64-linux"
                                             "/20170217/static-binaries.tar.xz")
                                            (_
                                             "/20131110/static-binaries.tar.xz")))
                                     %bootstrap-base-urls))


@@ 316,6 322,9 @@ $out/bin/guile --version~%"
                              ("armhf-linux"
                               (base32
                                "0gf0fn2kbpxkjixkmx5f4z6hv6qpmgixl69zgg74dbsfdfj8jdv5"))
                              ("aarch64-linux"
                               (base32
                                "18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4lpdgqlccpfh"))
                              ("mips64el-linux"
                               (base32
                                "072y4wyfsj1bs80r6vbybbafy8ya4vfy7qj25dklwk97m6g71753"))))))


@@ 345,6 354,8 @@ $out/bin/guile --version~%"
                                          (match system
                                            ("armhf-linux"
                                             "/20150101/binutils-2.25.tar.xz")
                                            ("aarch64-linux"
                                             "/20170217/binutils-2.27.tar.xz")
                                            (_
                                             "/20131110/binutils-2.23.2.tar.xz")))
                                     %bootstrap-base-urls))


@@ 359,6 370,9 @@ $out/bin/guile --version~%"
                              ("armhf-linux"
                               (base32
                                "1v7dj6bzn6m36f20gw31l99xaabq4xrhrx3gwqkhhig0mdlmr69q"))
                              ("aarch64-linux"
                               (base32
                                "111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq132pd51xv3n"))
                              ("mips64el-linux"
                               (base32
                                "1x8kkhcxmfyzg1ddpz2pxs6fbdl6412r7x0nzbmi5n7mj8zw2gy7"))))))


@@ 406,6 420,8 @@ $out/bin/guile --version~%"
                                    (match (%current-system)
                                      ("armhf-linux"
                                       "/20150101/glibc-2.20.tar.xz")
                                      ("aarch64-linux"
                                       "/20170217/glibc-2.25.tar.xz")
                                      (_
                                       "/20131110/glibc-2.18.tar.xz")))
                               %bootstrap-base-urls))


@@ 420,6 436,9 @@ $out/bin/guile --version~%"
                        ("armhf-linux"
                         (base32
                          "18cmgvpllqfpn6khsmivqib7ys8ymnq0hdzi3qp24prik0ykz8gn"))
                        ("aarch64-linux"
                         (base32
                          "07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742nvv5c"))
                        ("mips64el-linux"
                         (base32
                          "0k97a3whzx3apsi9n2cbsrr79ad6lh00klxph9hw4fqyp1abkdsg")))))))))


@@ 484,6 503,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
                                    (match (%current-system)
                                      ("armhf-linux"
                                       "/20150101/gcc-4.8.4.tar.xz")
                                      ("aarch64-linux"
                                       "/20170217/gcc-5.4.0.tar.xz")
                                      (_
                                       "/20131110/gcc-4.8.2.tar.xz")))
                               %bootstrap-base-urls))


@@ 498,6 519,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \
                        ("armhf-linux"
                         (base32
                          "0ghz825yzp43fxw53kd6afm8nkz16f7dxi9xi40bfwc8x3nbbr8v"))
                        ("aarch64-linux"
                         (base32
                          "1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cqnq9ih1"))
                        ("mips64el-linux"
                         (base32
                          "1m5miqkyng45l745n0sfafdpjkqv9225xf44jqkygwsipj2cv9ks")))))))))

A gnu/packages/bootstrap/aarch64-linux/bash => gnu/packages/bootstrap/aarch64-linux/bash +0 -0
A gnu/packages/bootstrap/aarch64-linux/mkdir => gnu/packages/bootstrap/aarch64-linux/mkdir +0 -0
A gnu/packages/bootstrap/aarch64-linux/tar => gnu/packages/bootstrap/aarch64-linux/tar +0 -0
A gnu/packages/bootstrap/aarch64-linux/xz => gnu/packages/bootstrap/aarch64-linux/xz +0 -0
M m4/guix.m4 => m4/guix.m4 +2 -1
@@ 1,6 1,7 @@
dnl GNU Guix --- Functional package management for GNU
dnl Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
dnl Copyright © 2014 Mark H Weaver <mhw@netris.org>
dnl Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
dnl
dnl This file is part of GNU Guix.
dnl


@@ 105,7 106,7 @@ courageous and port the GNU System distribution to it (see
  # Currently only Linux-based systems are supported, and only on some
  # platforms.
  case "$guix_system" in
    x86_64-linux|i686-linux|armhf-linux|mips64el-linux)
    x86_64-linux|i686-linux|armhf-linux|aarch64-linux|mips64el-linux)
      ;;
    *)
      if test "x$guix_courageous" = "xyes"; then

M tests/packages.scm => tests/packages.scm +2 -0
@@ 380,6 380,8 @@
  (let* ((file   (search-bootstrap-binary (match (%current-system)
                                            ("armhf-linux"
                                             "guile-2.0.11.tar.xz")
                                            ("aarch64-linux"
                                             "guile-2.0.14.tar.xz")
                                            (_
                                             "guile-2.0.9.tar.xz"))
                                          (%current-system)))