0001-libsecret.pc-add-Libs.private-field-for-libgcrypt.patch 1.67 KB
From 754897490d9478025d174c2b1c1849305f728324 Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Mon, 28 Dec 2015 12:13:07 +0100
Subject: [PATCH] libsecret.pc: add Libs.private field for libgcrypt

When libgcrypt is available, libsecret links with it. When dynamic
linking is used, there is no problem: libsecret.so has a NEEDED
pointing to libgcrypt, so linking an application with -lsecret works
fine. However, when doing static linking, you must specify the entire
chain of libraries, otherwise you get unresolved symbols errors, such
as:

host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libsecret-1.a(libsecret_1_la-secret-session.o): In function `request_open_session_aes':
build/libsecret-0.18.3/libsecret/secret-session.c:99: undefined reference to `gcry_mpi_release'
build/libsecret-0.18.3/libsecret/secret-session.c:101: undefined reference to `gcry_mpi_aprint'
build/libsecret-0.18.3/libsecret/secret-session.c:107: undefined reference to `gcry_free'

In order to solve this, we simply need to indicate in the Libs.private
field of the .pc file that we depend on libgcrypt.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 libsecret/libsecret.pc.in | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libsecret/libsecret.pc.in b/libsecret/libsecret.pc.in
index 0c342ef..d99cf44 100644
--- a/libsecret/libsecret.pc.in
+++ b/libsecret/libsecret.pc.in
@@ -11,4 +11,5 @@ Description: GObject bindings for Secret Service API
 Version: @VERSION@
 Requires: glib-2.0 gobject-2.0 gio-2.0
 Libs: -L${libdir} -lsecret-@SECRET_MAJOR@
+Libs.private: @LIBGCRYPT_LIBS@
 Cflags: -I${includedir}/libsecret-@SECRET_MAJOR@
-- 
2.6.4