GNU bug report logs - #63604
Branch "tex-team-next" in need of review

Previous Next

Package: guix-patches;

Reported by: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>

Date: Sat, 20 May 2023 09:39:02 UTC

Severity: normal

Done: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 63604 in the body.
You can then email your comments to 63604 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#63604; Package guix-patches. (Sat, 20 May 2023 09:39:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Nicolas Goaziou <mail <at> nicolasgoaziou.fr>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sat, 20 May 2023 09:39:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: guix-patches <at> gnu.org
Subject: Branch "tex-team-next" in need of review
Date: Sat, 20 May 2023 11:38:46 +0200
Hello,

I just pushed branch named "tex-team-next", based on current "tex-team"
branch. At its core, it merely modifies the texlive build system.
Consequently, it also rewrites (almost) all texlive-prefixed packages
accordingly, and tweaks the texlive importer to follow suit.

The most obvious differences with the last iteration of this build
system are that `simple-texlive-package' function along with its
`#:trivial?' argument disappear, and the `#:tex-directory' keyword is no
longer used. Package definitions are now more regular, in comparison to
other packages in Guix.

Internally, this build system now:

- tries to build ".dtx" files when no build targets, through
  `#:build-targets keyword', are specified and no ".ins" file are
  present in the source;

- generates font metrics (".tfm") from Metafont files (".mf"), with the
  consequence of adding a new `#:ignore-metafont-files' keyword for
  a few tricky font packages;

- guarantees that no cruft, e.g., ".log" files, is installed in the
  output by comparing generated files with those expected by the TeX
  Live distribution;

Since these changes affected almost all packages in "tex.scm", I took
the opportunity to:

- normalize package names, so that every package is now named after the
  texlive-TEXLIVENAME scheme, where TEXLIVENAME is the name of the
  matching package in the TeX Live distribution;

- add appropriate propagated inputs, which will hopefully drastically
  reduce the number of packages to declare when installing a working,
  minimal, and modular bundle;

- created new packages required as propagated inputs, and a couple
  others to try out the font metrics generation on peculiar setups.

Unfortunately, these changes do not affect the "bootstrap" part of the
texlive packages, e.g., `texlive-bin', `texlive-latex-base', or
`texlive-hyphen-package'… While creating new texlive packages is
certainly, all of this doesn't help in updating packages individually or
as a whole. Neither does it solve the dreaded hyphenation issue. Sorry.

In order to help anyone interested in reviewing this 400+ packages set,
here are some guidelines. The noteworthy patches are:

- patches 1 and 389, about the real changes to the build system;
- patches 3, 4, 5, 6 and 390, about refinements to its relative
  importer.

These ones should be reviewed, since this is where the Guile code lives.
The others are not so interesting and can be merrily skipped. Anyway,

- patches 2, 360, and 388 are the steps taken to ultimately remove
  `simple-texlive-package' function without breaking every build right
  from the beginning;

- everything else (!) is just boring package rewriting, or addition.

Feedback welcome,

Regards,
-- 
Nicolas Goaziou




Information forwarded to guix-patches <at> gnu.org:
bug#63604; Package guix-patches. (Sun, 21 May 2023 16:28:01 GMT) Full text and rfc822 format available.

Message #8 received at 63604 <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: 63604 <at> debbugs.gnu.org
Subject: Re: [bug#63604] Branch "tex-team-next" in need of review
Date: Sun, 21 May 2023 18:27:22 +0200
Nicolas Goaziou <mail <at> nicolasgoaziou.fr> writes:

> Since these changes affected almost all packages in "tex.scm", I took
> the opportunity to:
>

[...]

> - add appropriate propagated inputs, which will hopefully drastically
>   reduce the number of packages to declare when installing a working,
>   minimal, and modular bundle;

On second thought, this may not be a great idea.

OTOH, it requires manual intervention (grepping for RequirePackage
through ".sty" and ".cls" files, and finding out the corresponding TeX
Live packages).

OTOH,

  guix import texlive --recursive collection-whatever

requires only a small fix to produce a useful output.

So, it may be better to remove "invisible" propagated inputs from
packages, keeping only those specified by TeX Live, and start providing
collections.

WDYT?




Information forwarded to guix-patches <at> gnu.org:
bug#63604; Package guix-patches. (Sun, 28 May 2023 06:39:01 GMT) Full text and rfc822 format available.

Message #11 received at 63604 <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: 63604 <at> debbugs.gnu.org
Cc: rekado <at> elephly.net
Subject: Re: [bug#63604] Branch "tex-team-next" in need of review
Date: Sun, 28 May 2023 08:38:32 +0200
Nicolas Goaziou <mail <at> nicolasgoaziou.fr> writes:

> Internally, this build system now:

[...]

> - generates font metrics (".tfm") from Metafont files (".mf"), with the
>   consequence of adding a new `#:ignore-metafont-files' keyword for
>   a few tricky font packages;

I improved the font metrics generation, and the new
#:ignore-metafont-files keyword is not necessary anymore. I removed it
from the code base.

Also, the importer now behaves better when importing meta-packages, such
as collection-basic or… scheme-full.

I'm Cc'ing the TeX team.

Regards,




Information forwarded to guix-patches <at> gnu.org:
bug#63604; Package guix-patches. (Tue, 06 Jun 2023 16:02:02 GMT) Full text and rfc822 format available.

Message #14 received at 63604 <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: 63604 <at> debbugs.gnu.org
Cc: rekado <at> elephly.net
Subject: Re: [bug#63604] Branch "tex-team-next" in need of review
Date: Tue, 06 Jun 2023 18:01:34 +0200
I just pushed an update on tex-team-next branch.

The biggest change is about hyphenations. I created one big package
containing all hyphenations, named `texlive-hyphen-complete'.
`texlive-hyphen-base' still exists for low-level packages, such as
`texlive-tex', but every other hyphenation related package has been
deprecated and removed.

Also, the build system now generates TeX formats on demand, with the
#:generate-formats keyword.

At this point, with the following command,

  ./pre-inst-env guix shell --pure texlive-bin texlive-ec texlive-latex-base texlive-babel-french texlive-carlisle -- latex /tmp/test.tex

I can compile the following LaTeX document _without any hyphenation
warning_:

--8<---------------cut here---------------start------------->8---
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\begin{document}
Success!
\end{document}
--8<---------------cut here---------------end--------------->8---

So, what's next?

- Install executables (copied from `texlive-bin') along with the texlive
  package, when appropriate. The more packages you install, the less you
  need `texlive-bin'. Ultimately, I want to get rid of `texlive-bin' as
  a native input for every package. I think it should be limited to the
  first few packages needed to build the rest. If that works, the
  #:texlive-bin keyword can go away.

- Replace `texlive-latex-base', which doesn't exist in TeX Live, with
  `texlive-latex-bin'.  Consequently, `#:texlive-latex-base' would be
  renamed `#:texlive-latex-bin'.

- Limit propagated inputs to the bare minimum, as defined in Tex Live,
  and, at the same time, introduce collections and schemes. For example,
  `texlive-scheme-basic' would replace `texlive-base'.

Regards,




Information forwarded to guix-patches <at> gnu.org:
bug#63604; Package guix-patches. (Wed, 14 Jun 2023 09:25:01 GMT) Full text and rfc822 format available.

Message #17 received at 63604 <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: 63604 <at> debbugs.gnu.org
Cc: rekado <at> elephly.net
Subject: Re: [bug#63604] Branch "tex-team-next" in need of review
Date: Wed, 14 Jun 2023 11:24:16 +0200
Here's another update for tex-team-next branch.

The biggest change is the removal of `texlive-base' and
`texlive-latex-base' packages, which do not exist as TeX Live packages.
They are replaced by, respectively, `texlive-scheme-basic' and
`texlive-latex-bin'.

Consequently, the `#:texlive-latex-base' argument no longer exists. It
is replaced by `#:texlive-latex-bin?'. The importer automatically set it
to #f when necessary.

I also started to introduce collections and schemes from TeX Live.  At
this point, the following command,

  ./pre-inst-env guix shell --pure texlive-scheme-basic texlive-babel-french -- latex /tmp/test.tex

can compile the following LaTeX document without any hyphenation warning:

--8<---------------cut here---------------start------------->8---
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\begin{document}
Success!
\end{document}
--8<---------------cut here---------------end--------------->8---

> So, what's next?
>
> - Install executables (copied from `texlive-bin') along with the texlive
>   package, when appropriate. The more packages you install, the less you
>   need `texlive-bin'. Ultimately, I want to get rid of `texlive-bin' as
>   a native input for every package. I think it should be limited to the
>   first few packages needed to build the rest. If that works, the
>   #:texlive-bin keyword can go away.

I admit that plan failed. Many binaries are tightly bound to each other.
I couldn't extract each of them and associate them to the right package.

It would be possible, however, to split `texlive-bin' into multiple
independent outputs (as NixOS does) in order to reduce the size of TeX
Live packages. Regarding that size, there's also the issue (at least it
seems to me) that `texlive-bin' retains a reference to GCC.

I won't look into any of the above in the current "tex-team-next"
branch.

> - Replace `texlive-latex-base', which doesn't exist in TeX Live, with
>   `texlive-latex-bin'.  Consequently, `#:texlive-latex-base' would be
>   renamed `#:texlive-latex-bin'.

Done.

> - Limit propagated inputs to the bare minimum, as defined in Tex Live,
>   and, at the same time, introduce collections and schemes. For example,
>   `texlive-scheme-basic' would replace `texlive-base'.

I started this. Since I need to review each package to reduce propagated
inputs, I may as well consider updating TeX Live to a more recent
release first. I'll see if I can do this during the next days.
Unfortunately, building `texlive-bin' takes a long time.

Feedback welcome.

Regards,




Information forwarded to guix-patches <at> gnu.org:
bug#63604; Package guix-patches. (Thu, 29 Jun 2023 09:15:02 GMT) Full text and rfc822 format available.

Message #20 received at 63604 <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: 63604 <at> debbugs.gnu.org
Cc: rekado <at> elephly.net
Subject: Re: [bug#63604] Branch "tex-team-next" in need of review
Date: Thu, 29 Jun 2023 11:14:13 +0200
Hello,

The "tex-team-next" branch has reached a milestone, so I started the
process of merging it into "master".

In a nutshell, this branch provides:

 - TeX Live 2023 ;

 - more packages, including some collections and schemes ;

 - a beefed-up importer : it handles most native inputs and arguments.
   It can also produce meta-packages ;

 - normalized package names and definitions : no more
   `simple-texlive-package', only a limited set of Guix specific
   packages, described in a comment at the beginning of the module ;

 - a more voluntary build system : it can generate runfiles, build font
   metrics, generate TeX formats, and install scripts ;

 - a lighter `texlive-bin' : it no longer provides every TeX Live script
   right from the start, reducing (!) the number of files added to
   "bin/" from 400 to 200 ;

 - an actually usable modular TeX Live, with no more hyphenation issues,
   and less packages to list thanks to collections.

Adding new packages is very easy, but they still have to be updated
manually every time we bump TeX Live version. It would be nice to buy us
an updater at some point.

I also think we can further modularize `texlive-bin': some binaries may
be built along with their respective texlive package instead. Food for
thoughts.

Regards,
-- 
Nicolas Goaziou




Information forwarded to guix-patches <at> gnu.org:
bug#63604; Package guix-patches. (Sun, 27 Aug 2023 08:39:02 GMT) Full text and rfc822 format available.

Message #23 received at 63604 <at> debbugs.gnu.org (full text, mbox):

From: Andreas Enge <andreas <at> enge.fr>
To: 63604 <at> debbugs.gnu.org
Subject: Closing?
Date: Sun, 27 Aug 2023 10:37:47 +0200
Hello,

as far as I can tell, the branch has been merged, can this issue
be closed?

Andreas





Reply sent to Nicolas Goaziou <mail <at> nicolasgoaziou.fr>:
You have taken responsibility. (Sun, 27 Aug 2023 09:43:02 GMT) Full text and rfc822 format available.

Notification sent to Nicolas Goaziou <mail <at> nicolasgoaziou.fr>:
bug acknowledged by developer. (Sun, 27 Aug 2023 09:43:02 GMT) Full text and rfc822 format available.

Message #28 received at 63604-done <at> debbugs.gnu.org (full text, mbox):

From: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
To: Andreas Enge <andreas <at> enge.fr>
Cc: 63604-done <at> debbugs.gnu.org
Subject: Re: [bug#63604] Closing?
Date: Sun, 27 Aug 2023 11:42:41 +0200
Hello,

Andreas Enge <andreas <at> enge.fr> writes:

> as far as I can tell, the branch has been merged, can this issue
> be closed?

Sure. Done.

Regards,
-- 
Nicolas Goaziou




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 24 Sep 2023 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 229 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.