forked from tribes/guix
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a0178d34f5 | |||
| 21fcced608 | |||
| abff6f0fac | |||
| 63d26e81ee | |||
| b507a0e38c | |||
| 80dc6ad4a8 | |||
| ed2d4d52dd | |||
| 7418a20074 | |||
| 945ad48cd8 | |||
| 3a0fcaa0fe | |||
| 8a154c2915 | |||
| 9562a2eb61 | |||
| dde0291476 | |||
| 566982bc71 |
@@ -1,6 +1,7 @@
|
||||
*.eps
|
||||
*.go
|
||||
*.log
|
||||
*.mo
|
||||
*.pdf
|
||||
*.png
|
||||
*.tar.xz
|
||||
|
||||
@@ -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>)
|
||||
*** Installer’s kmscon no longer uses up 100% CPU
|
||||
(<https://issues.guix.gnu.org/39341>)
|
||||
*** Git checkouts can be updated to the remote’s 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
|
||||
|
||||
|
||||
@@ -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)))
|
||||
|
||||
@@ -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.0rc2")
|
||||
(commit "566982bc7133173ed863b543fa2fd38d8fab9af7")
|
||||
(revision 1))
|
||||
(package
|
||||
(name "guix")
|
||||
@@ -149,7 +149,7 @@
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0b92w6lqp4h75dds3fbxdp5shvfpkcdin809f8v94l4a2fbxkais"))
|
||||
"0ys8sjckp1a9hmisvjwjr34w7bzi9pskgkwiiqhjm36fs0z8ks30"))
|
||||
(file-name (string-append "guix-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
@@ -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)))
|
||||
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
+10686
-10712
File diff suppressed because it is too large
Load Diff
+10781
-11557
File diff suppressed because it is too large
Load Diff
+10668
-10732
File diff suppressed because it is too large
Load Diff
+10687
-10715
File diff suppressed because it is too large
Load Diff
+10664
-10728
File diff suppressed because it is too large
Load Diff
+10664
-10728
File diff suppressed because it is too large
Load Diff
+10662
-10725
File diff suppressed because it is too large
Load Diff
+10675
-11785
File diff suppressed because it is too large
Load Diff
+10710
-10771
File diff suppressed because it is too large
Load Diff
+10675
-11458
File diff suppressed because it is too large
Load Diff
@@ -12,9 +12,11 @@ hu
|
||||
it
|
||||
ko
|
||||
nl
|
||||
oc
|
||||
pl
|
||||
pt_BR
|
||||
ru
|
||||
si
|
||||
sk
|
||||
sr
|
||||
sv
|
||||
|
||||
+283
-279
File diff suppressed because it is too large
Load Diff
+294
-285
File diff suppressed because it is too large
Load Diff
+292
-283
File diff suppressed because it is too large
Load Diff
+283
-279
File diff suppressed because it is too large
Load Diff
+294
-285
File diff suppressed because it is too large
Load Diff
+295
-284
File diff suppressed because it is too large
Load Diff
+283
-279
File diff suppressed because it is too large
Load Diff
+289
-285
File diff suppressed because it is too large
Load Diff
+289
-285
File diff suppressed because it is too large
Load Diff
+701
-540
File diff suppressed because it is too large
Load Diff
+6628
File diff suppressed because it is too large
Load Diff
+317
-312
File diff suppressed because it is too large
Load Diff
+811
-1096
File diff suppressed because it is too large
Load Diff
+298
-295
File diff suppressed because it is too large
Load Diff
+6628
File diff suppressed because it is too large
Load Diff
+321
-310
File diff suppressed because it is too large
Load Diff
+283
-279
File diff suppressed because it is too large
Load Diff
+283
-279
File diff suppressed because it is too large
Load Diff
+294
-285
File diff suppressed because it is too large
Load Diff
+283
-279
File diff suppressed because it is too large
Load Diff
+283
-279
File diff suppressed because it is too large
Load Diff
@@ -10,6 +10,8 @@ fa
|
||||
fr
|
||||
hu
|
||||
ko
|
||||
nl
|
||||
oc
|
||||
pl
|
||||
pt_BR
|
||||
sk
|
||||
|
||||
+584
-556
File diff suppressed because it is too large
Load Diff
+584
-556
File diff suppressed because it is too large
Load Diff
+584
-556
File diff suppressed because it is too large
Load Diff
+584
-556
File diff suppressed because it is too large
Load Diff
+584
-556
File diff suppressed because it is too large
Load Diff
+584
-556
File diff suppressed because it is too large
Load Diff
+584
-556
File diff suppressed because it is too large
Load Diff
+20927
File diff suppressed because it is too large
Load Diff
+20916
File diff suppressed because it is too large
Load Diff
+584
-556
File diff suppressed because it is too large
Load Diff
+584
-556
File diff suppressed because it is too large
Load Diff
+590
-558
File diff suppressed because it is too large
Load Diff
+584
-556
File diff suppressed because it is too large
Load Diff
+584
-556
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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)))
|
||||
|
||||
Reference in New Issue
Block a user