diff --git a/.gitignore b/.gitignore index 91e0d14..6cca948 100644 --- a/.gitignore +++ b/.gitignore @@ -435,3 +435,6 @@ /digestif.tar.xz /texaccents.source.tar.xz /build-svn66984.tar.gz +/optexcount.doc.tar.xz +/optexcount.tar.xz +/texlogfilter.doc.tar.xz diff --git a/texdef-perl-option-5.40.x.patch b/texdef-perl-option-5.40.x.patch new file mode 100644 index 0000000..f79ea13 --- /dev/null +++ b/texdef-perl-option-5.40.x.patch @@ -0,0 +1,18 @@ +diff -up texmf-dist/scripts/texdef/texdef.pl.orig texmf-dist/scripts/texdef/texdef.pl +--- texmf-dist/scripts/texdef/texdef.pl.orig 2025-07-18 14:43:22.865503978 +0200 ++++ texmf-dist/scripts/texdef/texdef.pl 2025-07-18 14:46:49.871203706 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env perl ++texmf-dist/scripts/texdef/texdef.pl#!/usr/bin/env perl + ################################################################################ + # texdef -- Show definitions of TeX commands + # Copyright (c) 2011-2020 Martin Scharrer +@@ -222,7 +222,7 @@ sub envcode { + } + + ## Define and process options +-Getopt::Long::Configure ("bundling"); ++Getopt::Long::Configure ("bundling","no_ignore_case"); + GetOptions ( + 'value|v!' => \$SHOWVALUE, + 'Environment|E!' => \$ISENVIRONMENT, diff --git a/texlive-2023-gcc15-ftbfs.patch b/texlive-2023-gcc15-ftbfs.patch new file mode 100644 index 0000000..2f10805 --- /dev/null +++ b/texlive-2023-gcc15-ftbfs.patch @@ -0,0 +1,197 @@ +diff -up texlive-base-20230311/source/texk/web2c/luatexdir/tex/textoken.c.me texlive-base-20230311/source/texk/web2c/luatexdir/tex/textoken.c +--- texlive-base-20230311/source/texk/web2c/luatexdir/tex/textoken.c.me 2025-01-23 16:20:29.845574328 +0100 ++++ texlive-base-20230311/source/texk/web2c/luatexdir/tex/textoken.c 2025-01-23 16:23:32.896925830 +0100 +@@ -2665,7 +2665,7 @@ static int do_feedback_pdf(halfword c) + halfword save_def_ref; + halfword save_warning_index; + /*tex temp boolean */ +- boolean bool; ++ boolean bool1; + /*tex first temp string */ + str_number s; + /*tex for use with |set_ff| */ +@@ -2738,7 +2738,7 @@ static int do_feedback_pdf(halfword c) + print_int(pdf_get_obj(static_pdf, obj_type_page, cur_val, false)); + pop_selector; + } else if (scan_keyword("colorstackinit")) { +- bool = scan_keyword("page"); ++ bool1 = scan_keyword("page"); + if (scan_keyword("direct")) + cur_val = direct_always; + else if (scan_keyword("page")) +@@ -2762,7 +2762,7 @@ static int do_feedback_pdf(halfword c) + warning_index = save_warning_index; + scanner_status = save_scanner_status; + str = makecstring(s); +- cur_val = newcolorstack(str, cur_val, bool); ++ cur_val = newcolorstack(str, cur_val, bool1); + free(str); + flush_str(s); + cur_val_level = int_val_level; +@@ -2801,7 +2801,7 @@ void conv_toks(void) + halfword save_def_ref; + halfword save_warning_index; + /*tex temp boolean */ +- boolean bool; ++ boolean bool1; + /*tex first temp string */ + str_number s; + /*tex lua chunk name */ +@@ -2991,11 +2991,11 @@ void conv_toks(void) + save_def_ref = def_ref; + save_warning_index = warning_index; + scan_toks(false, true); +- bool = in_lua_escape; ++ bool1 = in_lua_escape; + in_lua_escape = true; + escstr.s = (unsigned char *) tokenlist_to_cstring(def_ref, false, &l); + escstr.l = (unsigned) l; +- in_lua_escape = bool; ++ in_lua_escape = bool1; + delete_token_ref(def_ref); + def_ref = save_def_ref; + warning_index = save_warning_index; +diff -up texlive-base-20230311/source/texk/web2c/luatexdir/unilib/ustring.c.me texlive-base-20230311/source/texk/web2c/luatexdir/unilib/ustring.c +--- texlive-base-20230311/source/texk/web2c/luatexdir/unilib/ustring.c.me 2025-01-23 16:45:23.164475899 +0100 ++++ texlive-base-20230311/source/texk/web2c/luatexdir/unilib/ustring.c 2025-01-23 16:47:08.044935510 +0100 +@@ -396,7 +396,7 @@ double u_strtod(const unichar_t *str, un + char buf[60], *pt, *ret; + const unichar_t *upt; + double val; +- extern double strtod(); /* Please don't delete this, not all of us have good ansi headers */ ++ //extern double strtod(); /* Please don't delete this, not all of us have good ansi headers */ + + for ( upt=str, pt=buf; *upt<128 && *upt!='\0' && pt-buffrom->nextcp; + spline->from->nextcp = spline->from->prevcp; + spline->from->prevcp = tp; +- bool = spline->from->nonextcp; ++ bool1 = spline->from->nonextcp; + spline->from->nonextcp = spline->from->noprevcp; +- spline->from->noprevcp = bool; +- bool = spline->from->nextcpdef; ++ spline->from->noprevcp = bool1; ++ bool1 = spline->from->nextcpdef; + spline->from->nextcpdef = spline->from->prevcpdef; +- spline->from->prevcpdef = bool; ++ spline->from->prevcpdef = bool1; + + for ( ; spline!=NULL && spline!=first; spline=next ) { + next = spline->to->next; +@@ -2076,12 +2076,12 @@ return( spl ); /* Only one point, reve + tp = spline->to->nextcp; + spline->to->nextcp = spline->to->prevcp; + spline->to->prevcp = tp; +- bool = spline->to->nonextcp; ++ bool1 = spline->to->nonextcp; + spline->to->nonextcp = spline->to->noprevcp; +- spline->to->noprevcp = bool; +- bool = spline->to->nextcpdef; ++ spline->to->noprevcp = bool1; ++ bool1 = spline->to->nextcpdef; + spline->to->nextcpdef = spline->to->prevcpdef; +- spline->to->prevcpdef = bool; ++ spline->to->prevcpdef = bool1; + } + + temp = spline->to; +diff -up texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/libs/woff2/include/woff2/output.h.me texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/libs/woff2/include/woff2/output.h +--- texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/libs/woff2/include/woff2/output.h.me 2025-01-23 17:53:11.940292061 +0100 ++++ texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/libs/woff2/include/woff2/output.h 2025-01-23 18:00:25.679229974 +0100 +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + + namespace woff2 { + +diff -up texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/Character.hpp.me texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/Character.hpp +--- texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/Character.hpp.me 2025-01-23 18:00:29.791326309 +0100 ++++ texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/Character.hpp 2025-01-23 18:01:29.795726026 +0100 +@@ -21,6 +21,7 @@ + #ifndef CHARACTER_HPP + #define CHARACTER_HPP + ++#include + + class Character { + public: +diff -up texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/EPSFile.hpp.me texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/EPSFile.hpp +--- texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/EPSFile.hpp.me 2025-01-23 18:01:42.194015062 +0100 ++++ texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/EPSFile.hpp 2025-01-23 18:02:08.019619304 +0100 +@@ -21,6 +21,7 @@ + #ifndef EPSFILE_HPP + #define EPSFILE_HPP + ++#include + #include + #include + #include +diff -up texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/FontMetrics.hpp.me texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/FontMetrics.hpp +--- texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/FontMetrics.hpp.me 2025-01-23 18:02:39.822363424 +0100 ++++ texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/FontMetrics.hpp 2025-01-23 18:02:46.917529433 +0100 +@@ -21,6 +21,7 @@ + #ifndef FONTMETRICS_HPP + #define FONTMETRICS_HPP + ++#include + #include + #include + #include +diff -up texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.cpp.me texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.cpp +--- texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.cpp.me 2025-01-23 18:03:21.502336489 +0100 ++++ texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.cpp 2025-01-23 18:03:28.253494025 +0100 +@@ -18,6 +18,7 @@ + ** along with this program; if not, see . ** + *************************************************************************/ + ++#include + #include + #include + #include +diff -up texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.hpp.me texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.hpp +--- texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.hpp.me 2025-01-23 18:04:33.647023179 +0100 ++++ texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/HashFunction.hpp 2025-01-23 18:04:40.919193442 +0100 +@@ -21,6 +21,7 @@ + #ifndef HASHFUNCTION_HPP + #define HASHFUNCTION_HPP + ++#include + #include + #include + #include +diff -up texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/utility.hpp.me texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/utility.hpp +--- texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/utility.hpp.me 2025-01-23 17:54:42.338405708 +0100 ++++ texlive-base-20230311/source/texk/dvisvgm/dvisvgm-src/src/utility.hpp 2025-01-23 17:58:32.140551634 +0100 +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + + namespace math { + diff --git a/texlive-base-20230311-typefixes.patch b/texlive-base-20230311-typefixes.patch new file mode 100644 index 0000000..a64e045 --- /dev/null +++ b/texlive-base-20230311-typefixes.patch @@ -0,0 +1,20 @@ +--- texlive-base-20230311/source/texk/web2c/pdftexdir/pdftex.ch.orig 2023-05-02 17:26:43.000000000 +0200 ++++ texlive-base-20230311/source/texk/web2c/pdftexdir/pdftex.ch 2024-01-20 21:59:58.382906926 +0100 +@@ -179,7 +179,7 @@ pdf_font_type:=xmalloc_array(eight_bits, + pdf_font_attr:=xmalloc_array(str_number, font_max); + pdf_font_blink:=xmalloc_array(internal_font_number, font_max); + pdf_font_elink:=xmalloc_array(internal_font_number, font_max); +-pdf_font_has_space_char:=xmalloc_array(internal_font_number, font_max); ++pdf_font_has_space_char:=xmalloc_array(boolean, font_max); + pdf_font_stretch:=xmalloc_array(integer, font_max); + pdf_font_shrink:=xmalloc_array(integer, font_max); + pdf_font_step:=xmalloc_array(integer, font_max); +@@ -298,7 +298,7 @@ pdf_font_type:=xmalloc_array(eight_bits, + pdf_font_attr:=xmalloc_array(str_number,font_max); + pdf_font_blink:=xmalloc_array(internal_font_number,font_max); + pdf_font_elink:=xmalloc_array(internal_font_number,font_max); +-pdf_font_has_space_char:=xmalloc_array(internal_font_number,font_max); ++pdf_font_has_space_char:=xmalloc_array(boolean,font_max); + pdf_font_stretch:=xmalloc_array(integer,font_max); + pdf_font_shrink:=xmalloc_array(integer,font_max); + pdf_font_step:=xmalloc_array(integer,font_max); diff --git a/texlive-base.spec b/texlive-base.spec index ff3441a..9b2b1f2 100644 --- a/texlive-base.spec +++ b/texlive-base.spec @@ -25,12 +25,12 @@ Name: %{shortname}-base Version: %{source_date} -Release: 77%{?dist} +Release: 94%{?dist} Epoch: 11 Summary: TeX formatting system # The only files in the base package are directories, cache, and license texts # So we'll just list the license texts. This is also a bit of a lie, since most of these license texts do not apply to themselves. -License: Apache-2.0 AND Artistic-2.0 AND BSD AND GFDL-1.1-or-later AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND GPL-3.0-or-later AND Knuth-CTAN AND LGPL-2.1-or-later AND LGPL-3.0-or-later AND LPPL-1.2 AND LPPL-1.3 AND LPPL-1.3c AND MIT AND OFL-1.1 AND LicenseRef-Fedora-Public-Domain +License: Apache-2.0 AND Artistic-2.0 AND BSD-3-Clause AND GFDL-1.1-or-later AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND GPL-3.0-or-later AND Knuth-CTAN AND LGPL-2.1-or-later AND LGPL-3.0-or-later AND LPPL-1.3a AND LPPL-1.3c AND MIT AND OFL-1.1 AND LicenseRef-Fedora-Public-Domain URL: http://tug.org/texlive/ # Source0: https://ctan.math.illinois.edu/systems/texlive/Source/%%{source_name}.tar.xz # Using a specific tag to fix the LuaTeX CVE-2023-32700 @@ -418,10 +418,8 @@ Source377: https://ctan.math.illinois.edu/systems/texlive/tlnet/archive/xetex.do Source378: https://ctan.math.illinois.edu/systems/texlive/tlnet/archive/xetex.tar.xz Source379: https://ctan.math.illinois.edu/systems/texlive/tlnet/archive/xindex.doc.tar.xz Source380: https://ctan.math.illinois.edu/systems/texlive/tlnet/archive/xindex.tar.xz -%if ! 0%{?eln} Source381: https://ctan.math.illinois.edu/systems/texlive/tlnet/archive/xindy.doc.tar.xz Source382: https://ctan.math.illinois.edu/systems/texlive/tlnet/archive/xindy.tar.xz -%endif Source383: https://ctan.math.illinois.edu/systems/texlive/tlnet/archive/xmltex.doc.tar.xz Source384: https://ctan.math.illinois.edu/systems/texlive/tlnet/archive/xmltex.tar.xz Source385: https://ctan.math.illinois.edu/systems/texlive/tlnet/archive/xpdfopen.doc.tar.xz @@ -525,6 +523,18 @@ Patch45: texlive-fedora-texmfcnf.lua.patch # Fix interpreter on perl scripts (thanks again to Debian) Patch46: texlive-base-20230311-fix-scripts.patch +# Fix bundling option with perl-5.40.x +Patch47: texdef-perl-option-5.40.x.patch + +# fix build error with gcc-14 +Patch48: texlive-base-20230311-typefixes.patch + +# fix buid error with gcc-15 +Patch49: texlive-2023-gcc15-ftbfs.patch + +# fix errors with python-3.1x +Patch50: texlive-pythontex3-python-3.1x.patch + # Can't do this because it causes everything else to be noarch # BuildArch: noarch BuildRequires: make @@ -552,11 +562,9 @@ BuildRequires: python3-devel BuildRequires: python3-setuptools %if %{without bootstrap} # This is for xindy -%if ! 0%{?eln} BuildRequires: clisp-devel BuildRequires: texlive-cyrillic, texlive-latex, texlive-metafont, texlive-cm-super, texlive-ec %endif -%endif # This is temporary to fix build while missing kpathsea dep is active BuildRequires: texlive-texlive-scripts # This is needed for a test @@ -706,7 +714,7 @@ way). Version: svn65647 Provides: texlive-albatross = %{epoch}:%{source_date}-%{release} Summary: Find fonts that contain a given glyph -License: BSD +License: BSD-3-Clause Requires: texlive-base texlive-kpathsea %description -n %{shortname}-albatross @@ -793,7 +801,7 @@ Obsoletes: texlive-arara-bin < 7:20170520 Provides: tex-arara-doc = %{epoch}:%{source_date}-%{release} Provides: texlive-arara-doc = %{epoch}:%{source_date}-%{release} Obsoletes: texlive-arara-doc < 7:20170520 -License: BSD +License: BSD-3-Clause Summary: Automation of LaTeX compilation Requires: texlive-base Requires: texlive-kpathsea @@ -1167,7 +1175,7 @@ Obsoletes: texlive-checklistings-bin < 7:20170520 Provides: tex-checklistings-doc = %{epoch}:%{source_date}-%{release} Provides: texlive-checklistings-doc = %{epoch}:%{source_date}-%{release} Obsoletes: texlive-checklistings-doc < 7:20170520 -License: LPPL-1.2 +License: LPPL-1.3a Summary: Pass verbatim contents through a compiler and reincorporate the resulting output Requires: texlive-base Requires: texlive-kpathsea @@ -1782,7 +1790,7 @@ Version: svn51578 Provides: texlive-ctan-o-mat = %{epoch}:%{source_date}-%{release} Provides: tex-ctan-o-mat = %{epoch}:%{source_date}-%{release} Provides: texlive-ctan-o-mat-bin = %{epoch}:%{source_date}-%{release} -License: BSD +License: BSD-3-Clause Summary: Upload or validate a package for CTAN Requires: texlive-base Requires: texlive-kpathsea @@ -2176,7 +2184,7 @@ Obsoletes: texlive-dosepsbin-bin < 7:20170520 Provides: tex-dosepsbin-doc = %{epoch}:%{source_date}-%{release} Provides: texlive-dosepsbin-doc = %{epoch}:%{source_date}-%{release} Obsoletes: texlive-dosepsbin-doc < 7:20170520 -License: GPL-2.0-only OR Artistic-1.0-Perl +License: GPL-2.0-only Summary: Deal with DOS binary EPS files Requires: texlive-base Requires: texlive-kpathsea @@ -2641,7 +2649,7 @@ Obsoletes: texlive-epstopdf-bin < 7:20170520 Provides: tex-epstopdf-doc = %{epoch}:%{source_date}-%{release} Provides: texlive-epstopdf-doc = %{epoch}:%{source_date}-%{release} Obsoletes: texlive-epstopdf-doc < 7:20170520 -License: BSD +License: BSD-3-Clause Summary: Convert EPS to 'encapsulated' PDF using Ghostscript Requires: texlive-base Requires: texlive-kpathsea @@ -2916,7 +2924,7 @@ provided. Version: svn54732 Provides: texlive-git-latexdiff = %{epoch}:%{source_date}-%{release} Summary: Call latexdiff on two Git revisions of a file -License: BSD +License: BSD-3-Clause Requires: texlive-base texlive-kpathsea Requires: git, texlive-latexdiff @@ -3854,7 +3862,7 @@ Obsoletes: texlive-latexpand-bin < 7:20170520 Provides: tex-latexpand-doc = %{epoch}:%{source_date}-%{release} Provides: texlive-latexpand-doc = %{epoch}:%{source_date}-%{release} Obsoletes: texlive-latexpand-doc < 7:20170520 -License: BSD +License: BSD-3-Clause Summary: Expand \input and \include in a LaTeX document Requires: texlive-base Requires: texlive-kpathsea @@ -4002,7 +4010,7 @@ Obsoletes: texlive-listings-ext-bin < 7:20170520 Provides: tex-listings-ext-doc = %{epoch}:%{source_date}-%{release} Provides: texlive-listings-ext-doc = %{epoch}:%{source_date}-%{release} Obsoletes: texlive-listings-ext-doc < 7:20170520 -License: LPPL-1.2 +License: LPPL-1.3a Summary: Automated input of source Requires: texlive-base Requires: texlive-kpathsea @@ -5248,7 +5256,7 @@ Obsoletes: texlive-mkjobtexmf-bin < 7:20170520 Provides: tex-mkjobtexmf-doc = %{epoch}:%{source_date}-%{release} Provides: texlive-mkjobtexmf-doc = %{epoch}:%{source_date}-%{release} Obsoletes: texlive-mkjobtexmf-doc < 7:20170520 -License: GPL-2.0-only OR Artistic-1.0-Perl +License: GPL-2.0-only Summary: Generate a texmf tree for a particular job Requires: texlive-base Requires: texlive-kpathsea @@ -6359,7 +6367,7 @@ Provides: texlive-ptex-doc = %{epoch}:%{source_date}-%{release} Obsoletes: texlive-ptex-doc < 7:20170520 Provides: texlive-platex-bin = %{epoch}:%{source_date}-%{release} Obsoletes: texlive-platex-bin < 7:20170520 -License: BSD +License: BSD-3-Clause Summary: A TeX system for publishing in Japanese Requires: texlive-adobemapping Requires: texlive-base @@ -7149,7 +7157,7 @@ Obsoletes: texlive-texdiff-bin < 7:20170520 Provides: tex-texdiff-doc = %{epoch}:%{source_date}-%{release} Provides: texlive-texdiff-doc = %{epoch}:%{source_date}-%{release} Obsoletes: texlive-texdiff-doc < 7:20170520 -License: GPL-1.0-or-later OR Artistic-1.0-Perl +License: GPL-1.0-or-later Summary: Compares two (La)TeX documents to create a merged version showing changes Requires: texlive-base Requires: texlive-kpathsea @@ -7167,7 +7175,7 @@ Provides: tex-texdirflatten = %{epoch}:%{source_date}-%{release} Provides: tex-texdirflatten-bin = %{epoch}:%{source_date}-%{release} Provides: texlive-texdirflatten-bin = %{epoch}:%{source_date}-%{release} Obsoletes: texlive-texdirflatten-bin < 7:20170520 -License: GPL-1.0-or-later OR Artistic-1.0-Perl +License: GPL-1.0-or-later Summary: Collect files related to a LaTeX job in a single directory Requires: texlive-base Requires: texlive-kpathsea @@ -7398,7 +7406,7 @@ Obsoletes: texlive-texloganalyser-bin < 7:20170520 Provides: tex-texloganalyser-doc = %{epoch}:%{source_date}-%{release} Provides: texlive-texloganalyser-doc = %{epoch}:%{source_date}-%{release} Obsoletes: texlive-texloganalyser-doc < 7:20170520 -License: BSD +License: BSD-3-Clause Summary: Analyse TeX logs Requires: texlive-base Requires: texlive-kpathsea @@ -7496,7 +7504,7 @@ Provides: texlive-texplate = %{epoch}:%{source_date}-%{release} Provides: tex-texplate = %{epoch}:%{source_date}-%{release} Provides: tex-texplate-bin = %{epoch}:%{source_date}-%{release} Provides: texlive-texplate-bin = %{epoch}:%{source_date}-%{release} -License: BSD +License: BSD-3-Clause Summary: A tool for creating document structures based on templates Requires: texlive-base Requires: texlive-kpathsea @@ -7792,7 +7800,7 @@ Provides: texlive-uplatex-doc = %{epoch}:%{source_date}-%{release} Obsoletes: texlive-uplatex-doc < 7:20170520 Provides: texlive-uptex-doc = %{epoch}:%{source_date}-%{release} Obsoletes: texlive-uptex-doc < 7:20170520 -License: BSD +License: BSD-3-Clause Summary: Unicode version of pTeX Requires: texlive-base Requires: texlive-cm @@ -8107,7 +8115,6 @@ BuildArch: noarch %description -n %{shortname}-xindex Unicode compatible index program for LaTeX. -%if ! 0%{?eln} %package -n %{shortname}-xindy Version: svn65958 Provides: texlive-xindy = %{epoch}:%{source_date}-%{release} @@ -8136,7 +8143,6 @@ Xindy can be used to process indexes for documents marked up using (La)TeX, Nroff family and SGML-based languages. Xindy is highly configurable, both in markup terms and in terms of the collating order of the text being processed. -%endif %package -n %{shortname}-xml2pmx Version: svn57972 @@ -8296,6 +8302,8 @@ ln -s %{_texdir}/licenses/$l $l done %patch -P44 -p1 -b .pdf-header-order-fix +%patch -P48 -p1 -b .gcc-14-typefixes +%patch -P49 -p1 -b .gcc-15-ftbfs # Disable broken tests # updmap-cmdline-test.pl is not useful and it will fail because it finds the system perl bits instead of the local copy @@ -8315,7 +8323,7 @@ rm -rf source/libs/xpdf %build -%if %{without bootstrap} && ! 0%{?eln} +%if %{without bootstrap} cat /usr/share/texlive/kpathsea.log || : # DEBUG # Okay. Lets look at things. @@ -8354,7 +8362,8 @@ latex dummy.tex rm -f dummy.* %endif -export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Werror=format-security" +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118112 +export CFLAGS="$RPM_OPT_FLAGS -std=gnu17 -fno-strict-aliasing -Werror=format-security" %if 0%{?fedora} >= 36 || 0%{?rhel} > 9 export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Werror=format-security" %else @@ -8386,10 +8395,10 @@ export XPDF_LIBS="-lxpdfcore -lfofi -lgoo -lsplash $GLIB_LIBS $PAPER_LIBS $FONTC %else --with-system-xpdf \ %endif -%ifarch %{power64} s390 s390x +%ifarch %{power64} s390 s390x riscv64 --disable-luajittex --disable-mfluajit --disable-luajithbtex --disable-mfluajit-nowin \ %endif -%if %{without bootstrap} && ! 0%{?eln} +%if %{without bootstrap} --enable-xindy \ %else --disable-xindy \ @@ -8515,6 +8524,12 @@ patch -p1 < %{_sourcedir}/texlive-fedora-texmfcnf.lua.patch # Fix interpreter on perl scripts patch -p1 < %{_sourcedir}/texlive-base-20230311-fix-scripts.patch +# Fix bundling option with perl-5.40.x +patch -p1 < %{_sourcedir}/texdef-perl-option-5.40.x.patch + +# Fix errors with python3.13 +patch -p1 < %{_sourcedir}/texlive-pythontex3-python-3.1x.patch + popd # config files in /etc symlinked @@ -8756,7 +8771,7 @@ for i in afm2pl afm2tfm aleph bibtex bibtex8 bibtexu chkdvifont chktex ctie ctan chrpath --delete %{buildroot}%{_bindir}/$i done -%ifnarch %{power64} s390 s390x +%ifnarch %{power64} s390 s390x riscv64 chrpath --delete %{buildroot}%{_bindir}/luajithbtex chrpath --delete %{buildroot}%{_bindir}/luajittex chrpath --delete %{buildroot}%{_bindir}/mfluajit @@ -9922,7 +9937,7 @@ yes | %{_bindir}/updmap-sys --quiet --syncwithtrees >/dev/null 2>&1 || : %{_includedir}/kpathsea/* %{_includedir}/synctex/ %{_includedir}/texlua53/ -%ifnarch %{power64} s390 s390x +%ifnarch %{power64} s390 s390x riscv64 %{_includedir}/texluajit/ %endif %{_libdir}/*.so @@ -10006,7 +10021,7 @@ yes | %{_bindir}/updmap-sys --quiet --syncwithtrees >/dev/null 2>&1 || : %files -n %{shortname}-luajittex %license gpl2.txt -%ifnarch %{power64} s390 s390x +%ifnarch %{power64} s390 s390x riscv64 %{_bindir}/luajittex %{_bindir}/luajithbtex %{_bindir}/texluajit @@ -10127,7 +10142,7 @@ yes | %{_bindir}/updmap-sys --quiet --syncwithtrees >/dev/null 2>&1 || : %license gpl2.txt %{_bindir}/mflua %{_bindir}/mflua-nowin -%ifnarch %{power64} s390 s390x +%ifnarch %{power64} s390 s390x riscv64 %{_bindir}/mfluajit %{_bindir}/mfluajit-nowin %endif @@ -11065,7 +11080,6 @@ yes | %{_bindir}/updmap-sys --quiet --syncwithtrees >/dev/null 2>&1 || : %{_texdir}/texmf-dist/tex/lualatex/xindex/ %doc %{_texdir}/texmf-dist/doc/lualatex/xindex/ -%if ! 0%{?eln} %files -n %{shortname}-xindy %license gpl.txt %if %{without bootstrap} @@ -11080,7 +11094,6 @@ yes | %{_bindir}/updmap-sys --quiet --syncwithtrees >/dev/null 2>&1 || : %{_texdir}/texmf-dist/scripts/xindy/ %{_texdir}/texmf-dist/xindy/ %doc %{_texdir}/texmf-dist/doc/xindy/ -%endif %files -n %{shortname}-xml2pmx %license gpl3.txt @@ -11109,6 +11122,58 @@ yes | %{_bindir}/updmap-sys --quiet --syncwithtrees >/dev/null 2>&1 || : %doc %{_texdir}/texmf-dist/doc/latex/yplan/ %changelog +* Wed Nov 26 2025 Björn Esser - 11:20230311-94 +- Rebuild(xpdf) + +* Wed Aug 06 2025 František Zatloukal - 11:20230311-93 +- Rebuilt for icu 77.1 + +* Fri Jul 25 2025 Fedora Release Engineering - 11:20230311-92 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sat Jul 19 2025 Than Ngo - 11:20230311-91 +- Fix rhbz#2379729 - texlive-pythontex is not compatible with python3.13 + +* Fri Jul 18 2025 Than Ngo - 11:20230311-90 +- Fix rhbz#2354991 - bundling option for perl-5.40.x + +* Thu Jan 23 2025 Than Ngo - 11:20230311-89 +- Fix rhbz#2341430, FTBFS with gcc15 + +* Sun Jan 19 2025 Fedora Release Engineering - 11:20230311-88 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Sun Dec 08 2024 Pete Walter - 11:20230311-87 +- Rebuild for ICU 76 + +* Thu Aug 01 2024 Than Ngo - 20230311-86 +- fix license tag + +* Sat Jul 20 2024 Fedora Release Engineering - 11:20230311-85 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Apr 10 2024 Than Ngo - 20230311-84 +- fix bz#2271830, fix eln marco + +* Fri Mar 15 2024 Than Ngo - 20230311-83 +- fix bz#2269661, FTBFS due to libXaw 1.0.16 + +* Thu Feb 29 2024 Tom Callaway - 11:20230311-82 +- rebuild for new xpdf + +* Wed Jan 31 2024 Pete Walter - 11:20230311-81 +- Rebuild for ICU 74 + +* Sat Jan 27 2024 Fedora Release Engineering - 11:20230311-80 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jan 20 2024 Michael J Gruber - 11:20230311-79 +- fix FTBFS with GCC 14 on i686 +- add missed ignore entries from "Update to TL2022" + +* Fri Jan 19 2024 Than Ngo - 11:20230311-78 +- fixed bz#2259157 - texlive-base FTBFS + * Sat Jul 22 2023 Fedora Release Engineering - 11:20230311-77 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild diff --git a/texlive-pythontex3-python-3.1x.patch b/texlive-pythontex3-python-3.1x.patch new file mode 100644 index 0000000..fc97b86 --- /dev/null +++ b/texlive-pythontex3-python-3.1x.patch @@ -0,0 +1,255 @@ +diff -up texmf-dist/scripts/pythontex/depythontex3.py.orig texmf-dist/scripts/pythontex/depythontex3.py +--- texmf-dist/scripts/pythontex/depythontex3.py.orig 2025-07-15 15:33:41.682593752 +0200 ++++ texmf-dist/scripts/pythontex/depythontex3.py 2025-07-15 15:41:16.346789065 +0200 +@@ -121,7 +121,7 @@ def replace_code_cmd(name, arglist, line + + Usually, code from a command is also typeset with a command. This + function primarily deals with that case. In cases where code from a +- command is typeset with an environment (for example, `\inputpygments`), ++ command is typeset with an environment (for example, `\\inputpygments`), + this function performs some preprocessing and then uses + replace_code_env() to do the real work. This approach prevents the two + functions from unnecessarily duplicating each other, while still giving +@@ -161,7 +161,7 @@ def replace_code_cmd(name, arglist, line + # Make sure the introduction of an environment where a command was + # previously won't produce errors with following content; make sure + # that any following content is on a separate line +- if bool(match('[ \t]*\S', after)): ++ if bool(match(r'[ \t]*\S', after)): + after = '\n' + after + # Rather than duplicating much of replace_code_env(), just use it + return replace_code_env(name, arglist, linenum, code_replacement, +@@ -333,7 +333,7 @@ def replace_print_cmd(name, arglist, lin + break + print_replacement = r'\verb' + delim + print_replacement + delim + elif print_replacement_mode == 'verbatim': +- if bool(match('\s*?\n', after)): ++ if bool(match(r'\s*?\n', after)): + # Usually, we would end the verbatim environment with a newline. + # This is fine if there is content in `after` before the next + # newline---in fact, it's desirable, because the verbatim package +@@ -405,11 +405,11 @@ def replace_print_cmd(name, arglist, lin + # the `\input` content. + print_replacement = print_replacement.rstrip(' \t\n') + after = sub(r'^\\unskip\s+', '', after) +- elif bool(match('\S', after)): ++ elif bool(match(r'\S', after)): + # If the next character is not whitespace, we can just leave + # the `\n`, and it will yield a space. + pass +- elif bool(match('\s*$', after)): ++ elif bool(match(r'\s*$', after)): + # If the rest of the current line, and the next line, are + # whitespace, we will get the correct spacing without needing + # `\space{}`. We could leave `\n`, but it would be +@@ -421,14 +421,14 @@ def replace_print_cmd(name, arglist, lin + # it's at the end of an environment, and thus is needed to + # protect the following content + print_replacement += '\\space{}' +- after = sub('^\s+', '', after) ++ after = sub(r'^\s+', '', after) + forced_double_space_list.append((name, linenum)) + else: +- if bool(match('\s+\S', after)): ++ if bool(match(r'\s+\S', after)): + # If the following line starts with whitespace, replace it + # with a newline, to protect in the event that the printed + # content ended with an end-of-environment command +- after = sub('^\s+', '\n', after) ++ after = sub(r'^\s+', '\n', after) + # Issue warnings, if warranted + # Warn about `\endinput` + if (r'\endinput' in print_replacement and +@@ -505,7 +505,7 @@ def replace_print_env(name, arglist, lin + + #### The inlineverb and verb modes should work, but haven't been tested + since there are currently no environments that use them; they are only +- used by `\printpythontex`, which is a command. ++ used by `\\printpythontex`, which is a command. + ''' + if print_replacement_mode == 'verb': + if print_replacement.count('\n') > 1: +@@ -519,17 +519,17 @@ def replace_print_env(name, arglist, lin + if delim not in print_replacement: + break + print_replacement = r'\verb' + delim + print_replacement + delim +- if not bool(match('[ \t]+\S', after)): ++ if not bool(match(r'[ \t]+\S', after)): + # If there is text on the same line as the end of the + # environment, we're fine (this is unusual). Otherwise, + # we need to toss the newline at the end of the environment + # and gobble leading spaces. Leading spaces need to be + # gobbled because previously they were at the beginning of a + # line, where they would have been discarded. +- if not bool(match('\s*$', after)): +- after = sub('^\s*?\n\s*', '', after) ++ if not bool(match(r'\s*$', after)): ++ after = sub(r'^\s*?\n\s*', '', after) + elif print_replacement_mode == 'verbatim': +- if bool(match('\s*?\n', after)): ++ if bool(match(r'\s*?\n', after)): + # Usually, we would end the verbatim environment with a newline. + # This is fine if there is content in `after` before the next + # newline---in fact, it's desirable, because the verbatim package +@@ -570,15 +570,15 @@ def replace_print_env(name, arglist, lin + # printed content. Later, we issue a warning in case it appears + # anywhere else. + print_replacement = print_replacement.rsplit(r'\endinput', 1)[0] +- if not bool(match('[ \t]+\S', after)): ++ if not bool(match(r'[ \t]+\S', after)): + # If there is text on the same line as the end of the + # environment, we're fine (this is unusual). Otherwise, + # we need to toss the newline at the end of the environment + # and gobble leading spaces. Leading spaces need to be + # gobbled because previously they were at the beginning of a + # line, where they would have been discarded. +- if not bool(match('\s*$', after)): +- after = sub('^\s*?\n\s*', '', after) ++ if not bool(match(r'\s*$', after)): ++ after = sub(r'^\s*?\n\s*', '', after) + elif (print_replacement.endswith('%\n') and + not print_replacement.endswith('\\%\n') and + not print_replacement.endswith('\\string%\n')): +@@ -590,15 +590,15 @@ def replace_print_env(name, arglist, lin + # warning if there is reason to think that a percent character + # was active in the last line. + print_replacement = print_replacement.rsplit(r'%', 1)[0] +- if not bool(match('[ \t]+\S', after)): ++ if not bool(match(r'[ \t]+\S', after)): + # If there is text on the same line as the end of the + # environment, we're fine (this is unusual). Otherwise, + # we need to toss the newline at the end of the environment + # and gobble leading spaces. Leading spaces need to be + # gobbled because previously they were at the beginning of a + # line, where they would have been discarded. +- if not bool(match('\s*$', after)): +- after = sub('^\s*?\n\s*', '', after) ++ if not bool(match(r'\s*$', after)): ++ after = sub(r'^\s*?\n\s*', '', after) + else: + # By default, LaTeX strips newlines and adds a space at the end + # of each line of content that is brought in by `\input`. This +@@ -611,13 +611,13 @@ def replace_print_env(name, arglist, lin + # `\unskip` + print_replacement = print_replacement.rstrip(' \t\n') + after = sub(r'^\s*\\unskip\s+', '', after) +- elif bool(match('[ \t]+\S', after)): ++ elif bool(match(r'[ \t]+\S', after)): + # If the next character after the end of the environment is + # not whitespace (usually not allowed), we can just leave + # the `\n` in printed content, and it will yield a space. + # So we need do nothing. But if there is text on that line + # we need `\space{}`. +- after = sub('^\s+', '\\space', after) ++ after = sub(r'^\s+', '\\space', after) + forced_double_space_list.append((name, linenum)) + else: + # If the line at the end of the environment is blank, +@@ -1080,7 +1080,7 @@ for n, depytxline in enumerate(depytx): + else: + if obeylines: + # Take into account possible whitespace before arg +- if bool(match('[ \t]*\[', after)): ++ if bool(match(r'[ \t]*\[', after)): + after = after.split('[', 1)[1] + while ']' not in after: + texlinenum += 1 +@@ -1094,11 +1094,11 @@ for n, depytxline in enumerate(depytx): + after = sub('^[ \t]*', '', after) + else: + # Allow peeking ahead a line for the argument +- if bool(match('\s*$', after)) and after.count('\n') < 2: ++ if bool(match(r'\s*$', after)) and after.count('\n') < 2: + texlinenum += 1 + after += tex[texlinenum] + # Take into account possible whitespace before arg +- if bool(match('\s*\[', after)): ++ if bool(match(r'\s*\[', after)): + after = after.split('[', 1)[1] + while ']' not in after: + texlinenum += 1 +@@ -1108,11 +1108,11 @@ for n, depytxline in enumerate(depytx): + optarg = None + # Account for eating whitespace afterward, if arg not found + if argindex == len(depy_args) - 1: +- if bool(match('\s*$', after)) and after.count('\n') < 2: ++ if bool(match(r'\s*$', after)) and after.count('\n') < 2: + texlinenum += 1 + after += tex[texlinenum] +- if not bool(match('\s*$', after)): +- after = sub('^\s*', '', after) ++ if not bool(match(r'\s*$', after)): ++ after = sub(r'^\s*', '', after) + arglist.append(optarg) + elif arg == 'm': + # Account for possible line breaks or spaces before arg +@@ -1121,7 +1121,7 @@ for n, depytxline in enumerate(depytx): + else: + if obeylines: + # Account for possible leading whitespace +- if bool(match('[ \t\f\v]*\{', after)): ++ if bool(match(r'[ \t\f\v]*\{', after)): + after = after.split('{', 1)[1] + else: + print('* DePythonTeX error:') +@@ -1129,10 +1129,10 @@ for n, depytxline in enumerate(depytx): + sys.exit(1) + else: + # Peek ahead a line if needed +- if bool(match('\s*$', after)) and after.count('\n') < 2: ++ if bool(match(r'\s*$', after)) and after.count('\n') < 2: + texlinenum += 1 + after += tex[texlinenum] +- if bool(match('\s*\{', after)): ++ if bool(match(r'\s*\{', after)): + after = after.split('{', 1)[1] + else: + print('* DePythonTeX error:') +@@ -1338,7 +1338,7 @@ for n, depytxline in enumerate(depytx): + after = tex[texlinenum] + break + after = after.split(end_environment, 1)[1] +- if bool(match('\s*\n', after)): ++ if bool(match(r'\s*\n', after)): + # If the line following `after` is whitespace, it should + # be stripped, since most environments throw away + # anything after the end of the environment +@@ -1389,7 +1389,7 @@ if preamble_additions: + # Take care of graphicspath + if args.graphicspath and settings['graphicx']: + for n, line in enumerate(texout): +- if '\\graphicspath' in line and not bool(match('\s*%', line)): ++ if '\\graphicspath' in line and not bool(match(r'\s*%', line)): + texout[n] = line.replace('\\graphicspath{', '\\graphicspath{{' + settings['outputdir'] +'/}') + break + elif line.startswith(r'\begin{document}'): +diff -up texmf-dist/scripts/pythontex/pythontex3.py.orig texmf-dist/scripts/pythontex/pythontex3.py +--- texmf-dist/scripts/pythontex/pythontex3.py.orig 2025-07-15 15:42:36.840317560 +0200 ++++ texmf-dist/scripts/pythontex/pythontex3.py 2025-07-15 15:43:51.882856253 +0200 +@@ -554,7 +554,7 @@ def do_upgrade_compatibility(data, old_d + It will continue to use the output directory for now. To keep your + current settings long-term and avoid seeing this message in the future, + add the following command to the preamble of your document, right after +- the "\\usepackage{pythontex}": "\setpythontexworkingdir{}". ++ the "\\usepackage{pythontex}": "\\setpythontexworkingdir{}". + If you wish to continue with the new settings instead, simply delete + the file with extension .pkl in the output directory, and run PythonTeX. + **** End PythonTeX upgrade message **** +@@ -1807,7 +1807,7 @@ def run_code(encoding, outputdir, workin + # Get the gobbleation. This is used to determine if + # other lines containing the basename are a continuation, + # or separate messages. +- errgobble = match('(\s*)', line).groups()[0] ++ errgobble = match(r'(\s*)', line).groups()[0] + if start_errgobble is None: + start_errgobble = errgobble + # Only issue a message and track down the line numer if +@@ -2072,7 +2072,7 @@ def run_code(encoding, outputdir, workin + # Get the gobbleation. This is used to determine if + # other lines containing the basename are a continuation, + # or separate messages. +- errgobble = match('(\s*)', line).groups()[0] ++ errgobble = match(r'(\s*)', line).groups()[0] + if start_errgobble is None: + start_errgobble = errgobble + # Only issue a message and track down the line numer if