[oe] [oe-commits] Marcin Juszkiewicz : gnutls: added 2.8.5, adapted to new staging
Koen Kooi
k.kooi at student.utwente.nl
Fri Mar 5 19:59:58 UTC 2010
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 05-03-10 17:59, James Lancaster wrote:
> I'm having this fail, it appears to be a problem with install-info
> (ask if you want the whole log):
>
> install-info --info-dir='/home/james/OE/angstrom-dev/work/armv5te-angstrom-linux-gnueabi/gnutls-2.8.5-r0/image/usr/share/info'
> '/home/james/OE/angstrom-dev/work/armv5te-angstrom-linux-gnueabi/gnutls-2.8.5-r0/image/usr/share/info/gnutls.info'
> This is not dpkg install-info anymore, but GNU install-info
> See the man page for ginstall-info for command line argument
> make[4]: Leaving directory
> `/home/james/OE/angstrom-dev/work/armv5te-angstrom-linux-gnueabi/gnutls-2.8.5-r0/gnutls-2.8.5/doc'
I haven't seen that problem, but there are more problems with 2.8.5:
* doesn't ship the .m4 the do_install_append looks for -> build breakage
* doesn't ship a binconfig file anymore -> build breakage for dependant
recipes
I don't have the time or motivation to update all gnutls dependants, so
for angstrom I locked down the version to 2.4.2.
regards,
Koen
>
> James
>
>
> On Fri, Mar 5, 2010 at 10:01 AM, git version control
> <git at git.openembedded.org> wrote:
>> Module: openembedded.git
>> Branch: org.openembedded.dev
>> Commit: c7bf984e0df86fb5c935edafdcd42b736c276f26
>> URL: http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=c7bf984e0df86fb5c935edafdcd42b736c276f26
>>
>> Author: Marcin Juszkiewicz <marcin at juszkiewicz.com.pl>
>> Date: Fri Mar 5 14:44:03 2010 +0100
>>
>> gnutls: added 2.8.5, adapted to new staging
>>
>> Signed-off-by: Marcin Juszkiewicz <marcin at juszkiewicz.com.pl>
>>
>> ---
>>
>> recipes/gnutls/gnutls-2.8.5/gnutls-openssl.patch | 149 ++++++++++++++++++++
>> .../gnutls-2.8.5/gnutls-replace-siginterrupt.patch | 51 +++++++
>> recipes/gnutls/gnutls.inc | 19 +--
>> recipes/gnutls/gnutls_1.4.5.bb | 9 +-
>> recipes/gnutls/gnutls_1.6.3.bb | 9 +-
>> recipes/gnutls/gnutls_2.4.2.bb | 9 +-
>> recipes/gnutls/gnutls_2.8.5.bb | 17 +++
>> 7 files changed, 249 insertions(+), 14 deletions(-)
>>
>> diff --git a/recipes/gnutls/gnutls-2.8.5/gnutls-openssl.patch b/recipes/gnutls/gnutls-2.8.5/gnutls-openssl.patch
>> new file mode 100644
>> index 0000000..596bd01
>> --- /dev/null
>> +++ b/recipes/gnutls/gnutls-2.8.5/gnutls-openssl.patch
>> @@ -0,0 +1,149 @@
>> +---
>> + libextra/gnutls_openssl.c | 58 +++++++++++++++++++++++++++++++++++++
>> + libextra/includes/gnutls/openssl.h | 5 +++
>> + 2 files changed, 63 insertions(+)
>> +
>> +--- gnutls-2.8.5.orig/libextra/gnutls_openssl.c
>> ++++ gnutls-2.8.5/libextra/gnutls_openssl.c
>> +@@ -256,16 +256,21 @@ SSL_new (SSL_CTX * ctx)
>> + ssl->options = ctx->options;
>> +
>> + ssl->rfd = (gnutls_transport_ptr_t) - 1;
>> + ssl->wfd = (gnutls_transport_ptr_t) - 1;
>> +
>> ++ ssl->ssl_peek_buffer = NULL;
>> ++ ssl->ssl_peek_buffer_size = ssl->ssl_peek_avail = 0;
>> ++
>> + return ssl;
>> + }
>> +
>> + void
>> + SSL_free (SSL * ssl)
>> + {
>> ++ if (ssl->ssl_peek_buffer)
>> ++ free(ssl->ssl_peek_buffer);
>> + gnutls_certificate_free_credentials (ssl->gnutls_cred);
>> + gnutls_deinit (ssl->gnutls_state);
>> + free (ssl);
>> + }
>> +
>> +@@ -285,10 +290,11 @@ SSL_get_error (SSL * ssl, int ret)
>> +
>> + int
>> + SSL_set_fd (SSL * ssl, int fd)
>> + {
>> + gnutls_transport_set_ptr (ssl->gnutls_state, GNUTLS_INT_TO_POINTER (fd));
>> ++ ssl->rfd = ssl->wfd = fd;
>> + return 1;
>> + }
>> +
>> + int
>> + SSL_set_rfd (SSL * ssl, int fd)
>> +@@ -310,10 +316,21 @@ SSL_set_wfd (SSL * ssl, int fd)
>> + gnutls_transport_set_ptr2 (ssl->gnutls_state, ssl->rfd, ssl->wfd);
>> +
>> + return 1;
>> + }
>> +
>> ++int SSL_get_rfd(SSL *ssl)
>> ++{
>> ++ return ssl->rfd;
>> ++}
>> ++
>> ++int SSL_get_wfd(SSL *ssl)
>> ++{
>> ++ return ssl->wfd;
>> ++}
>> ++
>> ++
>> + void
>> + SSL_set_bio (SSL * ssl, BIO * rbio, BIO * wbio)
>> + {
>> + gnutls_transport_set_ptr2 (ssl->gnutls_state, rbio->fd, wbio->fd);
>> + /* free(BIO); ? */
>> +@@ -325,10 +342,12 @@ SSL_set_connect_state (SSL * ssl)
>> + }
>> +
>> + int
>> + SSL_pending (SSL * ssl)
>> + {
>> ++ if (ssl->ssl_peek_avail)
>> ++ return ssl->ssl_peek_avail;
>> + return gnutls_record_check_pending (ssl->gnutls_state);
>> + }
>> +
>> + void
>> + SSL_set_verify (SSL * ssl, int verify_mode,
>> +@@ -480,15 +499,54 @@ SSL_shutdown (SSL * ssl)
>> +
>> + /* FIXME */
>> + return 1;
>> + }
>> +
>> ++int SSL_peek(SSL *ssl, void *buf, int len)
>> ++{
>> ++ if (len > ssl->ssl_peek_buffer_size) {
>> ++ ssl->ssl_peek_buffer = realloc (ssl->ssl_peek_buffer, len);
>> ++ ssl->ssl_peek_buffer_size = len;
>> ++ }
>> ++
>> ++ if (ssl->ssl_peek_avail == 0) {
>> ++
>> ++ int ret;
>> ++
>> ++ ret = gnutls_record_recv(ssl->gnutls_state, ssl->ssl_peek_buffer, len);
>> ++ ssl->last_error = ret;
>> ++
>> ++ if (ret > 0)
>> ++ ssl->ssl_peek_avail += ret;
>> ++ }
>> ++
>> ++ if (len > ssl->ssl_peek_avail)
>> ++ len = ssl->ssl_peek_avail;
>> ++
>> ++ memcpy (buf, ssl->ssl_peek_buffer, len);
>> ++
>> ++ return len;
>> ++}
>> ++
>> + int
>> + SSL_read (SSL * ssl, void *buf, int len)
>> + {
>> + int ret;
>> +
>> ++ if (ssl->ssl_peek_avail) {
>> ++ int n = (ssl->ssl_peek_avail > len) ? len : ssl->ssl_peek_avail;
>> ++
>> ++ memcpy (buf, ssl->ssl_peek_buffer, n);
>> ++
>> ++ if (ssl->ssl_peek_avail > n)
>> ++ memmove (ssl->ssl_peek_buffer, ssl->ssl_peek_buffer + n, ssl->ssl_peek_avail - n);
>> ++
>> ++ ssl->ssl_peek_avail -= n;
>> ++
>> ++ return n;
>> ++ }
>> ++
>> + ret = gnutls_record_recv (ssl->gnutls_state, buf, len);
>> + ssl->last_error = ret;
>> +
>> + if (ret < 0)
>> + {
>> +--- gnutls-2.8.5.orig/libextra/includes/gnutls/openssl.h
>> ++++ gnutls-2.8.5/libextra/includes/gnutls/openssl.h
>> +@@ -162,10 +162,15 @@ extern "C"
>> + int (*verify_callback) (int, X509_STORE_CTX *);
>> + int verify_mode;
>> +
>> + gnutls_transport_ptr_t rfd;
>> + gnutls_transport_ptr_t wfd;
>> ++
>> ++ char *ssl_peek_buffer;
>> ++ size_t ssl_peek_buffer_size;
>> ++ size_t ssl_peek_avail;
>> ++
>> + };
>> +
>> + #define rbio gnutls_state
>> +
>> + typedef struct {
>> diff --git a/recipes/gnutls/gnutls-2.8.5/gnutls-replace-siginterrupt.patch b/recipes/gnutls/gnutls-2.8.5/gnutls-replace-siginterrupt.patch
>> new file mode 100644
>> index 0000000..b34930f
>> --- /dev/null
>> +++ b/recipes/gnutls/gnutls-2.8.5/gnutls-replace-siginterrupt.patch
>> @@ -0,0 +1,51 @@
>> +---
>> + src/tests.c | 12 ++++++++++--
>> + 1 file changed, 10 insertions(+), 2 deletions(-)
>> +
>> +--- gnutls-2.8.5.orig/src/tests.c
>> ++++ gnutls-2.8.5/src/tests.c
>> +@@ -491,10 +491,11 @@ test_bye (gnutls_session_t session)
>> + int ret;
>> + char data[20];
>> + int old, secs = 6;
>> +
>> + #ifndef _WIN32
>> ++ struct sigaction act;
>> + signal (SIGALRM, got_alarm);
>> + #endif
>> +
>> + ADD_ALL_CIPHERS (session);
>> + ADD_ALL_COMP (session);
>> +@@ -511,11 +512,13 @@ test_bye (gnutls_session_t session)
>> + ret = gnutls_bye (session, GNUTLS_SHUT_WR);
>> + if (ret < 0)
>> + return TEST_FAILED;
>> +
>> + #ifndef _WIN32
>> +- old = siginterrupt (SIGALRM, 1);
>> ++ (void) sigaction(SIGALRM, NULL, &act);
>> ++ act.sa_flags &= ~SA_RESTART;
>> ++ old = sigaction(SIGALRM, &act, NULL);
>> + alarm (secs);
>> + #else
>> + setsockopt ((int) gnutls_transport_get_ptr (session), SOL_SOCKET,
>> + SO_RCVTIMEO, (char *) &secs, sizeof (int));
>> + #endif
>> +@@ -525,11 +528,16 @@ test_bye (gnutls_session_t session)
>> + ret = gnutls_record_recv (session, data, sizeof (data));
>> + }
>> + while (ret > 0);
>> +
>> + #ifndef _WIN32
>> +- siginterrupt (SIGALRM, old);
>> ++ (void) sigaction(SIGALRM, NULL, &act);
>> ++ if (old)
>> ++ act.sa_flags &= ~SA_RESTART;
>> ++ else
>> ++ act.sa_flags |= SA_RESTART;
>> ++ sigaction(SIGALRM, &act, NULL);
>> + #else
>> + if (WSAGetLastError () == WSAETIMEDOUT ||
>> + WSAGetLastError () == WSAECONNABORTED)
>> + alrm = 1;
>> + #endif
>> diff --git a/recipes/gnutls/gnutls.inc b/recipes/gnutls/gnutls.inc
>> index 004161a..071e925 100644
>> --- a/recipes/gnutls/gnutls.inc
>> +++ b/recipes/gnutls/gnutls.inc
>> @@ -1,23 +1,20 @@
>> DESCRIPTION = "GNU Transport Layer Security Library"
>> HOMEPAGE = "http://www.gnu.org/software/gnutls/"
>> -DEPENDS = "zlib libgcrypt lzo guile-native"
>> +DEPENDS = "zlib libgcrypt lzo guile-native gettext"
>> LICENSE = "LGPL"
>>
>> -SRC_URI = "ftp://ftp.gnutls.org/pub/gnutls/gnutls-${PV}.tar.bz2"
>> +SRC_URI = "ftp://ftp.gnutls.org/pub/gnutls/gnutls-${PV}.tar.bz2;name=gnutls"
>>
>> inherit autotools binconfig pkgconfig
>>
>> -EXTRA_OECONF = "--with-included-opencdk --with-included-libtasn1"
>> +INC_PR = "r7"
>>
>> -do_stage() {
>> - oe_libinstall -C lib/.libs -so -a libgnutls ${STAGING_LIBDIR}
>> - oe_libinstall -C libextra/.libs -so -a libgnutls-extra ${STAGING_LIBDIR}
>> - oe_libinstall -C libextra/.libs -so -a libgnutls-openssl ${STAGING_LIBDIR}
>> - autotools_stage_includes
>> +EXTRA_OECONF = "--with-included-opencdk --with-included-libtasn1"
>> +do_install_append() {
>>
>> - install -d ${STAGING_DATADIR}/aclocal
>> - cp ${S}/lib/libgnutls.m4 ${STAGING_DATADIR}/aclocal/
>> - cp ${S}/libextra/libgnutls-extra.m4 ${STAGING_DATADIR}/aclocal/
>> + install -d ${D}${datadir}/aclocal
>> + install -m 0644 ${S}/lib/libgnutls.m4 ${D}${datadir}/aclocal/
>> + install -m 0644 ${S}/libextra/libgnutls-extra.m4 ${D}${datadir}/aclocal/
>> }
>>
>> PACKAGES =+ "${PN}-openssl ${PN}-extra ${PN}-bin ${PN}-xx"
>> diff --git a/recipes/gnutls/gnutls_1.4.5.bb b/recipes/gnutls/gnutls_1.4.5.bb
>> index a5e5873..bda7994 100644
>> --- a/recipes/gnutls/gnutls_1.4.5.bb
>> +++ b/recipes/gnutls/gnutls_1.4.5.bb
>> @@ -5,4 +5,11 @@ do_configure_prepend() {
>> sed -i s,gcrypt,libgcrypt, lib/gnutls.pc.in
>> }
>>
>> -PR = "r3"
>> +PR = "${INC_PR}.0"
>> +
>> +do_install_append() {
>> +
>> + install -d ${D}${datadir}/aclocal
>> + install -m 0644 ${S}/lib/libgnutls.m4 ${D}${datadir}/aclocal/
>> + install -m 0644 ${S}/libextra/libgnutls-extra.m4 ${D}${datadir}/aclocal/
>> +}
>> diff --git a/recipes/gnutls/gnutls_1.6.3.bb b/recipes/gnutls/gnutls_1.6.3.bb
>> index 7a89835..6b7c24a 100644
>> --- a/recipes/gnutls/gnutls_1.6.3.bb
>> +++ b/recipes/gnutls/gnutls_1.6.3.bb
>> @@ -11,4 +11,11 @@ do_configure_prepend() {
>> sed -i s,gcrypt,libgcrypt, lib/gnutls.pc.in
>> }
>>
>> -PR = "r6"
>> +PR = "${INC_PR}.0"
>> +
>> +do_install_append() {
>> +
>> + install -d ${D}${datadir}/aclocal
>> + install -m 0644 ${S}/lib/libgnutls.m4 ${D}${datadir}/aclocal/
>> + install -m 0644 ${S}/libextra/libgnutls-extra.m4 ${D}${datadir}/aclocal/
>> +}
>> diff --git a/recipes/gnutls/gnutls_2.4.2.bb b/recipes/gnutls/gnutls_2.4.2.bb
>> index d8266c2..0748887 100644
>> --- a/recipes/gnutls/gnutls_2.4.2.bb
>> +++ b/recipes/gnutls/gnutls_2.4.2.bb
>> @@ -8,4 +8,11 @@ SRC_URI += "\
>> file://gnutls-replace-siginterrupt.patch;patch=1 \
>> "
>>
>> -PR = "r4"
>> +PR = "${INC_PR}.0"
>> +
>> +do_install_append() {
>> +
>> + install -d ${D}${datadir}/aclocal
>> + install -m 0644 ${S}/lib/libgnutls.m4 ${D}${datadir}/aclocal/
>> + install -m 0644 ${S}/libextra/libgnutls-extra.m4 ${D}${datadir}/aclocal/
>> +}
>> diff --git a/recipes/gnutls/gnutls_2.8.5.bb b/recipes/gnutls/gnutls_2.8.5.bb
>> new file mode 100644
>> index 0000000..ec8a118
>> --- /dev/null
>> +++ b/recipes/gnutls/gnutls_2.8.5.bb
>> @@ -0,0 +1,17 @@
>> +require gnutls.inc
>> +LICENSE_${PN}-extra = "GPLv3"
>> +
>> +SRC_URI += "\
>> + file://gnutls-openssl.patch;patch=1 \
>> + file://gnutls-replace-siginterrupt.patch;patch=1 \
>> + "
>> +
>> +EXTRA_OECONF += " --without-libgcrypt-prefix "
>> +
>> +do_configure_prepend() {
>> +
>> + cd ${S} && rm -rf m4/ aclocal.m4 lib/m4/libtool.m4 lib/m4/lt*m4
>> +}
>> +
>> +SRC_URI[gnutls.md5sum] = "e3b2788b79bfc82acbe717e3c54d4e92"
>> +SRC_URI[gnutls.sha256sum] = "9249c29df71551e302e0186f4e1876dd6cc4c6cf2974b432c22525dde815cae8"
>>
>>
>> _______________________________________________
>> Openembedded-commits mailing list
>> Openembedded-commits at lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-commits
>>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
iD8DBQFLkWK+MkyGM64RGpERAoAbAJ9yYwVnzJnm78dZ07mwkNr15wVcUwCgm3CV
CDYtPGl/k+JagH9mQEElN/w=
=mCSn
-----END PGP SIGNATURE-----
More information about the Openembedded-devel
mailing list