diff --git a/SOURCES/0001-When-setting-pointers-to-a-template-ensure-they-do-n.patch b/SOURCES/0001-When-setting-pointers-to-a-template-ensure-they-do-n.patch new file mode 100644 index 0000000..e9f7700 --- /dev/null +++ b/SOURCES/0001-When-setting-pointers-to-a-template-ensure-they-do-n.patch @@ -0,0 +1,72 @@ +diff -ur opensc-0.13.0.orig/src/tools/pkcs11-tool.c opensc-0.13.0/src/tools/pkcs11-tool.c +--- opensc-0.13.0.orig/src/tools/pkcs11-tool.c 2012-12-04 15:43:40.000000000 +0100 ++++ opensc-0.13.0/src/tools/pkcs11-tool.c 2014-02-25 11:57:48.550718249 +0100 +@@ -1778,6 +1778,9 @@ + CK_RV rv; + int need_to_parse_certdata = 0; + unsigned char *oid_buf = NULL; ++ CK_OBJECT_CLASS clazz; ++ CK_CERTIFICATE_TYPE cert_type; ++ CK_KEY_TYPE type; + #ifdef ENABLE_OPENSSL + struct x509cert_info cert; + struct rsakey_info rsa; +@@ -1858,8 +1861,8 @@ + } + + if (opt_object_class == CKO_CERTIFICATE) { +- CK_OBJECT_CLASS clazz = CKO_CERTIFICATE; +- CK_CERTIFICATE_TYPE cert_type = CKC_X_509; ++ clazz = CKO_CERTIFICATE; ++ cert_type = CKC_X_509; + + FILL_ATTR(cert_templ[0], CKA_TOKEN, &_true, sizeof(_true)); + FILL_ATTR(cert_templ[1], CKA_VALUE, contents, contents_len); +@@ -1892,7 +1895,7 @@ + } + else + if (opt_object_class == CKO_PRIVATE_KEY) { +- CK_OBJECT_CLASS clazz = CKO_PRIVATE_KEY; ++ clazz = CKO_PRIVATE_KEY; + + n_privkey_attr = 0; + FILL_ATTR(privkey_templ[n_privkey_attr], CKA_CLASS, &clazz, sizeof(clazz)); +@@ -1918,7 +1921,7 @@ + n_privkey_attr++; + } + if (evp_key->type == EVP_PKEY_RSA) { +- CK_KEY_TYPE type = CKK_RSA; ++ type = CKK_RSA; + FILL_ATTR(privkey_templ[n_privkey_attr], CKA_KEY_TYPE, &type, sizeof(type)); + n_privkey_attr++; + FILL_ATTR(privkey_templ[n_privkey_attr], CKA_MODULUS, rsa.modulus, rsa.modulus_len); +@@ -1940,7 +1943,7 @@ + } + #if OPENSSL_VERSION_NUMBER >= 0x10000000L && !defined(OPENSSL_NO_EC) + else if (evp_key->type == NID_id_GostR3410_2001) { +- CK_KEY_TYPE type = CKK_GOSTR3410; ++ type = CKK_GOSTR3410; + + FILL_ATTR(privkey_templ[n_privkey_attr], CKA_KEY_TYPE, &type, sizeof(type)); + n_privkey_attr++; +@@ -1958,8 +1961,8 @@ + } + else + if (opt_object_class == CKO_PUBLIC_KEY) { +- CK_OBJECT_CLASS clazz = CKO_PUBLIC_KEY; +- CK_KEY_TYPE type = CKK_RSA; ++ clazz = CKO_PUBLIC_KEY; ++ type = CKK_RSA; + + FILL_ATTR(pubkey_templ[0], CKA_CLASS, &clazz, sizeof(clazz)); + FILL_ATTR(pubkey_templ[1], CKA_KEY_TYPE, &type, sizeof(type)); +@@ -1998,7 +2001,7 @@ + } + else + if (opt_object_class == CKO_DATA) { +- CK_OBJECT_CLASS clazz = CKO_DATA; ++ clazz = CKO_DATA; + FILL_ATTR(data_templ[0], CKA_CLASS, &clazz, sizeof(clazz)); + FILL_ATTR(data_templ[1], CKA_TOKEN, &_true, sizeof(_true)); + FILL_ATTR(data_templ[2], CKA_VALUE, &contents, contents_len); +Only in opensc-0.13.0/src/tools: pkcs11-tool.c.orig diff --git a/SPECS/opensc.spec b/SPECS/opensc.spec index 7b760e0..867cbba 100644 --- a/SPECS/opensc.spec +++ b/SPECS/opensc.spec @@ -1,6 +1,6 @@ Name: opensc Version: 0.13.0 -Release: 4%{?dist} +Release: 9%{?dist} Summary: Smart card library and applications Group: System Environment/Libraries @@ -11,6 +11,7 @@ Source1: opensc.module # Upstream patch for fixing pkcs15 cert length calculation Patch0: 0001-pkcs15-regression-in-e35febe-compute-cert-length.patch +Patch1: 0001-When-setting-pointers-to-a-template-ensure-they-do-n.patch BuildRequires: pcsc-lite-devel BuildRequires: readline-devel @@ -34,7 +35,9 @@ every software/card that does so, too. %prep %setup -q %patch0 -p1 -b .cert_length +%patch1 -p1 -b .scope_fix +sed -i -e 's/opensc.conf/opensc-%{_arch}.conf/g' src/libopensc/Makefile.in sed -i -e 's|"/lib /usr/lib\b|"/%{_lib} %{_libdir}|' configure # lib64 rpaths cp -p src/pkcs15init/README ./README.pkcs15init cp -p src/scconf/README.scconf . @@ -52,10 +55,11 @@ make %{?_smp_mflags} V=1 %install make install DESTDIR=$RPM_BUILD_ROOT -install -Dpm 644 etc/opensc.conf $RPM_BUILD_ROOT%{_sysconfdir}/opensc.conf -install -Dpm 644 %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/share/p11-kit/opensc.module +rm -f $RPM_BUILD_ROOT%{_sysconfdir}/opensc.conf +install -Dpm 644 etc/opensc.conf $RPM_BUILD_ROOT%{_sysconfdir}/opensc-%{_arch}.conf +install -Dpm 644 %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/p11-kit/opensc.module # use NEWS file timestamp as reference for configuration file -touch -r NEWS $RPM_BUILD_ROOT%{_sysconfdir}/opensc.conf +touch -r NEWS $RPM_BUILD_ROOT%{_sysconfdir}/opensc-%{_arch}.conf find $RPM_BUILD_ROOT%{_libdir} -type f -name "*.la" | xargs rm @@ -75,8 +79,8 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libopensc.so %files %defattr(-,root,root,-) %doc COPYING NEWS README* -%config(noreplace) %{_sysconfdir}/opensc.conf -%{_datadir}/share/p11-kit/opensc.module +%config(noreplace) %{_sysconfdir}/opensc-%{_arch}.conf +%{_datadir}/p11-kit/opensc.module %{_bindir}/cardos-tool %{_bindir}/cryptoflex-tool %{_bindir}/eidenv @@ -118,6 +122,21 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libopensc.so %changelog +* Fri Mar 14 2014 Nikos Mavrogiannopoulos 0.13.0-9 +- Configuration file includes arch to allow it operate under multilib + +* Mon Mar 10 2014 Nikos Mavrogiannopoulos 0.13.0-8 +- Ensure that variables are in scope when used (#1062307) + +* Tue Feb 25 2014 Nikos Mavrogiannopoulos 0.13.0-7 +- Corrected path of opensc.module (#1060034) + +* Fri Jan 24 2014 Daniel Mach - 0.13.0-6 +- Mass rebuild 2014-01-24 + +* Fri Dec 27 2013 Daniel Mach - 0.13.0-5 +- Mass rebuild 2013-12-27 + * Fri Mar 08 2013 Stef Walter - 0.13.0-4 - Use the standard name format for p11-kit module configs - Put the p11-kit module config is the system location