[packages/volume_key] Initial release (with upstream patches)

megabajt megabajt at pld-linux.org
Thu Nov 2 22:09:50 CET 2017


commit 81e6955cfaab4dab07d760eac3079bbb79ce5a4c
Author: Marcin Banasiak <marcin.banasiak at gmail.com>
Date:   Thu Nov 2 22:08:20 2017 +0100

    Initial release (with upstream patches)

 volume_key-config.h.patch   |  25 +++++++++
 volume_key-fips-crash.patch |  33 ++++++++++++
 volume_key.spec             | 120 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 178 insertions(+)
---
diff --git a/volume_key.spec b/volume_key.spec
new file mode 100644
index 0000000..f3018c8
--- /dev/null
+++ b/volume_key.spec
@@ -0,0 +1,120 @@
+Summary:	An utility for manipulating storage encryption keys and passphrases
+Name:		volume_key
+Version:	0.3.9
+Release:	1
+License:	GPL v2
+Group:		Applications/System
+Source0:	https://releases.pagure.org/volume_key/%{name}-%{version}.tar.xz
+# Source0-md5:	a2d14931177c660e1f3ebbcf5f47d8e2
+Patch0:		%{name}-config.h.patch
+Patch1:		%{name}-fips-crash.patch
+URL:		https://pagure.io/volume_key/
+BuildRequires:	autoconf >= 2.64
+BuildRequires:	automake
+BuildRequires:	cryptsetup-devel
+BuildRequires:	gettext-tools >= 0.17
+BuildRequires:	glib2-devel
+BuildRequires:	gnupg
+BuildRequires:	libblkid-devel
+BuildRequires:	libtool
+BuildRequires:	nss-devel
+BuildRequires:	pkgconfig
+BuildRequires:	xz
+Requires:	%{name}-libs = %{version}-%{release}
+BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+This package provides a command-line tool for manipulating storage
+volume encryption keys and storing them separately from volumes.
+
+The main goal of the software is to allow restoring access to an
+encrypted hard drive if the primary user forgets the passphrase. The
+encryption key back up can also be useful for extracting data after a
+hardware or software failure that corrupts the header of the encrypted
+volume, or to access the company data after an employee leaves
+abruptly.
+
+%package libs
+Summary:	A library for manipulating storage encryption keys and passphrases
+Group:		Libraries
+
+%description libs
+This package provides libvolume_key, a library for manipulating
+storage volume encryption keys and storing them separately from
+volumes.
+
+%package devel
+Summary:	Header files for volume_key library
+Summary(pl.UTF-8):	Pliki nagłówkowe biblioteki volume_key
+Group:		Development/Libraries
+Requires:	%{name}-libs = %{version}-%{release}
+
+%description devel
+Header files for volume_key library.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe biblioteki volume_key.
+
+%package -n python-%{name}
+Summary:	Python bindings for volume_key library
+Group:		Libraries
+Requires:	%{name}-libs = %{version}-%{release}
+
+%description -n python-%{name}
+This package provides Python bindings for libvolume_key, a library for
+manipulating storage volume encryption keys and storing them
+separately from volumes.
+
+%prep
+%setup -q
+%patch0 -p1
+%patch1 -p1
+
+%build
+%{__libtoolize}
+%{__aclocal} -I m4
+%{__autoconf}
+%{__autoheader}
+%{__automake}
+%configure
+%{__make}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+%{__make} install \
+	DESTDIR=$RPM_BUILD_ROOT
+
+%{__rm} -f $RPM_BUILD_ROOT%{py_sitedir}/*.la
+
+%py_postclean
+
+%find_lang %{name}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post libs -p /sbin/ldconfig
+%postun	libs -p /sbin/ldconfig
+
+%files -f %{name}.lang
+%defattr(644,root,root,755)
+%doc AUTHORS ChangeLog NEWS README
+%attr(755,root,root) %{_bindir}/volume_key
+%{_mandir}/man8/volume_key.8*
+
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libvolume_key.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libvolume_key.so.1
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libvolume_key.so
+%{_libdir}/libvolume_key.la
+%{_includedir}/volume_key
+
+%files -n python-%{name}
+%defattr(644,root,root,755)
+%attr(755,root,root) %{py_sitedir}/_volume_key.so
+%{py_sitedir}/*.py[co]
diff --git a/volume_key-config.h.patch b/volume_key-config.h.patch
new file mode 100644
index 0000000..98a70f9
--- /dev/null
+++ b/volume_key-config.h.patch
@@ -0,0 +1,25 @@
+The library's header file distributed in the devel package cannot include
+the config.h file that is only available during build otherwise it's not
+possible to use the library outside of the volume_key build process.
+
+Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
+---
+ lib/libvolume_key.h | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/lib/libvolume_key.h b/lib/libvolume_key.h
+index 657b626..513f923 100644
+--- a/lib/libvolume_key.h
++++ b/lib/libvolume_key.h
+@@ -18,8 +18,6 @@ Author: Miloslav Trmač <mitr at redhat.com> */
+ #ifndef LIBVOLUME_KEY_H__
+ #define LIBVOLUME_KEY_H__
+ 
+-#include <config.h>
+-
+ #include <cert.h>
+ #include <glib.h>
+ 
+-- 
+2.1.0
+
diff --git a/volume_key-fips-crash.patch b/volume_key-fips-crash.patch
new file mode 100644
index 0000000..0f79d4e
--- /dev/null
+++ b/volume_key-fips-crash.patch
@@ -0,0 +1,33 @@
+This case can be triggered by encrypting in FIPS mode, where the default
+algorithm is unsupported and gpg crashes in response.
+
+diff --git a/lib/crypto.c b/lib/crypto.c
+index 06eb482..905d583 100644
+--- a/lib/crypto.c
++++ b/lib/crypto.c
+@@ -709,6 +709,12 @@ encrypt_with_passphrase (size_t *res_size, const void *data, size_t size,
+     }
+   gpgme_data_release (src_data);
+   gpgme_res = gpgme_data_release_and_get_mem (dest_data, res_size);
++  if (gpgme_res == NULL)
++    {
++      g_set_error (error, LIBVK_ERROR, LIBVK_ERROR_CRYPTO,
++		   _("Unknown error getting encryption result"));
++      goto err_ctx;
++    }
+   res = g_memdup (gpgme_res, *res_size);
+   gpgme_free (gpgme_res);
+ 
+@@ -759,6 +765,12 @@ decrypt_with_passphrase (size_t *res_size, const void *data, size_t size,
+     }
+   gpgme_data_release (src_data);
+   gpgme_res = gpgme_data_release_and_get_mem (dest_data, res_size);
++  if (gpgme_res == NULL)
++    {
++      g_set_error (error, LIBVK_ERROR, LIBVK_ERROR_CRYPTO,
++		   _("Unknown error getting decryption result"));
++      goto err_ctx;
++    }
+   res = g_memdup (gpgme_res, *res_size);
+   gpgme_free (gpgme_res);
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/volume_key.git/commitdiff/81e6955cfaab4dab07d760eac3079bbb79ce5a4c



More information about the pld-cvs-commit mailing list