diff --git a/pkgs/tools/typesetting/tex/texlive/bin.nix b/pkgs/tools/typesetting/tex/texlive/bin.nix index b2a3ee7cb2f2..8aab494c29d0 100644 --- a/pkgs/tools/typesetting/tex/texlive/bin.nix +++ b/pkgs/tools/typesetting/tex/texlive/bin.nix @@ -389,6 +389,20 @@ rec { url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=1009196;filename=lua_fixed_hash.patch;msg=45"; sha256 = "sha256-FTu1eRd3AUU7IRs2/7e7uwHuvZsrzTBPypbcEZkU7y4="; }) + # The original LuaJIT version number used here is 2.1.1736781742. + # The patch number in this is the unix epoch timestamp of the commit used. + # TexLive already truncates the patch number to the last 5 digits (81742 + # in this case), however, this number will roll over every 1.1 days (1e5 + # seconds), making it non-monotonic. + # Furthermore, the nix-darwin linker requires version numbers to be <= + # 1023. + # We therefore opt to choose a 3-digit sequence from the unix epoch that + # gives a good tradeoff between when it will roll over, and how often it + # will actually change: digits 9-7 (counting from the right, i.e., 736 in + # this case) yields a number that changes every 11.6 days (1e6 seconds, + # it is unlikely texlive will be updated on a shorter interval), and will + # stay stable for 31.7 years (1e9 seconds). + ./truncate-luajit-version-number.patch ]; hardeningDisable = [ "format" ]; diff --git a/pkgs/tools/typesetting/tex/texlive/truncate-luajit-version-number.patch b/pkgs/tools/typesetting/tex/texlive/truncate-luajit-version-number.patch new file mode 100644 index 000000000000..3e8910889e0d --- /dev/null +++ b/pkgs/tools/typesetting/tex/texlive/truncate-luajit-version-number.patch @@ -0,0 +1,209 @@ +From 2da802031f7b7f2c9f5327b5155af9aec0d02686 Mon Sep 17 00:00:00 2001 +From: Christoph Jabs +Date: Tue, 1 Jul 2025 13:05:54 +0300 +Subject: [PATCH] truncate luajit version number + +--- + libs/luajit/configure | 24 ++++++++++++------------ + libs/luajit/native/configure | 20 ++++++++++---------- + libs/luajit/version.ac | 2 +- + 3 files changed, 23 insertions(+), 23 deletions(-) + +diff --git a/libs/luajit/configure b/libs/luajit/configure +index c1bc09c039..2ba3598fb8 100755 +--- a/libs/luajit/configure ++++ b/libs/luajit/configure +@@ -1,6 +1,6 @@ + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.72 for luajit for TeX Live 2.1.81742. ++# Generated by GNU Autoconf 2.72 for luajit for TeX Live 2.1.736. + # + # Report bugs to . + # +@@ -614,8 +614,8 @@ MAKEFLAGS= + # Identity of this package. + PACKAGE_NAME='luajit for TeX Live' + PACKAGE_TARNAME='luajit-for-tex-live' +-PACKAGE_VERSION='2.1.81742' +-PACKAGE_STRING='luajit for TeX Live 2.1.81742' ++PACKAGE_VERSION='2.1.736' ++PACKAGE_STRING='luajit for TeX Live 2.1.736' + PACKAGE_BUGREPORT='tex-k@tug.org' + PACKAGE_URL='' + +@@ -1385,7 +1385,7 @@ if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +-'configure' configures luajit for TeX Live 2.1.81742 to adapt to many kinds of systems. ++'configure' configures luajit for TeX Live 2.1.736 to adapt to many kinds of systems. + + Usage: $0 [OPTION]... [VAR=VALUE]... + +@@ -1457,7 +1457,7 @@ fi + + if test -n "$ac_init_help"; then + case $ac_init_help in +- short | recursive ) echo "Configuration of luajit for TeX Live 2.1.81742:";; ++ short | recursive ) echo "Configuration of luajit for TeX Live 2.1.736:";; + esac + cat <<\_ACEOF + +@@ -1578,7 +1578,7 @@ fi + test -n "$ac_init_help" && exit $ac_status + if $ac_init_version; then + cat <<\_ACEOF +-luajit for TeX Live configure 2.1.81742 ++luajit for TeX Live configure 2.1.736 + generated by GNU Autoconf 2.72 + + Copyright (C) 2023 Free Software Foundation, Inc. +@@ -2134,7 +2134,7 @@ cat >config.log <<_ACEOF + This file contains any messages produced by compilers while + running configure, to aid debugging if configure makes a mistake. + +-It was created by luajit for TeX Live $as_me 2.1.81742, which was ++It was created by luajit for TeX Live $as_me 2.1.736, which was + generated by GNU Autoconf 2.72. Invocation command line was + + $ $0$ac_configure_args_raw +@@ -5102,7 +5102,7 @@ fi + + # Define the identity of the package. + PACKAGE='luajit-for-tex-live' +- VERSION='2.1.81742' ++ VERSION='2.1.736' + + + printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h +@@ -6703,10 +6703,10 @@ printf "%s\n" "no, using $LN_S" >&6; } + fi + + +-LUAJITVERSION=2.1.81742 ++LUAJITVERSION=2.1.736 + + +-LUAJIT_LT_VERSINFO=3:81742:1 ++LUAJIT_LT_VERSINFO=3:736:1 + + + case `pwd` in +@@ -17377,7 +17377,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + # report actual input values of CONFIG_FILES etc. instead of their + # values after options handling. + ac_log=" +-This file was extended by luajit for TeX Live $as_me 2.1.81742, which was ++This file was extended by luajit for TeX Live $as_me 2.1.736, which was + generated by GNU Autoconf 2.72. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES +@@ -17445,7 +17445,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_config='$ac_cs_config_escaped' + ac_cs_version="\\ +-luajit for TeX Live config.status 2.1.81742 ++luajit for TeX Live config.status 2.1.736 + configured by $0, generated by GNU Autoconf 2.72, + with options \\"\$ac_cs_config\\" + +diff --git a/libs/luajit/native/configure b/libs/luajit/native/configure +index 23c4d29bf0..8f9c93f8ff 100755 +--- a/libs/luajit/native/configure ++++ b/libs/luajit/native/configure +@@ -1,6 +1,6 @@ + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.72 for luajit native 2.1.81742. ++# Generated by GNU Autoconf 2.72 for luajit native 2.1.736. + # + # Report bugs to . + # +@@ -604,8 +604,8 @@ MAKEFLAGS= + # Identity of this package. + PACKAGE_NAME='luajit native' + PACKAGE_TARNAME='luajit-native' +-PACKAGE_VERSION='2.1.81742' +-PACKAGE_STRING='luajit native 2.1.81742' ++PACKAGE_VERSION='2.1.736' ++PACKAGE_STRING='luajit native 2.1.736' + PACKAGE_BUGREPORT='tex-k@tug.org' + PACKAGE_URL='' + +@@ -1316,7 +1316,7 @@ if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +-'configure' configures luajit native 2.1.81742 to adapt to many kinds of systems. ++'configure' configures luajit native 2.1.736 to adapt to many kinds of systems. + + Usage: $0 [OPTION]... [VAR=VALUE]... + +@@ -1387,7 +1387,7 @@ fi + + if test -n "$ac_init_help"; then + case $ac_init_help in +- short | recursive ) echo "Configuration of luajit native 2.1.81742:";; ++ short | recursive ) echo "Configuration of luajit native 2.1.736:";; + esac + cat <<\_ACEOF + +@@ -1484,7 +1484,7 @@ fi + test -n "$ac_init_help" && exit $ac_status + if $ac_init_version; then + cat <<\_ACEOF +-luajit native configure 2.1.81742 ++luajit native configure 2.1.736 + generated by GNU Autoconf 2.72 + + Copyright (C) 2023 Free Software Foundation, Inc. +@@ -1883,7 +1883,7 @@ cat >config.log <<_ACEOF + This file contains any messages produced by compilers while + running configure, to aid debugging if configure makes a mistake. + +-It was created by luajit native $as_me 2.1.81742, which was ++It was created by luajit native $as_me 2.1.736, which was + generated by GNU Autoconf 2.72. Invocation command line was + + $ $0$ac_configure_args_raw +@@ -4851,7 +4851,7 @@ fi + + # Define the identity of the package. + PACKAGE='luajit-native' +- VERSION='2.1.81742' ++ VERSION='2.1.736' + + + printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h +@@ -6905,7 +6905,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + # report actual input values of CONFIG_FILES etc. instead of their + # values after options handling. + ac_log=" +-This file was extended by luajit native $as_me 2.1.81742, which was ++This file was extended by luajit native $as_me 2.1.736, which was + generated by GNU Autoconf 2.72. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES +@@ -6973,7 +6973,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_config='$ac_cs_config_escaped' + ac_cs_version="\\ +-luajit native config.status 2.1.81742 ++luajit native config.status 2.1.736 + configured by $0, generated by GNU Autoconf 2.72, + with options \\"\$ac_cs_config\\" + +diff --git a/libs/luajit/version.ac b/libs/luajit/version.ac +index 4aac6497c1..534f508733 100644 +--- a/libs/luajit/version.ac ++++ b/libs/luajit/version.ac +@@ -11,4 +11,4 @@ dnl m4-include this file to define the current luajit version + dnl m4_define([luajit_version], [2.1.1736781742]) + dnl libtool: error: REVISION '1736781742' must be a nonnegative integer + dnl libtool: error: '3:1736781742:1' is not valid version information +-m4_define([luajit_version], [2.1.81742]) ++m4_define([luajit_version], [2.1.736]) +-- +2.49.0 +