Package: release.debian.org
Severity: normal
Tags: stretch
User: release.debian@packages.debian.org
Usertags: pu
Dear Release Team,
Version 1.2.0-rc5-3 of the librsb package in stretch suffers a few severe
bugs leading to numerically wrong results. These were solved in the new
upstream release 1.2.0-rc7.
Michele Martone, the upstream author, who also contributes to the Debian
package, prepared a minimal patch by backporting the fixes from version
1.2.0-rc7. This patch was attached to the report of Bug#870137.
I am attaching below the debdiff between 1.2.0-rc5-3 and the stretch
proposed-update 1.2.0-rc5-3+deb9u1. This version includes the patch
proposed by Michele Martone as well as a unit test C source file for
verifying that the fix is really implemented. I added small changes to
debian/rules and debian/clean for compiling, running and cleaning this
unit test.
Please, tell me whether this upload would be appropriate for the next
point release of stretch.
Best regards,
Raael Laboissière
-- System Information:
Debian Release: 9.0
APT prefers testing
APT policy: (650, 'testing'), (600, 'unstable'), (550, 'experimental'), (550, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.9.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.utf8 (charmap=UTF-8),
LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru librsb-1.2.0-rc5/debian/changelog librsb-1.2.0-rc5/debian/changelog
--- librsb-1.2.0-rc5/debian/changelog 2016-10-09 06:03:46.0 -0300
+++ librsb-1.2.0-rc5/debian/changelog 2017-07-30 18:01:10.0 -0300
@@ -1,3 +1,15 @@
+librsb (1.2.0-rc5-3+deb9u1) stretch; urgency=medium
+
+ * d/p/fix-numerical-computation.patch: New patch.
+This minimal patch backports the fixes to a few severe bugs leading to
+numerically wrong results. These bugs are fixed in the upstream
+version 1.2.0-rc7.
+Thanks to Michele Martone for the patch (Closes: #870137)
+ * Add unit test for numerical bug fixed in version 1.2.0-rc7.
+Thanks to Michele Martone for the source file
+
+ -- Rafael Laboissiere Sun, 30 Jul 2017 18:01:10 -0300
+
librsb (1.2.0-rc5-3) unstable; urgency=medium
* d/control: Use secure URL in Vcs-Git
diff -Nru librsb-1.2.0-rc5/debian/clean librsb-1.2.0-rc5/debian/clean
--- librsb-1.2.0-rc5/debian/clean 2016-09-22 16:57:56.0 -0300
+++ librsb-1.2.0-rc5/debian/clean 2017-07-30 17:57:26.0 -0300
@@ -10,3 +10,4 @@
test.mtx
doc/html/
doc/man/man3/
+debian/rsb127_bugfix
diff -Nru librsb-1.2.0-rc5/debian/patches/fix-numerical-computation.patch
librsb-1.2.0-rc5/debian/patches/fix-numerical-computation.patch
--- librsb-1.2.0-rc5/debian/patches/fix-numerical-computation.patch
1969-12-31 21:00:00.0 -0300
+++ librsb-1.2.0-rc5/debian/patches/fix-numerical-computation.patch
2017-07-30 18:00:11.0 -0300
@@ -0,0 +1,144 @@
+Description: Fix numerical computation bug
+ This is fixed in the upstream version 1.2.0-rc7.
+Author: Rafael Laboissiere
+Forwarded: not-needed
+Last-Update: 2017-07-30
+
+--- librsb-1.2.0-rc5.orig/rsb_krnl_bcss_macros.m4
librsb-1.2.0-rc5/rsb_krnl_bcss_macros.m4
+@@ -922,9 +922,9 @@ dnl// nt: ntransposition
ttranspositi
+ k=fk;
+ if(k==lk)continue;
+ j=bindx[k];
+- cacc +=
RSB_M4_CONJ(VA[k]*rhs[tcolsu*j*xstride],mtype,ntransposition,k_symmetry);
++ cacc +=
RSB_M4_CONJ(VA[k],mtype,ntransposition,k_symmetry)*rhs[tcolsu*j*xstride];
+ if(roff!=coff || (j!=i))
+-
tout[(tcolsu)*(j)*ystride]+=RSB_M4_CONJ(VA[k]*bt,mtype,ttransposition,k_symmetry);
++
tout[(tcolsu)*(j)*ystride]+=RSB_M4_CONJ(VA[k],mtype,ttransposition,k_symmetry)*bt;
+ ++k;
+ dnl RSB_M4_SIMPLE_LOOP_UNROLL_2S..
+ RSB_M4_SIMPLE_LOOP_UNROLL_2S_J(`k',`LI',`fk+1',`lk-1',`dnl
+@@ -933,7 +933,7 @@ dnl
+ `const mtype
b_'``''LI`'=rhs[tcolsu*(`j_'``''LI`')*xstride];
+ `const mtype a_'``''LI`'=VA[k+LI];
+ `mtype
c_'``''LI`'=RSB_M4_CONJ_SYM(mtype,ttransposition,k_symmetry)( `a_'``''LI)*bt;
+-dnl `mtype c_'``''LI`'=RSB_M4_CONJ(( `a_'``''LI *bt
),mtype,transposition,k_symmetry);
++dnl `mtype c_'``''LI`'=RSB_M4_CONJ((
`a_'``''LI),mtype,transposition,k_symmetry) *bt ;
+ dnl
+ ',`dnl
+ cacc +=
RSB_M4_CONJ_SYM(mtype,ntransposition,k_symmetry)(`a_'``''LI)*b_``''LI;
+@@ -942,9 +942,9 @@ dnl
+ if(k