Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 927092

Summary: dev-texlive/texlive-xetex-2023_p69452: Undefined control sequence on upgrade from 2021
Product: Gentoo Linux Reporter: Yuan Liao (Leo3418) <liaoyuan>
Component: Current packagesAssignee: TeX project <tex>
Status: RESOLVED FIXED    
Severity: normal CC: andrewammerlaan, flow, liaoyuan, negril.nx+gentoo
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: build.log
List of installed packages when the build failed
List of installed packages when the build failed
List of installed packages (Attempt 2, failed)
List of installed packages (Successful upgrade)

Description Yuan Liao (Leo3418) 2024-03-15 20:32:02 UTC
Created attachment 887721 [details]
build.log

When TeXLive is being upgraded from 2021 to 2023, an "Undefined control sequence" error will occur when dev-texlive/texlive-xetex-2023_p69452 is being built.

Steps to reproduce:
1. Ensure TeXLive 2023 packages are masked, or their keywords are not accepted
2. emerge dev-texlive/texlive-{latexextra,xetex}
3. Unmask and accept keywords for TeXLive 2023 packages
4. emerge --update --newuse --deep @world
   - In the process, some packages may fail to upgrade due to file collisions.  I would use 'emerge --unmerge' to uninstall any TeXLive 2021 packages involved in the collisions and retry, until dev-texlive/texlive-xetex-2023_p69452 is ready to build.

Build log snippet:

fmtutil [INFO]: --- remaking xelatex-dev with xetex
fmtutil: running `xetex -ini   -jobname=xelatex-dev -progname=xelatex-dev -etex xelatex.ini' ...
This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023 Gentoo Linux) (INITEX)
 restricted \write18 enabled.
entering extended mode
(/usr/share/texmf-dist/tex/latex/tex-ini-files/xelatex.ini
(/usr/share/texmf-dist/tex/latex-dev/base/latex.ltx
(/usr/share/texmf-dist/tex/latex-dev/base/texsys.cfg)
./texsys.aux found


\@currdir set to: ./.


Assuming \openin and \input 
have the same search path.


Defining UNIX/DOS style filename parser.

catcodes, registers, parameters,
LaTeX2e <2021-05-01> pre-release-2 (develop 2024-3-15 branch)
(/usr/share/texmf-dist/tex/latex/l3kernel/expl3.ltx
(/usr/share/texmf-dist/tex/latex/l3kernel/expl3-code.tex)) hacks,
document commands,
! Undefined control sequence.
<argument> ... \NewHook }}\__kernel_msg_info:nnxx 
                                                  {ltcmd}{define-command}{\t...
l.4888 ...ok             { m }{ \hook_new:n {#1} }
                                                  
? 
! Emergency stop.
<argument> ... \NewHook }}\__kernel_msg_info:nnxx 
                                                  {ltcmd}{define-command}{\t...
l.4888 ...ok             { m }{ \hook_new:n {#1} }
                                                  
No pages of output.
Transcript written on xelatex-dev.log.

# emerge -pqv dev-texlive/texlive-xetex
[ebuild     U ] dev-texlive/texlive-xetex-2023_p69452 [2021-r1] USE="-X -doc -source"

# emerge --info
Portage 3.0.61 (python 3.11.8-final-0, default/linux/amd64/17.1, gcc-13, glibc-2.38-r10, 6.7.9 x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-6.7.9-x86_64-AMD_Ryzen_7_7840U_w-_Radeon_780M_Graphics-with-glibc2.38
KiB Mem:    32026500 total,  19904556 free
KiB Swap:    8388604 total,   8388604 free
sh bash 5.1_p16-r6
ld GNU ld (Gentoo 2.41 p5) 2.41.0
app-misc/pax-utils:        1.3.7::gentoo
app-shells/bash:           5.1_p16-r6::gentoo
dev-build/autoconf:        2.71-r6::gentoo
dev-build/automake:        1.16.5-r2::gentoo
dev-build/cmake:           3.27.9::gentoo
dev-build/libtool:         2.4.7-r2::gentoo
dev-build/make:            4.4.1-r1::gentoo
dev-build/meson:           1.3.1-r1::gentoo
dev-lang/perl:             5.38.2-r2::gentoo
dev-lang/python:           3.11.8_p1::gentoo, 3.12.2_p1::gentoo
sys-apps/baselayout:       2.14-r2::gentoo
sys-apps/openrc:           0.53::gentoo
sys-apps/sandbox:          2.38::gentoo
sys-devel/binutils:        2.41-r5::gentoo
sys-devel/binutils-config: 5.5::gentoo
sys-devel/gcc:             13.2.1_p20240113-r1::gentoo
sys-devel/gcc-config:      2.11::gentoo
sys-kernel/linux-headers:  6.6::gentoo (virtual/os-headers)
sys-libs/glibc:            2.38-r10::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    volatile: True
    sync-rsync-verify-max-age: 3
    sync-rsync-verify-jobs: 1
    sync-rsync-verify-metamanifest: yes
    sync-rsync-extra-opts: 

Binary Repositories:

gentoobinhost
    priority: 1
    sync-uri: https://distfiles.gentoo.org/releases/amd64/binpackages/17.1/x86-64

Installed sets: @texlive
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe"
DISTDIR="/var/cache/distfiles"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LANG="C.UTF8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LEX="flex"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
SHELL="/bin/bash"
USE="acl amd64 bzip2 cli crypt dri fortran gdbm iconv ipv6 libtirpc multilib ncurses nls openmp pam pcre readline seccomp split-usr ssl test-rust unicode xattr zlib" ABI_X86="64" ADA_TARGET="gcc_12" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 ntrip navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-1" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_11" RUBY_TARGETS="ruby31" VIDEO_CARDS="amdgpu fbdev intel nouveau radeon radeonsi vesa dummy" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, MAKEOPTS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
Comment 1 Yuan Liao (Leo3418) 2024-03-15 20:32:38 UTC
Created attachment 887722 [details]
List of installed packages when the build failed
Comment 2 Yuan Liao (Leo3418) 2024-03-15 20:33:47 UTC
Created attachment 887723 [details]
List of installed packages when the build failed
Comment 3 Florian Schmaus gentoo-dev 2024-03-16 21:14:36 UTC
I wonder if this is a missing RDEPEND on >=dev-texlive/texlive-latex-2023.

@leo3418 could you see if emerging texlive-xetex-2023 succeeds if texlive-latex-2023 is installed?
Comment 4 Yuan Liao (Leo3418) 2024-03-16 23:53:50 UTC
Created attachment 887779 [details]
List of installed packages (Attempt 2, failed)

(In reply to Florian Schmaus from comment #3)
> I wonder if this is a missing RDEPEND on >=dev-texlive/texlive-latex-2023.
> 
> @leo3418 could you see if emerging texlive-xetex-2023 succeeds if
> texlive-latex-2023 is installed?

I just tried to upgrade from 2021 to 2023 again, installing texlive-latex-2023 before texlive-xetex-2023.  Ended up with exactly the same error.

In my first attempt, texlive-latex-2023 was also installed already.  Attachment 887723 [details] shows:

# emerge --pretend --verbose @installed | sort
[ebuild   R   #] dev-texlive/texlive-latex-2023_p69131-r1::gentoo  USE="-doc -source" 0 KiB
Comment 5 Yuan Liao (Leo3418) 2024-03-16 23:58:32 UTC
Created attachment 887780 [details]
List of installed packages (Successful upgrade)

FWIW, if only texlive-xetex is added to @world and texlive-latexextra is not, I can successfully upgrade from texlive-xetex-2021 to 2023.

In this case, texlive-xetex-2023 would be built with texlive-latex-2021.  In other words, it seems that texlive-xetex-2023 can be built successfully with texlive-latex-2021 but cannot be built with texlive-latex-2023.

# emerge --pretend --verbose @installed
...
[ebuild     U #] dev-texlive/texlive-latex-2023_p69131-r1::gentoo [2021::gentoo] USE="-doc -source" 0 KiB
[ebuild   R   #] dev-texlive/texlive-xetex-2023_p69452::gentoo  USE="-X -doc -source" 0 KiB
Comment 6 Andrew Nowa Ammerlaan gentoo-dev 2024-03-24 18:28:54 UTC
I resolved the problem with
emerge -C dev-texlive/texlive-xetex
emerge -1 dev-texlive/texlive-latexextra
emerge -1 dev-texlive/texlive-xetex

I'm pretty sure the problem occurs because there is a mismatch between the versions of texlive-latex and texlive-latexextra during the upgrade.

Emerge upgrades the packages in this (wrong) order because the texlive-latexextra ebuild has the blocker !<dev-texlive/texlive-xetex-2023. I think we may be able to resolve the problem by enforcing a version match between texlive-latex and texlive-latexextra with a RDEPEND on ~dev-texlive/texlive-latex in dev-texlive/texlive-latexextra.
Comment 7 Larry the Git Cow gentoo-dev 2024-03-24 19:36:31 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=83eecb3322e2da155b691cd02e681341e7b5472c

commit 83eecb3322e2da155b691cd02e681341e7b5472c
Author:     Florian Schmaus <flow@gentoo.org>
AuthorDate: 2024-03-24 19:20:37 +0000
Commit:     Florian Schmaus <flow@gentoo.org>
CommitDate: 2024-03-24 19:33:20 +0000

    dev-texlive/texlive-latexextra: ensure that texlive-latex version is on par with texlive-latexextra
    
    Closes: https://bugs.gentoo.org/927092
    Signed-off-by: Florian Schmaus <flow@gentoo.org>

 ...ra-2023_p69752-r1.ebuild => texlive-latexextra-2023_p69752-r2.ebuild} | 1 +
 1 file changed, 1 insertion(+)