1
0
forked from tribes/guix

Compare commits

...

20 Commits

Author SHA1 Message Date
Mathieu Othacehe aa34d4d28d ci: Update to the last version.
* gnu/ci.scm: Update to the master version.
2021-06-14 08:58:41 +02:00
Leo Famulari 6110751b53 nls: Mention Libera Chat in the translations.
* po/doc/guix-manual.de.po, po/doc/guix-manual.es.po, po/doc/guix-manual.fa.po,
po/doc/guix-manual.fr.po, po/doc/guix-manual.it.po, po/doc/guix-manual.ko.po,
po/doc/guix-manual.pt_BR.po, po/doc/guix-manual.ru.po, po/doc/guix-manual.sk.po,
po/doc/guix-manual.zh_CN.po: Point users to Libera Chat.
2021-05-20 16:57:35 -04:00
Tobias Geerinckx-Rice a8509d8d43 The #guix channel is hosted by Libera Chat.
* README (Contact): Update network name.
* ROADMAP: Likewise.
* doc/contributing.texi (Contributing): Likewise.
* doc/guix.texi (After System Installation): Likewise.
2021-05-20 16:57:28 -04:00
Leo Famulari 0961807915 doc: Clarify further the distinction between the web-based manuals.
As discussed on #guix IRC, several of us struggle to reliably choose the
right option based on the old labels:

https://logs.guix.gnu.org/guix/2021-04-20.log#182137

* doc/build.scm (html-manual-indexes): Try to distinguish between the
two options more clearly.
2021-05-12 15:00:06 -04:00
Maxim Cournoyer fb5d04d363 gnu: guix: Update to 771b866. 2021-05-11 16:27:17 -04:00
Maxim Cournoyer 771b866c55 gnu: guix: Update to 1.3.0. 2021-05-11 14:15:04 -04:00
Maxim Cournoyer a0178d34f5 nls: Update translations. 2021-05-11 09:17:00 -04:00
Maxim Cournoyer 21fcced608 nls: Update translations. 2021-05-10 22:34:43 -04:00
Maxim Cournoyer abff6f0fac .gitignore: Ignore .mo files.
* .gitignore: Ignore files matching the *.mo pattern.
2021-05-10 22:33:08 -04:00
Maxim Cournoyer 63d26e81ee nls: New nl and oc translations for the 'packages' component.
* po/packages/nl.po: New file.
* po/packages/oc.po: Likewise.
* po/packages/LINGUAS: Register them.
2021-05-10 22:27:53 -04:00
Maxim Cournoyer b507a0e38c nls: New oc and si translations for the 'guix' component.
* po/guix/oc.po: New file.
* po/guix/si.po: Likewise.
* po/guix/LINGUAS: Register them.
2021-05-10 22:25:36 -04:00
Maxim Cournoyer 80dc6ad4a8 Update NEWS. 2021-05-10 13:48:30 -04:00
Maxim Cournoyer ed2d4d52dd maint: update-NEWS: Sort packages prior writing to the data file.
* build-aux/update-NEWS.scm (main): Sort packages.
2021-05-10 13:48:02 -04:00
Leo Famulari 7418a20074 Update NEWS. 2021-05-10 11:21:02 -04:00
Maxim Cournoyer 945ad48cd8 system: vm-image.tmpl: Add a crutch to allow refreshing the resolution.
Inspired by
https://github.com/jollheef/appvm/commit/1270b2e209bc002e69bbe6351ad5b04b7facfcc8.
The price to pay is about 5% of a CPU core usage in the guest in the worst
scenario.

* gnu/system/examples/vm-image.tmpl
(auto-update-resolution-crutch): New mcron job.
[services]: Extend the mcron-service with it.
2021-05-10 10:18:19 -04:00
Ludovic Courtès 3a0fcaa0fe Update NEWS. 2021-05-10 11:42:03 +02:00
Ludovic Courtès 8a154c2915 describe: Gracefully handle profiles that lack provenance info.
Fixes <https://bugs.gnu.org/48313>.

Previously, 'current-channels' would return the empty list when
'current-profile' is true but the profile lacks provenance info.

* guix/describe.scm (current-channels)[build-time-metadata]: New
procedure.  Call it when 'manifest-entry-channel' returns #f for all of
ENTRIES.
* guix/scripts/describe.scm (guix-describe): When PROFILE is true, pass
third argument to 'display-profile-info'.
2021-05-09 23:46:46 +02:00
Ludovic Courtès 9562a2eb61 diagnostics, ui: Adjust to 'read-error' and 'syntax-error' in Guile 3.0.6.
* guix/diagnostics.scm (source-properties->location): Add clause for
vectors.
* guix/ui.scm (report-load-error): Tweak 'read-error' handling for 3.0.6.
* tests/guix-package.sh: Relax regexp for the "unbound variable"
diagnostic check.
* tests/guix-system.sh: Adjust "missing closing paren" check for 3.0.6.
* tests/records.scm (location-alist): New procedure.
("define-record-type* & wrong field specifier")
("define-record-type* & wrong field specifier, identifier")
("define-record-type* & duplicate initializers"): Use it.
2021-05-09 23:45:36 +02:00
Maxim Cournoyer dde0291476 gnu: guix: Update to 566982b. 2021-05-08 00:33:14 -04:00
Maxim Cournoyer 566982bc71 gnu: guix: Update to 1.3.0rc2. 2021-05-08 00:29:22 -04:00
68 changed files with 176161 additions and 123327 deletions
+1
View File
@@ -1,6 +1,7 @@
*.eps
*.go
*.log
*.mo
*.pdf
*.png
*.tar.xz
+48
View File
@@ -35,12 +35,40 @@ Please send Guix bug reports to bug-guix@gnu.org.
*** Offloading no longer requires guile to be in $PATH on build machines
*** GUIX_EXTENSIONS_PATH is honored when looking for extensions such as GWL
*** New --format option for guix processes
*** guix upgrade can now be passed several regexps
** Distribution
*** The Guix System demonstration VM now supports the SPICE protocol
*** The installation script can now run in a fully automated manner
*** qemu-binfmt-service-type now relies on statically-linked QEMU
*** sysctl-service-type enables Linux protected hardlinks/symlinks by default
*** %base-services now includes a default sysctl-service-type instance
*** Linux Logical Volumne Manager (LVM) now supported, via lvm-device-mapping
*** guix system init has been optimized
*** guix system warns when users/groups appear more than once
*** guix system image -t rock64-raw produces images for Rock64 devices
*** herd discover guix-daemon on turns on substitute server discovery
*** Default initrd now supports bcachefs
*** CUPS service includes brlaser extension by default
*** “lp” group is no longer included in %base-groups
*** New --graph-backend option for guix system {extension,shepherd}-graph
*** New services
agate, cuirass-remote-worker, ipfs, keepalived, laminar, radicale, syncthing,
transmission-daemon, wireguard, xorg-server
*** 2009 new packages
*** 3100 package updates
Noteworthy updates:
emacs 27.2, gcc-toolchain 10.3.0, ghc 8.8.3, glibc 2.31, gnome 3.34.5,
gnupg 2.2.27, go 1.14.15, guile 3.0.5, icecat 78.10.0-guix0-preview1,
icedtea 3.7.0, inkscape 1.0.2, julia 1.5.3, libreoffice 6.4.7.2,
linux-libre 5.11.15, ocaml 4.11.1, octave 6.2.0, openjdk 14.0,
python 3.8.2, racket 8.0, rust 1.51.0, r 4.0.4, sbcl 2.1.3, xfce 4.16.0,
xorg-server 1.20.10
** Programming interfaces
@@ -67,6 +95,26 @@ Please send Guix bug reports to bug-guix@gnu.org.
(<https://issues.guix.gnu.org/46330>)
*** Update GnuTLS to 3.6.15, addressing a time-dependent test failure
(<https://issues.guix.gnu.org/44559>)
*** Booted system is fully protected from garbage collection
(<https://issues.guix.gnu.org/46767>)
*** Add MSDOS disk label support on UEFI systems
(<https://issues.guix.gnu.org/47889>)
*** Installers kmscon no longer uses up 100% CPU
(<https://issues.guix.gnu.org/39341>)
*** Git checkouts can be updated to the remotes default HEAD
(<https://issues.guix.gnu.org/45187>)
*** guix pull correctly displays early builds and downloads
(<https://issues.guix.gnu.org/41930>)
*** Fix OpenRC init scripts for guix-daemon
(<https://issues.guix.gnu.org/46871>)
*** Activate system when switching generations
(<https://issues.guix.gnu.org/38884>)
*** guix environment -C preserves original mount flags
(<https://issues.guix.gnu.org/46292>)
*** Remove duplicates in profile transactions
(<https://issues.guix.gnu.org/23874>)
*** Fix sound problems with ALSA plugins on foreign distros
(<https://issues.guix.gnu.org/40832>)
** Native language support
+1 -1
View File
@@ -62,7 +62,7 @@ Please email <help-guix@gnu.org> for questions and <bug-guix@gnu.org> for bug
reports; email <gnu-system-discuss@gnu.org> for general issues regarding the
GNU system.
Join #guix on irc.freenode.net.
Join #guix on irc.libera.chat.
* Guix & Nix
+1 -1
View File
@@ -23,7 +23,7 @@ There will be a few 0.x releases by then to give the new features more
exposure and testing.
You're welcome to discuss this road map on guix-devel@gnu.org or #guix on
Freenode!
the Libera Chat IRC network!
* Features scheduled for 1.0
+10 -4
View File
@@ -166,16 +166,22 @@ paragraph."
(string-append data-directory "/packages-"
version ".txt"))
(define (package<? p1 p2)
(string<? (package-full-name p1) (package-full-name p2)))
(let-values (((previous-version new-version)
(call-with-input-file news-file NEWS->versions)))
(format (current-error-port) "Updating NEWS for ~a to ~a...~%"
previous-version new-version)
(let* ((old (call-with-input-file (package-file previous-version)
read))
(new (fold-packages (lambda (p r)
(alist-cons (package-name p) (package-version p)
r))
'())))
(all-packages/sorted (sort (fold-packages (lambda (p r)
(cons p r))
'())
package<?))
(new (map (lambda (p)
(cons (package-name p) (package-version p)))
all-packages/sorted)))
(call-with-output-file (package-file new-version)
(lambda (port)
(pretty-print new port)))
+1 -1
View File
@@ -948,7 +948,7 @@ from SOURCE."
(div
(ul
(li (a (@ (href "html_node"))
"HTML, with one page per node"))
"HTML, with a separate page per node"))
(li (a (@ (href
,(string-append
#$manual
+1 -1
View File
@@ -3,7 +3,7 @@
This project is a cooperative effort, and we need your help to make it
grow! Please get in touch with us on @email{guix-devel@@gnu.org} and
@code{#guix} on the Freenode IRC network. We welcome ideas, bug
@code{#guix} on the Libera Chat IRC network. We welcome ideas, bug
reports, patches, and anything that may be helpful to the project. We
particularly welcome help on packaging (@pxref{Packaging Guidelines}).
+1 -1
View File
@@ -2627,7 +2627,7 @@ root's login shell, you'll need to @command{guix pull} separately.
@end quotation
Now, @pxref{Getting Started}, and
join us on @code{#guix} on the Freenode IRC network or on
join us on @code{#guix} on the Libera Chat IRC network or on
@email{guix-devel@@gnu.org} to share your experience!
+60 -34
View File
@@ -66,9 +66,14 @@
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
#:export (%core-packages
#:export (derivation->job
image->job
%core-packages
%cross-targets
channel-source->package
arguments->systems
cuirass-jobs))
;;; Commentary:
@@ -87,6 +92,9 @@ MAX-SILENT-TIME and TIMEOUT are build options passed to the daemon when
building the derivation."
`((#:job-name . ,name)
(#:derivation . ,(derivation-file-name drv))
(#:inputs . ,(map (compose derivation-file-name
derivation-input-derivation)
(derivation-inputs drv)))
(#:outputs . ,(filter-map
(lambda (res)
(match res
@@ -232,43 +240,48 @@ SYSTEM."
(define (hours hours)
(* 3600 hours))
(define* (image->job store image
#:key name system)
"Return the job for IMAGE on SYSTEM. If NAME is passed, use it as job name,
otherwise use the IMAGE name."
(let* ((image-name (or name
(symbol->string (image-name image))))
(name (string-append image-name "." system))
(drv (run-with-store store
(mbegin %store-monad
(set-guile-for-build (default-guile))
(lower-object (system-image image))))))
(parameterize ((%graft? #f))
(derivation->job name drv))))
(define (image-jobs store system)
"Return a list of jobs that build images for SYSTEM."
(define (->job name drv)
(let ((name (string-append name "." system)))
(parameterize ((%graft? #f))
(derivation->job name drv))))
(define (build-image image)
(run-with-store store
(mbegin %store-monad
(set-guile-for-build (default-guile))
(lower-object (system-image image)))))
(define MiB
(expt 2 20))
(if (member system %guix-system-supported-systems)
`(,(->job "usb-image"
(build-image
(image
(inherit efi-disk-image)
(operating-system installation-os))))
,(->job "iso9660-image"
(build-image
(image
(inherit (image-with-label
iso9660-image
(string-append "GUIX_" system "_"
(if (> (string-length %guix-version) 7)
(substring %guix-version 0 7)
%guix-version))))
(operating-system installation-os))))
`(,(image->job store
(image
(inherit efi-disk-image)
(operating-system installation-os))
#:name "usb-image"
#:system system)
,(image->job
store
(image
(inherit (image-with-label
iso9660-image
(string-append "GUIX_" system "_"
(if (> (string-length %guix-version) 7)
(substring %guix-version 0 7)
%guix-version))))
(operating-system installation-os))
#:name "iso9660-image"
#:system system)
;; Only cross-compile Guix System images from x86_64-linux for now.
,@(if (string=? system "x86_64-linux")
(map (lambda (image)
(->job (symbol->string (image-name image))
(build-image image)))
(map (cut image->job store <>
#:system system)
%guix-system-images)
'()))
'()))
@@ -435,6 +448,13 @@ valid."
load-manifest)
manifests))))
(define (arguments->systems arguments)
"Return the systems list from ARGUMENTS."
(match (assoc-ref arguments 'systems)
(#f %cuirass-supported-systems)
((lst ...) lst)
((? string? str) (call-with-input-string str read))))
;;;
;;; Cuirass entry point.
@@ -446,10 +466,7 @@ valid."
(assoc-ref arguments 'subset))
(define systems
(match (assoc-ref arguments 'systems)
(#f %cuirass-supported-systems)
((lst ...) lst)
((? string? str) (call-with-input-string str read))))
(arguments->systems arguments))
(define channels
(let ((channels (assq-ref arguments 'channels)))
@@ -514,6 +531,15 @@ valid."
('tarball
;; Build Guix tarball only.
(tarball-jobs store system))
(('custom . modules)
;; Build custom modules jobs only.
(append-map
(lambda (module)
(let ((proc (module-ref
(resolve-interface module)
'cuirass-jobs)))
(proc store arguments)))
modules))
(('channels . channels)
;; Build only the packages from CHANNELS.
(let ((all (all-packages)))
+3 -3
View File
@@ -131,8 +131,8 @@
;; Latest version of Guix, which may or may not correspond to a release.
;; Note: the 'update-guix-package.scm' script expects this definition to
;; start precisely like this.
(let ((version "1.3.0rc1")
(commit "6fd7f161d7cd6248e99e9ba44424b162d443cd61")
(let ((version "1.3.0")
(commit "771b866c55e5f992df60f6c32f5fdd78b64e17f6")
(revision 1))
(package
(name "guix")
@@ -149,7 +149,7 @@
(commit commit)))
(sha256
(base32
"0b92w6lqp4h75dds3fbxdp5shvfpkcdin809f8v94l4a2fbxkais"))
"0w8w05w6v3lc6478vfw67jzn0hbd9nsncpx9i9ch1lck53r8vs44"))
(file-name (string-append "guix-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
+16 -1
View File
@@ -5,7 +5,7 @@
;;
(use-modules (gnu) (guix) (srfi srfi-1))
(use-service-modules desktop networking spice ssh xorg)
(use-service-modules desktop mcron networking spice ssh xorg)
(use-package-modules bootloaders certs fonts nvi
package-management wget xorg)
@@ -24,6 +24,18 @@ Run '\x1b[1;37minfo guix\x1b[0m' to browse documentation.
accounts.\x1b[0m
"))
;;; XXX: Xfce does not implement what is needed for the SPICE dynamic
;;; resolution to work (see:
;;; https://gitlab.xfce.org/xfce/xfce4-settings/-/issues/142). Workaround it
;;; by manually invoking xrandr every second.
(define auto-update-resolution-crutch
#~(job '(next-second)
(lambda ()
(setenv "DISPLAY" ":0.0")
(setenv "XAUTHORITY" "/home/guest/.Xauthority")
(execl (string-append #$xrandr "/bin/xrandr") "xrandr" "-s" "0"))
#:user "guest"))
(operating-system
(host-name "gnu")
(timezone "Etc/UTC")
@@ -89,6 +101,9 @@ root ALL=(ALL) ALL
;; integration with the host, etc.
(service spice-vdagent-service-type)
(simple-service 'cron-jobs mcron-service-type
(list auto-update-resolution-crutch))
;; Use the DHCP client service rather than NetworkManager.
(service dhcp-client-service-type))
+13 -4
View File
@@ -122,15 +122,24 @@ lives in, or the empty list if this is not applicable."
(mlambda ()
"Return the list of channels currently available, including the 'guix'
channel. Return the empty list if this information is missing."
(define (build-time-metadata)
(match (channel-metadata)
(#f '())
(sexp (or (and=> (sexp->channel sexp 'guix) list) '()))))
(match (current-profile-entries)
(()
;; As a fallback, if we're not running from a profile, use 'guix'
;; channel metadata from (guix config).
(match (channel-metadata)
(#f '())
(sexp (or (and=> (sexp->channel sexp 'guix) list) '()))))
(build-time-metadata))
(entries
(filter-map manifest-entry-channel entries)))))
(match (filter-map manifest-entry-channel entries)
(()
;; This profile lacks provenance metadata, so fall back to
;; build-time metadata as returned by 'channel-metadata'.
(build-time-metadata))
(lst
lst))))))
(define (package-path-entries)
"Return two values: the list of package path entries to be added to the
+5 -1
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -233,6 +233,10 @@ etc."
(make-location file (+ line 1) col)))
(#f
#f)
(#(file line column)
;; Guile >= 3.0.6 uses vectors instead of alists internally, which can be
;; seen in the arguments to 'syntax-error' exceptions.
(location file (+ 1 line) column))
(_
(let ((file (assq-ref loc 'filename))
(line (assq-ref loc 'line))
+8 -1
View File
@@ -301,4 +301,11 @@ text. The hyperlink links to a web view of COMMIT, when available."
(channels
(display-profile-info #f format channels))))
(profile
(display-profile-info (canonicalize-profile profile) format))))))
;; For the current profile, resort to 'current-channels', which has a
;; fallback to metadata from (guix config) in case PROFILE lacks it.
(let ((channels (if (and (current-profile)
(string=? profile (current-profile)))
(current-channels)
(profile-channels profile))))
(display-profile-info (canonicalize-profile profile)
format channels)))))))
+6 -4
View File
@@ -376,12 +376,14 @@ ARGS is the list of arguments received by the 'throw' handler."
(('system-error . rest)
(let ((err (system-error-errno args)))
(report-error (G_ "failed to load '~a': ~a~%") file (strerror err))))
(('read-error "scm_i_lreadparen" message _ ...)
(('read-error _ message args ...)
;; Guile's missing-paren messages are obscure so we make them more
;; intelligible here.
(if (string-suffix? "end of file" message)
(let ((location (string-drop-right message
(string-length "end of file"))))
(if (or (string-suffix? "end of file" message) ;Guile < 3.0.6
(and (string-contains message "unexpected end of input")
(member '(#\)) args)))
(let ((location (string-take message
(+ 2 (string-contains message ": ")))))
(format (current-error-port) (G_ "~amissing closing parenthesis~%")
location))
(apply throw args)))
+3 -3
View File
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: guix manual checkout\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
"POT-Creation-Date: 2021-01-25 00:00+0100\n"
"PO-Revision-Date: 2021-02-19 10:40+0000\n"
"PO-Revision-Date: 2021-05-03 02:58+0000\n"
"Last-Translator: Soheil Khanalipur <soheil@disroot.org>\n"
"Language-Team: Persian <https://translate.fedoraproject.org/projects/guix/documentation-cookbook/fa/>\n"
"Language: fa\n"
@@ -15,7 +15,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.4.2\n"
"X-Generator: Weblate 4.6.1\n"
#. type: Plain text
#: guix-git/doc/guix-cookbook.texi:7
@@ -154,7 +154,7 @@ msgstr ""
#. type: menuentry
#: guix-git/doc/guix-cookbook.texi:74
msgid "Thanks!"
msgstr "سپاس"
msgstr "سِپاس!"
#. type: appendix
#: guix-git/doc/guix-cookbook.texi:74 guix-git/doc/guix-cookbook.texi:2941
+463 -145
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -71,7 +71,7 @@ msgstr "GNU Guix 개발자"
#: guix-git/doc/guix-cookbook.texi:48
#, no-wrap
msgid "Top"
msgstr "Top"
msgstr "정상"
#. type: Plain text
#: guix-git/doc/guix-cookbook.texi:55
+10690 -10716
View File
File diff suppressed because it is too large Load Diff
+10785 -11561
View File
File diff suppressed because it is too large Load Diff
+10670 -10734
View File
File diff suppressed because it is too large Load Diff
+10691 -10719
View File
File diff suppressed because it is too large Load Diff
+10666 -10730
View File
File diff suppressed because it is too large Load Diff
+10667 -10731
View File
File diff suppressed because it is too large Load Diff
+10665 -10728
View File
File diff suppressed because it is too large Load Diff
+10679 -11789
View File
File diff suppressed because it is too large Load Diff
+10713 -10774
View File
File diff suppressed because it is too large Load Diff
+10678 -11461
View File
File diff suppressed because it is too large Load Diff
+2
View File
@@ -12,9 +12,11 @@ hu
it
ko
nl
oc
pl
pt_BR
ru
si
sk
sr
sv
+283 -279
View File
File diff suppressed because it is too large Load Diff
+294 -285
View File
File diff suppressed because it is too large Load Diff
+292 -283
View File
File diff suppressed because it is too large Load Diff
+283 -279
View File
File diff suppressed because it is too large Load Diff
+294 -285
View File
File diff suppressed because it is too large Load Diff
+295 -284
View File
File diff suppressed because it is too large Load Diff
+283 -279
View File
File diff suppressed because it is too large Load Diff
+289 -285
View File
File diff suppressed because it is too large Load Diff
+289 -285
View File
File diff suppressed because it is too large Load Diff
+701 -540
View File
File diff suppressed because it is too large Load Diff
+6628
View File
File diff suppressed because it is too large Load Diff
+317 -312
View File
File diff suppressed because it is too large Load Diff
+811 -1096
View File
File diff suppressed because it is too large Load Diff
+298 -295
View File
File diff suppressed because it is too large Load Diff
+6628
View File
File diff suppressed because it is too large Load Diff
+321 -310
View File
File diff suppressed because it is too large Load Diff
+283 -279
View File
File diff suppressed because it is too large Load Diff
+283 -279
View File
File diff suppressed because it is too large Load Diff
+294 -285
View File
File diff suppressed because it is too large Load Diff
+283 -279
View File
File diff suppressed because it is too large Load Diff
+283 -279
View File
File diff suppressed because it is too large Load Diff
+2
View File
@@ -10,6 +10,8 @@ fa
fr
hu
ko
nl
oc
pl
pt_BR
sk
+584 -556
View File
File diff suppressed because it is too large Load Diff
+584 -556
View File
File diff suppressed because it is too large Load Diff
+584 -556
View File
File diff suppressed because it is too large Load Diff
+584 -556
View File
File diff suppressed because it is too large Load Diff
+584 -556
View File
File diff suppressed because it is too large Load Diff
+584 -556
View File
File diff suppressed because it is too large Load Diff
+584 -556
View File
File diff suppressed because it is too large Load Diff
+20927
View File
File diff suppressed because it is too large Load Diff
+20916
View File
File diff suppressed because it is too large Load Diff
+584 -556
View File
File diff suppressed because it is too large Load Diff
+584 -556
View File
File diff suppressed because it is too large Load Diff
+590 -558
View File
File diff suppressed because it is too large Load Diff
+584 -556
View File
File diff suppressed because it is too large Load Diff
+584 -556
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -459,7 +459,7 @@ if guix package --bootstrap -n -m "$module_dir/manifest.scm" \
then false
else
cat "$module_dir/stderr"
grep "manifest.scm:[1-3]:.*wonderful-package.*: unbound variable" \
grep "manifest.scm:[1-4]:.*wonderful-package.*: unbound variable" \
"$module_dir/stderr"
fi
+7 -1
View File
@@ -51,6 +51,7 @@ then
# This must not succeed.
exit 1
else
cat "$errorfile"
grep "$tmpfile:2:3:.*missing.* initializers" "$errorfile"
fi
@@ -66,7 +67,12 @@ then
# This must not succeed.
exit 1
else
grep "$tmpfile:4:1: missing closing paren" "$errorfile"
cat "$errorfile"
# Guile 3.0.6 gets line/column numbers for 'read-error' wrong
# (zero-indexed): <https://bugs.gnu.org/48089>.
grep "$tmpfile:4:1: missing closing paren" "$errorfile" || \
grep "$tmpfile:3:0: missing closing paren" "$errorfile"
fi
+14 -4
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -29,6 +29,16 @@
(module-use! module (resolve-interface '(guix records)))
module))
(define (location-alist loc)
;; Return a location alist. In Guile < 3.0.6, LOC is always an alist, but
;; starting with 3.0.6, LOC is a vector (at least when it comes from
;; 'syntax-error' exceptions), hence this conversion.
(match loc
(#(file line column)
`((line . ,line) (column . ,column)
(filename . ,file)))
(_ loc)))
(test-begin "records")
@@ -298,7 +308,7 @@
(pk 'expected-loc
`((line . ,(- (assq-ref loc 'line) 1))
,@(alist-delete 'line loc)))
(pk 'actual-loc location)))))))
(pk 'actual-loc (location-alist location))))))))
(test-assert "define-record-type* & wrong field specifier, identifier"
(let ((exp '(begin
@@ -325,7 +335,7 @@
(pk 'expected-loc
`((line . ,(- (assq-ref loc 'line) 2))
,@(alist-delete 'line loc)))
(pk 'actual-loc location)))))))
(pk 'actual-loc (location-alist location))))))))
(test-assert "define-record-type* & missing initializers"
(catch 'syntax-error
@@ -396,7 +406,7 @@
(pk 'expected-loc
`((line . ,(- (assq-ref loc 'line) 1))
,@(alist-delete 'line loc)))
(pk 'actual-loc location)))))))
(pk 'actual-loc (location-alist location))))))))
(test-assert "ABI checks"
(let ((module (test-module)))