I have made the following changes intended for : CE:MW:Shared / libsignon CE:MW:Shared / cryptsetup-luks
Please review and accept or decline. BOSS has already run some checks on this request. See the "Messages from BOSS" section below. https://build.pub.meego.com//request/show/7039 Thank You, Marko Saukko [This message was auto-generated] --- Request # 7039: Messages from BOSS: State: review at 2012-10-16T14:39:26 by bossbot Reviews: accepted by bossbot : Prechecks succeeded. new for CE-maintainers : Please replace this text with a review and approve/reject the review (not the SR). BOSS will take care of the rest Changes: submit: Project:MTF:MW / libsignon -> CE:MW:Shared / libsignon changes files: -------------- ++++++ new changes file: --- libsignon.changes +++ libsignon.changes @@ -0,0 +1,64 @@ +* Tue Oct 16 2012 Bernd Wachter <[email protected]> - 8.43 +- Update to latest upstream +- Clean up package dependencies +- Add 0001-include-QDebug-to-remotepluginprocess.patch (will be in 8.44) + +* Mon Jun 06 2011 Alberto Mardegan <[email protected]> - 8.33 +- Update to latest upstream release + + Make dependency on MSSF optional + + libsignon-qt: do not make blocking D-Bus calls (BMC#18654) + + Move the SIm key authorizer out of the source tree + + Key authorizers are now dynamically loadable plugins + +* Mon May 02 2011 Alberto Mardegan <[email protected]> - 8.16 +- Update to latest upstream release +- Do not store encrypted passwords into the SSO DB (BMC#12429) +- Fix SQL injection vulnerability (BMC#12424) +- Use MSSF to encrypt D-Bus traffic (BMC#12430) +- Check peer credentials on AuthSession methods (BMC#12427) +- Ensure caller of setId() is authorized to use Identity (BMC#12570) +- Enforce authentication method/mechanism restrictions (BMC#12425) +- Use MSSF to encrypt signond<->plugin communication (BMC#12435) + +* Fri Feb 04 2011 Paolo Capriotti <[email protected]> - 7.2 +- Update to latest upstream version (fixes BMC#13264) + +* Thu Jan 27 2011 bart Cerneels <[email protected]> - 6.6 +- Update to latest upstream version (fixes BMC#12974) + +* Mon Jan 03 2011 Paolo Capriotti <[email protected]> - 6.1 +- Update to latest upstream version (fixes BMC#11920) + +* Tue Nov 23 2010 Alberto Mardegan <[email protected]> - 5.6 +- Fixes: BMC#10782 - Provide more recent version of signon +- Update to latest upstream release (version 2.0 is now 4 months old) +- Added named references into Identity API +- Add configuration file for signond. +- New libsignon-extentions library for signond plugins +- Split the credentials DB into a metadata DB and a secrets DB + +* Tue Oct 05 2010 Bernd Wachter <[email protected]> - 2.0 +- change qt-devel to pkgconfig(QtCore) +- add dbus-1 dependency to fix generation of backupifadaptor.h + +* Thu Sep 23 2010 Bernd Wachter <[email protected]> - 2.0 +- Change testrunner to testrunner-lite, fixing BMC#6964 + +* Fri Aug 27 2010 Bernd Wachter <[email protected]> - 2.0 +- Add static library required for linking plugins + +* Wed Aug 11 2010 Kaitlin Rupert <[email protected]> - 2.0 +- mkspec files now install to /usr/share due to Qt beta2 update + +* Mon Aug 02 2010 Bernd Wachter <[email protected]> - 2.0 +- Update to latest upstream version + +* Fri Jul 30 2010 Bernd Wachter <[email protected]> - 1.9 +- Update to latest upstream version +- Update to newer cryptsetup, remove cellular-qt dependency + +* Wed May 05 2010 Bernd Wachter <[email protected]> - 0.1.16 +- Updated to latest harmattan version + +* Mon Apr 26 2010 Bernd Wachter - 0.1.14-1+0m6 +- Initial RPM release new: ---- 0001-include-QDebug-to-remotepluginprocess.patch libsignon.changes libsignon.spec signon-8.43.tar.bz2 spec files: ----------- ++++++ new spec file: --- libsignon.spec +++ libsignon.spec @@ -0,0 +1,146 @@ +%define _name signon +Name: libsignon +Version: 8.43 +Release: 1 +Summary: Single Sign On framework +Group: System/Libraries +License: LGPLv2.1 +URL: http://gitorious.org/accounts-sso/signon +Source0: http://accounts-sso.googlecode.com/files/%{_name}-%{version}.tar.bz2 +BuildRequires: doxygen +#BuildRequires: graphviz +BuildRequires: pkgconfig(QtCore) +BuildRequires: libcreds2-devel +BuildRequires: pkgconfig(dbus-1) +BuildRequires: pkgconfig(libcryptsetup) +BuildRequires: pkgconfig(accounts-qt) +BuildRequires: fdupes +# TODO: - check if it makes sense to have signoncrypto-functionality (encrypted +# dbus messages); if so, we'd need to reintroduce the functionality in +# signon, as it has been removed recently +#BuildRequires: pkgconfig(libsignoncrypto-qt) +#BuildRequires: pkgconfig(libcrypto) +# - add support for pacrunner (NEMO#524) +# - check if we have usable testcases +Patch0: 0001-include-QDebug-to-remotepluginprocess.patch + +%description +%{summary}. + +%files +%defattr(-,root,root,-) +%{_bindir}/* +%{_libdir}/*.so.* +%{_datadir}/dbus-1/services/* +# is in exampleplugin +%exclude %{_bindir}/signonclient +%config %{_sysconfdir}/signond.conf +%{_libdir}/signon/extensions/libcryptsetup.so + + +%package testplugin +Summary: Single Sign On test plugins +Group: System/Libraries +Requires: %{name} = %{version}-%{release} + +%description testplugin +%{summary} + +%files testplugin +%defattr(-,root,root,-) +%{_libdir}/%{_name}/libssotest*.so + + +%package passwordplugin +Summary: Plain Password plugin for Single Sign On +Group: System/Libraries +Requires: %{name} = %{version}-%{release} + +%description passwordplugin +%{summary} + +%files passwordplugin +%defattr(-,root,root,-) +%{_libdir}/%{_name}/libpasswordplugin.so + + +%package exampleplugin +Summary: Single Sign On example client +Group: System/Libraries +Requires: %{name} = %{version}-%{release} + +%description exampleplugin +%{summary} + +%files exampleplugin +%defattr(-,root,root,-) +%{_libdir}/%{_name}/libexampleplugin.so +%{_bindir}/signonclient + + +%package devel +Summary: Development files for signon +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description devel +%{summary} + +%files devel +%defattr(-,root,root,-) +%{_includedir}/* +%{_libdir}/*.so +%{_libdir}/libsignon-plugins.a +%exclude %{_libdir}/libsignon-qt.a +%{_libdir}/pkgconfig/* +%{_datadir}/qt4/mkspecs/* +%{_datadir}/dbus-1/interfaces/* + + +%package doc +Summary: Documentation for signon +Group: Documentation + +%description doc +Doxygen-generated HTML documentation for the signon. + +%files doc +%defattr(-,root,root,-) +%{_docdir}/signon/* +%{_docdir}/signon-plugins-dev/* +%{_docdir}/signon-plugins/* + + +%package qt-doc +Summary: Documentation for signon-qt +Group: Documentation + +%description qt-doc +Doxygen-generated HTML documentation for the signon-qt + +%files qt-doc +%defattr(-,root,root,-) +%{_docdir}/libsignon-qt/* +%{_docdir}/libsignon-qt-dev/* + + +%prep +%setup -q -n %{_name}-%{version} +%patch0 -p1 + +%build +qmake %{_name}.pro +make + + +%install +make INSTALL_ROOT=%{buildroot} install +rm -f %{buildroot}/%{_docdir}/libsignon-qt/html/installdox +rm -f %{buildroot}/%{_docdir}/signon/html/installdox +rm -f %{buildroot}/%{_docdir}/signon-plugins/html/installdox +rm -f %{buildroot}/%{_docdir}/saslplugin/html/installdox +%fdupes %{buildroot}/%{_docdir} + + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig other changes: -------------- ++++++ 0001-include-QDebug-to-remotepluginprocess.patch (new) --- 0001-include-QDebug-to-remotepluginprocess.patch +++ 0001-include-QDebug-to-remotepluginprocess.patch @@ -0,0 +1,27 @@ +From 028b83b9d97582387635d19ad172e9e2e3ed712e Mon Sep 17 00:00:00 2001 +From: Reto Zingg <[email protected]> +Date: Tue, 2 Oct 2012 14:24:30 +0300 +Subject: [PATCH] include QDebug to remotepluginprocess + +Build is failing otherwise with: +error: invalid use of incomplete type 'struct QDebug' +--- + src/remotepluginprocess/debug.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/remotepluginprocess/debug.h b/src/remotepluginprocess/debug.h +index 3b22e01..5328b01 100644 +--- a/src/remotepluginprocess/debug.h ++++ b/src/remotepluginprocess/debug.h +@@ -23,6 +23,8 @@ + #ifndef REMOTEPLUGINPROCESS_DEBUG_H + #define REMOTEPLUGINPROCESS_DEBUG_H + ++#include <QDebug> ++ + #ifdef DEBUG_ENABLED + extern int debugLevel; + +-- +1.7.12.3 + ++++++ signon-8.43.tar.bz2 (new) submit: Project:MTF:MW / cryptsetup-luks -> CE:MW:Shared / cryptsetup-luks changes files: -------------- ++++++ new changes file: --- cryptsetup-luks.changes +++ cryptsetup-luks.changes @@ -0,0 +1,31 @@ +* Tue Jun 28 2011 Chris Ferron <[email protected]> - 1.1.3 +- PACKAGE CLEANUP - Removed unnecessary Obsoletes and Provides cryptsetup as there is no other packages that Requires or Provides them. + +* Tue Apr 19 2011 Anas Nashif <[email protected]> - 1.1.3 +- Install pkgconfig file into /usr/lib/pkgconfig, not /lib/pkgconfig + +* Fri Jul 30 2010 Bernd Wachter <[email protected]> - 1.1.3 +- Add crypt_keyslot_by_passphrase.patch required for signon +- Remove obsolete cryptsetup-prompt.patch + +* Wed Jul 28 2010 Bernd Wachter <[email protected]> - 1.1.3 +- Use the simplified patch sent to upstream +- Remove explicit gcrypt dependency on -devel + +* Mon Jul 26 2010 Bernd Wachter <[email protected]> - 1.1.3 +- Update to 1.1.3 +- Add patch to port cryptsetup-maemo changes to latest cryptsetup +- Switch to openssl as crypt backend + +* Wed Jan 27 2010 Passion Zhao <[email protected]> - 1.1.0-1 +- Update to 1.1.0 + +* Mon Sep 07 2009 Passion Zhao <[email protected]> - 1.0.7-1 +- Upgrade to 1.0.7, remove obsolete patch cryptsetup-prompt.patch + +* Sun Jul 19 2009 Peter J Zhu <[email protected]> - 1.0.6 -3 +- Add BuildRequires of libuuid-devel + +* Thu Mar 6 2009 Passion Zhao <[email protected]> - 1.0.6 -3 +- Fix the URL and source url + new: ---- crypt_keyslot_by_passphrase.patch cryptsetup-1.1.3.tar.bz2 cryptsetup-luks.changes cryptsetup-luks.spec cryptsetup-maemo.patch spec files: ----------- ++++++ new spec file: --- cryptsetup-luks.spec +++ cryptsetup-luks.spec @@ -0,0 +1,87 @@ +Summary: A utility for setting up encrypted filesystems +Name: cryptsetup-luks +Version: 1.1.3 +Release: 1 +License: GPLv2 +Group: Applications/System +URL: http://code.google.com/p/cryptsetup/downloads/list +Source: http://cryptsetup.googlecode.com/files/cryptsetup-%{version}.tar.bz2 +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(popt) +BuildRequires: gettext +BuildRequires: cvs +BuildRequires: pkgconfig(e2p) +BuildRequires: pkgconfig(uuid) +BuildRequires: pkgconfig(devmapper) +BuildRequires: pkgconfig(libgpg-error) +Patch0: cryptsetup-maemo.patch +Patch1: crypt_keyslot_by_passphrase.patch + + +%description +This package contains cryptsetup, a utility for setting up +encrypted filesystems using Device Mapper and the dm-crypt target. + + +%package devel +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Requires: pkgconfig(uuid) +Requires: pkgconfig(devmapper) +Requires: pkgconfig(libgpg-error) +Summary: Headers and libraries for using encrypted filesystems + + +%description devel +The cryptsetup-luks-devel package contain libraries and header files +used for writing code that makes use of encrypted filesystems. + + +%package doc +Group: Documentation +Summary: Documentation for %{name} + +%description doc +%{summary}. + + +%prep +%setup -q -n cryptsetup-%{version} +%patch0 -p1 +%patch1 -p1 +autoreconf -vfi +iconv -f latin1 -t utf8 ChangeLog > ChangeLog.new +mv -f ChangeLog.new ChangeLog + + +%build +%configure --disable-libdevmapper +make %{?_smp_mflags} + + +%install +make install DESTDIR=$RPM_BUILD_ROOT +rm -rf $RPM_BUILD_ROOT/%{_libdir}/*.la $RPM_BUILD_ROOT/%{_libdir}/cryptsetup + +%find_lang cryptsetup + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + +%files -f cryptsetup.lang +%defattr(-,root,root,-) +%{_sbindir}/cryptsetup +%{_libdir}/libcryptsetup.so.* + + +%files doc +%defattr(-,root,root,-) +%doc COPYING ChangeLog AUTHORS TODO +%{_mandir}/man8/cryptsetup.8.gz + + +%files devel +%defattr(-,root,root,-) +%{_includedir}/libcryptsetup.h +%{_libdir}/libcryptsetup.so +%{_libdir}/pkgconfig/libcryptsetup.pc other changes: -------------- ++++++ crypt_keyslot_by_passphrase.patch (new) --- crypt_keyslot_by_passphrase.patch +++ crypt_keyslot_by_passphrase.patch @@ -0,0 +1,73 @@ +diff --git a/lib/libcryptsetup.h b/lib/libcryptsetup.h +index c2cf5fb..13eea7b 100644 +--- a/lib/libcryptsetup.h ++++ b/lib/libcryptsetup.h +@@ -572,6 +572,13 @@ int crypt_luksDump(struct crypt_options *options); + + void crypt_put_options(struct crypt_options *options); + ++int crypt_keyslot_by_passphrase(struct crypt_device *cd, ++ const char *key_file, ++ const char *passphrase, ++ size_t passphrase_size, ++ unsigned int flags, ++ char *message); ++ + #ifdef __cplusplus + } + #endif +diff --git a/lib/libcryptsetup.sym b/lib/libcryptsetup.sym +index d4ed0dc..3a25c53 100644 +--- a/lib/libcryptsetup.sym ++++ b/lib/libcryptsetup.sym +@@ -58,6 +58,7 @@ CRYPTSETUP_1.0 { + crypt_luksUUID; + crypt_isLuks; + crypt_luksDump; ++ crypt_keyslot_by_passphrase; + + crypt_put_options; + local: +diff --git a/lib/setup.c b/lib/setup.c +index 0fcf912..4750d06 100644 +--- a/lib/setup.c ++++ b/lib/setup.c +@@ -756,6 +756,38 @@ int crypt_remove_device(struct crypt_options *options) + + } + ++int crypt_keyslot_by_passphrase(struct crypt_device *cd, ++ const char *key_file, ++ const char *passphrase, ++ size_t passphrase_size, ++ unsigned int flags, ++ char *message) ++{ ++ struct luks_masterkey *mk; ++ char *password = NULL; ++ unsigned int passwordLen; ++ int keyIndex; ++ ++ if (passphrase) { ++ keyIndex = LUKS_open_key_with_hdr(cd->device, CRYPT_ANY_SLOT, passphrase, ++ passphrase_size, &cd->hdr, &mk, cd); ++ } ++ else { ++ get_key(message,&password,&passwordLen, 0, key_file, ++ cd->timeout, flags, cd); ++ if(!password) ++ return -EINVAL; ++ ++ keyIndex = LUKS_open_key_with_hdr(cd->device, CRYPT_ANY_SLOT, password, ++ passwordLen, &cd->hdr, &mk, cd); ++ } ++ ++ LUKS_dealloc_masterkey(mk); ++ safe_free(password); ++ ++ return keyIndex; ++} ++ + /* OPTIONS: device, cipher, hash, align_payload, key_size (master key), key_slot + * new_key_file, iteration_time, timeout, flags, icb */ + int crypt_luksFormat(struct crypt_options *options) ++++++ cryptsetup-1.1.3.tar.bz2 (new) ++++++ cryptsetup-maemo.patch (new) --- cryptsetup-maemo.patch +++ cryptsetup-maemo.patch @@ -0,0 +1,934 @@ +diff --git a/configure.in b/configure.in +index 936d165..3d45361 100644 +--- a/configure.in ++++ b/configure.in +@@ -31,6 +31,8 @@ AC_HEADER_STDC + AC_CHECK_HEADERS(fcntl.h malloc.h inttypes.h sys/ioctl.h sys/mman.h \ + ctype.h unistd.h locale.h) + ++PKG_PROG_PKG_CONFIG([0.22]) ++ + AC_CHECK_HEADERS(uuid/uuid.h,,[AC_MSG_ERROR('You need the uuid library')]) + AC_CHECK_HEADER(libdevmapper.h,,[AC_MSG_ERROR('You need the device-mapper library')]) + +@@ -40,8 +42,6 @@ AC_SUBST(UUID_LIBS, $LIBS) + LIBS=$saved_LIBS + + +-AM_PATH_LIBGCRYPT(1.1.42,,[AC_MSG_ERROR('You need the gcrypt library')]) +- + AC_CHECK_FUNCS([posix_memalign]) + + AC_C_CONST +@@ -73,6 +73,51 @@ AC_ARG_ENABLE(shared-library, + enable_shared_library=yes) + AM_CONDITIONAL(STATIC_LIBRARY, test x$enable_shared_library = xno) + ++AC_ARG_ENABLE(plugins, ++[ --enable-plugins disable shared library plugins],,enable_plugins=no) ++if test "x$enable_plugins" = xyes; then ++ AC_DEFINE(USE_PLUGINS, 1, [Define if you wish to use the plugin loader]) ++fi ++ ++AC_ARG_ENABLE(, [ ++Modules: ++ --with-MODULE[[=shared]] builds the module MODULE as a shared library plugin ++],,) ++ ++AC_ARG_ENABLE(all, ++[ --disable-all disable all modules built by default],,enable_all=default) ++ ++AC_ARG_ENABLE(gcrypt, ++[ --disable-gcrypt disable gcrypt support [[default=no]]], , ++ enable_gcrypt=yes) ++if test x$enable_gcrypt = xyes; then ++ AC_CHECK_LIB(gcrypt, gcry_check_version, have_gcrypt=yes, have_gcrypt=no) ++fi ++AM_CONDITIONAL(BUILD_LIBGCRYPT, test x$have_gcrypt = xyes) ++AM_CONDITIONAL(SHARED_LIBGCRYPT, ++ test x$enable_shared_library = xyes -a x$have_gcrypt = xyes) ++if test x$have_gcrypt = xyes; then ++ LIBGCRYPT_CFLAGS="`libgcrypt-config --cflags`" ++ LIBGCRYPT_LIBS="`libgcrypt-config --libs`" ++ AC_SUBST(LIBGCRYPT_CFLAGS) ++ AC_SUBST(LIBGCRYPT_LIBS) ++fi ++ ++AC_ARG_ENABLE(openssl, ++[ --disable-openssl disable openssl support [[default=no]]], , ++ enable_openssl=yes) ++if test x$enable_openssl = xyes; then ++ PKG_CHECK_MODULES([OPENSSL], [libcrypto >= 0.9.8], AC_CHECK_LIB(crypto, SHA512, have_openssl=yes, have_openssl=no), ++ have_openssl=no) ++fi ++AM_CONDITIONAL(BUILD_OPENSSL, test x$have_openssl = xyes) ++AM_CONDITIONAL(SHARED_OPENSSL, ++ test x$enable_shared_library = xyes -a x$have_openssl = xyes) ++ ++if test x$have_gcrypt != xyes -a x$have_openssl != xyes; then ++ AC_MSG_ERROR('You need openSSL or/and gcrypt library as a crypto backend') ++fi ++ + AC_ARG_ENABLE(selinux, + [ --disable-selinux disable selinux support [[default=auto]]],[], []) + +@@ -87,6 +132,7 @@ if AC_RUN_LOG([pkg-config --exists --print-errors devmapper]); then + fi + PKG_CHECK_MODULES([DEVMAPPER], [devmapper >= 1.02.03]) + LIBS="$LIBS $DEVMAPPER_LIBS" ++ AC_SUBST(LIBDEVMAPPER_CFLAGS) + else + AC_CHECK_LIB(devmapper, dm_task_set_name,, + [AC_MSG_ERROR('You need the device-mapper library')]) +@@ -95,6 +141,9 @@ else + DEVMAPPER_LIBS=$LIBS + fi + ++AM_CONDITIONAL(BUILD_LIBDEVMAPPER, test x$build_static = xyes) ++AM_CONDITIONAL(SHARED_LIBDEVMAPPER, test x$build_shared = xyes) ++ + AC_CHECK_DECLS([DM_UDEV_DISABLE_DISK_RULES_FLAG], [have_cookie=yes], [have_cookie=no], [#include <libdevmapper.h>]) + if test "x$enable_udev" = xyes; then + if test "x$have_cookie" = xno; then +diff --git a/lib/Makefile.am b/lib/Makefile.am +index 6068751..11b915f 100644 +--- a/lib/Makefile.am ++++ b/lib/Makefile.am +@@ -3,6 +3,30 @@ moduledir = $(libdir)/cryptsetup + pkgconfigdir = $(libdir)/pkgconfig + pkgconfig_DATA = libcryptsetup.pc + ++if BUILD_LIBGCRYPT ++_LIBGCRYPT_LIBADD = @LIBGCRYPT_LIBS@ ++_LIBGCRYPT_SOURCES = gcrypt.c ++_LIBGCRYPT_CFLAGS = -DBUILTIN_GCRYPT ++endif ++libcrypto_gcrypt_la_SOURCES = gcrypt.c ++libcrypto_gcrypt_la_LDFLAGS = -avoid-version -module ++libcrypto_gcrypt_la_LIBADD = @LIBGCRYPT_LIBS@ ++if SHARED_LIBGCRYPT ++_LIBGCRYPT_SHLIB = libcrypto_gcrypt.la ++endif ++ ++if BUILD_OPENSSL ++_OPENSSL_LIBADD = @OPENSSL_LIBS@ ++_OPENSSL_SOURCES = openssl.c ++_OPENSSL_CFLAGS = -DBUILTIN_OPENSSL ++endif ++libcrypto_openssl_la_SOURCES = openssl.c ++libcrypto_openssl_la_LDFLAGS = -avoid-version -module ++libcrypto_openssl_la_LIBADD = @OPENSSL_LIBS@ ++if SHARED_OPENSSL ++_OPENSSL_SHLIB = libcrypto_openssl.la ++endif ++ + INCLUDES = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/luks \ +@@ -13,10 +37,21 @@ INCLUDES = \ + -DVERSION=\""$(VERSION)"\" \ + -D_GNU_SOURCE \ + -D_LARGEFILE64_SOURCE \ +- -D_FILE_OFFSET_BITS=64 ++ -D_FILE_OFFSET_BITS=64 \ ++ @LIBDEVMAPPER_CFLAGS@ \ ++ $(_LIBDEVMAPPER_CFLAGS) \ ++ @LIBGCRYPT_CFLAGS@ \ ++ $(_LIBGCRYPT_CFLAGS) \ ++ @OPENSSL_CFLAGS@ \ ++ $(_OPENSSL_CFLAGS) + + lib_LTLIBRARIES = libcryptsetup.la + ++module_LTLIBRARIES = \ ++ $(_LIBDEVMAPPER_SHLIB) \ ++ $(_LIBGCRYPT_SHLIB) \ ++ $(_OPENSSL_SHLIB) ++ + if STATIC_LIBRARY + _STATIC_LIBRARY = -static + endif +@@ -28,9 +63,12 @@ libcryptsetup_la_LDFLAGS = \ + -Wl,--version-script=$(top_srcdir)/lib/libcryptsetup.sym \ + -version-info @LIBCRYPTSETUP_VERSION_INFO@ + +-libcryptsetup_la_CFLAGS = -Wall @LIBGCRYPT_CFLAGS@ ++libcryptsetup_la_CFLAGS = -Wall + + libcryptsetup_la_LIBADD = \ ++ $(_LIBDEVMAPPER_LIBADD) \ ++ $(_LIBGCRYPT_LIBADD) \ ++ $(_OPENSSL_LIBADD) \ + @UUID_LIBS@ \ + @DEVMAPPER_LIBS@ \ + @LIBGCRYPT_LIBS@ \ +@@ -46,7 +84,9 @@ libcryptsetup_la_SOURCES = \ + utils_debug.c \ + backends.c \ + libdevmapper.c \ +- gcrypt.c ++ $(_LIBDEVMAPPER_SOURCES) \ ++ $(_LIBGCRYPT_SOURCES) \ ++ $(_OPENSSL_SOURCES) + + include_HEADERS = libcryptsetup.h + +diff --git a/lib/backends.c b/lib/backends.c +index e2c441d..27e20a1 100644 +--- a/lib/backends.c ++++ b/lib/backends.c +@@ -7,9 +7,31 @@ + #include "internal.h" + + extern struct hash_backend hash_gcrypt_backend; ++extern struct hash_backend hash_openssl_backend; ++extern struct setup_backend setup_libdevmapper_backend; ++ ++#ifdef USE_PLUGINS ++static void init_plugins(void) ++{ ++} ++#else /* USE_PLUGINS */ ++# define init_plugins() do { } while(0) ++#endif /* USE_PLUGINS */ + + static struct hash_backend *hash_backends[] = { ++#ifdef BUILTIN_GCRYPT + &hash_gcrypt_backend, ++#endif ++#ifdef BUILTIN_OPENSSL (735 more lines skipped)
