Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package dd_rescue for openSUSE:Factory 
checked in at 2024-03-06 23:03:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/dd_rescue (Old)
 and      /work/SRC/openSUSE:Factory/.dd_rescue.new.1770 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "dd_rescue"

Wed Mar  6 23:03:15 2024 rev:59 rq:1154999 version:1.99.13

Changes:
--------
--- /work/SRC/openSUSE:Factory/dd_rescue/dd_rescue.changes      2023-03-19 
16:16:44.331368901 +0100
+++ /work/SRC/openSUSE:Factory/.dd_rescue.new.1770/dd_rescue.changes    
2024-03-06 23:03:24.810880929 +0100
@@ -1,0 +2,26 @@
+Sun Mar  3 22:47:17 CET 2024 - [email protected]
+
+- dd_rescue-md5-unaligned-armv7.diff: gcc-12 does make unaligned
+  accesses on armv7 work sometimes, which breaks a configure test
+  and then makes the make check fail with SIGBUS when using hash
+  after lzo compression. Hardcode knowledge about armv7.
+- Drop %setup (not needed if using %autosetup, thanks Valentin!)
+- Mention [bsc#1219882], as suggested by Valentin Lefebvre.
+
+-------------------------------------------------------------------
+Thu Feb 29 09:20:59 CET 2024 - [email protected]
+
+- Fix openssl version detection for 3.0.x. 
+- dd_rescue-ossl3-evpcipherctx.diff: There's an additional field
+  in the (private) struct _evp_cipher_ctx_st in openssl-3 since
+  3.0.6, which makes a difference on 32bit. (On 64bit, the effect
+  is hidden by the compiler's alignment rules.)
+
+-------------------------------------------------------------------
+Wed Feb 28 20:21:01 CET 2024 - [email protected]
+
+- Specify libopenssl-devel as BuildRequirements. This will select
+  openssl-3 on new distributions. 
+  This fixes [bsc#1219882].
+
+-------------------------------------------------------------------

New:
----
  dd_rescue-md5-unaligned-armv7.diff
  dd_rescue-ossl3-evpcipherctx.diff

BETA DEBUG BEGIN:
  New:
- dd_rescue-md5-unaligned-armv7.diff: gcc-12 does make unaligned
  accesses on armv7 work sometimes, which breaks a configure test
  New:- Fix openssl version detection for 3.0.x. 
- dd_rescue-ossl3-evpcipherctx.diff: There's an additional field
  in the (private) struct _evp_cipher_ctx_st in openssl-3 since
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dd_rescue.spec ++++++
--- /var/tmp/diff_new_pack.FZdeK5/_old  2024-03-06 23:03:26.814953586 +0100
+++ /var/tmp/diff_new_pack.FZdeK5/_new  2024-03-06 23:03:26.814953586 +0100
@@ -31,12 +31,14 @@
 Source1:        
http://garloff.de/kurt/linux/ddrescue/%{name}-%{version}.tar.bz2.asc
 Source2:        %{name}.keyring
 Source99:       %{name}.changes
+Patch1:                dd_rescue-ossl3-evpcipherctx.diff
+Patch2:                dd_rescue-md5-unaligned-armv7.diff
 # PATCH-FIX-UPSTREAM no-python2.patch sf#ddrescue#4 [email protected]
 # Remove dependency on python2
 BuildRequires:  autoconf
 BuildRequires:  libattr-devel
 # Workaround for bsc#1193438
-BuildRequires:  libopenssl-1_1-devel
+BuildRequires:  libopenssl-devel
 BuildRequires:  lzo-devel
 BuildRequires:  lzop
 BuildRequires:  pkgconfig
@@ -111,7 +113,7 @@
 data to the decompressor; the plugin is still young and might expose bugs.
 
 %prep
-%setup -q
+%autosetup -p1
 
 # Remove build time references so build-compare can do its work
 FAKE_BUILDTIME=$(LC_ALL=C date -u -r %{SOURCE99} '+%%H:%%M')


++++++ dd_rescue-md5-unaligned-armv7.diff ++++++
commit 19da344403f9d340d7343e99df6ec3e4b79684d9
Author: Kurt Garloff <[email protected]>
Date:   Sun Mar 3 21:53:21 2024 +0100

    Trouble is that we don't detect that ARMv7 requires extra buffering
    is md5 input is not properly aligned. gcc-12 apparently is clever enough
    to handle unlaigned memory access for us, which makes us succeed in the
    testcase. It's not clever enough to also succeed in md5_64() :-O
    
    Signed-off-by: Kurt Garloff <[email protected]>

diff --git a/configure.ac b/configure.ac
index d99387c..7a7dccf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -60,7 +60,7 @@ AC_RUN_IFELSE([AC_LANG_SOURCE([[
        AC_DEFINE_UNQUOTED([HAVE_REP_NOP], 1,
                [check whether asm rep nop works])
 ],[
-       AC_MSG_RESULT(yes)
+       AC_MSG_RESULT(no)
 ],[
        AC_MSG_RESULT(no -- cross compiling)
 ])
@@ -79,7 +79,7 @@ AC_RUN_IFELSE([AC_LANG_SOURCE([[
        AC_DEFINE_UNQUOTED([HAVE_LFENCE], 1,
                [check whether asm lfence works])
 ],[
-       AC_MSG_RESULT(yes)
+       AC_MSG_RESULT(no)
 ],[
        AC_MSG_RESULT(no -- cross compiling)
 ])
@@ -171,6 +171,10 @@ AC_RUN_IFELSE([AC_LANG_SOURCE([[
         fprintf(stderr, "Debug: Off %i, Ptr %08lx\n", off, (unsigned long)ptr);
         copy((int*)b2, (const int*)ptr, 4);
         fprintf(stderr, "Ints: %08x %08x %08x %08x\n", *(int*)b2, 
*(int*)(b2+4), *(int*)(b2+8), *(int*)(b2+12));
+        /* HACK: Somehow this test does no longer trigger with gcc-12 on 
armhf, but it should */
+        #ifdef __arm__
+        return 1;
+        #endif
         return 0;
        }
 ]])],[

++++++ dd_rescue-ossl3-evpcipherctx.diff ++++++
commit ce925927fdcc5e41f1a8975f31405f913a6583d1
Author: Kurt Garloff <[email protected]>
Date:   Wed Feb 28 22:49:18 2024 +0100

    Adjust struct _evp_cipher_ctx_st to openssl-3.0.6+.
    
    This is only done if the version is indeed >= 3.0.6.
    It's only relevant on 32bit, as the alignment rules on 64bit
    do hide this difference.
    
    Signed-off-by: Kurt Garloff <[email protected]>

diff --git a/aes_ossl11.c b/aes_ossl11.c
index 2fa4468..e450f4e 100644
--- a/aes_ossl11.c
+++ b/aes_ossl11.c
@@ -45,6 +45,9 @@ struct _evp_cipher_ctx_st {
     /* FIXME: Should this even exist? It appears unused */
     void *app_data;             /* application stuff */
     int key_len;                /* May change for variable length cipher */
+#if OPENSSL_VERSION_MAJOR >= 3 && (OPENSSL_VERSION_MINOR > 0 || 
OPENSSL_VERSION_PATCH >= 6)
+    int iv_len;                 /* IV length */
+#endif
     unsigned long flags;        /* Various flags */
     void *cipher_data;          /* per EVP data */
     int final_used;

Reply via email to