--- /dev/null
+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
%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
# 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
%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
%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.