[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#993639: bullseye-pu: package pyx3/0.15-3+deb11u1



Package: release.debian.org
Severity: normal
Tags: bullseye
User: release.debian.org@packages.debian.org
Usertags: pu
X-Debbugs-Cc: stuart@debian.org

Dear Release Team,

I would like to update the pyx3 source package in bullseye to fix a nasty
bug in its text layout that makes it more-or-less unusable at present
(#992656).

[ Reason ]
An incompatibility between the pyx3 and texlive in the bullseye release
means that text box alignment is broken in plots generated by pyx. The
result is unreadable plots where, for example, the tick labels are vertically
displaced, with the y-tick labels perhaps being next to the wrong tick
mark, and the x-tick labels being cropped off the bottom of the image.
Upstream reported this bug and even indicated the appropriate patch to
cherry-pick (see #992656).

[ Impact ]
pyx3 in bullseye is not usable with the 'LatexEngine' text engine; the
alternative text engine (typesetting using plain TeX) is fine for some work,
but many users would use LatexEngine as the text engine across all plots.
While it is not the default text engine that it is broken, it widely used
such that it is worth updating in bullseye.

[ Tests ]
PyX has a test suite that is run and passes at build time. However, the test
suite does not check for the visual correctness of the output which is where
this bug lies. I have manually tested the updated packages using the test case
provided by upstream in #992656 to verify that the bug is indeed fixed. I
have also checked other output from the update pyx3 package.

[ Risks ]
This is an upstream patch that was identified by upstream as being appropriate
for the bullseye-pu. The actual change is a single line of LaTeX macro usage
in configuring the text engine.

[ Checklist ]
  [✔] *all* changes are documented in the d/changelog
  [✔] I reviewed all changes and I approve them
  [✔] attach debdiff against the package in (old)stable
  [✔] the issue is verified as fixed in unstable

[ Changes ]
Only one change: The LatexEngine configuration is switched to use a different
PyX macro that allows the correct alignment of the text in the output.

[ Other info ]
This bug is already fixed in unstable and testing (version 0.15-4); the only
difference between the version in unstable and the debdiff proposed here is
the changelog entry. My manual testing of this fix was undertaken against both
the 0.15-3+deb11u1 and 0.15-4 packages installed into their respective
releases.

Thanks for your assistance with this bullseye-pu.
Stuart
diff -Nru pyx3-0.15/debian/changelog pyx3-0.15/debian/changelog
--- pyx3-0.15/debian/changelog	2020-03-23 10:05:15.000000000 +1100
+++ pyx3-0.15/debian/changelog	2021-09-04 12:51:47.000000000 +1000
@@ -1,3 +1,11 @@
+pyx3 (0.15-3+deb11u1) bullseye; urgency=medium
+
+  * Fix horizontal font alignment issue with texlive 2020. Cherry-pick patch
+    from upstream, with thanks to Andre Wobst and Joerg Lehmann
+    (Closes: #992656).
+
+ -- Stuart Prescott <stuart@debian.org>  Sat, 04 Sep 2021 12:51:47 +1000
+
 pyx3 (0.15-3) unstable; urgency=medium
 
   * Fix autopkgtest failure due to use of py3versions -i, with thanks to Scott
diff -Nru pyx3-0.15/debian/patches/series pyx3-0.15/debian/patches/series
--- pyx3-0.15/debian/patches/series	2020-03-23 10:05:15.000000000 +1100
+++ pyx3-0.15/debian/patches/series	2021-09-04 12:51:47.000000000 +1000
@@ -9,3 +9,4 @@
 reproducible-timestamps.patch
 reproducible-image-name.patch
 reproducible-elements.patch
+texlive2020-horiz-alignment.patch
diff -Nru pyx3-0.15/debian/patches/texlive2020-horiz-alignment.patch pyx3-0.15/debian/patches/texlive2020-horiz-alignment.patch
--- pyx3-0.15/debian/patches/texlive2020-horiz-alignment.patch	1970-01-01 10:00:00.000000000 +1000
+++ pyx3-0.15/debian/patches/texlive2020-horiz-alignment.patch	2021-09-04 12:51:47.000000000 +1000
@@ -0,0 +1,31 @@
+From 82f82028ec5bc166ff2bb5bfa416ed94486b2775 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Wobst?= <wobsta@pyx-project.org>
+Date: Sat, 21 Aug 2021 13:46:28 +0200
+Subject: [PATCH] Make alignment work with texlive 2020
+
+The LaTeX shipout macro has recently been changed in unboxing and
+reboxing the content. This resulted in a misplacment in vertical
+direction by ignoring that PyX sets the height to zero.
+
+This bug has been reported by Thomas Bending.
+---
+ pyx/text.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pyx/text.py b/pyx/text.py
+index 9ecd0768..68539743 100644
+--- a/pyx/text.py
++++ b/pyx/text.py
+@@ -1202,8 +1202,8 @@ class SingleEngine:
+                                                   "rt=\\the\\PyXDimenHAlignRT,"
+                                                   "ht=\\the\\ht\\PyXBox,"
+                                                   "dp=\\the\\dp\\PyXBox:}%\n"
++                      "\\ht\\PyXBox0pt%\n" # baseline alignment (hight to zero)
+                       "\\setbox\\PyXBoxHAligned=\\hbox{\\kern-\\PyXDimenHAlignLT\\box\\PyXBox}%\n" # align horizontally
+-                      "\\ht\\PyXBoxHAligned0pt%\n" # baseline alignment (hight to zero)
+                       "{\\count0=80\\count1=121\\count2=88\\count3=#2\\shipout\\box\\PyXBoxHAligned}}%\n" # shipout PyXBox to Page 80.121.88.<page number>
+                       "\\def\\PyXInput#1{\\immediate\\write16{PyXInputMarker:executeid=#1:}}%\n" # write PyXInputMarker to stdout
+                       "\\def\\PyXMarker#1{\\hskip0pt\\special{PyX:marker #1}}%", # write PyXMarker special into the dvi-file
+-- 
+2.30.2
+

Reply to: