[pkg-lua-devel] Bug#1034244: unblock (pre-approval): lua-readline/3.2-2

Sergei Golovan sgolovan at nes.ru
Tue Apr 11 10:15:40 BST 2023


Package: release.debian.org
Severity: normal
User: release.debian.org at packages.debian.org
Usertags: unblock
X-Debbugs-Cc: lua-readline at packages.debian.org
Control: affects -1 + src:lua-readline

I'd like to upload lua-readline with a bugfix for #1034078 (see [1]).

[ Reason ]
This upload fixes #1034078. The patch is made upstream and taken
from newly released version 3.3.

[ Impact ]
This bug is a regression in version 3.2 which significantly
worsens user experience (standard Ctrl+D isn't interpreted as EOF).

[ Tests ]
There aren't automated tests, but manual testing using upstream test
code doesn't reveal any other regressions/bugs.

[ Risks ]
The code change is trivial, the bug currently affects the prosody
packhage in a way that its admin cannot simply exit from the
prosody server management console.

[ Checklist ]
  [+] all changes are documented in the d/changelog
  [+] I reviewed all changes and I approve them
  [+] attach debdiff against the package in testing

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1034078

unblock lua-readline/3.2-2
-------------- next part --------------
diff --git a/debian/changelog b/debian/changelog
index 4456e53..7450934 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+lua-readline (3.2-2) unstable; urgency=medium
+
+  * Fix regression which does not allow to use Ctrl-D (EOF) to close
+    readline session (closes: #1034078).
+
+ -- Sergei Golovan <sgolovan at debian.org>  Sun, 09 Apr 2023 12:28:12 +0300
+
 lua-readline (3.2-1) unstable; urgency=medium
 
   * New upstream release.
diff --git a/debian/patches/eof.patch b/debian/patches/eof.patch
new file mode 100644
index 0000000..2ac8eeb
--- /dev/null
+++ b/debian/patches/eof.patch
@@ -0,0 +1,39 @@
+Author: Upstream
+Description: Patch restores processing EOF (Ctrl+D), when readline()
+ returns NULL, distinguishable from an empty string.
+Debian-Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1034078
+
+--- a/C-readline.c
++++ b/C-readline.c
+@@ -65,7 +65,13 @@
+ 	/* rl_cleanup_after_signal(); rl_clear_signals();  no effect :-( 1.3 */
+ 	/* lua_pushstring(L, line); */
+ 	/* 3.2 did lua_pushstring create a copy of the string ? */
+-	lua_pushfstring(L, "%s", line);   /* 3.2 */
++	/* lua_pushfstring(L, "%s", line);   3.2 */
++	if (line == NULL) { /* 3.3 fix by zash.se, Prosody developer */
++		lua_pushnil(L);
++	} else {
++		lua_pushfstring(L, "%s", line);
++		// lua_pushstring(L, line); should be fine as well
++	}
+ 	if (tty_stream != NULL) { fclose(tty_stream); }
+ 	free(line);  /* 3.2 fixes memory leak */
+ 	return 1;
+@@ -135,13 +141,15 @@
+ 	return 0;
+ }
+ 
+-static int c_write_history(lua_State *L) {  /* filename in, returncode out */
++/* unused ...
++static int c_write_history(lua_State *L) {  //  filename in, returncode out
+ 	size_t len;
+ 	const char *filename  = lua_tolstring(L, 1, &len);
+     lua_Integer rc = write_history(filename);
+ 	lua_pushinteger(L, rc);
+ 	return 1;
+ }
++*/
+ 
+ static int c_history_truncate_file(lua_State *L) { /* filename,num in rc out */
+ 	size_t len;
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..84626e5
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+eof.patch


More information about the pkg-lua-devel mailing list