diff --git a/texdef-perl-option-5.40.x.patch b/texdef-perl-option-5.40.x.patch deleted file mode 100644 index f79ea13..0000000 --- a/texdef-perl-option-5.40.x.patch +++ /dev/null @@ -1,18 +0,0 @@ -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 deleted file mode 100644 index 2f10805..0000000 --- a/texlive-2023-gcc15-ftbfs.patch +++ /dev/null @@ -1,197 +0,0 @@ -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-typecasts.patch b/texlive-base-20230311-typecasts.patch new file mode 100644 index 0000000..7bb2d80 --- /dev/null +++ b/texlive-base-20230311-typecasts.patch @@ -0,0 +1,12 @@ +diff -up texlive-base-20230311/source/texk/xdvik/gui/pagesel.c.me texlive-base-20230311/source/texk/xdvik/gui/pagesel.c +--- texlive-base-20230311/source/texk/xdvik/gui/pagesel.c.me 2024-01-19 21:02:08.541378286 +0100 ++++ texlive-base-20230311/source/texk/xdvik/gui/pagesel.c 2024-01-19 21:17:31.425443142 +0100 +@@ -538,7 +538,7 @@ xaw_update_list(void) + button_width = get_panel_width() - 2 * (resource.btn_side_spacing + resource.btn_border_width); + /* delete and re-create list */ + ASSERT(total_pages <= (int)page_info.index_size, ""); +- XawListChange(LIST_WIDGET, page_info.page_labels, 0, ++ XawListChange(LIST_WIDGET,(const char **) page_info.page_labels, 0, + MAX(button_width, pagelist_width), False); + /* restore selected item */ + if (idx != XAW_LIST_NONE) { diff --git a/texlive-base.spec b/texlive-base.spec index 9b2b1f2..61e0049 100644 --- a/texlive-base.spec +++ b/texlive-base.spec @@ -25,12 +25,12 @@ Name: %{shortname}-base Version: %{source_date} -Release: 94%{?dist} +Release: 82%{?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-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 +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 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,8 +418,10 @@ 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 @@ -523,18 +525,10 @@ 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 +Patch47: texlive-base-20230311-typecasts.patch 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 @@ -562,9 +556,11 @@ 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 @@ -714,7 +710,7 @@ way). Version: svn65647 Provides: texlive-albatross = %{epoch}:%{source_date}-%{release} Summary: Find fonts that contain a given glyph -License: BSD-3-Clause +License: BSD Requires: texlive-base texlive-kpathsea %description -n %{shortname}-albatross @@ -801,7 +797,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-3-Clause +License: BSD Summary: Automation of LaTeX compilation Requires: texlive-base Requires: texlive-kpathsea @@ -1175,7 +1171,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.3a +License: LPPL-1.2 Summary: Pass verbatim contents through a compiler and reincorporate the resulting output Requires: texlive-base Requires: texlive-kpathsea @@ -1790,7 +1786,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-3-Clause +License: BSD Summary: Upload or validate a package for CTAN Requires: texlive-base Requires: texlive-kpathsea @@ -2184,7 +2180,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 +License: GPL-2.0-only OR Artistic-1.0-Perl Summary: Deal with DOS binary EPS files Requires: texlive-base Requires: texlive-kpathsea @@ -2649,7 +2645,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-3-Clause +License: BSD Summary: Convert EPS to 'encapsulated' PDF using Ghostscript Requires: texlive-base Requires: texlive-kpathsea @@ -2924,7 +2920,7 @@ provided. Version: svn54732 Provides: texlive-git-latexdiff = %{epoch}:%{source_date}-%{release} Summary: Call latexdiff on two Git revisions of a file -License: BSD-3-Clause +License: BSD Requires: texlive-base texlive-kpathsea Requires: git, texlive-latexdiff @@ -3862,7 +3858,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-3-Clause +License: BSD Summary: Expand \input and \include in a LaTeX document Requires: texlive-base Requires: texlive-kpathsea @@ -4010,7 +4006,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.3a +License: LPPL-1.2 Summary: Automated input of source Requires: texlive-base Requires: texlive-kpathsea @@ -5256,7 +5252,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 +License: GPL-2.0-only OR Artistic-1.0-Perl Summary: Generate a texmf tree for a particular job Requires: texlive-base Requires: texlive-kpathsea @@ -6367,7 +6363,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-3-Clause +License: BSD Summary: A TeX system for publishing in Japanese Requires: texlive-adobemapping Requires: texlive-base @@ -7157,7 +7153,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 +License: GPL-1.0-or-later OR Artistic-1.0-Perl Summary: Compares two (La)TeX documents to create a merged version showing changes Requires: texlive-base Requires: texlive-kpathsea @@ -7175,7 +7171,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 +License: GPL-1.0-or-later OR Artistic-1.0-Perl Summary: Collect files related to a LaTeX job in a single directory Requires: texlive-base Requires: texlive-kpathsea @@ -7406,7 +7402,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-3-Clause +License: BSD Summary: Analyse TeX logs Requires: texlive-base Requires: texlive-kpathsea @@ -7504,7 +7500,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-3-Clause +License: BSD Summary: A tool for creating document structures based on templates Requires: texlive-base Requires: texlive-kpathsea @@ -7800,7 +7796,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-3-Clause +License: BSD Summary: Unicode version of pTeX Requires: texlive-base Requires: texlive-cm @@ -8115,6 +8111,7 @@ 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} @@ -8143,6 +8140,7 @@ 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 @@ -8302,8 +8300,8 @@ ln -s %{_texdir}/licenses/$l $l done %patch -P44 -p1 -b .pdf-header-order-fix +%patch -P47 -p1 -b .gcc-14-typecast %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 @@ -8323,7 +8321,7 @@ rm -rf source/libs/xpdf %build -%if %{without bootstrap} +%if %{without bootstrap} && ! 0%{?eln} cat /usr/share/texlive/kpathsea.log || : # DEBUG # Okay. Lets look at things. @@ -8362,8 +8360,7 @@ latex dummy.tex rm -f dummy.* %endif -# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118112 -export CFLAGS="$RPM_OPT_FLAGS -std=gnu17 -fno-strict-aliasing -Werror=format-security" +export CFLAGS="$RPM_OPT_FLAGS -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 @@ -8388,17 +8385,17 @@ export XPDF_LIBS="-lxpdfcore -lfofi -lgoo -lsplash $GLIB_LIBS $PAPER_LIBS $FONTC --with-system-gd --with-system-t1lib --with-system-teckit --with-system-freetype2 --with-system-zziplib \ --with-system-cairo --with-system-icu --with-system-harfbuzz --with-system-graphite2 --with-system-libgs --with-system-pixman \ --with-system-libpaper --with-system-potrace --with-pic --with-xdvi-x-toolkit=xaw --with-system-mpfr --with-system-gmp \ ---enable-shared --enable-compiler-warnings=max --without-cxx-runtime-hack \ +--enable-shared --enable-compiler-warnings=max --without-cxx-runtime-hack --with-banner-add="/Fedora %{fedora}" \ --disable-native-texlive-build --disable-t1utils --enable-psutils --disable-biber --disable-ptexenc --disable-largefile \ %if %{with poppler} --with-system-poppler --with-system-xpdf \ %else --with-system-xpdf \ %endif -%ifarch %{power64} s390 s390x riscv64 +%ifarch %{power64} s390 s390x --disable-luajittex --disable-mfluajit --disable-luajithbtex --disable-mfluajit-nowin \ %endif -%if %{without bootstrap} +%if %{without bootstrap} && ! 0%{?eln} --enable-xindy \ %else --disable-xindy \ @@ -8524,12 +8521,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 +# Fix context for CVE-2023-32700 +# NOTE: this is not needed with texlive 2024+ +pushd %{buildroot}%{_texdir}/texmf-dist/ +sed -i 's/%primaryflags%/%primaryflags% --socket --shell-escape/' scripts/context/lua/mtxrun.lua popd # config files in /etc symlinked @@ -8771,7 +8768,7 @@ for i in afm2pl afm2tfm aleph bibtex bibtex8 bibtexu chkdvifont chktex ctie ctan chrpath --delete %{buildroot}%{_bindir}/$i done -%ifnarch %{power64} s390 s390x riscv64 +%ifnarch %{power64} s390 s390x chrpath --delete %{buildroot}%{_bindir}/luajithbtex chrpath --delete %{buildroot}%{_bindir}/luajittex chrpath --delete %{buildroot}%{_bindir}/mfluajit @@ -9937,7 +9934,7 @@ yes | %{_bindir}/updmap-sys --quiet --syncwithtrees >/dev/null 2>&1 || : %{_includedir}/kpathsea/* %{_includedir}/synctex/ %{_includedir}/texlua53/ -%ifnarch %{power64} s390 s390x riscv64 +%ifnarch %{power64} s390 s390x %{_includedir}/texluajit/ %endif %{_libdir}/*.so @@ -10021,7 +10018,7 @@ yes | %{_bindir}/updmap-sys --quiet --syncwithtrees >/dev/null 2>&1 || : %files -n %{shortname}-luajittex %license gpl2.txt -%ifnarch %{power64} s390 s390x riscv64 +%ifnarch %{power64} s390 s390x %{_bindir}/luajittex %{_bindir}/luajithbtex %{_bindir}/texluajit @@ -10142,7 +10139,7 @@ yes | %{_bindir}/updmap-sys --quiet --syncwithtrees >/dev/null 2>&1 || : %license gpl2.txt %{_bindir}/mflua %{_bindir}/mflua-nowin -%ifnarch %{power64} s390 s390x riscv64 +%ifnarch %{power64} s390 s390x %{_bindir}/mfluajit %{_bindir}/mfluajit-nowin %endif @@ -11080,6 +11077,7 @@ 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} @@ -11094,6 +11092,7 @@ 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 @@ -11122,44 +11121,9 @@ 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 +* Mon May 6 2024 Tom Callaway - 11:20230311-82 +- apply fix for context mtxrun.lua (bz2279243) +- add versioned Fedora banner * Wed Jan 31 2024 Pete Walter - 11:20230311-81 - Rebuild for ICU 74 diff --git a/texlive-pythontex3-python-3.1x.patch b/texlive-pythontex3-python-3.1x.patch deleted file mode 100644 index fc97b86..0000000 --- a/texlive-pythontex3-python-3.1x.patch +++ /dev/null @@ -1,255 +0,0 @@ -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