On Mon, Jun 27, 2016 at 07:42:36PM +0100, Jose M Calhariz wrote: > Thank you. > > Now it configures and compiles. Fails during linking, but I think the > problem is outside amanda. But for the record is here the error: > > /usr/bin/ld: warning: libcrypto.so.1.0.2, needed by > /usr/lib/x86_64-linux-gnu/libcurl.so, may conflict with libcrypto.so.1.1 > ./.libs/libamanda.so: undefined reference to `OPENSSL_init_ssl' > collect2: error: ld returned 1 exit status
I found the problem, but I don't know how to fix it properly. I don't know how to edit the configure.in or the Makefile.am to fix it. During linking if I add "-lssl" it works. Because libcurl was linked with openssl 1.0.2 and amanda programs need openssl 1.1.0, that is at -lssl. Anyone can help me? > > Kind regards > Jose M Calhariz Kind regards Jose M Calhariz > > On Mon, Jun 27, 2016 at 11:47:24AM -0400, Jean-Louis Martineau wrote: > > Can you try the attached patch? > > > > Jean-Louis > > > > On 27/06/16 05:33 AM, Jose M Calhariz wrote: > > >Debian is preparing for the release of the future openssl 1.1.0. It > > >seams it have changes that breaks some software. I was warned by a > > >bugreport that amanda does not compile with the new openssl. Further > > >investigation points to a problem during the configuration of amanda. > > > > > >checking whether to include the Amazon S3 device... no > > >configure: error: Cannot build the Amazon S3 device: one or more > > >prerequisites are missing. > > >debian/rules:18: recipe for target 'configure-stamp' failed > > > > > >More information is available on the Debian bug report. > > > > > >https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=828232 > > > > > >If you need more information I am happy to help. > > > > > >Kind regards > > >Jose M Calhariz > > > > > > > > > > > diff --git a/common-src/glib-util.c b/common-src/glib-util.c > > index ff26d53..c6f79dd 100644 > > --- a/common-src/glib-util.c > > +++ b/common-src/glib-util.c > > @@ -35,6 +35,8 @@ > > > > #ifdef LIBCURL_USE_OPENSSL > > #include <openssl/crypto.h> > > +#include <openssl/ssl.h> > > +#if OPENSSL_VERSION_NUMBER < 0x10100000L > > static GMutex **openssl_mutex_array; > > static void openssl_lock_callback(int mode, int type, const char *file, > > int line) > > { > > @@ -47,19 +49,23 @@ static void openssl_lock_callback(int mode, int type, > > const char *file, int line > > g_mutex_unlock(openssl_mutex_array[type]); > > } > > } > > +#endif /* OPENSSL_VERSION_NUMBER */ > > > > static void > > init_ssl(void) > > { > > +#if OPENSSL_VERSION_NUMBER < 0x10100000L > > int i; > > - > > openssl_mutex_array = g_new0(GMutex *, CRYPTO_num_locks()); > > > > + SSL_library_init(); > > for (i=0; i<CRYPTO_num_locks(); i++) { > > openssl_mutex_array[i] = g_mutex_new(); > > } > > CRYPTO_set_locking_callback(openssl_lock_callback); > > - > > +#else > > + OPENSSL_init_ssl(0, NULL); > > +#endif /* OPENSSL_VERSION_NUMBER */ > > } > > > > #else /* LIBCURL_USE_OPENSSL */ > > diff --git a/config/amanda/libs.m4 b/config/amanda/libs.m4 > > index 098d8e4..a090a3e 100644 > > --- a/config/amanda/libs.m4 > > +++ b/config/amanda/libs.m4 > > @@ -54,7 +54,12 @@ AC_DEFUN([AMANDA_CHECK_LIBCURL], [ > > # > > AC_DEFUN([AMANDA_CHECK_HMAC], [ > > HAVE_HMAC=yes > > - AC_CHECK_LIB([crypto], [HMAC_CTX_init], [], [HAVE_HMAC=no]) > > + AC_CHECK_LIB([crypto], [HMAC_CTX_init], [], [HAVE_HMAC_CTX_INIT=no]) > > + AC_CHECK_LIB([crypto], [HMAC_CTX_reset], [], [HAVE_HMAC_CTX_RESET=no]) > > + if test x"HAVE_HMAC_CTX_INIT" == x"no" -a \ > > + x"HAVE_HMAC_CTX_RESET" == x"no"; then > > + HAVE_HMAC=no > > + fi > > > > found_hmac_h=no > > AC_CHECK_HEADERS([openssl/hmac.h crypto/hmac.h hmac.h], > > diff --git a/config/compile b/config/compile > > old mode 100644 > > new mode 100755 > > diff --git a/config/config.guess b/config/config.guess > > old mode 100644 > > new mode 100755 > > diff --git a/device-src/s3-util.c b/device-src/s3-util.c > > index 50e7bfb..778ec8f 100644 > > --- a/device-src/s3-util.c > > +++ b/device-src/s3-util.c > > @@ -238,7 +238,11 @@ EncodeHMACSHA256( > > unsigned char tk[SHA256_DIGEST_LENGTH]; > > > > // Initialise HMACh > > +#if OPENSSL_VERSION_NUMBER < 0x10100000L > > HMAC_CTX HMAC; > > +#else > > + HMAC_CTX *HMAC; > > +#endif > > unsigned int hmaclength = 32; > > memset(hmachash, 0, hmaclength); > > > > @@ -249,11 +253,20 @@ EncodeHMACSHA256( > > } > > > > // Digest the key and message using SHA256 > > +#if OPENSSL_VERSION_NUMBER < 0x10100000L > > HMAC_CTX_init(&HMAC); > > HMAC_Init_ex(&HMAC, key, keylen, EVP_sha256(),NULL); > > HMAC_Update(&HMAC, datatohash, datalen); > > HMAC_Final(&HMAC, hmachash, &hmaclength); > > HMAC_CTX_cleanup(&HMAC); > > +#else > > + HMAC = HMAC_CTX_new(); > > + HMAC_CTX_reset(HMAC); > > + HMAC_Init_ex(HMAC, key, keylen, EVP_sha256(),NULL); > > + HMAC_Update(HMAC, datatohash, datalen); > > + HMAC_Final(HMAC, hmachash, &hmaclength); > > + HMAC_CTX_free(HMAC); > > +#endif > > > > return hmachash; > > } > > diff --git a/device-src/s3.c b/device-src/s3.c > > index 10f5a20..d7d88fa 100644 > > --- a/device-src/s3.c > > +++ b/device-src/s3.c > > @@ -832,7 +832,11 @@ authenticate_request(S3Handle *hdl, > > char *szS3Date = NULL; > > char *zulu_date = NULL; > > char *buf = NULL; > > +#if OPENSSL_VERSION_NUMBER < 0x10100000L > > HMAC_CTX ctx; > > +#else > > + HMAC_CTX *ctx; > > +#endif > > GByteArray *md = NULL; > > char *auth_base64 = NULL; > > struct curl_slist *headers = NULL; > > @@ -1154,12 +1158,22 @@ authenticate_request(S3Handle *hdl, > > > > /* run HMAC-SHA1 on the canonicalized string */ > > md = g_byte_array_sized_new(EVP_MAX_MD_SIZE+1); > > +#if OPENSSL_VERSION_NUMBER < 0x10100000L > > HMAC_CTX_init(&ctx); > > HMAC_Init_ex(&ctx, hdl->secret_key, (int) strlen(hdl->secret_key), > > EVP_sha1(), NULL); > > HMAC_Update(&ctx, (unsigned char*) auth_string->str, auth_string->len); > > HMAC_Final(&ctx, md->data, &md->len); > > HMAC_CTX_cleanup(&ctx); > > +#else > > + ctx = HMAC_CTX_new(); > > + HMAC_CTX_reset(ctx); > > + HMAC_Init_ex(ctx, hdl->secret_key, (int) strlen(hdl->secret_key), > > + EVP_sha1(), NULL); > > + HMAC_Update(ctx, (unsigned char*) auth_string->str, auth_string->len); > > + HMAC_Final(ctx, md->data, &md->len); > > + HMAC_CTX_free(ctx); > > +#endif > > auth_base64 = s3_base64_encode(md); > > /* append the new headers */ > > if (is_non_empty_string(hdl->user_token)) { > > -- -- Nenhum homem pode compreender porque uma mulher prefere uma boa reputação a um pouco de diversão --Helen Rowland
signature.asc
Description: Digital signature
