;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
(("/bin/pwd") "pwd"))
#t))))))))
+(define-public (make-gcc-libc base-gcc libc)
+ "Return a GCC that targets LIBC."
+ (package (inherit base-gcc)
+ (name (string-append (package-name base-gcc) "-"
+ (package-name libc) "-"
+ (package-version libc)))
+ (arguments
+ (substitute-keyword-arguments
+ (ensure-keyword-arguments (package-arguments base-gcc)
+ '(#:implicit-inputs? #f))
+ ((#:make-flags flags)
+ `(let ((libc (assoc-ref %build-inputs "libc")))
+ ;; FLAGS_FOR_TARGET are needed for the target libraries to receive
+ ;; the -Bxxx for the startfiles.
+ (cons (string-append "FLAGS_FOR_TARGET=-B" libc "/lib")
+ ,flags)))))
+ (native-inputs
+ `(("libc" ,libc)
+ ("libc:static" ,libc "static")
+ ,@(append (package-inputs base-gcc)
+ (fold alist-delete (%final-inputs) '("libc" "libc:static")))))
+ (inputs '())))
+
(define-public (make-glibc-locales glibc)
(package
(inherit glibc)
(let ((args `(#:tests? #f #:strip-binaries? #f
,@(package-arguments glibc))))
(substitute-keyword-arguments args
+ ((#:modules modules '((guix build utils)
+ (guix build gnu-build-system)))
+ `((srfi srfi-11)
+ (gnu build locale)
+ ,@modules))
+ ((#:imported-modules modules '())
+ `((gnu build locale)
+ ,@%gnu-build-system-modules))
((#:phases phases)
`(modify-phases ,phases
(replace 'build
(lambda _
(invoke "make" "localedata/install-locales"
"-j" (number->string (parallel-job-count)))))
+ (add-after 'build 'symlink-normalized-codesets
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; The above phase does not install locales with names using
+ ;; the "normalized codeset." Thus, create symlinks like:
+ ;; en_US.utf8 -> en_US.UTF-8
+ (define (locale-directory? file stat)
+ (and (file-is-directory? file)
+ (string-index (basename file) #\_)
+ (string-rindex (basename file) #\.)))
+
+ (let* ((out (assoc-ref outputs "out"))
+ (locales (find-files out locale-directory?
+ #:directories? #t)))
+ (for-each (lambda (directory)
+ (let*-values (((base)
+ (basename directory))
+ ((name codeset)
+ (locale->name+codeset base))
+ ((normalized)
+ (normalize-codeset codeset)))
+ (unless (string=? codeset normalized)
+ (symlink base
+ (string-append (dirname directory)
+ "/" name "."
+ normalized)))))
+ locales)
+ #t)))
(delete 'install)
(delete 'move-static-libs)))
((#:configure-flags flags)
(define-public tzdata
(package
(name "tzdata")
- (version "2019a")
+ (version "2019b")
(source (origin
(method url-fetch)
(uri (string-append
- "https://www.iana.org/time-zones/repository/releases/tzdata"
+ "https://data.iana.org/time-zones/releases/tzdata"
version ".tar.gz"))
(sha256
(base32
- "0wlpqm4asvi0waaz24xj20iq40gqfypmb4nldjhkfgm09bgnsdlh"))))
+ "0r0clnlslwm15m1c61dinf1fi9ffgl6aipng7i7yryfwj0n0kn85"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f
(inputs `(("tzcode" ,(origin
(method url-fetch)
(uri (string-append
- "http://www.iana.org/time-zones/repository/releases/tzcode"
+ "https://data.iana.org/time-zones/releases/tzcode"
version ".tar.gz"))
(sha256
(base32
- "1x9z8fpgnhzlsnps0hamb54ymaskjab7ys9m4i4gpk9hpiig2fc7"))))))
+ "0vbmswvv3li25s31shyllq5v24449lxnrki9hr043nipjd09sirf"))))))
(home-page "https://www.iana.org/time-zones")
(synopsis "Database of current and historical time zones")
(description "The Time Zone Database (often called tz or zoneinfo)
(source (origin
(method url-fetch)
(uri (string-append
- "https://www.iana.org/time-zones/repository/releases/tzdata"
+ "https://data.iana.org/time-zones/releases/tzdata"
version ".tar.gz"))
(sha256
(base32
`(("tzcode" ,(origin
(method url-fetch)
(uri (string-append
- "http://www.iana.org/time-zones/repository/releases/tzcode"
+ "http://data.iana.org/time-zones/releases/tzcode"
version ".tar.gz"))
(sha256
(base32