1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-07-11 06:14:05 +02:00

Compare commits

..

28 Commits

Author SHA1 Message Date
Rutherther 88c2e2349a doc: Use versioned manual URLs.
* doc/build.scm (stylized-html): Move to versioned manual URL.
(html-manual): Use versioned manual URL.
* doc/htmlxref.cnf (GUIX): Add /1.4.0.

Change-Id: I82048a9548894e335e7c2427a739733304a7961a
Co-authored-by: Ludovic Courtès <ludo@gnu.org>
Fixes: #5681
2026-01-19 10:02:52 +01:00
Ludovic Courtès 3bf155b888 doc: Fix URL of ‘language-picker.svg’.
Fixes a regression introduced in
824d46a2fe.

* doc/build.scm (stylized-html)[build]: Avoid double leading slash for
‘language-picker.svg’.

Change-Id: I0817949862f061dbbe04352bda1e479347015c84
2025-07-09 14:29:35 +02:00
Ludovic Courtès a40cc32ae8 doc: Add links to versions and variants as a drop-down menu.
* doc/build.scm (%latest-guix-version): New variable.
(stylized-html): Add #:latest-version.
[build](menu-item-separator): New variable.
(version-menu-items, input-file-language): New procedures.
(stylized-html, process-html): Add ‘language’ parameter.  Update
callers.

Change-Id: If7cea2410802eec5af1d3c0407d5569250eb15ef
2025-07-09 14:19:04 +02:00
Ludovic Courtès 1691a4458c doc: Really honor ‘GUIX_WEB_SITE_URL’.
This is useful when testing changes locally, so that CSS links point to
the right place.

* doc/build.scm (%web-site-url): Default to /.
(%manual-css-url): Honor ‘%web-site-url’.

Change-Id: I8d885eba0fb8560dd7da7f21629c716a06c16b1f
2025-07-09 14:17:30 +02:00
Ludovic Courtès e32c098f5d doc: Update build machinery for today’s ‘master’.
This updates TeX Live package names to match what’s available in today’s
‘master’ branch since ‘master’ is what is used to build the on-line copy
of the manual.

* doc/build.scm (pdf-manual)[texinfo-profile]: Update TeX Live package
names.

Change-Id: I5db327e1543a1f9a8697bf3b1b65ab50959efdc4
2025-06-16 17:21:25 +02:00
Ludovic Courtès 4ea1538dd7 doc: Use CSS from guix.gnu.org.
This is a followup to commit 7bbc00ccf0315a68509cacd6a85e1ae8ae7f5e5d of
guix/artwork.git.

* doc/build.scm (%manual-css-url): New variable.
(%makeinfo-html-options): Use it instead of www.gnu.org/…/manual.css.
(stylized-html): Likewise for the default #:manual-css-url.

Change-Id: I20bd3866383f8cbb4984993c15dbab483a17f6c9
2025-06-16 17:17:02 +02:00
Christopher Baines 10527dac08 doc: build.scm: Handle (current-source-directory) being #f.
Since this seems to be the case when the devel manual is being built on
bayfront.

* doc/build.scm: Use the current working directory as a fallback
if (current-source-directory) is #f, and log the value of root.

Change-Id: Ic43fd05a4a0822d9efb935069850f0a8cadd80aa
2025-06-16 17:15:40 +02:00
Ludovic Courtès f492b57306 doc: Change ‘guix-install.sh’ URL to https://guix.gnu.org/install.sh.
This is a followup to 47d554602c, as
proposed in
<https://lists.gnu.org/archive/html/guix-devel/2025-01/msg00167.html>.

* doc/guix.texi (Installation, Binary Installation): Change URL for
installation script.  Add ‘-O guix-install.sh’ to wget command line.

Change-Id: I83702cacc3bdf8d15d3972d2de17e1ce8607ed52
2025-04-09 13:05:06 +02:00
Leo Famulari 9b3c194c2d doc: Use the correct patch submission email address.
Reported by sleep_walker on #guix.

* doc/contributing.texi (Sending a Patch Series): Fix the email address
in the example.

Change-Id: If81243f9f23128a62201a77d328c158de94a4683
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-03-12 22:46:28 +09:00
Ludovic Courtès bba1e723b0 doc: Add missing quotes in wget command for ‘guix-install.sh’.
* doc/guix.texi (Binary Installation): Add missing quotes in wget
command.

Change-Id: I4ebb50492070c298ccc4f02e62d90e875ffe44da
2025-01-21 16:14:02 +01:00
Ludovic Courtès 47d554602c doc: Change ‘guix-install.sh’ URL to gitweb.
The cgit interface at Savannah has been taken down.

* doc/guix.texi (Installation): Change ‘guix-install.sh’ URL to gitweb.

Change-Id: I45274bdb7713d16bafe2d0b464865362bddcf303
2025-01-21 14:13:48 +01:00
Florian Pelz aaf86bbe1f doc: build: Handle when guile source is packed with zstd.
* doc/build.scm (guile-manual): Also include zstd in PATH.

Change-Id: Iff49825fe84121bff777ed45c03fb14af0a0e719
2024-09-05 00:19:07 +02:00
Ludovic Courtès 889fe96307 doc: Repair building non-English website manuals.
Fixes: <https://issues.guix.gnu.org/72257>.

* doc/build.scm (translated-texi-manuals): Copy the code
from (@ (guix self) translate-texi-manuals) rather than importing
it.  This fixes building doc/build.scm at version 1.4.0 with
recent Guix revisions.

Change-Id: Ia23425f824e4a6e619f32a28493b811c0e7c31d5
Signed-off-by: Florian Pelz <pelzflorian@pelzflorian.de>
2024-07-26 21:41:40 +02:00
Ludovic Courtès efc8489651 doc: Adjust HTML patterns to correctly process Texinfo 6.8 output.
Prior to ceb5ef8347, (@ (gnu packages
texinfo) texinfo), which is what is used here, was pointing to version 6.7.

* doc/build.scm (html-manual-identifier-index)[build](worthy-entry?):
Adjust patterns for Texinfo 6.8.
(syntax-highlighted-html)[build](syntax-highlight): Likewise.
2023-06-08 23:52:23 +02:00
Ludovic Courtès 989a3916dc gnu: guix: Update to 1.4.0. 2022-12-18 16:30:58 +01:00
Ludovic Courtès 8e2f32cee9 doc: Update URLs for the manual and cookbook translations.
* doc/htmlxref.cnf: Update URLs for "guix" and "guix-cookbook".
2022-12-18 16:01:32 +01:00
Ludovic Courtès b77b4c7c3a doc: Add guile-netlink to 'htmlxref.cnf'.
* doc/htmlxref.cnf: Add guile-netlink.
2022-12-18 15:53:43 +01:00
Ludovic Courtès d7d049fdcd services: kmsconf: Load GNU Freefont.
This provides glyphs for additional fonts such as Amharic that were
otherwise missing.

Fixes <https://issues.guix.gnu.org/60164>.
Reported by Wolf <wolf@wolfsden.cz>.

* gnu/services/base.scm (kmscon-service-type): In 'start' method,
pass #:environment-variables to set 'XDG_DATA_DIRS'.
2022-12-18 13:08:04 +01:00
Ludovic Courtès 495c50008b installer: final: Delete SQLite WAL and shm files upon completion.
Previously, db.sqlite-{wal,shm} could be left behind after stopping
guix-daemon.  When resuming installation, SQLite could end up behaving
as if transactions visible in the WAL file had been committed, in spite
of having restored SAVED-DATABASE.

Fixes <https://issues.guix.gnu.org/59784>.
Reported by pelzflorian (Florian Pelz) <pelzflorian@pelzflorian.de>.

* gnu/installer/final.scm (install-system): Before restarting
guix-daemon, delete db.sqlite-{wal,shm}.
2022-12-18 01:17:17 +01:00
Ludovic Courtès 9b6703eabe installer: final: Stop guix-daemon before accessing store database.
As part of fixing <https://issues.guix.gnu.org/59784>, make sure
/var/guix/db.sqlite is only copied while guix-daemon is stopped.

* gnu/installer/final.scm (call-with-mnt-container): Add FIXME comment.
(install-system): Copy DATABASE-FILE and SAVED-DATABASE only when
'guix-daemon' is stopped.  Add logging lines.
2022-12-18 01:17:17 +01:00
Ludovic Courtès a8f9579348 Update NEWS. 2022-12-18 01:17:15 +01:00
Ludovic Courtès 2d4d26769d daemon: Make "opening file" error messages distinguishable.
* nix/libstore/build.cc (DerivationGoal::openLogFile): Customize
"opening file" error message.
* nix/libutil/hash.cc (hashFile): Likewise.
* nix/libutil/util.cc (readFile, writeFile): Likewise.
2022-12-18 01:16:47 +01:00
Marius Bakke 239bfe2ec1 Update NEWS. 2022-12-17 19:15:50 +01:00
Ludovic Courtès b1aef25453 install: Make sure uvesafb can be loaded.
Fixes <https://issues.guix.gnu.org/60010>.
Reported by pelzflorian (Florian Pelz) <pelzflorian@pelzflorian.de>.

Previously, the 'modprobe' executable would try and fail to load the
module from /lib/modules/*.  Set 'LINUX_MODULE_DIRECTORY' to make sure
'modprobe' looks for the module in the right place.

* gnu/system/install.scm (uvesafb-shepherd-service)[modprobe]: New
variable.
In 'start' method, invoke it instead of KMOD/bin/modprobe.
2022-12-15 23:54:10 +01:00
Ludovic Courtès 047ae5c345 doc: Use VM image file name consistently.
Previously, what "/tmp/qemu-image" refers to could be unclear at first.

* doc/guix.texi (Running Guix in a VM): Use the original image file
name instead of /tmp/qemu-image.
* po/doc/guix-manual.de.po, po/doc/guix-manual.es.po,
po/doc/guix-manual.fr.po, po/doc/guix-manual.pt_BR.po,
po/doc/guix-manual.ru.po, po/doc/guix-manual.zh_CN.po: Adjust
accordingly.
2022-12-15 00:15:36 +01:00
Bruno Victal 2cf16f2c31 doc: Fix formatting for 'computed-file'.
* doc/guix.texi (G-Expressions): Fix formatting for 'computed-file'.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-12-14 15:09:49 +01:00
Ludovic Courtès 09b984b77d doc: Verify the release with my own OpenPGP key.
* doc/guix.texi (OPENPGP-SIGNING-KEY-ID, OPENPGP-SIGNING-KEY-URL):
Switch to my key.
2022-12-14 09:50:38 +01:00
Ludovic Courtès 6dbdb5fcf5 gnu: guix: Update to 1.4.0rc2. 2022-12-10 18:19:22 +01:00
18 changed files with 328 additions and 68 deletions
+27 -5
View File
@@ -80,9 +80,28 @@ Please send Guix bug reports to bug-guix@gnu.org.
*** The init RAM disk honors more arguments—e.g. root and rootflags
*** guix system image can now generate WSL images
*** The mcron task scheduler logs now contain the jobs exit statuses
*** Chromium extensions are now built in a deterministic fashion
*** The rsync service lets you specify individual “modules”
*** New services
anonip, bitmask, fail2ban, gitile, greetd, jami, lightdm, log-cleanup,
nar-herder, opendht, rasdaemon, samba, seatd, strongswan, wsdd
*** 5311 new packages
*** 6573 package updates
Noteworthy updates:
bash 5.1.8, binutils 2.37, clojure 1.11.1, cups 2.3.3op2, emacs 28.2,
enlightenment 0.25.4, gcc-toolchain 12.2.0, gdb 12.1, ghc 8.10.7,
gimp 2.10.32, glibc 2.33, gnome 42.4, gnupg 2.2.32, go 1.19.1, guile 3.0.8,
icecat 102.5.0-guix0-preview1, icedtea 3.19.0, inkscape 1.2.1, julia 1.6.7,
libreoffice 7.4.3.2, linux-libre 6.0.10, ocaml 4.14.0, octave 7.2.0,
openjdk 18, perl 5.34.0, python2 2.7.18, python 3.9.9, racket 8.7,
rust 1.60.0, r 4.2.2, sbcl 2.2.10, shepherd 0.9.3, xorg-server 21.1.4
** Programming interfaces
*** Package input fields can now plain package lists
*** Package input fields can now be plain package lists
*** G-expressions can now be used in build phases
*** New modify-inputs macro to ease customizing a list of package inputs
*** New this-package-input and this-package-native-input macros
@@ -92,7 +111,7 @@ Please send Guix bug reports to bug-guix@gnu.org.
*** texlive-union is now deprecated in favor of texlive-updmap.cfg
*** New (guix cpu) module
*** New (guix least-authority) module
*** New (guix plaform) module
*** New (guix platform) module
*** New (guix read-print) module
It provides a comment-preserving reader and a comment-preserving
@@ -103,11 +122,14 @@ pretty-printer smarter than (ice-9 pretty-print).
This build system lets you build Guix instances from channel specifications,
similar to how 'guix time-machine' would do it, as regular packages.
*** New pyproject-build-system
This is an extension of python-build-system with support for PEP-517 and
pyproject.toml files. It may eventually get merged back into
python-build-system.
*** New elm-build-system
*** New rebar-build-system
*** New services
anonip, bitmask, fail2ban, gitile, greetd, jami, lightdm, log-cleanup,
nar-herder, opendht, rasdaemon, samba, seatd, strongswan, wsdd
** Noteworthy bug fixes
*** Fall back to Software Heritage when cloning a channel
+214 -20
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019-2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
@@ -34,6 +34,7 @@
(guix profiles)
(guix utils)
(git)
(gnu packages)
(gnu packages base)
(gnu packages compression)
(gnu packages gawk)
@@ -52,8 +53,116 @@
(define file-append*
(@@ (guix self) file-append*))
(define translated-texi-manuals
(@@ (guix self) translate-texi-manuals))
(define (translated-texi-manuals source)
"Return the translated texinfo manuals built from SOURCE."
(define po4a
(specification->package "po4a"))
(define gettext-minimal
(specification->package "gettext-minimal"))
(define documentation
(file-append* source "doc"))
(define documentation-po
(file-append* source "po/doc"))
(define build
(with-imported-modules '((guix build utils) (guix build po))
#~(begin
(use-modules (guix build utils) (guix build po)
(ice-9 match) (ice-9 regex) (ice-9 textual-ports)
(ice-9 vlist) (ice-9 threads)
(srfi srfi-1))
(define (translate-tmp-texi po source output)
"Translate Texinfo file SOURCE using messages from PO, and write
the result to OUTPUT."
(invoke #+(file-append po4a "/bin/po4a-translate")
"-M" "UTF-8" "-L" "UTF-8" "-k" "0" "-f" "texinfo"
"-m" source "-p" po "-l" output))
(define (canonicalize-whitespace str)
;; Change whitespace (newlines, etc.) in STR to #\space.
(string-map (lambda (chr)
(if (char-set-contains? char-set:whitespace chr)
#\space
chr))
str))
(define* (translate-texi prefix po lang
#:key (extras '()))
"Translate the manual for one language LANG using the PO file.
PREFIX must be the prefix of the manual, 'guix' or 'guix-cookbook'. EXTRAS is
a list of extra files, such as '(\"contributing\")."
(for-each (lambda (file)
(translate-tmp-texi po (string-append file ".texi")
(string-append file "." lang
".texi.tmp")))
(cons prefix extras))
(for-each (lambda (file)
(let* ((texi (string-append file "." lang ".texi"))
(tmp (string-append texi ".tmp")))
(copy-file tmp texi)
(translate-cross-references texi po)))
(cons prefix extras)))
(define (available-translations directory domain)
;; Return the list of available translations under DIRECTORY for
;; DOMAIN, a gettext domain such as "guix-manual". The result is
;; a list of language/PO file pairs.
(filter-map (lambda (po)
(let ((base (basename po)))
(and (string-prefix? (string-append domain ".")
base)
(match (string-split base #\.)
((_ ... lang "po")
(cons lang po))))))
(find-files directory
"\\.[a-z]{2}(_[A-Z]{2})?\\.po$")))
(define parallel-jobs
;; Limit thread creation by 'n-par-for-each', mostly to put an
;; upper bound on memory usage.
(min (parallel-job-count) 4))
(mkdir #$output)
(copy-recursively #$documentation "."
#:log (%make-void-port "w"))
(for-each
(lambda (file)
(copy-file file (basename file)))
(find-files #$documentation-po ".*.po$"))
(setenv "GUIX_LOCPATH"
#+(file-append glibc-utf8-locales "/lib/locale"))
(setenv "PATH" #+(file-append gettext-minimal "/bin"))
(setenv "LC_ALL" "en_US.UTF-8")
(setlocale LC_ALL "en_US.UTF-8")
(n-par-for-each parallel-jobs
(match-lambda
((language . po)
(translate-texi "guix" po language
#:extras '("contributing"))))
(available-translations "." "guix-manual"))
(n-par-for-each parallel-jobs
(match-lambda
((language . po)
(translate-texi "guix-cookbook" po language)))
(available-translations "." "guix-cookbook"))
(for-each (lambda (file)
(install-file file #$output))
(append
(find-files "." "contributing\\..*\\.texi$")
(find-files "." "guix\\..*\\.texi$")
(find-files "." "guix-cookbook\\..*\\.texi$"))))))
(computed-file "guix-translated-texinfo" build))
(define info-manual
(@@ (guix self) info-manual))
@@ -78,6 +187,10 @@
%cookbook-languages
%manual-languages))
(define %latest-guix-version
;; Latest released version.
"1.4.0")
(define (texinfo-manual-images source)
"Return a directory containing all the images used by the user manual, taken
from SOURCE, the root of the source tree."
@@ -184,11 +297,16 @@ as well as images, OS examples, and translations."
(define %web-site-url
;; URL of the web site home page.
(or (getenv "GUIX_WEB_SITE_URL")
"/software/guix/"))
"/"))
(define %manual-css-url
;; URL of the main CSS file.
(in-vicinity %web-site-url
"themes/initial/css/manual.css"))
(define %makeinfo-html-options
;; Options passed to 'makeinfo --html'.
'("--css-ref=https://www.gnu.org/software/gnulib/manual.css"
`(,(string-append "--css-ref=" %manual-css-url)
"-c" "EXTRA_HEAD=<meta name=\"viewport\" \
content=\"width=device-width, initial-scale=1\" />"))
@@ -284,6 +402,9 @@ actual file name."
(loop rest))
((('strong _ ...) _ ...)
#t)
((('span ('@ ('class "category")) ;raw Texinfo 6.8
(? string-or-entity?) ...) rest ...)
#t)
((('span ('@ ('class "symbol-definition-category"))
(? string-or-entity?) ...) rest ...)
#t)
@@ -507,10 +628,16 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
;; Replace the ugly <strong> used for @deffn etc., which
;; translate to <dt>, with more stylable markup.
(('dt (@ ('id id)) category ... ('strong thing))
(('dt ('@ ('id id)) ;raw Texinfo 6.8
('span ('@ ('class "category")) category ...)
('span ('strong thing)
anchor))
(highlight-definition id category thing '()))
(('dt (@ ('id id)) category ... ('strong thing)
(? space?) ('em args ...))
(('dt (@ ('id id))
('span ('@ ('class "category")) category ...)
('span ('strong thing)
(? space?) ('em args ...)
anchor))
(highlight-definition id category thing args))
((tag ('@ attributes ...) body ...)
@@ -613,9 +740,10 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
(define* (stylized-html source input
#:key
(latest-version %latest-guix-version)
(languages %languages)
(manual %manual)
(manual-css-url "/static/base/css/manual.css"))
(manual-css-url %manual-css-url))
"Process all the HTML files in INPUT; add them MANUAL-CSS-URL as a <style>
link, and add a menu to choose among LANGUAGES. Use the Guix PO files found
in SOURCE."
@@ -661,6 +789,14 @@ in SOURCE."
(href ,url))
,label)))
(define menu-item-separator
;; Thin horizontal line to separate drop-down menu items.
`(img (@ (class "hline")
(src ,(in-vicinity
#$%web-site-url
"themes/initial/img/h-separator.png"))
(alt ""))))
(define* (navigation-bar menus #:key split-node?)
;; Return the navigation bar showing all of MENUS.
`(header (@ (class "navbar"))
@@ -707,7 +843,43 @@ in SOURCE."
"https://translate.fedoraproject.org/projects/guix/documentation-cookbook/"
"https://translate.fedoraproject.org/projects/guix/documentation-manual/")))))
(define (stylized-html sxml file)
(define (version-menu-items language split-node?)
;; Return the menu items to select the version of the manual of
;; the type of medium (PDF, split-node, etc.).
(define language-extension
(if (string=? language "en")
""
(string-append "." language)))
(define pdf-link
(string-append (if split-node? "../" "")
#$manual language-extension ".pdf"))
(define version-links
(list (menu-item #$latest-version
(string-append
"/manual/" #$latest-version
"/" language
(if split-node? "/html_node" "")))
(menu-item "development"
(string-append
"/manual/devel/" language
(if split-node? "/html_node" "")))
menu-item-separator))
(append (if (string=? #$manual "guix")
version-links
'())
(list (if split-node?
(menu-item "single page"
(string-append "../" #$manual
language-extension
".html"))
(menu-item "multiple pages"
"html_node"))
(menu-item "PDF" pdf-link))))
(define (stylized-html sxml file language)
;; Return SXML, which was read from FILE, with additional
;; styling.
(define split-node?
@@ -730,9 +902,16 @@ in SOURCE."
;; TODO: Add "Contribute" menu, to report
;; errors, etc.
(list (menu-dropdown
#:label "Version"
#:items
(version-menu-items language
split-node?))
(menu-dropdown
#:label
`(img (@ (alt "Language")
(src "/static/base/img/language-picker.svg")))
(src #$(in-vicinity
%web-site-url
"themes/initial/img/language-picker.svg"))))
#:items
(language-menu-items file)))
#:split-node? split-node?)
@@ -744,13 +923,13 @@ in SOURCE."
((? string? str)
str))))
(define (process-html file)
(define (process-html file language)
;; Parse FILE and add links to translations. Install the result
;; to #$output.
(format (current-error-port) "processing ~a...~%" file)
(let* ((shtml (parameterize ((%strict-tokenizer? #t))
(call-with-input-file file html->shtml)))
(processed (stylized-html shtml file))
(processed (stylized-html shtml file language))
(base (string-drop file (string-length #$input)))
(target (string-append #$output base)))
(mkdir-p (dirname target))
@@ -758,6 +937,15 @@ in SOURCE."
(lambda (port)
(write-shtml-as-html processed port)))))
(define (input-file-language file)
;; Return the language code of FILE, an input file, as a string
;; like "sv" or "zh-cn".
(match (string-tokenize (string-drop file
(string-length #$input))
(char-set-complement
(char-set #\/)))
((language _ ...) language)))
;; Install a UTF-8 locale so we can process UTF-8 files.
(setenv "GUIX_LOCPATH"
#+(file-append glibc-utf8-locales "/lib/locale"))
@@ -768,7 +956,8 @@ in SOURCE."
(n-par-for-each (parallel-job-count)
(lambda (file)
(if (string-suffix? ".html" file)
(process-html file)
(let ((language (input-file-language file)))
(process-html file language))
;; Copy FILE as is to #$output.
(let* ((base (string-drop file (string-length #$input)))
(target (string-append #$output base)))
@@ -835,7 +1024,8 @@ makeinfo OPTIONS."
(let* ((texi (language->texi-file-name language))
(opts `("--html"
"-c" ,(string-append "TOP_NODE_UP_URL=/manual/"
language)
#$%latest-guix-version
"/" language)
#$@options
,texi)))
(format #t "building HTML manual for language '~a'...~%"
@@ -903,11 +1093,11 @@ makeinfo OPTIONS."
sed
tar
texinfo
texlive-base
texlive-scheme-basic
texlive-bin ;for GUIX_TEXMF
texlive-epsf
texlive-fonts-ec
texlive-tex-texinfo)))))
texlive-ec
texlive-texinfo)))))
(define build
(with-imported-modules '((guix build utils))
@@ -1293,6 +1483,7 @@ commit date (an integer)."
(setenv "PATH"
(string-append #+tar "/bin:"
#+xz "/bin:"
#+zstd "/bin:"
#+texinfo "/bin"))
(invoke "tar" "xf" #$(package-source guile))
(mkdir-p (string-append #$output "/en/html_node"))
@@ -1356,7 +1547,9 @@ by 'html-identifier-indexes'."
(let* ((root (canonicalize-path
(string-append (current-source-directory) "/..")))
(string-append (or (current-source-directory)
(string-append (getcwd) "/doc"))
"/..")))
(commit date (latest-commit+date root))
(version (or (getenv "GUIX_MANUAL_VERSION")
(string-take commit 7)))
@@ -1403,7 +1596,8 @@ by 'html-identifier-indexes'."
(merge-index-alists guix-split-node-indexes guile-split-node-indexes))
(format (current-error-port)
"building manual from work tree around commit ~a, ~a~%"
"building manual from work tree (~a) around commit ~a, ~a~%"
root
commit
(let* ((time (make-time time-utc 0 date))
(date (time-utc->date time)))
+1 -1
View File
@@ -1514,7 +1514,7 @@ that we can send the rest of the patches to.
@example
$ git send-email outgoing/0000-cover-letter.patch -a \
--to=guix-patches@@debbugs.gnu.org \
--to=guix-patches@@gnu.org \
$(etc/teams.scm cc-members ...)
$ rm outgoing/0000-cover-letter.patch # we don't want to resend it!
@end example
+11 -11
View File
@@ -10,8 +10,8 @@
@include version.texi
@c Identifier of the OpenPGP key used to sign tarballs and such.
@set OPENPGP-SIGNING-KEY-ID 27D586A4F8900854329FF09F1260E46482E63562
@set OPENPGP-SIGNING-KEY-URL https://sv.gnu.org/people/viewgpg.php?user_id=127547
@set OPENPGP-SIGNING-KEY-ID 3CE464558A84FDC69DB40CFB090B11993D9AEBB5
@set OPENPGP-SIGNING-KEY-URL https://sv.gnu.org/people/viewgpg.php?user_id=15145
@c Base URL for downloads.
@set BASE-URL https://ftp.gnu.org/gnu/guix
@@ -22,7 +22,7 @@
@set SUBSTITUTE-URLS https://@value{SUBSTITUTE-SERVER-1} https://@value{SUBSTITUTE-SERVER-2}
@copying
Copyright @copyright{} 2012-2022 Ludovic Courtès@*
Copyright @copyright{} 2012-2022, 2025 Ludovic Courtès@*
Copyright @copyright{} 2013, 2014, 2016 Andreas Enge@*
Copyright @copyright{} 2013 Nikita Karetnikov@*
Copyright @copyright{} 2014, 2015, 2016 Alex Kost@*
@@ -642,7 +642,7 @@ to join! @xref{Contributing}, for information about how you can help.
@quotation Note
We recommend the use of this
@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh,
@uref{https://guix.gnu.org/install.sh,
shell installer script} to install Guix on top of a running GNU/Linux system,
thereafter called a @dfn{foreign distro}.@footnote{This section is concerned
with the installation of the package manager, which can be done on top of a
@@ -691,14 +691,14 @@ GNU@tie{}tar and Xz.
@c Note duplicated from the ``Installation'' node.
@quotation Note
We recommend the use of this
@uref{https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh,
@uref{https://guix.gnu.org/install.sh,
shell installer script}. The script automates the download, installation, and
initial configuration steps described below. It should be run as the root
user. As root, you can thus run this:
@example
cd /tmp
wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
wget -O guix-install.sh https://guix.gnu.org/install.sh
chmod +x guix-install.sh
./guix-install.sh
@end example
@@ -11706,8 +11706,7 @@ This is the declarative counterpart of @code{text-file}.
@end deffn
@deffn {Scheme Procedure} computed-file @var{name} @var{gexp} @
[#:local-build? #t]
[#:options '()]
[#:local-build? #t] [#:options '()]
Return an object representing the store item @var{name}, a file or
directory computed by @var{gexp}. When @var{local-build?} is true (the
default), the derivation is built locally. @var{options} is a list of
@@ -39224,7 +39223,7 @@ $ qemu-system-x86_64 \
-nic user,model=virtio-net-pci \
-enable-kvm -m 2048 \
-device virtio-blk,drive=myhd \
-drive if=none,file=/tmp/qemu-image,id=myhd
-drive if=none,file=guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2,id=myhd
@end example
Here is what each of these options means:
@@ -39260,8 +39259,9 @@ better performance than if it were emulating a complete disk drive. See the
QEMU and KVM documentation for more info.
@item -drive if=none,file=/tmp/qemu-image,id=myhd
Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing
store of the ``myhd'' drive.
Use our QCOW image, the
@file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as
the backing store of the ``myhd'' drive.
@end table
The default @command{run-vm.sh} script that is returned by an invocation of
+10 -4
View File
@@ -1,7 +1,7 @@
# htmlxref.cnf - reference file for free Texinfo manuals on the web.
# Modified by Ludovic Courtès <ludo@gnu.org> for the GNU Guix manual.
htmlxrefversion=2022-08-04.13; # UTC
htmlxrefversion=2026-01-19.09; # UTC
# Copyright 2010-2020, 2022 Free Software Foundation, Inc.
#
@@ -409,17 +409,21 @@ GUILE_GNOME = ${GS}/guile-gnome/docs
guile-gtk node ${GS}/guile-gtk/docs/guile-gtk/
guile-netlink mono https://git.lepiller.eu/guile-netlink/manual/manual.html
guile-rpc mono ${GS}/guile-rpc/manual/guile-rpc.html
guile-rpc node ${GS}/guile-rpc/manual/html_node/
GUIX_ROOT = https://guix.gnu.org
GUIX = ${GUIX_ROOT}/manual
GUIX = ${GUIX_ROOT}/manual/1.4.0
guix.de mono ${GUIX}/de/guix.de.html
guix.de node ${GUIX}/de/html_node/
guix.es mono ${GUIX}/es/guix.es.html
guix.es node ${GUIX}/es/html_node/
guix.fr mono ${GUIX}/fr/guix.fr.html
guix.fr node ${GUIX}/fr/html_node/
guix.pt_BR mono ${GUIX}/pt-br/guix.pt_BR.html
guix.pt_BR node ${GUIX}/pt-br/html_node/
guix.ru mono ${GUIX}/ru/guix.ru.html
guix.ru node ${GUIX}/ru/html_node/
guix.zh_CN mono ${GUIX}/zh-cn/guix.zh_CN.html
@@ -428,10 +432,12 @@ GUIX = ${GUIX_ROOT}/manual
guix node ${GUIX}/en/html_node/
GUIX_COOKBOOK = ${GUIX_ROOT}/cookbook
guix-cookbook.de mono ${GUIX_COOKBOOK}/de/guix-cookbook.html
guix-cookbook.de mono ${GUIX_COOKBOOK}/de/guix-cookbook.de.html
guix-cookbook.de node ${GUIX_COOKBOOK}/de/html_node/
guix-cookbook.fr mono ${GUIX_COOKBOOK}/fr/guix-cookbook.html
guix-cookbook.fr mono ${GUIX_COOKBOOK}/fr/guix-cookbook.fr.html
guix-cookbook.fr node ${GUIX_COOKBOOK}/fr/html_node/
guix-cookbook.sk mono ${GUIX_COOKBOOK}/sk/guix-cookbook.sk.html
guix-cookbook.sk node ${GUIX_COOKBOOK}/sk/html_node/
guix-cookbook mono ${GUIX_COOKBOOK}/en/guix-cookbook.html
guix-cookbook node ${GUIX_COOKBOOK}/en/html_node/
+24 -6
View File
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019, 2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -114,6 +114,8 @@ it can interact with the rest of the system."
;; Catch SIGINT and kill the container process.
(sigaction SIGINT
(lambda (signum)
;: FIXME: Use of SIGKILL prevents the dynamic-wind exit handler of
;; THUNK to run.
(false-if-exception
(kill pid SIGKILL))))
@@ -196,14 +198,16 @@ or #f. Return #t on success and #f on failure."
;; the loaded cow-store locale files will prevent umounting.
(install-locale locale)
;; Save the database, so that it can be restored once the
;; cow-store is umounted.
;; Stop the daemon and save the database, so that it can be
;; restored once the cow-store is umounted.
(stop-service 'guix-daemon)
(copy-file database-file saved-database)
(installer-log-line "mounting copy-on-write store")
(mount-cow-store (%installer-target-dir) backing-directory))
(lambda ()
;; We need to drag the guix-daemon to the container MNT
;; namespace, so that it can operate on the cow-store.
(stop-service 'guix-daemon)
(start-service 'guix-daemon (list (number->string (getpid))))
(setvbuf (current-output-port) 'none)
@@ -213,11 +217,25 @@ or #f. Return #t on success and #f on failure."
(set! ret (run-command install-command #:tty? #t)))
(lambda ()
;; Restart guix-daemon so that it does no keep the MNT namespace
;; Stop guix-daemon so that it does no keep the MNT namespace
;; alive.
(restart-service 'guix-daemon)
(stop-service 'guix-daemon)
;; Restore the database and restart it. As part of restoring the
;; database, remove the WAL and shm files in case they were left
;; behind after guix-daemon was stopped. Failing to do so,
;; sqlite might behave as if transactions that appear in the WAL
;; file were committed. (See <https://www.sqlite.org/wal.html>.)
(installer-log-line "restoring store database from '~a'"
saved-database)
(copy-file saved-database database-file)
(for-each (lambda (suffix)
(false-if-exception
(delete-file (string-append database-file suffix))))
'("-wal" "-shm"))
(start-service 'guix-daemon)
;; Finally umount the cow-store and exit the container.
(installer-log-line "unmounting copy-on-write store")
(unmount-cow-store (%installer-target-dir) backing-directory)
(assert-exit ret))))))))
+3 -3
View File
@@ -164,8 +164,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.4.0rc1")
(commit "020184fd39c6244e0336db3c608d3946b8d20490")
(let ((version "1.4.0")
(commit "8e2f32cee982d42a79e53fc1e9aa7b8ff0514714")
(revision 0))
(package
(name "guix")
@@ -182,7 +182,7 @@
(commit commit)))
(sha256
(base32
"1489fdxdb86shx6bnfs8kihhvw44xqiv6fkx3b67cyw1dakxh1m4"))
"042mipw2bp9lc75m9g5q6rdifrp8483cmk57kwrdps0i3vd590dl"))
(file-name (string-append "guix-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
+10 -1
View File
@@ -72,6 +72,7 @@
#:select (dosfstools))
#:use-module ((gnu packages file-systems)
#:select (bcachefs-tools exfat-utils jfsutils zfs))
#:use-module (gnu packages fonts)
#:use-module (gnu packages terminals)
#:use-module ((gnu packages wm) #:select (sway))
#:use-module ((gnu build file-systems)
@@ -2487,7 +2488,15 @@ notably to select, copy, and paste text. The default options use the
(documentation "kmscon virtual terminal")
(requirement '(user-processes udev dbus-system))
(provision (list (symbol-append 'term- (string->symbol virtual-terminal))))
(start #~(make-forkexec-constructor #$kmscon-command))
(start #~(make-forkexec-constructor
#$kmscon-command
;; The installer needs to be able to display glyphs from
;; various scripts, so give it access to freefont.
;; TODO: Make this configurable.
#:environment-variables
(list (string-append "XDG_DATA_DIRS="
#$font-gnu-freefont "/share"))))
(stop #~(make-kill-destructor)))))
(description "Start the @command{kmscon} virtual terminal emulator for the
Linux @dfn{kernel mode setting} (KMS).")))
+12 -1
View File
@@ -284,13 +284,24 @@ templates under @file{/etc/configuration}.")))
;; appropriate options. The GUI installer needs it when the machine does not
;; support Kernel Mode Setting. Otherwise kmscon is missing /dev/fb0.
(define (uvesafb-shepherd-service _)
(define modprobe
(program-file "modprobe-wrapper"
#~(begin
;; Use a wrapper because shepherd 0.9.3 won't let us
;; pass environment variables to the child process:
;; <https://issues.guix.gnu.org/60106>.
(setenv "LINUX_MODULE_DIRECTORY"
"/run/booted-system/kernel/lib/modules")
(apply execl #$(file-append kmod "/bin/modprobe")
"modprobe" (cdr (command-line))))))
(list (shepherd-service
(documentation "Load the uvesafb kernel module if needed.")
(provision '(maybe-uvesafb))
(requirement '(file-systems))
(start #~(lambda ()
(or (file-exists? "/dev/fb0")
(invoke #+(file-append kmod "/bin/modprobe")
(invoke #+modprobe
"uvesafb"
(string-append "v86d=" #$v86d "/sbin/v86d")
"mode_option=1024x768"))))
+1 -1
View File
@@ -2576,7 +2576,7 @@ Path DerivationGoal::openLogFile()
closeOnExec(fd);
if (!(fLogFile = fdopen(fd.borrow(), "w")))
throw SysError(format("opening file `%1%'") % logFileName);
throw SysError(format("opening log file `%1%'") % logFileName);
int err;
if (!(bzLogFile = BZ2_bzWriteOpen(&err, fLogFile, 9, 0, 0)))
+1 -1
View File
@@ -244,7 +244,7 @@ Hash hashFile(HashType ht, const Path & path)
start(ht, ctx);
AutoCloseFD fd = open(path.c_str(), O_RDONLY);
if (fd == -1) throw SysError(format("opening file `%1%'") % path);
if (fd == -1) throw SysError(format("computing hash of file `%1%'") % path);
unsigned char buf[8192];
ssize_t n;
+2 -2
View File
@@ -264,7 +264,7 @@ string readFile(const Path & path, bool drain)
{
AutoCloseFD fd = open(path.c_str(), O_RDONLY);
if (fd == -1)
throw SysError(format("opening file `%1%'") % path);
throw SysError(format("reading file `%1%'") % path);
return drain ? drainFD(fd) : readFile(fd);
}
@@ -273,7 +273,7 @@ void writeFile(const Path & path, const string & s)
{
AutoCloseFD fd = open(path.c_str(), O_WRONLY | O_TRUNC | O_CREAT, 0666);
if (fd == -1)
throw SysError(format("opening file '%1%'") % path);
throw SysError(format("writing file '%1%'") % path);
writeFull(fd, s);
}
+2 -2
View File
@@ -13,7 +13,7 @@ msgstr ""
"Project-Id-Version: guix-manual 1.2.0-pre3\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
"POT-Creation-Date: 2022-12-02 03:18+0000\n"
"PO-Revision-Date: 2022-12-03 17:33+0000\n"
"PO-Revision-Date: 2022-12-15 00:11+0100\n"
"Last-Translator: Florian Pelz <pelzflorian@pelzflorian.de>\n"
"Language-Team: German <https://translate.fedoraproject.org/projects/guix/documentation-manual/de/>\n"
"Language: de\n"
@@ -73899,7 +73899,7 @@ msgstr "-drive if=none,file=/tmp/qemu-image,id=myhd"
#. type: table
#: guix-git/doc/guix.texi:39296
msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive."
msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive."
msgstr "Unser QCOW-Abbild in der Datei @file{/tmp/qemu-image} soll als Inhalt des „myhd“-Laufwerks herhalten."
#. type: Plain text
+2 -2
View File
@@ -55,7 +55,7 @@ msgstr ""
"Project-Id-Version: guix-manual 1.2.0-pre3\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
"POT-Creation-Date: 2022-12-02 03:18+0000\n"
"PO-Revision-Date: 2022-11-04 11:27+0000\n"
"PO-Revision-Date: 2022-12-15 00:11+0100\n"
"Last-Translator: Julien Lepiller <fedora-account@lepiller.eu>\n"
"Language-Team: Spanish <https://translate.fedoraproject.org/projects/guix/documentation-manual/es/>\n"
"Language: es\n"
@@ -77483,7 +77483,7 @@ msgstr "-drive if=none,file=/tmp/imagen-qemu,id=midisco"
#. type: table
#: guix-git/doc/guix.texi:39296
msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive."
msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive."
msgstr "Usa nuestra imagen QCOW, el archivo @file{/tmp/imagen-qemu}, como almacenamiento físico para la unidad ``midisco''."
#. type: Plain text
+2 -2
View File
@@ -46,7 +46,7 @@ msgstr ""
"Project-Id-Version: guix-manual 1.2.0-pre3\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
"POT-Creation-Date: 2022-12-02 03:18+0000\n"
"PO-Revision-Date: 2022-12-03 17:33+0000\n"
"PO-Revision-Date: 2022-12-15 00:11+0100\n"
"Last-Translator: Julien Lepiller <fedora-account@lepiller.eu>\n"
"Language-Team: French <https://translate.fedoraproject.org/projects/guix/documentation-manual/fr/>\n"
"Language: fr\n"
@@ -74054,7 +74054,7 @@ msgstr "-drive if=none,file=/tmp/qemu-image,id=myhd"
#. type: table
#: guix-git/doc/guix.texi:39296
msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive."
msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive."
msgstr "Utilise notre image QCOW, le fichier @file{/tmp/qemu-image}, comme stockage pour le lecteur « myhd »."
#. type: Plain text
+2 -2
View File
@@ -10,7 +10,7 @@ msgstr ""
"Project-Id-Version: guix manual checkout\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
"POT-Creation-Date: 2022-12-02 03:18+0000\n"
"PO-Revision-Date: 2022-01-25 15:16+0000\n"
"PO-Revision-Date: 2022-12-15 00:11+0100\n"
"Last-Translator: Fábio Rodrigues Ribeiro <farribeiro@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://translate.fedoraproject.org/projects/guix/documentation-manual/pt_BR/>\n"
"Language: pt_BR\n"
@@ -71324,7 +71324,7 @@ msgstr ""
#. type: table
#: guix-git/doc/guix.texi:39296
msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive."
msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive."
msgstr ""
#. type: Plain text
+2 -2
View File
@@ -16,7 +16,7 @@ msgstr ""
"Project-Id-Version: guix-manual 1.2.0-pre2\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
"POT-Creation-Date: 2022-12-02 03:18+0000\n"
"PO-Revision-Date: 2021-12-11 23:16+0000\n"
"PO-Revision-Date: 2022-12-15 00:11+0100\n"
"Last-Translator: Nikolay Korotkiy <sikmir@disroot.org>\n"
"Language-Team: Russian <https://translate.fedoraproject.org/projects/guix/documentation-manual/ru/>\n"
"Language: ru\n"
@@ -72867,7 +72867,7 @@ msgstr ""
#. type: table
#: guix-git/doc/guix.texi:39296
msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive."
msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive."
msgstr ""
#. type: Plain text
+2 -2
View File
@@ -16,7 +16,7 @@ msgstr ""
"Project-Id-Version: guix-manual 1.0.1-pre1\n"
"Report-Msgid-Bugs-To: bug-guix@gnu.org\n"
"POT-Creation-Date: 2022-12-02 03:18+0000\n"
"PO-Revision-Date: 2022-09-22 13:19+0000\n"
"PO-Revision-Date: 2022-12-15 00:11+0100\n"
"Last-Translator: Yang Yulin <yylteam@icloud.com>\n"
"Language-Team: Chinese (Simplified) <https://translate.fedoraproject.org/projects/guix/documentation-manual/zh_CN/>\n"
"Language: zh_CN\n"
@@ -71148,7 +71148,7 @@ msgstr ""
#. type: table
#: guix-git/doc/guix.texi:39296
msgid "Use our QCOW image, the @file{/tmp/qemu-image} file, as the backing store of the ``myhd'' drive."
msgid "Use our QCOW image, the @file{guix-system-vm-image-@value{VERSION}.x86_64-linux.qcow2} file, as the backing store of the ``myhd'' drive."
msgstr ""
#. type: Plain text