Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package archmage for openSUSE:Factory checked in at 2026-06-22 17:44:52 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/archmage (Old) and /work/SRC/openSUSE:Factory/.archmage.new.1956 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "archmage" Mon Jun 22 17:44:52 2026 rev:5 rq:1361163 version:0.4.2.1 Changes: -------- --- /work/SRC/openSUSE:Factory/archmage/archmage.changes 2026-01-17 21:43:37.816085477 +0100 +++ /work/SRC/openSUSE:Factory/.archmage.new.1956/archmage.changes 2026-06-22 17:45:24.187329496 +0200 @@ -1,0 +2,10 @@ +Mon Jun 22 14:14:13 UTC 2026 - Martin Pluskal <[email protected]> + +- Add archmage-fix-bytes-regex.patch: fix "archmage -c pdf" crashing + with "cannot use a string pattern on a bytes-like object" by using + bytes regex patterns on the bytes content (boo#1178542) +- Register the archmage.1 man page as an update-alternatives slave so + the shipped /usr/share/man/man1/archmage.1.gz symlink is managed + (boo#1202977) + +------------------------------------------------------------------- New: ---- archmage-fix-bytes-regex.patch ----------(New B)---------- New: - Add archmage-fix-bytes-regex.patch: fix "archmage -c pdf" crashing with "cannot use a string pattern on a bytes-like object" by using ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ archmage.spec ++++++ --- /var/tmp/diff_new_pack.b5sszj/_old 2026-06-22 17:45:25.851387819 +0200 +++ /var/tmp/diff_new_pack.b5sszj/_new 2026-06-22 17:45:25.875388660 +0200 @@ -24,6 +24,8 @@ Group: Productivity/Archiving/Compression URL: https://github.com/dottedmag/archmage Source: https://github.com/dottedmag/archmage/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz +# PATCH-FIX-UPSTREAM archmage-fix-bytes-regex.patch boo#1178542 -- fix "archmage -c pdf" crash by matching the bytes data with bytes regex patterns +Patch0: archmage-fix-bytes-regex.patch BuildRequires: %{python_module pip} BuildRequires: %{python_module wheel} BuildRequires: fdupes @@ -51,7 +53,7 @@ the format used by Microsoft HTML Help, and is also known as Compiled HTML. %prep -%autosetup +%autosetup -p1 %build echo %{version} > RELEASE-VERSION @@ -59,6 +61,10 @@ %install %pyproject_install +# %%pyproject_install writes timestamp-based .pyc whose embedded source mtime +# drifts from the installed .py mtime (python-bytecode-inconsistent-mtime). +# Recompile with hash-based invalidation (PEP 552), which has no mtime dependency. +%python_expand $python -m compileall --invalidation-mode=checked-hash -f -o 0 -o 1 %{buildroot}%{$python_sitelib}/archmage install -Dpm 0644 %{name}.1 \ %{buildroot}%{_mandir}/man1/%{name}.1 %python_clone -a %{buildroot}%{_bindir}/archmage @@ -69,7 +75,7 @@ %pytest %post -%python_install_alternative archmage +%python_install_alternative archmage archmage.1 %postun %python_uninstall_alternative archmage ++++++ archmage-fix-bytes-regex.patch ++++++ --- a/archmage/CHM.py 2026-06-22 15:00:23.910023836 +0200 +++ b/archmage/CHM.py 2026-06-22 15:00:23.958029180 +0200 @@ -493,17 +493,17 @@ data = self.lower_links(data) # Delete unwanted HTML elements. - data = re.sub("<div .*teamlib\\.gif.*\\/div>", "", data) - data = re.sub("<a href.*>\\[ Team LiB \\]<\\/a>", "", data) + data = re.sub(b"<div .*teamlib\\.gif.*\\/div>", b"", data) + data = re.sub(b"<a href.*>\\[ Team LiB \\]<\\/a>", b"", data) data = re.sub( - "<table.*larrow\\.gif.*rarrow\\.gif.*<\\/table>", "", data + b"<table.*larrow\\.gif.*rarrow\\.gif.*<\\/table>", b"", data ) - data = re.sub("<a href.*next\\.gif[^>]*><\\/a>", "", data) - data = re.sub("<a href.*previous\\.gif[^>]*><\\/a>", "", data) - data = re.sub("<a href.*prev\\.gif[^>]*><\\/a>", "", data) - data = re.sub('"[^"]*previous\\.gif"', '""', data) - data = re.sub('"[^"]*prev\\.gif"', '""', data) - data = re.sub('"[^"]*next\\.gif"', '""', data) + data = re.sub(b"<a href.*next\\.gif[^>]*><\\/a>", b"", data) + data = re.sub(b"<a href.*previous\\.gif[^>]*><\\/a>", b"", data) + data = re.sub(b"<a href.*prev\\.gif[^>]*><\\/a>", b"", data) + data = re.sub(b'"[^"]*previous\\.gif"', b'""', data) + data = re.sub(b'"[^"]*prev\\.gif"', b'""', data) + data = re.sub(b'"[^"]*next\\.gif"', b'""', data) if data is not None: return data else:
