* Fri Feb 6 2009 Richard W.M. Jones <rjones@redhat.com> - 1.4.4-1
authorRichard W.M. Jones <rjones@redhat.com>
Fri, 6 Feb 2009 13:56:58 +0000 (13:56 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Fri, 6 Feb 2009 13:56:58 +0000 (13:56 +0000)
- Update to Fedora native version 1.4.4:
  . Remove potentially patented ECC support.
  . Do not abort when the fips mode kernel flag is inaccessible
    due to permissions (#470219).
- For review (Michel Alexandre Salim):
  . Remove *.def file.
  . Make description clearer.
  . Distribute the license files.
- The license for binaries is GPLv2+, so update the license field.
- Add check section (disabled by default).
- Why did we set PATH before configure? Removed.
- Added BR mingw32-dlfcn suggested by auto-buildrequires.

.hgignore
libgcrypt/hobble-libgcrypt [new file with mode: 0755]
libgcrypt/libgcrypt-1.4.4-fips-no-access.patch [new file with mode: 0644]
libgcrypt/libgcrypt-1.4.4-hobbled.tar.bz2 [new file with mode: 0644]
libgcrypt/mingw32-libgcrypt.spec

index 87433f5..aface7f 100644 (file)
--- a/.hgignore
+++ b/.hgignore
@@ -62,6 +62,8 @@ jasper/jasper-1.900.1.zip
 libgcrypt/libgcrypt-1.4.1.tar.bz2
 libgcrypt/libgcrypt-1.4.3.tar.bz2
 libgcrypt/libgcrypt-1.4.3.tar.bz2.sig
+libgcrypt/libgcrypt-1.4.4.tar.bz2
+libgcrypt/libgcrypt-1.4.4.tar.bz2.sig
 libglade2/libglade-2.6.3.tar.bz2
 libgpg-error/libgpg-error-1.6.tar.bz2
 libgpg-error/libgpg-error-1.6.tar.bz2.sig
diff --git a/libgcrypt/hobble-libgcrypt b/libgcrypt/hobble-libgcrypt
new file mode 100755 (executable)
index 0000000..1062d6e
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+# Quit out if anything fails.
+set -e -x
+
+# Clean out patent-or-otherwise-encumbered code.
+# EC:    ????????? ??/??/2015
+
+rm -f cipher/ecc.c
diff --git a/libgcrypt/libgcrypt-1.4.4-fips-no-access.patch b/libgcrypt/libgcrypt-1.4.4-fips-no-access.patch
new file mode 100644 (file)
index 0000000..f2972e9
--- /dev/null
@@ -0,0 +1,13 @@
+Do not abort when the fips mode flag is simply inaccessible because of
+insufficient permissions.
+diff -up libgcrypt-1.4.4/src/fips.c.no-access libgcrypt-1.4.4/src/fips.c
+--- libgcrypt-1.4.4/src/fips.c.no-access       2009-01-29 17:37:12.000000000 +0100
++++ libgcrypt-1.4.4/src/fips.c 2009-01-29 17:37:15.000000000 +0100
+@@ -155,6 +155,7 @@ _gcry_initialize_fips_mode (int force)
+         fclose (fp);
+       }
+     else if ((saved_errno = errno) != ENOENT
++             && saved_errno != EACCES
+              && !access ("/proc/version", F_OK) )
+       {
+         /* Problem reading the fips file despite that we have the proc
diff --git a/libgcrypt/libgcrypt-1.4.4-hobbled.tar.bz2 b/libgcrypt/libgcrypt-1.4.4-hobbled.tar.bz2
new file mode 100644 (file)
index 0000000..67b81a0
Binary files /dev/null and b/libgcrypt/libgcrypt-1.4.4-hobbled.tar.bz2 differ
index 7cd26e2..6558024 100644 (file)
@@ -4,41 +4,76 @@
 %define __find_requires %{_mingw32_findrequires}
 %define __find_provides %{_mingw32_findprovides}
 
+%define run_tests 0
+
 Name:           mingw32-libgcrypt
-Version:        1.4.3
-Release:        3%{?dist}
+Version:        1.4.4
+Release:        1%{?dist}
 Summary:        MinGW Windows gcrypt encryption library
 
-License:        LGPLv2+
+License:        LGPLv2+ and GPLv2+
 Group:          Development/Libraries
+
 URL:            ftp://ftp.gnupg.org/gcrypt/libgcrypt/
+# The original libgcrypt sources now contain potentially patented ECC
+# cipher support. We have to remove it in the tarball we ship with
+# the hobble-libgcrypt script.
 Source0:        ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-%{version}.tar.bz2
 Source1:        ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-%{version}.tar.bz2.sig
 Source2:        wk@g10code.com
+Source3:        hobble-libgcrypt
+
+Patch1:         libgcrypt-1.4.4-fips-no-access.patch
+
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildArch:      noarch
 
-BuildRequires:  mingw32-filesystem >= 23
+BuildRequires:  mingw32-filesystem >= 40
 BuildRequires:  mingw32-gcc
 BuildRequires:  mingw32-binutils
 BuildRequires:  mingw32-libgpg-error
+BuildRequires:  mingw32-dlfcn
+
+%if %run_tests
+BuildRequires:  wine
+%endif
 
 
 %description
-MinGW Windows gcrypt encryption library.
+Libgcrypt is a general purpose crypto library based on the code used
+in GNU Privacy Guard.
+
+This is a Windows cross-compiled version of the library.
 
 
 %prep
 %setup -q -n libgcrypt-%{version}
+%{SOURCE3}
+%patch1 -p1 -b .no-access
 
 
 %build
-PATH="%{_mingw32_bindir}:$PATH" \
-%{_mingw32_configure} --disable-static
+%{_mingw32_configure} \
+  --disable-static \
+  --enable-pubkey-ciphers='dsa elgamal rsa'
 make %{?_smp_mflags}
 
 
+%check
+%if %run_tests
+# Stupid Wine doesn't load DLLs from the PATH any
+# more, so libtool scripts don't work.  As a result
+# we need to use the following Big Hack.
+make -C tests check ||:
+pushd src/.libs
+for t in $(pwd)/../../tests/*.exe; do
+  wine $t
+done
+popd
+%endif
+
+
 %install
 rm -rf $RPM_BUILD_ROOT
 
@@ -47,6 +82,8 @@ make DESTDIR=$RPM_BUILD_ROOT install
 # Remove info pages which duplicate what is in Fedora natively.
 rm -rf $RPM_BUILD_ROOT%{_mingw32_infodir}
 
+rm $RPM_BUILD_ROOT%{_mingw32_libdir}/libgcrypt.def
+
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -54,11 +91,11 @@ rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(-,root,root)
+%doc COPYING COPYING.LIB
 %{_mingw32_bindir}/dumpsexp.exe
 %{_mingw32_bindir}/hmac256.exe
 %{_mingw32_bindir}/libgcrypt-11.dll
 %{_mingw32_bindir}/libgcrypt-config
-%{_mingw32_libdir}/libgcrypt.def
 %{_mingw32_libdir}/libgcrypt.dll.a
 %{_mingw32_libdir}/libgcrypt.la
 %{_mingw32_includedir}/gcrypt-module.h
@@ -67,6 +104,20 @@ rm -rf $RPM_BUILD_ROOT
 
 
 %changelog
+* Fri Feb  6 2009 Richard W.M. Jones <rjones@redhat.com> - 1.4.4-1
+- Update to Fedora native version 1.4.4:
+  . Remove potentially patented ECC support.
+  . Do not abort when the fips mode kernel flag is inaccessible
+    due to permissions (#470219).
+- For review (Michel Alexandre Salim):
+  . Remove *.def file.
+  . Make description clearer.
+  . Distribute the license files.
+- The license for binaries is GPLv2+, so update the license field.
+- Add check section (disabled by default).
+- Why did we set PATH before configure? Removed.
+- Added BR mingw32-dlfcn suggested by auto-buildrequires.
+
 * Fri Jan 23 2009 Richard W.M. Jones <rjones@redhat.com> - 1.4.3-3
 - Use _smp_mflags.
 - Disable static libraries.