mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-11 21:59:08 -05:00
Merge branch 'version-1.2.0'
This commit is contained in:
commit
07914def98
33 changed files with 53124 additions and 31885 deletions
131
NEWS
131
NEWS
|
@ -11,6 +11,137 @@ Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||||
|
|
||||||
Please send Guix bug reports to bug-guix@gnu.org.
|
Please send Guix bug reports to bug-guix@gnu.org.
|
||||||
|
|
||||||
|
* Changes in 1.2.0 (since 1.1.0)
|
||||||
|
|
||||||
|
** Package management
|
||||||
|
*** ‘guix pull’ now crytographically authenticates channels
|
||||||
|
*** ‘guix describe -f channels’ now shows “channel introductions”
|
||||||
|
*** ‘guix describe -f channels-sans-intro’ omits channel introductions
|
||||||
|
*** New ‘guix git authenticate’ command, to authenticate Git checkouts
|
||||||
|
*** ‘guix pull’ and ‘guix system reconfigure’ detect attempts to downgrade
|
||||||
|
*** New ‘--allow-downgrades’ option for ‘guix pull’ and ‘guix system’
|
||||||
|
*** Guix build time reduced thanks to Guile 3.0.4’s “baseline compiler”
|
||||||
|
*** New ‘--with-debug-info’ package transformation option
|
||||||
|
*** New ‘--with-c-toolchain’ package transformation option
|
||||||
|
*** New ‘--without-tests’ package transformation option
|
||||||
|
*** ‘--with-input’ & co. now also apply to implicit dependencies
|
||||||
|
*** Package transformation options are now recorded in profiles
|
||||||
|
*** New fakechroot “execution engine” for packs produced by ‘guix pack -RR’
|
||||||
|
*** New ‘--cache-bypass-threshold’ option for ‘guix publish’
|
||||||
|
*** New ‘--diff’ option for ‘guix challenge’, to compare substitutes
|
||||||
|
*** New ‘--exclude’ option for ‘guix lint’, to exclude checkers
|
||||||
|
*** New ‘check-for-collisions’ checker in ‘guix lint’
|
||||||
|
*** All of Guix and Guix System now runs on Guile 3.0
|
||||||
|
*** ‘guix pull’ and ‘--with-git-url’ now support authenticated SSH repos
|
||||||
|
*** ‘guix pull’ now honors $http_proxy and $https_proxy
|
||||||
|
*** New ‘--path’ option for ‘guix graph’, showing the shortest path
|
||||||
|
*** ‘guix repl’ can now be passed a script to execute
|
||||||
|
*** ‘guix help’ finally shows command descriptions
|
||||||
|
*** ‘guix install’ etc. no longer list items to download by default
|
||||||
|
*** ‘guix search’ etc. now automatically invoke the pager
|
||||||
|
*** New ‘--hash’ option for ‘guix hash’
|
||||||
|
*** New ‘--list-formats’ option for ‘guix describe’
|
||||||
|
*** New “Getting Started” section in the manual
|
||||||
|
|
||||||
|
** Distribution
|
||||||
|
*** Bootstrap binary seeds reduced to 60 MiB on x86_64/i686
|
||||||
|
*** New ‘--target’ option for ‘guix system’, for cross-compilation
|
||||||
|
*** New ‘--image-type’ option for ‘guix system disk-image’
|
||||||
|
*** New ‘--label’ option for ‘guix system disk-image’
|
||||||
|
*** Guix System can now boot from a Btrfs subvolume
|
||||||
|
*** New ‘hurd’ field of ‘operating-system’, for GNU/Hurd support
|
||||||
|
*** Guix System can be cross-compiled to GNU/Hurd with ‘--target=i586-pc-gnu’
|
||||||
|
*** New ‘hurd-vm-service-type’ to spawn a GNU/Hurd VM on GNU/Linux
|
||||||
|
*** /etc/guix/acl on Guix System is now built from the OS configuration
|
||||||
|
*** ‘rottlog-service-type’ is now part of ‘%base-services’
|
||||||
|
*** Linux-libre modules are now gzip-compressed
|
||||||
|
*** The efivarfs file system is now part of ‘%base-file-systems’
|
||||||
|
*** mcron job specs are now statically checked at OS build time
|
||||||
|
*** ‘swap-devices’ field of ‘operating-system’ can contains UUIDs and labels
|
||||||
|
*** Graphical installer uses UUIDs for unencrypted swap partitions
|
||||||
|
*** Graphical installer now supports NTFS file systems
|
||||||
|
*** New services
|
||||||
|
|
||||||
|
autossh, ganeti, gmnisrv, guix-build-coordinator,
|
||||||
|
guix-build-coordinator-agent, guix-build-coordinator-queue-builds, hostapd,
|
||||||
|
hurd-console, hurd-getty, hurd-vm, lxqt, rshiny, secret-service,
|
||||||
|
simulated-wifi, udev-rules, unattended-upgrade, webssh, zram
|
||||||
|
|
||||||
|
*** XXX new packages
|
||||||
|
*** XXX package updates
|
||||||
|
|
||||||
|
** Programming interfaces
|
||||||
|
*** New ‘maven-build-system’, for packages built with Maven
|
||||||
|
*** ‘haskell-build-system’ now always adds a “static” output
|
||||||
|
*** New (gnu image) module, to build system images
|
||||||
|
*** New (guix git-authenticate) module, for Git checkout authentication
|
||||||
|
*** New (guix openpgp) module with a minimal OpenPGP implementation
|
||||||
|
*** New (guix transformations) module, for package transformations
|
||||||
|
*** New (gnu services hurd) module providing GNU/Hurd services
|
||||||
|
*** (guix json) removed in favor of Guile-JSON’s (json) module
|
||||||
|
*** (guix zlib) and (guix lzlib) removed in favor of Guile-{Zlib,Lzlib}
|
||||||
|
*** ‘local-file’ warns about non-literal relative file names
|
||||||
|
*** Daemon now supports more hash algorithms: SHA3 and BLAKE2s
|
||||||
|
*** New <content-hash> record type for use in ‘origin’
|
||||||
|
*** New ‘let-system’ for in (guix gexp), for system-dependent code
|
||||||
|
*** New lowerable <profile> record type in (guix profiles)
|
||||||
|
*** (gnu build secret-service) can share secrets with a guest OS
|
||||||
|
*** “Programming Interface” section of the manual greatly expounded
|
||||||
|
|
||||||
|
** Noteworthy bug fixes
|
||||||
|
*** ‘guix pull’ now shows a progress bar while fetching from Git
|
||||||
|
(<https://bugs.gnu.org/39260>)
|
||||||
|
*** ‘guix copy’ and ‘guix deploy’ show a progress bar while copying
|
||||||
|
*** Bootloader messages are now localized
|
||||||
|
(<https://issues.guix.gnu.org/35394>)
|
||||||
|
*** ‘guix system reconfigure’ now starts services not currently running
|
||||||
|
(<https://bugs.gnu.org/43720>)
|
||||||
|
*** Offloading and copying small items is now much faster
|
||||||
|
(<https://issues.guix.gnu.org/43340>)
|
||||||
|
*** GCC switched back to C_INCLUDE_PATH & co. from CPATH
|
||||||
|
(<https://bugs.gnu.org/30756>)
|
||||||
|
*** Graphical installer no longer hangs while connecting to WiFi network
|
||||||
|
(<https://issues.guix.gnu.org/40682>)
|
||||||
|
*** GNU Aspell truly honors ASPELL_DICT_DIR (<https://bugs.gnu.org/29686>)
|
||||||
|
*** Fix overly aggressive memoization of “commencement” packages
|
||||||
|
(<https://bugs.gnu.org/40482>)
|
||||||
|
*** Duplicate /etc entries are now reported (<https://bugs.gnu.org/40729>)
|
||||||
|
*** ‘guix pack -R’ wrapper correctly reports exit code
|
||||||
|
(<https://bugs.gnu.org/40816>)
|
||||||
|
*** Fix time travel to pre-Guile 3.0 revisions
|
||||||
|
(<https://bugs.gnu.org/41028>)
|
||||||
|
*** ‘package-grafts’ returns grafts for all the relevant outputs
|
||||||
|
(<https://bugs.gnu.org/41796>)
|
||||||
|
*** ‘guix pull’ and related commands authenticate Git checkouts
|
||||||
|
(<https://bugs.gnu.org/22883>)
|
||||||
|
*** Fix GNU libstdc++ misconfiguration in recent ‘gcc-toolchain’ versions
|
||||||
|
(<https://bugs.gnu.org/42392>)
|
||||||
|
*** ‘guix pack -R’ wraps propagated inputs as well
|
||||||
|
(<https://bugs.gnu.org/42510>)
|
||||||
|
*** ‘guix pack -R’ wrapper leaves root available to child processes
|
||||||
|
(<https://bugs.gnu.org/44261>)
|
||||||
|
*** ‘lib/guix/package.cache’ generated by ‘guix pull’ is now bit-reproducible
|
||||||
|
(<https://bugs.gnu.org/42009>)
|
||||||
|
*** Graphical installer now properly detects disks containing an LVM partition
|
||||||
|
(<https://issues.guix.gnu.org/42683>)
|
||||||
|
*** Fix possible crash when copying store items over SSH
|
||||||
|
(<https://bugs.gnu.org/42740>)
|
||||||
|
*** ‘gcc’ is now a “deprecated” alias for ‘gcc-toolchain’
|
||||||
|
(<https://bugs.gnu.org/43303>)
|
||||||
|
*** ‘package-input-rewriting’ & co. no longer yield unnecessary rebuilds
|
||||||
|
(<https://bugs.gnu.org/42156>)
|
||||||
|
*** Offloading better normalizes build machine load
|
||||||
|
(<https://issues.guix.gnu.org/43773>)
|
||||||
|
*** ‘guix build --check’ now honors ‘--rounds’
|
||||||
|
(<https://issues.guix.gnu.org/40144>)
|
||||||
|
*** ‘guix-install.sh’ now installs shell completion files
|
||||||
|
(<https://bugs.gnu.org/43744>)
|
||||||
|
*** ‘guix-install.sh’ now warns about lack of ‘nscd’
|
||||||
|
(<https://bugs.gnu.org/43744>)
|
||||||
|
|
||||||
|
** Native language support
|
||||||
|
*** TODO populate
|
||||||
|
|
||||||
* Changes in 1.1.0 (since 1.0.1)
|
* Changes in 1.1.0 (since 1.0.1)
|
||||||
** Package management
|
** Package management
|
||||||
*** New ‘guix deploy’ command to deploy several machines at once
|
*** New ‘guix deploy’ command to deploy several machines at once
|
||||||
|
|
|
@ -49,6 +49,12 @@ (define %base-packages
|
||||||
'("bootstrap-tarballs" "gcc-toolchain" "nss-certs"
|
'("bootstrap-tarballs" "gcc-toolchain" "nss-certs"
|
||||||
"openssh" "emacs" "vim" "python" "guile" "guix")))
|
"openssh" "emacs" "vim" "python" "guile" "guix")))
|
||||||
|
|
||||||
|
(define %base-packages/hurd
|
||||||
|
;; XXX: For now we are less demanding of "i586-gnu".
|
||||||
|
(map specification->package
|
||||||
|
'("coreutils" "grep" "findutils" "gawk" "make"
|
||||||
|
"gcc-toolchain" "tar" "xz")))
|
||||||
|
|
||||||
(define %system-packages
|
(define %system-packages
|
||||||
;; Key packages proposed by the Guix System installer.
|
;; Key packages proposed by the Guix System installer.
|
||||||
(append (map specification->package
|
(append (map specification->package
|
||||||
|
@ -94,7 +100,9 @@ (define %base-manifest
|
||||||
(manifest
|
(manifest
|
||||||
(append-map (lambda (system)
|
(append-map (lambda (system)
|
||||||
(map (cut package->manifest-entry* <> system)
|
(map (cut package->manifest-entry* <> system)
|
||||||
%base-packages))
|
(if (string=? system "i586-gnu")
|
||||||
|
%base-packages/hurd
|
||||||
|
%base-packages)))
|
||||||
%hydra-supported-systems)))
|
%hydra-supported-systems)))
|
||||||
|
|
||||||
(define %system-manifest
|
(define %system-manifest
|
||||||
|
|
15
gnu/local.mk
15
gnu/local.mk
|
@ -802,14 +802,14 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/audiofile-CVE-2015-7747.patch \
|
%D%/packages/patches/audiofile-CVE-2015-7747.patch \
|
||||||
%D%/packages/patches/audiofile-CVE-2018-13440.patch \
|
%D%/packages/patches/audiofile-CVE-2018-13440.patch \
|
||||||
%D%/packages/patches/audiofile-CVE-2018-17095.patch \
|
%D%/packages/patches/audiofile-CVE-2018-17095.patch \
|
||||||
%D%/packages/patches/audiofile-Check-the-number-of-coefficients.patch \
|
%D%/packages/patches/audiofile-check-number-of-coefficients.patch \
|
||||||
%D%/packages/patches/audiofile-Fail-on-error-in-parseFormat.patch \
|
%D%/packages/patches/audiofile-Fail-on-error-in-parseFormat.patch \
|
||||||
%D%/packages/patches/audiofile-Fix-index-overflow-in-IMA.cpp.patch \
|
%D%/packages/patches/audiofile-Fix-index-overflow-in-IMA.cpp.patch \
|
||||||
%D%/packages/patches/audiofile-Fix-multiply-overflow-sfconvert.patch \
|
%D%/packages/patches/audiofile-multiply-overflow.patch \
|
||||||
%D%/packages/patches/audiofile-Fix-overflow-in-MSADPCM-decodeSam.patch \
|
%D%/packages/patches/audiofile-overflow-in-MSADPCM.patch \
|
||||||
%D%/packages/patches/audiofile-division-by-zero-BlockCodec-runPull.patch \
|
%D%/packages/patches/audiofile-division-by-zero.patch \
|
||||||
%D%/packages/patches/audiofile-hurd.patch \
|
%D%/packages/patches/audiofile-hurd.patch \
|
||||||
%D%/packages/patches/audiofile-signature-of-multiplyCheckOverflow.patch \
|
%D%/packages/patches/audiofile-function-signature.patch \
|
||||||
%D%/packages/patches/automake-skip-amhello-tests.patch \
|
%D%/packages/patches/automake-skip-amhello-tests.patch \
|
||||||
%D%/packages/patches/avahi-localstatedir.patch \
|
%D%/packages/patches/avahi-localstatedir.patch \
|
||||||
%D%/packages/patches/avogadro-boost148.patch \
|
%D%/packages/patches/avogadro-boost148.patch \
|
||||||
|
@ -1196,6 +1196,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/jsoncpp-fix-inverted-case.patch \
|
%D%/packages/patches/jsoncpp-fix-inverted-case.patch \
|
||||||
%D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch \
|
%D%/packages/patches/julia-SOURCE_DATE_EPOCH-mtime.patch \
|
||||||
%D%/packages/patches/kdbusaddons-kinit-file-name.patch \
|
%D%/packages/patches/kdbusaddons-kinit-file-name.patch \
|
||||||
|
%D%/packages/patches/libffi-3.3-powerpc-fixes.patch \
|
||||||
%D%/packages/patches/libvirt-create-machine-cgroup.patch \
|
%D%/packages/patches/libvirt-create-machine-cgroup.patch \
|
||||||
%D%/packages/patches/libziparchive-add-includes.patch \
|
%D%/packages/patches/libziparchive-add-includes.patch \
|
||||||
%D%/packages/patches/localed-xorg-keyboard.patch \
|
%D%/packages/patches/localed-xorg-keyboard.patch \
|
||||||
|
@ -1525,7 +1526,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/python-paste-remove-timing-test.patch \
|
%D%/packages/patches/python-paste-remove-timing-test.patch \
|
||||||
%D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \
|
%D%/packages/patches/python-pycrypto-CVE-2013-7459.patch \
|
||||||
%D%/packages/patches/python-pycrypto-time-clock.patch \
|
%D%/packages/patches/python-pycrypto-time-clock.patch \
|
||||||
%D%/packages/patches/python2-pygobject-2-gi-info-type-error-domain.patch \
|
%D%/packages/patches/python2-pygobject-2-deprecation.patch \
|
||||||
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
|
%D%/packages/patches/python-pygpgme-fix-pinentry-tests.patch \
|
||||||
%D%/packages/patches/python-robotframework-source-date-epoch.patch \
|
%D%/packages/patches/python-robotframework-source-date-epoch.patch \
|
||||||
%D%/packages/patches/python-shouldbe-0.1.2-cpy3.8.patch \
|
%D%/packages/patches/python-shouldbe-0.1.2-cpy3.8.patch \
|
||||||
|
|
|
@ -37,6 +37,7 @@ (define-module (gnu machine ssh)
|
||||||
#:use-module (guix ssh)
|
#:use-module (guix ssh)
|
||||||
#:use-module (guix store)
|
#:use-module (guix store)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
|
#:use-module ((guix self) #:select (make-config.scm))
|
||||||
#:use-module (gcrypt pk-crypto)
|
#:use-module (gcrypt pk-crypto)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
|
@ -353,8 +354,9 @@ (define bootable-kernel-arguments
|
||||||
|
|
||||||
(define remote-exp
|
(define remote-exp
|
||||||
(with-extensions (list guile-gcrypt)
|
(with-extensions (list guile-gcrypt)
|
||||||
(with-imported-modules (source-module-closure '((guix config)
|
(with-imported-modules (source-module-closure
|
||||||
(guix profiles)))
|
`(((guix config) => ,(make-config.scm))
|
||||||
|
(guix profiles)))
|
||||||
#~(begin
|
#~(begin
|
||||||
(use-modules (guix config)
|
(use-modules (guix config)
|
||||||
(guix profiles)
|
(guix profiles)
|
||||||
|
|
|
@ -862,16 +862,16 @@ (define-public audiofile
|
||||||
"audiofile-Fix-index-overflow-in-IMA.cpp.patch"
|
"audiofile-Fix-index-overflow-in-IMA.cpp.patch"
|
||||||
;; CVE-2017-6827, CVE-2017-6828, CVE-2017-6832, CVE-2017-6835,
|
;; CVE-2017-6827, CVE-2017-6828, CVE-2017-6832, CVE-2017-6835,
|
||||||
;; CVE-2017-6837:
|
;; CVE-2017-6837:
|
||||||
"audiofile-Check-the-number-of-coefficients.patch"
|
"audiofile-check-number-of-coefficients.patch"
|
||||||
;; CVE-2017-6839:
|
;; CVE-2017-6839:
|
||||||
"audiofile-Fix-overflow-in-MSADPCM-decodeSam.patch"
|
"audiofile-overflow-in-MSADPCM.patch"
|
||||||
;; CVE-2017-6830, CVE-2017-6834, CVE-2017-6836, CVE-2017-6838:
|
;; CVE-2017-6830, CVE-2017-6834, CVE-2017-6836, CVE-2017-6838:
|
||||||
"audiofile-Fix-multiply-overflow-sfconvert.patch"
|
"audiofile-multiply-overflow.patch"
|
||||||
"audiofile-signature-of-multiplyCheckOverflow.patch"
|
"audiofile-function-signature.patch"
|
||||||
;; CVE-2017-6831:
|
;; CVE-2017-6831:
|
||||||
"audiofile-Fail-on-error-in-parseFormat.patch"
|
"audiofile-Fail-on-error-in-parseFormat.patch"
|
||||||
;; CVE-2017-6833:
|
;; CVE-2017-6833:
|
||||||
"audiofile-division-by-zero-BlockCodec-runPull.patch"
|
"audiofile-division-by-zero.patch"
|
||||||
"audiofile-CVE-2018-13440.patch"
|
"audiofile-CVE-2018-13440.patch"
|
||||||
"audiofile-CVE-2018-17095.patch"))))
|
"audiofile-CVE-2018-17095.patch"))))
|
||||||
(properties `((lint-hidden-cve . ("CVE-2017-6829"
|
(properties `((lint-hidden-cve . ("CVE-2017-6829"
|
||||||
|
|
|
@ -539,19 +539,20 @@ (define* (cross-libc target
|
||||||
|
|
||||||
;; FIXME: 'static-bash' should really be an input, not a native input, but
|
;; FIXME: 'static-bash' should really be an input, not a native input, but
|
||||||
;; to do that will require building an intermediate cross libc.
|
;; to do that will require building an intermediate cross libc.
|
||||||
(inputs '())
|
(inputs (if (hurd-triplet? target)
|
||||||
|
`(;; TODO: move to glibc in the next rebuild cycle
|
||||||
|
("hurd-mach-print.patch"
|
||||||
|
,(search-patch "glibc-hurd-mach-print.patch"))
|
||||||
|
("hurd-gettyent.patch"
|
||||||
|
,(search-patch "glibc-hurd-gettyent.patch")))
|
||||||
|
'()))
|
||||||
|
|
||||||
(native-inputs `(("cross-gcc" ,xgcc)
|
(native-inputs `(("cross-gcc" ,xgcc)
|
||||||
("cross-binutils" ,xbinutils)
|
("cross-binutils" ,xbinutils)
|
||||||
,@(if (hurd-triplet? target)
|
,@(if (hurd-triplet? target)
|
||||||
`(("cross-mig"
|
`(("cross-mig"
|
||||||
,@(assoc-ref (package-native-inputs xheaders)
|
,@(assoc-ref (package-native-inputs xheaders)
|
||||||
"cross-mig"))
|
"cross-mig")))
|
||||||
;; TODO: move to glibc in the next rebuild cycle
|
|
||||||
("hurd-mach-print.patch"
|
|
||||||
,@(search-patches "glibc-hurd-mach-print.patch"))
|
|
||||||
("hurd-gettyent.patch"
|
|
||||||
,@(search-patches "glibc-hurd-gettyent.patch")))
|
|
||||||
'())
|
'())
|
||||||
,@(package-inputs libc) ;FIXME: static-bash
|
,@(package-inputs libc) ;FIXME: static-bash
|
||||||
,@(package-native-inputs libc))))))
|
,@(package-native-inputs libc))))))
|
||||||
|
|
|
@ -698,8 +698,7 @@ (define-public python2-pygobject-2
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0nkam61rsn7y3wik3vw46wk5q2cjfh2iph57hl9m39rc8jijb7dv"))
|
"0nkam61rsn7y3wik3vw46wk5q2cjfh2iph57hl9m39rc8jijb7dv"))
|
||||||
(patches (search-patches
|
(patches (search-patches "python2-pygobject-2-deprecation.patch"))))
|
||||||
"python2-pygobject-2-gi-info-type-error-domain.patch"))))
|
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("which" ,which)
|
`(("which" ,which)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2012, 2013, 2014, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
|
;;; Copyright © 2014 Federico Beffa <beffa@fbengineering.ch>
|
||||||
;;; Copyright © 2015, 2019 Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
|
;;; Copyright © 2015, 2019 Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
|
||||||
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016, 2017, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
|
;;; Copyright © 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
|
||||||
;;; Copyright © 2017, 2019, 2020 Marius Bakke <marius@gnu.org>
|
;;; Copyright © 2017, 2019, 2020 Marius Bakke <marius@gnu.org>
|
||||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
|
@ -55,7 +55,25 @@ (define-public libffi
|
||||||
(arguments
|
(arguments
|
||||||
`(;; Prevent the build system from passing -march and -mtune to the
|
`(;; Prevent the build system from passing -march and -mtune to the
|
||||||
;; compiler. See "ax_cc_maxopt.m4" and "ax_gcc_archflag.m4".
|
;; compiler. See "ax_cc_maxopt.m4" and "ax_gcc_archflag.m4".
|
||||||
#:configure-flags '("--enable-portable-binary" "--without-gcc-arch")))
|
#:configure-flags '("--enable-portable-binary" "--without-gcc-arch")
|
||||||
|
|
||||||
|
;; TODO: Inline patch on next rebuild cycle.
|
||||||
|
,@(if (string-prefix? "powerpc-" (or (%current-target-system)
|
||||||
|
(%current-system)))
|
||||||
|
'(#:phases (modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'apply-patch
|
||||||
|
(lambda* (#:key inputs #:allow-other-keys)
|
||||||
|
(let ((patch (assoc-ref inputs
|
||||||
|
"powerpc-patch")))
|
||||||
|
(invoke "patch" "--batch" "-p1"
|
||||||
|
"-i" patch))))))
|
||||||
|
'())))
|
||||||
|
(inputs
|
||||||
|
(if (string-prefix? "powerpc-" (or (%current-target-system)
|
||||||
|
(%current-system)))
|
||||||
|
`(("powerpc-patch" ,@(search-patches
|
||||||
|
"libffi-3.3-powerpc-fixes.patch")))
|
||||||
|
'()))
|
||||||
(outputs '("out" "debug"))
|
(outputs '("out" "debug"))
|
||||||
(synopsis "Foreign function call interface library")
|
(synopsis "Foreign function call interface library")
|
||||||
(description
|
(description
|
||||||
|
|
138
gnu/packages/patches/libffi-3.3-powerpc-fixes.patch
Normal file
138
gnu/packages/patches/libffi-3.3-powerpc-fixes.patch
Normal file
|
@ -0,0 +1,138 @@
|
||||||
|
This is a combination of the following 4 commits:
|
||||||
|
https://github.com/libffi/libffi/commit/01a75ed76ea7e57f1b7a5c183e2b1e890e6aa0fd.patch
|
||||||
|
https://github.com/libffi/libffi/commit/6663047f56c2932a6b10a790f4ac6666dd181326.patch
|
||||||
|
https://github.com/libffi/libffi/commit/e50b9ef8b910fa642ef158f6642e60d54d7ad740.patch
|
||||||
|
https://github.com/libffi/libffi/commit/4d6d2866ae43e55325e8ee96561221804602cd7a.patch
|
||||||
|
|
||||||
|
From 2dbfa92a95e3bacabca431b89d2a5925e48a0e40 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sergei Trofimovich <slyfox@gentoo.org>
|
||||||
|
Date: Thu, 28 Nov 2019 12:42:41 +0000
|
||||||
|
|
||||||
|
powerpc: fix build failure on power7 and older (#532)
|
||||||
|
|
||||||
|
Build failure looks as:
|
||||||
|
```
|
||||||
|
libtool: compile: powerpc-unknown-linux-gnu-gcc \
|
||||||
|
-O2 -mcpu=powerpc -mtune=powerpc -pipe ... -c src/powerpc/ffi.c ...
|
||||||
|
In file included from src/powerpc/ffi.c:33:
|
||||||
|
src/powerpc/ffi_powerpc.h:65:9: error: '__int128' is not supported on this target
|
||||||
|
65 | typedef __int128 float128;
|
||||||
|
| ^~~~~~~~
|
||||||
|
```
|
||||||
|
|
||||||
|
The fix avoids using __int128 in favour of aligned char[16].
|
||||||
|
|
||||||
|
Closes: https://github.com/libffi/libffi/issues/531
|
||||||
|
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
|
||||||
|
|
||||||
|
Address platforms with no __int128.
|
||||||
|
|
||||||
|
powerpc64: Use memcpy to help platforms with no __int128. (#534)
|
||||||
|
|
||||||
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||||
|
|
||||||
|
Update powerpc sysv assembly for ffi_powerpc.h changes (#541)
|
||||||
|
|
||||||
|
Some of the flag bits were moved when adding powerpc64 vector support.
|
||||||
|
|
||||||
|
Fixes #536
|
||||||
|
---
|
||||||
|
src/powerpc/ffi_linux64.c | 12 ++++++------
|
||||||
|
src/powerpc/ffi_powerpc.h | 2 +-
|
||||||
|
src/powerpc/sysv.S | 12 +++++-------
|
||||||
|
3 files changed, 12 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/powerpc/ffi_linux64.c b/src/powerpc/ffi_linux64.c
|
||||||
|
index de0d033..4d50878 100644
|
||||||
|
--- a/src/powerpc/ffi_linux64.c
|
||||||
|
+++ b/src/powerpc/ffi_linux64.c
|
||||||
|
@@ -547,9 +547,9 @@ ffi_prep_args64 (extended_cif *ecif, unsigned long *const stack)
|
||||||
|
if (next_arg.ul == gpr_end.ul)
|
||||||
|
next_arg.ul = rest.ul;
|
||||||
|
if (vecarg_count < NUM_VEC_ARG_REGISTERS64 && i < nfixedargs)
|
||||||
|
- *vec_base.f128++ = **p_argv.f128;
|
||||||
|
+ memcpy (vec_base.f128++, *p_argv.f128, sizeof (float128));
|
||||||
|
else
|
||||||
|
- *next_arg.f128 = **p_argv.f128;
|
||||||
|
+ memcpy (next_arg.f128, *p_argv.f128, sizeof (float128));
|
||||||
|
if (++next_arg.f128 == gpr_end.f128)
|
||||||
|
next_arg.f128 = rest.f128;
|
||||||
|
vecarg_count++;
|
||||||
|
@@ -680,9 +680,9 @@ ffi_prep_args64 (extended_cif *ecif, unsigned long *const stack)
|
||||||
|
{
|
||||||
|
if (vecarg_count < NUM_VEC_ARG_REGISTERS64
|
||||||
|
&& i < nfixedargs)
|
||||||
|
- *vec_base.f128++ = *arg.f128++;
|
||||||
|
+ memcpy (vec_base.f128++, arg.f128, sizeof (float128));
|
||||||
|
else
|
||||||
|
- *next_arg.f128 = *arg.f128++;
|
||||||
|
+ memcpy (next_arg.f128, arg.f128++, sizeof (float128));
|
||||||
|
if (++next_arg.f128 == gpr_end.f128)
|
||||||
|
next_arg.f128 = rest.f128;
|
||||||
|
vecarg_count++;
|
||||||
|
@@ -986,9 +986,9 @@ ffi_closure_helper_LINUX64 (ffi_cif *cif,
|
||||||
|
do
|
||||||
|
{
|
||||||
|
if (pvec < end_pvec && i < nfixedargs)
|
||||||
|
- *to.f128 = *pvec++;
|
||||||
|
+ memcpy (to.f128, pvec++, sizeof (float128));
|
||||||
|
else
|
||||||
|
- *to.f128 = *from.f128;
|
||||||
|
+ memcpy (to.f128, from.f128, sizeof (float128));
|
||||||
|
to.f128++;
|
||||||
|
from.f128++;
|
||||||
|
}
|
||||||
|
diff --git a/src/powerpc/ffi_powerpc.h b/src/powerpc/ffi_powerpc.h
|
||||||
|
index 5ee2a70..8e2f2f0 100644
|
||||||
|
--- a/src/powerpc/ffi_powerpc.h
|
||||||
|
+++ b/src/powerpc/ffi_powerpc.h
|
||||||
|
@@ -62,7 +62,7 @@ typedef _Float128 float128;
|
||||||
|
#elif defined(__FLOAT128__)
|
||||||
|
typedef __float128 float128;
|
||||||
|
#else
|
||||||
|
-typedef __int128 float128;
|
||||||
|
+typedef char float128[16] __attribute__((aligned(16)));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void FFI_HIDDEN ffi_closure_SYSV (void);
|
||||||
|
diff --git a/src/powerpc/sysv.S b/src/powerpc/sysv.S
|
||||||
|
index 1474ce7..df97734 100644
|
||||||
|
--- a/src/powerpc/sysv.S
|
||||||
|
+++ b/src/powerpc/sysv.S
|
||||||
|
@@ -104,17 +104,16 @@ ENTRY(ffi_call_SYSV)
|
||||||
|
bctrl
|
||||||
|
|
||||||
|
/* Now, deal with the return value. */
|
||||||
|
- mtcrf 0x01,%r31 /* cr7 */
|
||||||
|
+ mtcrf 0x03,%r31 /* cr6-cr7 */
|
||||||
|
bt- 31,L(small_struct_return_value)
|
||||||
|
bt- 30,L(done_return_value)
|
||||||
|
#ifndef __NO_FPRS__
|
||||||
|
bt- 29,L(fp_return_value)
|
||||||
|
#endif
|
||||||
|
stw %r3,0(%r30)
|
||||||
|
- bf+ 28,L(done_return_value)
|
||||||
|
+ bf+ 27,L(done_return_value)
|
||||||
|
stw %r4,4(%r30)
|
||||||
|
- mtcrf 0x02,%r31 /* cr6 */
|
||||||
|
- bf 27,L(done_return_value)
|
||||||
|
+ bf 26,L(done_return_value)
|
||||||
|
stw %r5,8(%r30)
|
||||||
|
stw %r6,12(%r30)
|
||||||
|
/* Fall through... */
|
||||||
|
@@ -145,10 +144,9 @@ L(done_return_value):
|
||||||
|
#ifndef __NO_FPRS__
|
||||||
|
L(fp_return_value):
|
||||||
|
.cfi_restore_state
|
||||||
|
- bf 28,L(float_return_value)
|
||||||
|
+ bf 27,L(float_return_value)
|
||||||
|
stfd %f1,0(%r30)
|
||||||
|
- mtcrf 0x02,%r31 /* cr6 */
|
||||||
|
- bf 27,L(done_return_value)
|
||||||
|
+ bf 26,L(done_return_value)
|
||||||
|
stfd %f2,8(%r30)
|
||||||
|
b L(done_return_value)
|
||||||
|
L(float_return_value):
|
||||||
|
--
|
||||||
|
2.26.0
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
|
;;; Copyright © 2017 Peter Mikkelsen <petermikkelsen10@gmail.com>
|
||||||
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||||
|
;;; Copyright © 2020 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -21,6 +22,8 @@ (define-module (gnu services audio)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (gnu services)
|
#:use-module (gnu services)
|
||||||
#:use-module (gnu services shepherd)
|
#:use-module (gnu services shepherd)
|
||||||
|
#:use-module (gnu system shadow)
|
||||||
|
#:use-module (gnu packages admin)
|
||||||
#:use-module (gnu packages mpd)
|
#:use-module (gnu packages mpd)
|
||||||
#:use-module (guix records)
|
#:use-module (guix records)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
|
@ -135,19 +138,19 @@ (define (mpd-file-name config file)
|
||||||
(define (mpd-shepherd-service config)
|
(define (mpd-shepherd-service config)
|
||||||
(shepherd-service
|
(shepherd-service
|
||||||
(documentation "Run the MPD (Music Player Daemon)")
|
(documentation "Run the MPD (Music Player Daemon)")
|
||||||
|
(requirement '(user-processes))
|
||||||
(provision '(mpd))
|
(provision '(mpd))
|
||||||
(start #~(make-forkexec-constructor
|
(start #~(make-forkexec-constructor
|
||||||
(list #$(file-append mpd "/bin/mpd")
|
(list #$(file-append mpd "/bin/mpd")
|
||||||
"--no-daemon"
|
"--no-daemon"
|
||||||
#$(mpd-config->file config))
|
#$(mpd-config->file config))
|
||||||
#:pid-file #$(mpd-file-name config "pid")
|
|
||||||
#:environment-variables
|
#:environment-variables
|
||||||
;; Required to detect PulseAudio when run under a user account.
|
;; Required to detect PulseAudio when run under a user account.
|
||||||
'(#$(string-append
|
(list (string-append
|
||||||
"XDG_RUNTIME_DIR=/run/user/"
|
"XDG_RUNTIME_DIR=/run/user/"
|
||||||
(number->string
|
(number->string
|
||||||
(passwd:uid
|
(passwd:uid
|
||||||
(getpwnam (mpd-configuration-user config))))))
|
(getpwnam #$(mpd-configuration-user config))))))
|
||||||
#:log-file #$(mpd-file-name config "log")))
|
#:log-file #$(mpd-file-name config "log")))
|
||||||
(stop #~(make-kill-destructor))))
|
(stop #~(make-kill-destructor))))
|
||||||
|
|
||||||
|
@ -158,10 +161,26 @@ (define (mpd-service-activation config)
|
||||||
(define %user
|
(define %user
|
||||||
(getpw #$(mpd-configuration-user config)))
|
(getpw #$(mpd-configuration-user config)))
|
||||||
|
|
||||||
(let ((directory #$(mpd-file-name config "")))
|
(let ((directory #$(mpd-file-name config ".mpd")))
|
||||||
(mkdir-p directory)
|
(mkdir-p directory)
|
||||||
(chown directory (passwd:uid %user) (passwd:gid %user))))))
|
(chown directory (passwd:uid %user) (passwd:gid %user))))))
|
||||||
|
|
||||||
|
|
||||||
|
(define %mpd-accounts
|
||||||
|
;; Default account and group for MPD.
|
||||||
|
(list (user-group (name "mpd") (system? #t))
|
||||||
|
(user-account
|
||||||
|
(name "mpd")
|
||||||
|
(group "mpd")
|
||||||
|
(system? #t)
|
||||||
|
(comment "Music Player Daemon (MPD) user")
|
||||||
|
|
||||||
|
;; Note: /var/run/mpd hosts one sub-directory per user, of which
|
||||||
|
;; /var/run/mpd/mpd corresponds to the "mpd" user.
|
||||||
|
(home-directory "/var/run/mpd/mpd")
|
||||||
|
|
||||||
|
(shell (file-append shadow "/sbin/nologin")))))
|
||||||
|
|
||||||
(define mpd-service-type
|
(define mpd-service-type
|
||||||
(service-type
|
(service-type
|
||||||
(name 'mpd)
|
(name 'mpd)
|
||||||
|
@ -169,6 +188,8 @@ (define mpd-service-type
|
||||||
(extensions
|
(extensions
|
||||||
(list (service-extension shepherd-root-service-type
|
(list (service-extension shepherd-root-service-type
|
||||||
(compose list mpd-shepherd-service))
|
(compose list mpd-shepherd-service))
|
||||||
|
(service-extension account-service-type
|
||||||
|
(const %mpd-accounts))
|
||||||
(service-extension activation-service-type
|
(service-extension activation-service-type
|
||||||
mpd-service-activation)))
|
mpd-service-activation)))
|
||||||
(default-value (mpd-configuration))))
|
(default-value (mpd-configuration))))
|
||||||
|
|
|
@ -224,6 +224,12 @@ (define builder
|
||||||
(use-modules (guix build utils)
|
(use-modules (guix build utils)
|
||||||
(gnu build vm))
|
(gnu build vm))
|
||||||
|
|
||||||
|
;; Allow non-ASCII file names--e.g., 'nss-certs'--to be decoded
|
||||||
|
;; by 'estimated-partition-size' below.
|
||||||
|
(setenv "GUIX_LOCPATH"
|
||||||
|
#+(file-append glibc-utf8-locales "/lib/locale"))
|
||||||
|
(setlocale LC_ALL "en_US.utf8")
|
||||||
|
|
||||||
(let* ((native-inputs
|
(let* ((native-inputs
|
||||||
'#+(list qemu (canonical-package coreutils)))
|
'#+(list qemu (canonical-package coreutils)))
|
||||||
(linux (string-append
|
(linux (string-append
|
||||||
|
@ -655,7 +661,14 @@ (define root-uuid
|
||||||
'dce)))
|
'dce)))
|
||||||
|
|
||||||
|
|
||||||
(let* ((os (operating-system (inherit os)
|
(let* ((os (operating-system
|
||||||
|
(inherit os)
|
||||||
|
|
||||||
|
;; As in 'virtualized-operating-system', use BIOS-style GRUB.
|
||||||
|
(bootloader (bootloader-configuration
|
||||||
|
(bootloader grub-bootloader)
|
||||||
|
(target "/dev/vda")))
|
||||||
|
|
||||||
;; Assume we have an initrd with the whole QEMU shebang.
|
;; Assume we have an initrd with the whole QEMU shebang.
|
||||||
|
|
||||||
;; Force our own root file system. Refer to it by UUID so that
|
;; Force our own root file system. Refer to it by UUID so that
|
||||||
|
|
|
@ -28,9 +28,7 @@ (define-module (gnu tests audio)
|
||||||
|
|
||||||
(define %mpd-os
|
(define %mpd-os
|
||||||
(simple-operating-system
|
(simple-operating-system
|
||||||
(service mpd-service-type
|
(service mpd-service-type)))
|
||||||
(mpd-configuration
|
|
||||||
(user "root")))))
|
|
||||||
|
|
||||||
(define (run-mpd-test)
|
(define (run-mpd-test)
|
||||||
"Run tests in %mpd-os, which has mpd running."
|
"Run tests in %mpd-os, which has mpd running."
|
||||||
|
@ -62,9 +60,14 @@ (define marionette
|
||||||
(start-service 'mpd))
|
(start-service 'mpd))
|
||||||
marionette))
|
marionette))
|
||||||
|
|
||||||
(test-assert "mpc connect"
|
(test-assert "mpd listening"
|
||||||
|
;; Wait until mpd is actually listening before spawning 'mpc'.
|
||||||
|
(wait-for-tcp-port 6600 marionette))
|
||||||
|
|
||||||
|
(test-equal "mpc connect"
|
||||||
|
0
|
||||||
(marionette-eval
|
(marionette-eval
|
||||||
'(zero? (system #$(file-append mpd-mpc "/bin/mpc")))
|
'(system* #$(file-append mpd-mpc "/bin/mpc"))
|
||||||
marionette))
|
marionette))
|
||||||
|
|
||||||
(test-end)
|
(test-end)
|
||||||
|
|
|
@ -27,8 +27,9 @@ (define-module (gnu tests docker)
|
||||||
#:use-module (gnu services networking)
|
#:use-module (gnu services networking)
|
||||||
#:use-module (gnu services docker)
|
#:use-module (gnu services docker)
|
||||||
#:use-module (gnu services desktop)
|
#:use-module (gnu services desktop)
|
||||||
#:use-module (gnu packages docker)
|
#:use-module ((gnu packages base) #:select (glibc))
|
||||||
#:use-module (gnu packages guile)
|
#:use-module (gnu packages guile)
|
||||||
|
#:use-module (gnu packages docker)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix grafts)
|
#:use-module (guix grafts)
|
||||||
#:use-module (guix monads)
|
#:use-module (guix monads)
|
||||||
|
@ -206,7 +207,7 @@ (define vm
|
||||||
;; load' must be able to store the whole image into memory, hence the
|
;; load' must be able to store the whole image into memory, hence the
|
||||||
;; huge memory requirements. We should avoid the volatile-root setup
|
;; huge memory requirements. We should avoid the volatile-root setup
|
||||||
;; instead.
|
;; instead.
|
||||||
(memory-size 3500)
|
(memory-size 4000)
|
||||||
(port-forwardings '())))
|
(port-forwardings '())))
|
||||||
|
|
||||||
(define test
|
(define test
|
||||||
|
@ -298,5 +299,9 @@ (define %test-docker-system
|
||||||
(description "Run a system image as produced by @command{guix system
|
(description "Run a system image as produced by @command{guix system
|
||||||
docker-image} inside Docker.")
|
docker-image} inside Docker.")
|
||||||
(value (with-monad %store-monad
|
(value (with-monad %store-monad
|
||||||
(>>= (system-docker-image (simple-operating-system))
|
(>>= (system-docker-image (operating-system
|
||||||
|
(inherit (simple-operating-system))
|
||||||
|
;; Use locales for a single libc to
|
||||||
|
;; reduce space requirements.
|
||||||
|
(locale-libcs (list glibc))))
|
||||||
run-docker-system-test)))))
|
run-docker-system-test)))))
|
||||||
|
|
|
@ -404,7 +404,7 @@ (define client-marionette
|
||||||
(test-end)
|
(test-end)
|
||||||
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
|
(exit (= (test-runner-fail-count (test-runner-current)) 0)))))
|
||||||
|
|
||||||
(gexp->derivation "nfs-server-test" test))
|
(gexp->derivation "nfs-root-fs-test" test))
|
||||||
|
|
||||||
(define %test-nfs-root-fs
|
(define %test-nfs-root-fs
|
||||||
(system-test
|
(system-test
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
;;; Copyright © 2017, 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||||
;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
|
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
|
||||||
;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
|
;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
|
||||||
;;;
|
;;;
|
||||||
|
@ -285,6 +285,10 @@ (define marionette
|
||||||
'(file-exists? "/srv/git/test")
|
'(file-exists? "/srv/git/test")
|
||||||
marionette))
|
marionette))
|
||||||
|
|
||||||
|
(test-assert "fcgiwrap listens"
|
||||||
|
;; Wait for fcgiwrap to be ready before cloning.
|
||||||
|
(wait-for-tcp-port 9000 marionette))
|
||||||
|
|
||||||
;; Make sure we can clone the repo from the host.
|
;; Make sure we can clone the repo from the host.
|
||||||
(test-equal "clone"
|
(test-equal "clone"
|
||||||
'#$README-contents
|
'#$README-contents
|
||||||
|
|
|
@ -663,17 +663,11 @@ (define %distro-directory
|
||||||
(define (check-patch-file-names package)
|
(define (check-patch-file-names package)
|
||||||
"Emit a warning if the patches requires by PACKAGE are badly named or if the
|
"Emit a warning if the patches requires by PACKAGE are badly named or if the
|
||||||
patch could not be found."
|
patch could not be found."
|
||||||
(guard (c ((message-condition? c) ;raised by 'search-patch'
|
(guard (c ((formatted-message? c) ;raised by 'search-patch'
|
||||||
(list
|
|
||||||
;; Use %make-warning, as condition-mesasge is already
|
|
||||||
;; translated.
|
|
||||||
(%make-warning package (condition-message c)
|
|
||||||
#:field 'patch-file-names)))
|
|
||||||
((formatted-message? c)
|
|
||||||
(list (%make-warning package
|
(list (%make-warning package
|
||||||
(apply format #f
|
(formatted-message-string c)
|
||||||
(G_ (formatted-message-string c))
|
(formatted-message-arguments c)
|
||||||
(formatted-message-arguments c))))))
|
#:field 'source))))
|
||||||
(define patches
|
(define patches
|
||||||
(match (package-source package)
|
(match (package-source package)
|
||||||
((? origin? origin) (origin-patches origin))
|
((? origin? origin) (origin-patches origin))
|
||||||
|
|
|
@ -891,6 +891,8 @@ (define (http-write server client response body)
|
||||||
client))
|
client))
|
||||||
(port (begin
|
(port (begin
|
||||||
(force-output client)
|
(force-output client)
|
||||||
|
(setsockopt client SOL_SOCKET
|
||||||
|
SO_SNDBUF (* 128 1024))
|
||||||
(nar-response-port response compression))))
|
(nar-response-port response compression))))
|
||||||
;; XXX: Given our ugly workaround for <http://bugs.gnu.org/21093> in
|
;; XXX: Given our ugly workaround for <http://bugs.gnu.org/21093> in
|
||||||
;; 'render-nar', BODY here is just the file name of the store item.
|
;; 'render-nar', BODY here is just the file name of the store item.
|
||||||
|
|
|
@ -435,6 +435,7 @@ (define (warn-about-load-error file module args) ;FIXME: factorize with ↑
|
||||||
(gettext (condition-message obj) %gettext-domain)))
|
(gettext (condition-message obj) %gettext-domain)))
|
||||||
((formatted-message? obj)
|
((formatted-message? obj)
|
||||||
(warning (G_ "failed to load '~a': ~a~%")
|
(warning (G_ "failed to load '~a': ~a~%")
|
||||||
|
file
|
||||||
(apply format #f
|
(apply format #f
|
||||||
(gettext (formatted-message-string obj)
|
(gettext (formatted-message-string obj)
|
||||||
%gettext-domain)
|
%gettext-domain)
|
||||||
|
@ -717,7 +718,7 @@ (define (port-filename* port)
|
||||||
(package-full-name package)
|
(package-full-name package)
|
||||||
(build-system-name system))))
|
(build-system-name system))))
|
||||||
((gexp-input-error? c)
|
((gexp-input-error? c)
|
||||||
(let ((input (package-error-invalid-input c)))
|
(let ((input (gexp-error-invalid-input c)))
|
||||||
(leave (G_ "~s: invalid G-expression input~%")
|
(leave (G_ "~s: invalid G-expression input~%")
|
||||||
(gexp-error-invalid-input c))))
|
(gexp-error-invalid-input c))))
|
||||||
((profile-not-found-error? c)
|
((profile-not-found-error? c)
|
||||||
|
|
22267
po/doc/guix-manual.de.po
22267
po/doc/guix-manual.de.po
File diff suppressed because it is too large
Load diff
23616
po/doc/guix-manual.es.po
23616
po/doc/guix-manual.es.po
File diff suppressed because it is too large
Load diff
1200
po/guix/de.po
1200
po/guix/de.po
File diff suppressed because it is too large
Load diff
1411
po/guix/es.po
1411
po/guix/es.po
File diff suppressed because it is too large
Load diff
|
@ -18,7 +18,7 @@ msgstr ""
|
||||||
"Project-Id-Version: guix 1.2.0-pre3\n"
|
"Project-Id-Version: guix 1.2.0-pre3\n"
|
||||||
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
|
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
|
||||||
"POT-Creation-Date: 2020-11-05 17:27+0100\n"
|
"POT-Creation-Date: 2020-11-05 17:27+0100\n"
|
||||||
"PO-Revision-Date: 2020-11-08 21:36+0100\n"
|
"PO-Revision-Date: 2020-11-09 16:46+0100\n"
|
||||||
"Last-Translator: Julien Lepiller <julien@lepiller.eu>\n"
|
"Last-Translator: Julien Lepiller <julien@lepiller.eu>\n"
|
||||||
"Language-Team: French <traduc@traduc.org>\n"
|
"Language-Team: French <traduc@traduc.org>\n"
|
||||||
"Language: fr\n"
|
"Language: fr\n"
|
||||||
|
@ -4978,8 +4978,8 @@ msgstr "résolution de « ~a » à partir du répertoire actuel~%"
|
||||||
#, scheme-format
|
#, scheme-format
|
||||||
msgid "importing module~{ ~a~} from the host~%"
|
msgid "importing module~{ ~a~} from the host~%"
|
||||||
msgid_plural "importing modules~{ ~a~} from the host~%"
|
msgid_plural "importing modules~{ ~a~} from the host~%"
|
||||||
msgstr[0] "import du module~{ ~a~} à partir de l'hôte"
|
msgstr[0] "import du module~{ ~a~} à partir de l'hôte~%"
|
||||||
msgstr[1] "import des modules~{ ~a~} à partir de l'hôte"
|
msgstr[1] "import des modules~{ ~a~} à partir de l'hôte~%"
|
||||||
|
|
||||||
#: guix/gnu-maintenance.scm:699
|
#: guix/gnu-maintenance.scm:699
|
||||||
msgid "Updater for GNU packages"
|
msgid "Updater for GNU packages"
|
||||||
|
@ -6474,7 +6474,7 @@ msgstr "produit une sortie de déboguage"
|
||||||
#~ msgstr "argument non supporté pour le graphe de référence"
|
#~ msgstr "argument non supporté pour le graphe de référence"
|
||||||
|
|
||||||
#~ msgid "~a: note: using ~a but ~a is available upstream~%"
|
#~ msgid "~a: note: using ~a but ~a is available upstream~%"
|
||||||
#~ msgstr "~a: note: utilisation de ~a mais ~a est disponible en amont"
|
#~ msgstr "~a: note: utilisation de ~a mais ~a est disponible en amont~%"
|
||||||
|
|
||||||
#~ msgid "~a: not a number~%"
|
#~ msgid "~a: not a number~%"
|
||||||
#~ msgstr "~a: pas un nombre~%"
|
#~ msgstr "~a: pas un nombre~%"
|
||||||
|
@ -6486,7 +6486,7 @@ msgstr "produit une sortie de déboguage"
|
||||||
#~ msgstr "échec de la compilation du profil vide~%"
|
#~ msgstr "échec de la compilation du profil vide~%"
|
||||||
|
|
||||||
#~ msgid "nothing to do: already at the empty profile~%"
|
#~ msgid "nothing to do: already at the empty profile~%"
|
||||||
#~ msgstr "aucune action à faire: profil courant vide"
|
#~ msgstr "aucune action à faire: profil courant vide~%"
|
||||||
|
|
||||||
#~ msgid "(Please consider upgrading Guile to get proper progress report.)~%"
|
#~ msgid "(Please consider upgrading Guile to get proper progress report.)~%"
|
||||||
#~ msgstr "(Veuillez mettre Guile à jour pour obtenir le rapport de progression approprié.)~%"
|
#~ msgstr "(Veuillez mettre Guile à jour pour obtenir le rapport de progression approprié.)~%"
|
||||||
|
|
1182
po/guix/ta.po
1182
po/guix/ta.po
File diff suppressed because it is too large
Load diff
7854
po/packages/de.po
7854
po/packages/de.po
File diff suppressed because it is too large
Load diff
27015
po/packages/es.po
27015
po/packages/es.po
File diff suppressed because it is too large
Load diff
|
@ -315,6 +315,9 @@ guix system build "$tmpdir/config.scm" -n 2>&1 | \
|
||||||
guix system search tor | grep "^name: tor"
|
guix system search tor | grep "^name: tor"
|
||||||
guix system search tor | grep "^shepherdnames: tor"
|
guix system search tor | grep "^shepherdnames: tor"
|
||||||
guix system search anonym network | grep "^name: tor"
|
guix system search anonym network | grep "^name: tor"
|
||||||
|
guix system search . > "$tmpdir/search"
|
||||||
|
test $(wc -l < "$tmpdir/search") -gt 500
|
||||||
|
rm "$tmpdir/search"
|
||||||
|
|
||||||
# Below, use -n (--dry-run) for the tests because if we actually tried to
|
# Below, use -n (--dry-run) for the tests because if we actually tried to
|
||||||
# build these images, the commands would take hours to run in the worst case.
|
# build these images, the commands would take hours to run in the worst case.
|
||||||
|
|
Loading…
Reference in a new issue