Package: lyx-common Version: 2.3.6-1 Severity: normal Tags: patch upstream X-Debbugs-Cc: ew...@ewhac.org
Dear Maintainer, Discovered this while trying to use Editorium's LyXBook modules. layout2layout.py was konking out with "TypeError: cannot use a bytes pattern on a string-like object." After a bunch of debugging, I found some strings in the script that hadn't been bytes-ified, which seemed to fix the problem. Patch attached. Schwab -- System Information: Debian Release: bookworm/sid APT prefers testing-security APT policy: (500, 'testing-security'), (500, 'unstable'), (500, 'testing'), (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.15.0-2-amd64 (SMP w/12 CPU threads) Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages lyx-common depends on: ii python3 3.9.8-1 ii tex-common 6.17 Versions of packages lyx-common recommends: ii lyx 2.3.6-1 lyx-common suggests no packages. -- no debconf information
--- /usr/share/lyx/scripts/layout2layout.py 2020-12-01 02:33:35.000000000 -0800 +++ ./layout2layout.py 2021-12-29 01:04:59.614016427 -0800 @@ -484,8 +484,8 @@ i += 1 continue col = match.group(2) - if col == "collapsable": - lines[i] = match.group(1) + "collapsible" + if col == b"collapsable": + lines[i] = match.group(1) + b"collapsible" i += 1 continue @@ -703,7 +703,7 @@ # Insert the required number of arguments at the end of the style definition match = re_End.match(lines[i]) if match: - newarg = [''] + newarg = [b''] # First the optionals (this is the required order pre 2.1) if opts > 0: if opts == 1: @@ -1153,7 +1153,7 @@ if latextype == b"item_environment" and label.lower() == b"counter_enumi": lines[labeltype_line] = re_LabelType.sub(b'\\1\\2\\3Enumerate', lines[labeltype_line]) # Don't add the LabelCounter line later - counter = "" + counter = b"" # Replace # @@ -1227,12 +1227,12 @@ if options.input_file: source = open(options.input_file, 'rb') else: - source = sys.stdin + source = sys.stdin.buffer if options.output_file: output = open(options.output_file, 'wb') else: - output = sys.stdout + output = sys.stdout.buffer if options.format > currentFormat: error("Format %i does not exist" % options.format);