From be516634e06ec8ae42723d40efd115c56b24798b Mon Sep 17 00:00:00 2001
From: Luigi Scarso <luigi.scarso@gmail.com>
Date: Sun, 2 Feb 2025 10:16:38 +0100
Subject: [PATCH] Patch for lj_prng.c if O_CLOEXEC is not defined.

---
 source/libs/luajit/LuaJIT-src/src/lj_prng.c       |  4 ++++
 .../TLpatches/{patch-lauxlib.h => patch-lauxlib}  |  1 +
 .../{patch-lib_init.c => patch-lib_init}          |  1 +
 .../{patch-lib_package.c => patch-lib_package}    |  1 +
 .../TLpatches/{patch-lj_arch.h => patch-lj_arch}  |  1 +
 .../TLpatches/{patch-lj_def.h => patch-lj_def}    |  1 +
 .../TLpatches/{patch-lj_load.c => patch-lj_load}  |  1 +
 source/libs/luajit/TLpatches/patch-lj_pnrg        | 15 +++++++++++++++
 .../TLpatches/{patch-lj_str.c => patch-lj_str}    |  1 +
 .../luajit/TLpatches/{patch-lua.h => patch-lua}   |  1 +
 .../TLpatches/{patch-lualib.h => patch-lualib}    |  1 +
 source/texk/web2c/luatexdir/luatex_svnversion.h   |  2 +-
 12 files changed, 29 insertions(+), 1 deletion(-)
 rename source/libs/luajit/TLpatches/{patch-lauxlib.h => patch-lauxlib} (93%)
 rename source/libs/luajit/TLpatches/{patch-lib_init.c => patch-lib_init} (73%)
 rename source/libs/luajit/TLpatches/{patch-lib_package.c => patch-lib_package} (93%)
 rename source/libs/luajit/TLpatches/{patch-lj_arch.h => patch-lj_arch} (77%)
 rename source/libs/luajit/TLpatches/{patch-lj_def.h => patch-lj_def} (84%)
 rename source/libs/luajit/TLpatches/{patch-lj_load.c => patch-lj_load} (90%)
 create mode 100644 source/libs/luajit/TLpatches/patch-lj_pnrg
 rename source/libs/luajit/TLpatches/{patch-lj_str.c => patch-lj_str} (76%)
 rename source/libs/luajit/TLpatches/{patch-lua.h => patch-lua} (88%)
 rename source/libs/luajit/TLpatches/{patch-lualib.h => patch-lualib} (85%)

diff --git a/source/libs/luajit/LuaJIT-src/src/lj_prng.c b/source/libs/luajit/LuaJIT-src/src/lj_prng.c
index 02146b273..ea7a9d092 100644
--- a/source/libs/luajit/LuaJIT-src/src/lj_prng.c
+++ b/source/libs/luajit/LuaJIT-src/src/lj_prng.c
@@ -227,7 +227,11 @@ int LJ_FASTCALL lj_prng_seed_secure(PRNGState *rs)
   ** or the OS ran out of file descriptors.
   */
   {
+#ifdef O_CLOEXEC
     int fd = open("/dev/urandom", O_RDONLY|O_CLOEXEC);
+#else
+    int fd = open("/dev/urandom", O_RDONLY);
+#endif
     if (fd != -1) {
       ssize_t n = read(fd, rs->u, sizeof(rs->u));
       (void)close(fd);
diff --git a/source/libs/luajit/TLpatches/patch-lauxlib.h b/source/libs/luajit/TLpatches/patch-lauxlib
similarity index 93%
rename from source/libs/luajit/TLpatches/patch-lauxlib.h
rename to source/libs/luajit/TLpatches/patch-lauxlib
index bc7a642fb..3601834dc 100644
--- a/source/libs/luajit/TLpatches/patch-lauxlib.h
+++ b/source/libs/luajit/TLpatches/patch-lauxlib
@@ -1,3 +1,4 @@
+diff -bu a/source/libs/luajit/LuaJIT-src/src/lauxlib.h  b/source/libs/luajit/LuaJIT-src/src/lauxlib.h 
 --- a/source/libs/luajit/LuaJIT-src/src/lauxlib.h
 +++ b/source/libs/luajit/LuaJIT-src/src/lauxlib.h
 @@ -93,6 +93,31 @@
diff --git a/source/libs/luajit/TLpatches/patch-lib_init.c b/source/libs/luajit/TLpatches/patch-lib_init
similarity index 73%
rename from source/libs/luajit/TLpatches/patch-lib_init.c
rename to source/libs/luajit/TLpatches/patch-lib_init
index 5890d4cd9..7318b9676 100644
--- a/source/libs/luajit/TLpatches/patch-lib_init.c
+++ b/source/libs/luajit/TLpatches/patch-lib_init
@@ -1,3 +1,4 @@
+diff -bu a/source/libs/luajit/LuaJIT-src/src/lib_init.c  b/source/libs/luajit/LuaJIT-src/src/lib_init.c 
 --- a/source/libs/luajit/LuaJIT-src/src/lib_init.c
 +++ b/source/libs/luajit/LuaJIT-src/src/lib_init.c
 @@ -26,6 +26,7 @@
diff --git a/source/libs/luajit/TLpatches/patch-lib_package.c b/source/libs/luajit/TLpatches/patch-lib_package
similarity index 93%
rename from source/libs/luajit/TLpatches/patch-lib_package.c
rename to source/libs/luajit/TLpatches/patch-lib_package
index 18752fc32..b323a3747 100644
--- a/source/libs/luajit/TLpatches/patch-lib_package.c
+++ b/source/libs/luajit/TLpatches/patch-lib_package
@@ -1,3 +1,4 @@
+diff -bu a/source/libs/luajit/LuaJIT-src/src/lib_package.c  b/source/libs/luajit/LuaJIT-src/src/lib_package.c 
 --- a/source/libs/luajit/LuaJIT-src/src/lib_package.c
 +++ b/source/libs/luajit/LuaJIT-src/src/lib_package.c
 @@ -378,6 +378,29 @@
diff --git a/source/libs/luajit/TLpatches/patch-lj_arch.h b/source/libs/luajit/TLpatches/patch-lj_arch
similarity index 77%
rename from source/libs/luajit/TLpatches/patch-lj_arch.h
rename to source/libs/luajit/TLpatches/patch-lj_arch
index e50fb9883..496d235d8 100644
--- a/source/libs/luajit/TLpatches/patch-lj_arch.h
+++ b/source/libs/luajit/TLpatches/patch-lj_arch
@@ -1,3 +1,4 @@
+diff -bu a/source/libs/luajit/LuaJIT-src/src/lj_arch.h  b/source/libs/luajit/LuaJIT-src/src/lj_arch.h 
 --- a/source/libs/luajit/LuaJIT-src/src/lj_arch.h
 +++ b/source/libs/luajit/LuaJIT-src/src/lj_arch.h
 @@ -455,7 +455,7 @@
diff --git a/source/libs/luajit/TLpatches/patch-lj_def.h b/source/libs/luajit/TLpatches/patch-lj_def
similarity index 84%
rename from source/libs/luajit/TLpatches/patch-lj_def.h
rename to source/libs/luajit/TLpatches/patch-lj_def
index 5e06ff87b..9d407e2e7 100644
--- a/source/libs/luajit/TLpatches/patch-lj_def.h
+++ b/source/libs/luajit/TLpatches/patch-lj_def
@@ -1,3 +1,4 @@
+diff -bu a/source/libs/luajit/LuaJIT-src/src/lj_def.h  b/source/libs/luajit/LuaJIT-src/src/lj_def.h 
 --- a/source/libs/luajit/LuaJIT-src/src/lj_def.h
 +++ b/source/libs/luajit/LuaJIT-src/src/lj_def.h
 @@ -66,7 +66,7 @@
diff --git a/source/libs/luajit/TLpatches/patch-lj_load.c b/source/libs/luajit/TLpatches/patch-lj_load
similarity index 90%
rename from source/libs/luajit/TLpatches/patch-lj_load.c
rename to source/libs/luajit/TLpatches/patch-lj_load
index b302b205e..44bd2925d 100644
--- a/source/libs/luajit/TLpatches/patch-lj_load.c
+++ b/source/libs/luajit/TLpatches/patch-lj_load
@@ -1,3 +1,4 @@
+diff -bu a/source/libs/luajit/LuaJIT-src/src/lj_load.c  b/source/libs/luajit/LuaJIT-src/src/lj_load.c 
 --- a/source/libs/luajit/LuaJIT-src/src/lj_load.c
 +++ b/source/libs/luajit/LuaJIT-src/src/lj_load.c
 @@ -182,3 +182,32 @@
diff --git a/source/libs/luajit/TLpatches/patch-lj_pnrg b/source/libs/luajit/TLpatches/patch-lj_pnrg
new file mode 100644
index 000000000..9d1055a44
--- /dev/null
+++ b/source/libs/luajit/TLpatches/patch-lj_pnrg
@@ -0,0 +1,15 @@
+diff -bu a/source/libs/luajit/LuaJIT-src/src/lj_prng.c  b/source/libs/luajit/LuaJIT-src/src/lj_prng.c 
+--- a/source/libs/luajit/LuaJIT-src/src/lj_prng.c
++++ b/source/libs/luajit/LuaJIT-src/src/lj_prng.c
+@@ -227,7 +227,11 @@
+   ** or the OS ran out of file descriptors.
+   */
+   {
++#ifdef O_CLOEXEC
+     int fd = open("/dev/urandom", O_RDONLY|O_CLOEXEC);
++#else
++    int fd = open("/dev/urandom", O_RDONLY);
++#endif
+     if (fd != -1) {
+       ssize_t n = read(fd, rs->u, sizeof(rs->u));
+       (void)close(fd);
diff --git a/source/libs/luajit/TLpatches/patch-lj_str.c b/source/libs/luajit/TLpatches/patch-lj_str
similarity index 76%
rename from source/libs/luajit/TLpatches/patch-lj_str.c
rename to source/libs/luajit/TLpatches/patch-lj_str
index 2b241b04d..545a1898f 100644
--- a/source/libs/luajit/TLpatches/patch-lj_str.c
+++ b/source/libs/luajit/TLpatches/patch-lj_str
@@ -1,3 +1,4 @@
+diff -bu a/source/libs/luajit/LuaJIT-src/src/lj_str.c  b/source/libs/luajit/LuaJIT-src/src/lj_str.c 
 --- a/source/libs/luajit/LuaJIT-src/src/lj_str.c
 +++ b/source/libs/luajit/LuaJIT-src/src/lj_str.c
 @@ -310,6 +310,7 @@
diff --git a/source/libs/luajit/TLpatches/patch-lua.h b/source/libs/luajit/TLpatches/patch-lua
similarity index 88%
rename from source/libs/luajit/TLpatches/patch-lua.h
rename to source/libs/luajit/TLpatches/patch-lua
index 48111225b..bb97fa5ec 100644
--- a/source/libs/luajit/TLpatches/patch-lua.h
+++ b/source/libs/luajit/TLpatches/patch-lua
@@ -1,3 +1,4 @@
+diff -bu a/source/libs/luajit/LuaJIT-src/src/lua.h  b/source/libs/luajit/LuaJIT-src/src/lua.h 
 --- a/source/libs/luajit/LuaJIT-src/src/lua.h
 +++ b/source/libs/luajit/LuaJIT-src/src/lua.h
 @@ -104,6 +104,9 @@
diff --git a/source/libs/luajit/TLpatches/patch-lualib.h b/source/libs/luajit/TLpatches/patch-lualib
similarity index 85%
rename from source/libs/luajit/TLpatches/patch-lualib.h
rename to source/libs/luajit/TLpatches/patch-lualib
index b935ac1fe..6a0f53f62 100644
--- a/source/libs/luajit/TLpatches/patch-lualib.h
+++ b/source/libs/luajit/TLpatches/patch-lualib
@@ -1,3 +1,4 @@
+diff -bu a/source/libs/luajit/LuaJIT-src/src/lualib.h  b/source/libs/luajit/LuaJIT-src/src/lualib.h 
 --- a/source/libs/luajit/LuaJIT-src/src/lualib.h
 +++ b/source/libs/luajit/LuaJIT-src/src/lualib.h
 @@ -22,6 +22,8 @@
diff --git a/source/texk/web2c/luatexdir/luatex_svnversion.h b/source/texk/web2c/luatexdir/luatex_svnversion.h
index 59d787ee2..4f52995f0 100644
--- a/source/texk/web2c/luatexdir/luatex_svnversion.h
+++ b/source/texk/web2c/luatexdir/luatex_svnversion.h
@@ -1,4 +1,4 @@
 #ifndef luatex_svn_revision_h
 #define luatex_svn_revision_h
-#define luatex_svn_revision 7652
+#define luatex_svn_revision 7653
 #endif
-- 
GitLab