From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id cPLWNA008mTEjwAAauVa8A:P1 (envelope-from ) for ; Fri, 01 Sep 2023 20:57:18 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id cPLWNA008mTEjwAAauVa8A (envelope-from ) for ; Fri, 01 Sep 2023 20:57:17 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 4F79A3867A for ; Fri, 1 Sep 2023 20:57:17 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1693594637; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=3to83wRrPMbEr/40qSOKpRw+fipEg+bdysDgMaPtORM=; b=AQ4qoqV5z2roXo2QylMmDSJ5R6X+YezW/d73uH4hMTv4cQSGUffj2IYhWJDZFIq2CwZRMB ZEJBaMj82SCj9xwGqjZ6c6VqV9nNJr3W047aZ6W2d/3cRrON2RemRhGDo1xMKiMcYecEmX 4L3Pb/E9Op6D2zu1uHBavg0fG0V8TKQxUtrGRdmBwmJcx/2u/eyRVr6UHiwZDk0vaY65MX 85jVrn+2oz0Q6zZagd+ZE1rf44DxcfdvDWOmMjFu6nKJ0gilz2lSne12EjM3z7Z1x7UA+5 N9Ouyt+z8uvTLegoagOEmnrFL8+Z5HaNQne3CeN6E11dDFSkr9VWAggMWTYbTQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1693594637; a=rsa-sha256; cv=none; b=GeDVDNHD2Wvk+LEVAzHyzCqc6Un6YbwgJZw4Im5HwObpfiF2j0TTIvZRyk5GW+6GX5JYA7 PrtODJFgCu0pa03juTELtPtLootU14C31nwCRnvnQ73CP7Oat3lE+cqPr2S0Q+hMRJkUmp pia5dfPylwBiw3ldVblgNGfW1EEs2vLQcw/01Q3T/5Zj977+8cmqiLCsm6giLUkHiK+ky3 rw7PouwoUGfH8Q2rUVMnDIFd0meCpJbVPgYf14xslzTXlw9+Wbu2xKqW14m2ZYEux8QH31 iFO4s5zEkqHEHzjl/IsQ8VOXf5h7aYfRZcoVwX2EL3qCqMWlZ//C3GfThx23Rg== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qc9KF-0004oe-6e; Fri, 01 Sep 2023 14:56:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qc9K9-0004nm-H7 for guix-patches@gnu.org; Fri, 01 Sep 2023 14:56:53 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qc9K9-0008TR-89 for guix-patches@gnu.org; Fri, 01 Sep 2023 14:56:53 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qc9KI-0005sk-AZ for guix-patches@gnu.org; Fri, 01 Sep 2023 14:57:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#65683] [PATCH] doc: manual: Update TeX Live-related sections. Resent-From: Nicolas Goaziou Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 01 Sep 2023 18:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 65683 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 65683@debbugs.gnu.org Cc: Andreas Enge X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.169359461622593 (code B ref -1); Fri, 01 Sep 2023 18:57:02 +0000 Received: (at submit) by debbugs.gnu.org; 1 Sep 2023 18:56:56 +0000 Received: from localhost ([127.0.0.1]:33909 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qc9KB-0005sJ-9n for submit@debbugs.gnu.org; Fri, 01 Sep 2023 14:56:55 -0400 Received: from lists.gnu.org ([2001:470:142::17]:58944) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qc9K8-0005s5-PW for submit@debbugs.gnu.org; Fri, 01 Sep 2023 14:56:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qc9Ju-0004kh-3d for guix-patches@gnu.org; Fri, 01 Sep 2023 14:56:38 -0400 Received: from relay7-d.mail.gandi.net ([2001:4b98:dc4:8::227]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qc9Jq-0008D2-Go for guix-patches@gnu.org; Fri, 01 Sep 2023 14:56:37 -0400 Received: by mail.gandi.net (Postfix) with ESMTPSA id A6BCF20002; Fri, 1 Sep 2023 18:56:29 +0000 (UTC) From: Nicolas Goaziou Date: Fri, 1 Sep 2023 20:56:15 +0200 Message-ID: <568f6058b52263ac5bbf06580a3fdb4d701e68fa.1693594575.git.mail@nicolasgoaziou.fr> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-GND-Sasl: admin@nicolasgoaziou.fr Received-SPF: pass client-ip=2001:4b98:dc4:8::227; envelope-from=mail@nicolasgoaziou.fr; helo=relay7-d.mail.gandi.net X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -1.83 X-Spam-Score: -1.83 X-Migadu-Scanner: mx1.migadu.com X-Migadu-Queue-Id: 4F79A3867A X-TUID: BmoqgbQ3pC2B * doc/guix.texi (Invoking guix import): Mention "--recursive" option. (Using TeX and LaTeX): Improve documentation of modular TeX Live. Insist on the incompatibility with TEXLIVE package, and expound part about collections and schemes. Also fix the call to `tlmgr', which does not need to happen from a "guix shell" invocation. Co-authored-by: Andreas Enge --- doc/guix.texi | 124 +++++++++++++++++++------------------------------- 1 file changed, 47 insertions(+), 77 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 04e5875925..e716e22efc 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -14165,6 +14165,16 @@ Invoking guix import guix import texlive fontspec @end example +Additional options include: + +@table @code +@item --recursive +@itemx -r +Traverse the dependency graph of the given upstream package recursively +and generate package expressions for all those packages that are not yet +in Guix. +@end table + @item json @cindex JSON, import Import package metadata from a local JSON file. Consider the following @@ -45862,47 +45872,44 @@ Using TeX and LaTeX Guix provides packages for the @TeX{}, @LaTeX{}, ConTeXt, LuaTeX, and related typesetting systems, taken from the @uref{https://www.tug.org/texlive/, @TeX{} Live distribution}. However, -because @TeX{} Live is so huge and because finding your way in this maze -is tricky, we thought that you, dear user, would welcome guidance on how -to deploy the relevant packages so you can compile your @TeX{} and -@LaTeX{} documents. +because @TeX{} Live is so huge and because finding one's way in this +maze is tricky, so this section provides some guidance on how to deploy +the relevant packages to compile @TeX{} and @LaTeX{} documents. -@TeX{} Live currently comes in two flavors in Guix: +@TeX{} Live currently comes in two mutually exclusive flavors in Guix: @itemize @item The ``monolithic'' @code{texlive} package: it comes with @emph{every -single @TeX{} Live package} (more than 7,000 of them), but it is huge -(more than 4@tie{}GiB for a single package!). +single @TeX{} Live package} (they are more or less 4,200), but it is +huge (more than 4@tie{}GiB for a single package!). @item -The ``modular'' @samp{texlive-} packages: you start off with -a combination of @TeX{} Live @dfn{collections} and -@dfn{schemes}---``meta-packages'' such as -@code{texlive-collection-fontsrecommended}, or -@code{texlive-collection-context}, that provide the set of packages -needed in this particular domain, schemes being the name for collections -of such collections. This grants you core functionality and the main -commands---@command{pdflatex}, @command{dvips}, @command{luatex}, -@command{mf}, etc. You can then complete your selection with additional -collections or individual packages that provide just the features you -need---@code{texlive-listings} for the @code{listings} package, -@code{texlive-beamer} for Beamer, @code{texlive-pgf} for PGF/TikZ, and -so on. +A ``modular'' @TeX{} Live distribution, in which you only install the +packages, always prefixed with @samp{texlive-}, you need. @end itemize -We recommend using the modular package set because it is much less -resource-hungry. To build your documents, you would use commands such -as: +So to insist, these two flavors cannot be combined. If in the modular +setting your document does not compile, the solution is not to add the +monolithic @code{texlive} package, but to add the set of missing +packages from the modular distribution. + +Building a coherent system that provides all the essential tools and, at +the same time, satisfies all of its internal dependencies can be +a difficult task. It is therefore recommended to start with sets of +packages, called @dfn{collections}, and @dfn{schemes}, the name for +collections of collections. The following command lists available +schemes and collections (@pxref{guix-search,, Invoking guix package}): @example -guix shell texlive-scheme-basic texlive-cm-super -- pdflatex doc.tex +guix search texlive-\(scheme\|collection\) | recsel -p name,description @end example -You can quickly end up with unreasonably long command lines though. The -solution is to instead write a manifest, for example like this one, -which would probably be a reasonable starting point for a French -@LaTeX{} user: +If needed, you may then complete your system with individual packages, +particularly when they belong to a large collection. + +For instance, the following manifest is a reasonable, yet frugal +starting point for a French @LaTeX{} user: @lisp (specifications->manifest @@ -45911,31 +45918,16 @@ Using TeX and LaTeX "texlive-scheme-basic" "texlive-collection-latexrecommended" "texlive-collection-fontsrecommended" - "texlive-babel-french" - ;; PGF/TikZ - "texlive-pgf" - ;; Additional font. "texlive-kpfonts")) @end lisp -You can then pass it to any command with the @option{-m} option: - -@example -guix shell -m manifest.scm -- pdflatex doc.tex -@end example - -@xref{Writing Manifests}, for more on manifests. In the future, we plan -to provide more collections and schemes. That will allow you to list -fewer packages. - -The main difficulty here is that using the modular package set forces -you to select precisely the packages that you need. You can use -@command{guix search}, but finding the right package can prove to be -tedious. When a package is missing, @command{pdflatex} and similar -commands fail with an obscure message along the lines of: +If you come across a document that does not compile in such a basic +setting, the main difficulty is finding the missing packages. In this +case, @command{pdflatex} and similar commands tend to fail with obscure +error messages along the lines of: @example doc.tex: File `tikz.sty' not found. @@ -45951,7 +45943,7 @@ Using TeX and LaTeX @end example How do you determine what the missing package is? In the first case, -you'll find the answer by running: +you will find the answer by running: @example $ guix search texlive tikz @@ -45961,11 +45953,11 @@ Using TeX and LaTeX @end example In the second case, @command{guix search} turns up nothing. Instead, -you can search the @TeX{} Live package database using the @command{tlmgr} -command: +you can search the @TeX{} Live package database using the +@command{tlmgr} command: @example -$ guix shell texlive-bin -- tlmgr info phvr7t +$ tlmgr info phvr7t tlmgr: cannot find package phvr7t, searching for other matches: Packages containing `phvr7t' in their title/description: @@ -45980,32 +45972,10 @@ Using TeX and LaTeX texmf-dist/tex4ht/ht-fonts/alias/adobe/helvetic/phvr7t.htf @end example -The file is available in the @TeX{} Live @code{helvetic} package, which is -known in Guix as @code{texlive-helvetic}. Quite a ride, but we found -it! - -There is one important limitation though: Guix currently provides a -subset of the @TeX{} Live packages. If you stumble upon a missing -package, you can try and import it (@pxref{Invoking guix import}): - -@example -guix import texlive @var{package} -@end example - -Additional options include: - -@table @code -@item --recursive -@itemx -r -Traverse the dependency graph of the given upstream package recursively -and generate package expressions for all those packages that are not yet -in Guix. -@end table - -@quotation Note -@TeX{} Live packaging is still very much work in progress, but you can -help! @xref{Contributing}, for more information. -@end quotation +@noindent +The file is available in the @TeX{} Live @code{helvetic} package, which +is known in Guix as @code{texlive-helvetic}. Quite a ride, but you +found it! @node Security Updates @chapter Security Updates base-commit: f5c4db45e95cf8ea23c2c133ed2535ca94a06f7d -- 2.41.0