From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Small texlive variant Date: Tue, 19 Jan 2016 10:20:42 +0100 Message-ID: <87vb6qc4d1.fsf@gnu.org> References: <20160115152153.GA9454@debian> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:56039) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aLST2-00009s-HF for guix-devel@gnu.org; Tue, 19 Jan 2016 04:20:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aLSSz-00040m-Aw for guix-devel@gnu.org; Tue, 19 Jan 2016 04:20:48 -0500 In-Reply-To: <20160115152153.GA9454@debian> (Andreas Enge's message of "Fri, 15 Jan 2016 16:21:53 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Andreas Enge Cc: guix-devel@gnu.org Andreas Enge skribis: > the first attached patch adds a small texlive variant. I spent quite some > time determining things to delete from texlive-texmf so that the result > would still be usable, but I am certain the result is not minimal in the > strict sense of the word. So I wondered whether the package should not be > called "texlive-small" instead, but we already have a certain convention > of using the suffix "-minimal" internally. I export the variable, but as > I see it, its main use will be as a native-input to build documentation > in packages. In my case, I am interested in pari-gp, which is modified > by the second patch to build its documentation. For testing, you may call > `./pre-inst-env guix build texlive-minimal`/bin/xdvi `./pre-inst-env g= uix build pari-gp`/share/pari/doc/tutorial > after applying the patches. That makes sense, and it=E2=80=99s already an improvement! I guess most of= the packages that currently depend on =E2=80=98texlive=E2=80=99 could switch to =E2=80=98texlive-minimal=E2=80=99 as well. > From texlive-texmf, I deleted the subdirectory "doc" (1753 MB) and "sourc= e" > (250 MB), and large chunks of "fonts", bringing it down from 1591 MB > to 116 MB. There are probably parts of the 267 MB of "tex" that could be > deleted as well, but I do not feel motivated to investigate further. OK. > ./pre-inst-env guix size texlive > /gnu/store/pjmxca0nww2bp6hkwz7cjlh4s26ymxs2-texlive-2015 4223.2 = 0.3 0.0% > /gnu/store/0wkmf926dv9ck8y1pk5p2lxw95kf7z9d-texlive-texmf-2015 4222.9 = 3710.3 87.9% > /gnu/store/0h4cs6krz1rsfjl17rpy5mjr3bfap5lp-texlive-bin-2015 507.2 = 49.5 1.2% > ... > > ./pre-inst-env guix size texlive-minimal > /gnu/store/9flmncm9plf7y3bs6yj0nnpr7zlwagi2-texlive-minimal-2015 = 937.5 0.3 0.0% > /gnu/store/y8shfzsg82b37zlzx29bza686gcr5162-texlive-texmf-minimal-2015 = 937.1 428.4 45.7% > /gnu/store/0h4cs6krz1rsfjl17rpy5mjr3bfap5lp-texlive-bin-2015 = 507.2 49.5 5.3% Yay! :-) > It should be possible to build texlive-minimal with a stripped-down varia= nt > of texlive-bin, but I do not feel it is worth the effort. > > The next thing to do would be to replace the occurrences of "texlive" in > packages by "texlive-minimal" (and to make sure they are in native-inputs= ), > to have the branch built by hydra and to check whether texlive-minimal is > not too minimal for building all documentation. Agreed. > From f8a4aabcdf2ec156f42a87708078c065ad4fe43f Mon Sep 17 00:00:00 2001 > From: Andreas Enge > Date: Fri, 15 Jan 2016 16:00:47 +0100 > Subject: [PATCH 1/2] gnu: Add texlive-minimal. > > * gnu/packages/texlive.scm (texlive-texmf-minimal, texlive-minimal): > New variables. [...] > + (with-directory-excursion "texmf-dist" > + (for-each delete-file-recursively > + '("doc" "source" "tex4ht")) > + ;; Delete all subdirectories of "fonts", except for those > + ;; named "cm", that is, "afm/public/amsfonts/cm", > + ;; "map/dvips/cm", "pk/ljfour/public/cm" (which is effect= ively > + ;; all of "pk"), "source/public/cm", "tfm/public/cm" and > + ;; "type1/public/amsfonts/cm". > + ;; Inside "tfm", apparently more subdirectories are neede= d for > + ;; successful bootstrapping of the formats, so we keep > + ;; "tfm/public". > + (with-directory-excursion "fonts" > + (for-each delete-file-recursively > + (lset-difference equal? > + (scandir ".") > + '("." ".." "afm" "map" "pk" > + "source" "tfm" "type1"))) > + (with-directory-excursion "afm" > + (for-each delete-file-recursively > + (lset-difference equal? > + (scandir ".") > + '("." ".." "public"))) > + (with-directory-excursion "public" > + (for-each delete-file-recursively > + (lset-difference equal? > + (scandir ".") > + '("." ".." "amsfonts"))) This is a bit verbose. I think it would be nice to have a data structure to describe what we are deleting, along these lines (untested): (define to-delete '(("texmf-dist" except "doc" "source" "tex4ht") ("texmf-dist/afm" except "amsfonts") ;; =E2=80=A6 )) (define (expand-file-specification spec) (match spec ((directory) directory) ((directory 'except exceptions ...) (map (cut string-append directory "/" <>) (lset-difference string=3D? (scandir directory) (cons* "." ".." exceptions)))))) (with-directory-excursion out (for-each delete-file-recursively (map expand-file-specification to-delete))) WDYT? > From b6c445622d5308c905b9fd7d799638335a627496 Mon Sep 17 00:00:00 2001 > From: Andreas Enge > Date: Fri, 15 Jan 2016 16:02:29 +0100 > Subject: [PATCH 2/2] gnu: pari-gp: Build documentation. > > * gnu/packages/algebra.scm (pari-gp)[native-inputs]: Add texlive-minimal. > [arguments]: Modify make-flags to build documentation. [...] > (build-system gnu-build-system) > + (native-inputs `(("texlive" ,texlive-minimal))) Doesn=E2=80=99t PARI want to use TeX at run time too? If that is the case,= this should go to =E2=80=98inputs=E2=80=99. Otherwise LGTM. Thanks for working on this thankless yet very useful task! :-) Ludo=E2=80=99.