From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id mLzcMpJAI2Te5gAASxT56A (envelope-from ) for ; Tue, 28 Mar 2023 21:31:30 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id gMvvMpJAI2TF0gAA9RJhRA (envelope-from ) for ; Tue, 28 Mar 2023 21:31:30 +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 8AA8814958 for ; Tue, 28 Mar 2023 21:31:30 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1phF22-00072y-IF; Tue, 28 Mar 2023 15:30: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 1phF21-00072o-7W for help-guix@gnu.org; Tue, 28 Mar 2023 15:30:57 -0400 Received: from relay8-d.mail.gandi.net ([217.70.183.201]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1phF1x-0004Qt-4y for help-guix@gnu.org; Tue, 28 Mar 2023 15:30:56 -0400 Received: (Authenticated sender: manu@beffara.org) by mail.gandi.net (Postfix) with ESMTPSA id 9364A1BF205; Tue, 28 Mar 2023 19:30:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=beffara.org; s=gm1; t=1680031846; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: references:references; bh=GxK2+ZA2J03Qfl84xKLZXHSsd/Pbgf+LQNloOUvZzzo=; b=oAGimDiiMOmEXKWzp/y/emSl25FuHGx+8gfbB3Nuah/MI3l332/WK9hmDqGgWm8tzbzZK7 8r4KJ4IIC6yDWfp2OPjYtTF0LmrY38RsATgCC3v/ub2H33BQVjawH3GM8eBhmqYA99OFv5 mSBQX67X7Q7KOTWKPDd/kMx7Rs7yWEwpzLUbwlmvOJqm1NbvBXhj0dAB8lQ8m7LAQLJX6B lAj/SAsBsDwHiGy77I6eru5HLrVOwVRhKdWYokQuITAc0M0GbcyK+kq6Ga2e2XNxWyec0s Vob6JjnNkbNSqG0zdXUahlq49ZFEtFdxDNW24t4Sjcw+JsmpN6kH89bePNRTyQ== Date: Tue, 28 Mar 2023 21:30:44 +0200 Message-ID: <20230328213044.GB4873@beffara.org> From: Emmanuel Beffara To: help-guix@gnu.org Cc: 56556@debbugs.gnu.org Subject: TeXlive packaging issues References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Received-SPF: none client-ip=217.70.183.201; envelope-from=manu@beffara.org; helo=relay8-d.mail.gandi.net X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: help-guix@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+larch=yhetil.org@gnu.org Sender: help-guix-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Seal: i=1; s=key1; d=yhetil.org; t=1680031890; a=rsa-sha256; cv=none; b=hVhys1Rqtk63an838E0aLEwHQIwjYitLH/J5z38w8j5IrFAJtROblIgvdwd9IkOgTKOhwj 4c/Y2QS78huwJF+gyuvPfU4ITNY5FAH7xppPFYGzig8lESXB2q0IkB8DraGrYEMJ2HORpQ iMkpWSVvrpIUPzltwJ9Qb3F9FefIaiOBNFhXZJjgUQHVAmAFVCHzPwuDAjvbPZWAyp5fB8 1mJd3PMjNs6WvNu5nN5dukVZFN2BQRJ6rgkZlPbUexaON5UqeqUOgPWKdgtKvQiYu9XrLs HK9jXIDJi3+/jdwpR3uPwTs9bUrM36LOz8rBiponz+Ittm3c4CvdAcrKsyTkqg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=beffara.org header.s=gm1 header.b=oAGimDii; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1680031890; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=GxK2+ZA2J03Qfl84xKLZXHSsd/Pbgf+LQNloOUvZzzo=; b=ElvUruZaAcM/an4lyGu6DKfoqFURUCD1XC+XdZH2ZRFcs//pSajzFIC8IfIftv6s6/xejd ymBit2Fjz2qCiRgjgOWVpf3ldJJ1f0+/AEzjtCoNG0SSzlg3hwYvwVsTL54AT3bTQgUrSx sjWgdnbHEAc1IDN+q9hGyYjN1ahIce6mwS57PYYs3AfSdEDlkO0lxt2mKzDK5TSNdSgmRa PsgEA6tSy6dZv1juOvkaKkBeHmlYiofahfxaFwn7/feH5W+Keh+/GY8L72kQg6xYoyTYMD OVIiAP0cxYarAuSzwE8W20kicf87rgFiFbaRj6eE/zb6ruVrlaJljlRKQ0GsLw== Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=beffara.org header.s=gm1 header.b=oAGimDii; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "help-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="help-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Scanner: scn1.migadu.com X-Migadu-Spam-Score: -2.33 X-Spam-Score: -2.33 X-Migadu-Queue-Id: 8AA8814958 X-TUID: riLPKRMpTDJN Hello Guix, I would like to share a few thoughts on how TeXlive is currently handled in Guix. The package `texlive` contains all of TeXlive, it works fine but it is arguably too big to be practical. The documentation rightfully says > We recommend using the modular package set because it is much less > resource-hungry. Yet assembling modular sets is problematic for various reasons. Firstly, unless I am missing something, creating a manifest with the right set of packages is tedious: one has to guess the Guix package that matches each LaTeX package, and the correspondence is not obvious. Thankfully, with a working installation, `tlmgr show something.sty` helps finding the TeXlive package that contains the file and `guix search texlive something` finds the corresponding Guix package if there is one (it could be named `texlive-something` or `texlive-latex-something`, this feels somewhat inconsistent). When trying to compile a complex document, doing that for every package and dependency is time-consuming (compile, read compilation errors, install more packages, restart). Secondly, many packages are missing. Apparently, `(gnu packages tex)` contains an arbitrary set of common packages, likely defined by people who needed them and had the skill to produce a patch for them. It is fairly easy to produce new definitions using `guix import texlive something` and adjusting the result, still it feels more complicated than it ought to be. Considering how well TeXlive is organized, it should be possible to automatically extract the set of all packages in a given release and turn the result into a big comprehensive Guile module. Besides, importing TeXlive "collections" could be a useful intermediate between taking the whole system and picking packages individually. Thirdly, formats are apparently not handled right. The main issue is with hyphenation (hence the cc on an open issue): hyphenation patterns need to be compiled into the formats to be available in documents, so the format files should be built depending on which `texlive-hyphen-something` packages are installed. Currently this is not the case: ``` $ guix shell --pure coreutils texlive-base texlive-latex-base -- /bin/sh -c 'realpath $GUIX_TEXMF/web2c/pdflatex.fmt' /gnu/store/m1vh5mm4gjlqzaylfxmxbx5g3j20k8wn-texlive-latex-base-59745/share/texmf-dist/web2c/pdflatex.fmt $ guix shell --pure coreutils texlive-base texlive-latex-base texlive-hyphen-base texlive-hyphen-french -- /bin/sh -c 'realpath $GUIX_TEXMF/web2c/pdflatex.fmt' /gnu/store/m1vh5mm4gjlqzaylfxmxbx5g3j20k8wn-texlive-latex-base-59745/share/texmf-dist/web2c/pdflatex.fmt ``` If the format is always the same, then no modular installation can do any hyphenation, as reported in https://issues.guix.gnu.org/56556. There might be other things than hyphenation that require similar treatment. That said, I don't know what would be the best way to contribute. -- Emmanuel