mbox series

[bug#49408,core-updates,0/5] Update TeX Live to version 2021.3

Message ID 20210704234449.424436-1-bauermann@kolabnow.com
Headers show
Series Update TeX Live to version 2021.3 | expand

Message

Thiago Jung Bauermann July 4, 2021, 11:44 p.m. UTC
Hello,

I verified the signatures of the
texlive-20210325-{source,extra,texmf}.tar.xz files. However, I don’t know
how I could verify the authenticity of the many texlive packages that are
obtained via svn checkout, so in those case I merely updated the expected
hash to match the one reported by Guix. It’s worth noting that the svn://
protocol is neither encrypted nor authenticated.

This is how I decided to organize the patch series, feel free to suggest a
different way:

• Patch 1 changes texlive-latex-l3kernel and texlive-latex-l3packages to be
  built with IniTeX so that they don’t create a dependency loop when the
  second patch is applied.

• Patch 2 updates all hashes for all packages except
  texlive-latex-pdftexcmds, which will be updated in the last patch. It also
  include the changes needed to make `guix pull` succeed.

• Patch 3 adds package texlive-latex-l3backend, which is a new dependency
  for texlive-latex-xkeyval.

• Patch 4 makes texlive-latex-xkeyval depend on texlive-latex-l3backend.

• Patch 5 updates the paths and hash for texlive-latex-pdftexcmds, which was
  moved to a new location since TeX Live 2020.

Between patches 2 and 5, texlive packages which don’t get built by
`guix pull` are broken. Please let me know if this is a problem.

I noticed that not all packages in the TeX Live repository are in Guix.
Since I don’t know what criteria are used to decide what to include, I’m not
adding any new package that became available since TeX Live 2020.

I tested that all packages matching “texlive*” build after this series is
applied using the following script:

--8<---------------cut here---------------start------------->8---
#!/bin/bash

set -e

LOG_FILE="$1"
ROUNDS=$2

function verify_package() {
    local package="$1"
    local log_file="$2"

    if ! guix build "$package"; then
        echo "failure while building $package" >> "$log_file"
        return
    fi

    echo "success while building $package" >> "$log_file"

    if [ "$ROUNDS" -eq 0 ]; then
        return
    fi

    if ! guix build --check --rounds=$ROUNDS "$package"; then
        echo "failure while checking $package" >> "$log_file"
        return
    fi

    echo "success while checking $package" >> "$log_file"

    return
}

guix describe >> "$LOG_FILE"
echo rounds = "$ROUNDS" >> "$LOG_FILE"
echo >> "$LOG_FILE"

for package in $(guix package --list-available='^texlive' | cut -f1)
do
    verify_package $package "$LOG_FILE"
done
--8<---------------cut here---------------end--------------->8---

This series is applied on top of the patch submitted for bug 48064¹.

It’s available in branch ‘texlive-2021-pdftex-by-default-patches’ at
https://gitlab.com/bauermann/guix.git

Comments

Thiago Jung Bauermann July 6, 2021, 12:42 a.m. UTC | #1
Hi,

Today I thought of a couple more tests I could do on these patches:

1. Ran `make check TESTS=”tests/texlive.scm”`.

Unexpectedly, this ran more tests, but the TeX Live one did pass. Some 
other tests failed. I looked at a few of the failures and they don’t seem 
related to TeX at all.

2. Built the Guix manual and checked en/guix.pdf and es/guix.es.pdf.

Browsing through the PDFs, they look fine. The Spanish one does have the 
accented characters as expected. I also checked the build log and confirmed 
that TeX Live 2021 was used to generate them. I do see the following error 
messages in the pdfTeX output:

l.149: Unicode char @u8:å<8f><82> not defined for Texinfo

I tried building the manual using Guix master but I get a segmentation 
fault during the build process, so I can’t check whether the error message 
is also present in the current TeX Live version.
Nathan Benedetto Proença July 9, 2021, 1:42 p.m. UTC | #2
Biber must be upgraded together with texlive-biblatex.
I will send two patches which address this issue:

* the first updates perl-text-bibtex
* the second updates biber itself