![](https://seccdn.libravatar.org/avatar/e2145bc5cf53dda95c308a3c75e8fef3.jpg?s=120&d=mm&r=g)
Hello community, here is the log from the commit of package haveged for openSUSE:Factory checked in at 2013-06-18 15:13:04 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/haveged (Old) and /work/SRC/openSUSE:Factory/.haveged.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "haveged" Changes: -------- --- /work/SRC/openSUSE:Factory/haveged/haveged.changes 2013-05-06 10:09:56.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.haveged.new/haveged.changes 2013-06-18 15:13:05.000000000 +0200 @@ -1,0 +2,11 @@ +Mon Jun 17 09:39:07 UTC 2013 - mvyskocil@suse.com + +- update to 1.7c + * Correct additional run-time test aligment problems on mips. + * Correct run-time test aligment problems on sparc and mips. + * Correct ppc detection in build + deprecates haveged-ppc.patch +- use correct Group for libhavege1 +- haveged-devel requires libhavege1 + +------------------------------------------------------------------- Old: ---- haveged-1.7a.tar.gz haveged-ppc.patch New: ---- haveged-1.7c.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ haveged.spec ++++++ --- /var/tmp/diff_new_pack.uTs3EZ/_old 2013-06-18 15:13:06.000000000 +0200 +++ /var/tmp/diff_new_pack.uTs3EZ/_new 2013-06-18 15:13:06.000000000 +0200 @@ -17,7 +17,7 @@ Name: haveged -Version: 1.7a +Version: 1.7c Release: 0 Summary: Feed entropy into random pool License: GPL-3.0 @@ -25,10 +25,13 @@ Url: http://www.issihosts.com/haveged/ Source0: http://www.issihosts.com/haveged/%{name}-%{version}.tar.gz Source2: %{name}.service -#PATCH-FIX-OPENSUSE: mvyskocil: sent upstream -Patch0: haveged-ppc.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build -Enhances: openssl gpg2 php5 apache2 openvpn smtp_daemon +Enhances: openssl +Enhances: gpg2 +Enhances: php5 +Enhances: apache2 +Enhances: openvpn +Enhances: smtp_daemon BuildRequires: autoconf BuildRequires: libtool BuildRequires: pkgconfig(systemd) @@ -43,6 +46,7 @@ %package devel Summary: haveged development files Group: Development/Libraries +Requires: libhavege1 = %{version} %description devel Headers and for the haveged library @@ -52,7 +56,7 @@ %package -n libhavege1 Summary: haveged interface library -Group: Development/Libraries +Group: Development/Libraries/C and C++ %description -n libhavege1 Shared object for the haveged library @@ -61,7 +65,6 @@ %prep %setup -q -%patch0 -p1 %build # mvyskocil: needed because of haveged-ppc.patch ++++++ haveged-1.7a.tar.gz -> haveged-1.7c.tar.gz ++++++ ++++ 5990 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/haveged-1.7a/ChangeLog new/haveged-1.7c/ChangeLog --- old/haveged-1.7a/ChangeLog 2013-02-13 21:01:09.000000000 +0100 +++ new/haveged-1.7c/ChangeLog 2013-06-08 15:37:00.000000000 +0200 @@ -1,8 +1,15 @@ +v1.7c (Jun 08, 2013) + * Fix alignment fault on mips in havegetest.c, procedure B. + +v1.7b (Jun 06, 2013) + * Fix alignment fault on sparc in havegetest.c, procedure A, test5XOR(). + * Fix build ppc detection in configure.ac + v1.7a (Feb 13, 2013) - * Fix parallel build (LDADD fix + VPATH fixes to test programs) - * Fix check target for automake v1.13 and previous (use check-local) - * Add option to suppress tuning code build - * Improve sample spec file for library + * Fix parallel build (LDADD fix + VPATH fixes to test programs) + * Fix check target for automake v1.13 and previous (use check-local) + * Add option to suppress tuning code build + * Improve sample spec file for library v1.7 (Jan 15, 2013) * Add havege_status_dump() as basis for haveged diagnostics @@ -44,7 +51,7 @@ * Add new invocation options to support new features. v1.3 (Oct 23, 2011) - * Intergrate contributions by Jirka Hladky to fine tune collection implementation. + * Integrate contributions by Jirka Hladky to fine tune collection implementation. * Add non-daemon interface with option to send continuous stream of output to stdout. v1.2 (June 26, 2011)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/haveged-1.7a/NEWS new/haveged-1.7c/NEWS --- old/haveged-1.7a/NEWS 2013-02-14 16:18:46.000000000 +0100 +++ new/haveged-1.7c/NEWS 2013-06-08 15:33:39.000000000 +0200 @@ -1,8 +1,16 @@ +v1.7c (Jun 08, 2013) + + Additional fix for run-time test alignment problems on mips. + +v1.7b (Jun 06, 2013) + + Fix run-time test alignment problems on sparc and mips. Fix ppc detection in build. + v1.7a (Feb 13, 2013) Fix broken parallel builds - fix LDADD problem in build, VPATH problems in check targets. Move to check-local for check target to work with automake v1.13 but retain backward - compatability. Modify build to make tuning component optional in build. Improve sample + compatibility. Modify build to make tuning component optional in build. Improve sample spec file and docs. v1.7 (Jan 15, 2013) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/haveged-1.7a/configure.ac new/haveged-1.7c/configure.ac --- old/haveged-1.7a/configure.ac 2013-02-10 23:23:41.000000000 +0100 +++ new/haveged-1.7c/configure.ac 2013-06-08 15:30:23.000000000 +0200 @@ -3,7 +3,7 @@ ## Minimum Autoconf version AC_PREREQ([2.59]) -AC_INIT([haveged],[1.7a]) +AC_INIT([haveged],[1.7c]) AC_CONFIG_AUX_DIR(config) AC_CONFIG_HEADER([config.h]) AM_INIT_AUTOMAKE @@ -138,7 +138,7 @@ AC_DEFINE(HAVE_ISA_IA64, 1, [Define to 1 for ia64]) ;; - powerpc-*|pcc-*|powerpc64|ppc64) + powerpc-*|pcc-*|powerpc64-*|ppc64-*) AC_DEFINE(HAVE_ISA_PPC, 1, [Define to 1 for ppc]) ;; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/haveged-1.7a/contrib/build/fedora.spec new/haveged-1.7c/contrib/build/fedora.spec --- old/haveged-1.7a/contrib/build/fedora.spec 2013-02-13 17:31:48.000000000 +0100 +++ new/haveged-1.7c/contrib/build/fedora.spec 2013-06-08 15:29:44.000000000 +0200 @@ -1,6 +1,6 @@ Summary: A Linux entropy source using the HAVEGE algorithm Name: haveged -Version: 1.7a +Version: 1.7c Release: 0%{?dist} License: GPLv3+ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/haveged-1.7a/contrib/build/lib.spec new/haveged-1.7c/contrib/build/lib.spec --- old/haveged-1.7a/contrib/build/lib.spec 2013-02-14 17:59:18.000000000 +0100 +++ new/haveged-1.7c/contrib/build/lib.spec 2013-06-08 15:29:53.000000000 +0200 @@ -7,14 +7,14 @@ %define have_systemd 0 Name: haveged -Version: 1.7a +Version: 1.7c Release: 0 License: GPLv3 Group: System Environment/Daemons Summary: Feed entropy into random pool URL: http://www.issihosts.com/haveged/ Source0: http://www.issihosts.com/haveged/haveged-%{version}.tar.gz -BuildRoot: %{_builddir}/%{name}-{%version}-build +BuildRoot: %{_builddir}/%{name}-root %if 0%{?have_systemd} BuildRequires: systemd %endif @@ -39,7 +39,7 @@ %build %configure \ --enable-daemon\ - --enable-init=sysv.redhat + --enable--init=sysv.redhat make %check @@ -47,9 +47,9 @@ %install %makeinstall -%{__install} -D -m0755 init.d/haveged %{buildroot}%{_sysconfdir}/init.d/%{name} +%{__install} -D -m0755 %{_sysconfdir}/init.d/%{name} %if 0%{?have_systemd} -%{__install} -D -m0644 init.d/havege.service %{buildroot}%{_unitdir}/%{name}.service +%{__install} -D -m0644 %{S:2} %{buildroot}%{_unitdir}/%{name}.service %endif %{__rm} -f %{buildroot}%{_libdir}/libhavege.*a @@ -61,7 +61,6 @@ %doc COPYING %{_mandir}/man8/haveged.8* %{_sbindir}/haveged -%{_sysconfdir}/init.d/haveged %if 0%{?have_systemd} %{_unitdir}/haveged.service %endif @@ -74,3 +73,4 @@ %{_includedir}/%{name}/havege.h %doc contrib/build/havege_sample.c %{_libdir}/*.so* + \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/haveged-1.7a/contrib/build/nolib.spec new/haveged-1.7c/contrib/build/nolib.spec --- old/haveged-1.7a/contrib/build/nolib.spec 2013-02-13 17:32:03.000000000 +0100 +++ new/haveged-1.7c/contrib/build/nolib.spec 2013-06-08 15:30:01.000000000 +0200 @@ -5,7 +5,7 @@ # package are under the same license as the package itself. # Name: haveged -Version: 1.7a +Version: 1.7c Release: 1 License: GPLv3 Group: System Environment/Daemons diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/haveged-1.7a/haveged.spec new/haveged-1.7c/haveged.spec --- old/haveged-1.7a/haveged.spec 2013-02-14 16:43:37.000000000 +0100 +++ new/haveged-1.7c/haveged.spec 2013-06-08 15:41:52.000000000 +0200 @@ -7,7 +7,7 @@ %define have_systemd 0 Name: haveged -Version: 1.7a +Version: 1.7c Release: 0 License: GPLv3 Group: System Environment/Daemons diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/haveged-1.7a/src/havegetest.c new/haveged-1.7c/src/havegetest.c --- old/haveged-1.7a/src/havegetest.c 2013-01-11 18:55:42.000000000 +0100 +++ new/haveged-1.7c/src/havegetest.c 2013-06-08 15:58:04.000000000 +0200 @@ -32,6 +32,17 @@ #ifdef ONLINE_TESTS_ENABLE /** + * This structure is used only to pack the test structures into a single memory allocation. + * This is necessary because some architectures have stringent alignment requirements that + * cannot be met unless (compiler generated) padding is included. On mips in particular + * double must be dword aligned or bus errors result. + */ +typedef struct { + onlineTests olt; + procA pa; + procB pb; +} testsMemory; +/** * The tests and supporting methods */ static H_UINT aisBitTest(procB *context, H_UINT n); @@ -226,33 +237,34 @@ { procShared *tps = TESTS_SHARED(h_ctxt); onlineTests *context; + testsMemory *mem; + procB *pb; if (0 ==(tps->testsUsed)) return 0; if (0 == h_ctxt->havege_tests) { - char *bp; - H_UINT sz = sizeof(onlineTests); + H_UINT sz = sizeof(testsMemory); - if (0!=(tps->testsUsed & A_RUN)) - sz += sizeof(procA); - if (0!=(tps->testsUsed & B_RUN)) - sz += sizeof(procB); - context = (onlineTests *) (bp = (char *) malloc(sz)); - if (NULL==bp) { + if (0==(tps->testsUsed & A_RUN)) + sz -= sizeof(procA); + if (0==(tps->testsUsed & B_RUN)) + sz -= sizeof(procB); + mem = (testsMemory *) malloc(sz); + if (NULL==mem) { h_ctxt->havege_err = H_NOTESTMEM; return 1; } - memset(bp, 0, sizeof(onlineTests)); - bp += sizeof(onlineTests); + context = (onlineTests *) mem; + memset(context, 0, sizeof(onlineTests)); if (0!=(tps->testsUsed & A_RUN)) { - context->pA = (procA *) bp; + context->pA = &mem->pa; context->pA->procState = TEST_INIT; - bp += sizeof(procA); + pb = &mem->pb; } + else pb = (procB *)((void *) &mem->pa); if (0!=(tps->testsUsed & B_RUN)) { - context->pB = (procB *) bp; + context->pB = pb; context->pB->procState = TEST_INIT; - bp += sizeof(procB); } h_ctxt->havege_tests = context; if (0 != (h_ctxt->havege_raw & H_DEBUG_TEST_IN)) return 1; @@ -560,7 +572,7 @@ double q[2]; for(j=0;j<2;j++) - q[j] = (double) p->einsen[j] / (double) AIS_LENGTH; + q[j] = (double)(p->einsen[j]) / (double) AIS_LENGTH; p->results[p->testNbr].finalValue = q[0] - q[1]; hilf = tid << 8; if (p->results[p->testNbr].finalValue <= -0.02 || p->results[p->testNbr].finalValue >= 0.02) @@ -867,27 +879,27 @@ * rv += 1 & (((src[i>>3]>>(i & 7))) ^ ((src[j>>3]>>(j & 7)))); * return rv; * - * The high performance version of that looks like: + * A high performance optimization using multi-byte casts is 3x as fast as the above but blows up + * because of alignment issues (leftovers from the test0 implementation) + * The optimized single byte optimization is 2x as fast as the above but uses no alignment games */ -#define PIPELINE5(a) (*(H_UINT *)a) -#define XOR5(a) (1&(PIPELINE5(src1)>>a ^ PIPELINE5(src2)>>(shift+a))) - static H_UINT test5XOR(H_UINT8 *src, H_UINT shift) { - H_UINT8 *src1 =src; - H_UINT8 *src2 =src + (shift>>3); - H_UINT i, rv; - + H_UINT8 *src1; + H_UINT i,rest, rv; + + src1 = src + (shift>>3); shift &= 7; - rv = XOR5( 0)+XOR5( 1)+XOR5( 2)+XOR5( 3) + - XOR5( 4)+XOR5( 5)+XOR5( 6)+XOR5( 7); - for (i=8,src1+=3,src2+=3;i<TEST5_LENGTH;i+=24,src1+=3,src2+=3) { - rv += XOR5( 0)+XOR5( 1)+XOR5( 2)+XOR5( 3) + - XOR5( 4)+XOR5( 5)+XOR5( 6)+XOR5( 7) + - XOR5( 8)+XOR5( 9)+XOR5(10)+XOR5(11) + - XOR5(12)+XOR5(13)+XOR5(14)+XOR5(15) + - XOR5(16)+XOR5(17)+XOR5(18)+XOR5(19) + - XOR5(20)+XOR5(21)+XOR5(22)+XOR5(23); + rest = 8 - shift; + for(i=rv=0;i<(TEST5_LENGTH>>3);i++) { + H_UINT8 lw = *src++; + H_UINT8 rw = *src1++; + H_UINT8 w; + + for (w = (lw & (0xff>>shift)) ^ (rw>>shift);w!=0;w>>=1) + rv += w & 1; + for (w = (lw>>rest) ^ (*src1 & (0xff>>rest));w!=0;w>>=1) + rv += w & 1; } return rv; } @@ -912,7 +924,7 @@ p->bitsUsed += i; if (p->bridge<AIS_LENGTH) break; case TEST_EVAL: - p->results[p->testNbr].finalValue = (double) p->counter[0] / (double) AIS_LENGTH; + p->results[p->testNbr].finalValue = (double)(p->counter[0]) / (double) AIS_LENGTH; r = tid << 8; if (p->results[p->testNbr].finalValue <= 0.25 || p->results[p->testNbr].finalValue >= 0.75) r |= 1;