Add lzo, upgrade libgcrypt -> 1.2.3, add gnutls 1.4.4

git-svn-id: https://svn.o-hand.com/repos/poky/trunk@934 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
Richard Purdie 2006-11-21 16:45:47 +00:00
parent 2a9503f185
commit 450aea724e
6 changed files with 304 additions and 0 deletions

View File

@ -0,0 +1,120 @@
--- gnutls-1.3.5/libextra/gnutls_openssl.c.orig 2006-04-28 20:01:40.000000000 +0100
+++ gnutls-1.3.5/libextra/gnutls_openssl.c 2006-04-28 20:10:33.000000000 +0100
@@ -252,12 +252,17 @@
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);
@@ -281,6 +286,7 @@
SSL_set_fd (SSL * ssl, int fd)
{
gnutls_transport_set_ptr (ssl->gnutls_state, (gnutls_transport_ptr_t) fd);
+ ssl->rfd = ssl->wfd = fd;
return 1;
}
@@ -306,6 +312,17 @@
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)
{
@@ -321,6 +338,8 @@
int
SSL_pending (SSL * ssl)
{
+ if (ssl->ssl_peek_avail)
+ return ssl->ssl_peek_avail;
return gnutls_record_check_pending (ssl->gnutls_state);
}
@@ -476,11 +495,50 @@
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;
--- gnutls-1.3.5/includes/gnutls/openssl.h.orig 2006-04-28 20:10:55.000000000 +0100
+++ gnutls-1.3.5/includes/gnutls/openssl.h 2006-04-28 20:11:52.000000000 +0100
@@ -164,6 +164,11 @@
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

View File

@ -0,0 +1,16 @@
The version of texinfo in Debian Sarge does not understand the @euro{} command.
This patch replaces the @euro{} command with the word "euro".
--- gnutls-1.3.5/doc/signatures.texi.orig 2006-04-26 08:06:40.918268000 +0930
+++ gnutls-1.3.5/doc/signatures.texi 2006-04-26 08:06:52.446515440 +0930
@@ -11,8 +11,8 @@
long as it is difficult enough to generate two different messages with
the same hash algorithm output. In that case the same signature could
be used as a proof for both messages. Nobody wants to sign an innocent
-message of donating 1 @euro{} to Greenpeace and find out that he
-donated 1.000.000 @euro{} to Bad Inc.
+message of donating 1 euro to Greenpeace and find out that he
+donated 1.000.000 euro to Bad Inc.
For a hash algorithm to be called cryptographic the following three
requirements must hold

View File

@ -0,0 +1,63 @@
# onceonly.m4 serial 3
dnl Copyright (C) 2002, 2003 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General
dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program.
dnl This file defines some "once only" variants of standard autoconf macros.
dnl AC_CHECK_HEADERS_ONCE like AC_CHECK_HEADERS
dnl AC_CHECK_FUNCS_ONCE like AC_CHECK_FUNCS
dnl AC_CHECK_DECLS_ONCE like AC_CHECK_DECLS
dnl AC_REQUIRE([AC_HEADER_STDC]) like AC_HEADER_STDC
dnl The advantage is that the check for each of the headers/functions/decls
dnl will be put only once into the 'configure' file. It keeps the size of
dnl the 'configure' file down, and avoids redundant output when 'configure'
dnl is run.
dnl The drawback is that the checks cannot be conditionalized. If you write
dnl if some_condition; then gl_CHECK_HEADERS(stdlib.h); fi
dnl inside an AC_DEFUNed function, the gl_CHECK_HEADERS macro call expands to
dnl empty, and the check will be inserted before the body of the AC_DEFUNed
dnl function.
dnl Autoconf version 2.57 or newer is recommended.
AC_PREREQ(2.54)
# AC_CHECK_HEADERS_ONCE(HEADER1 HEADER2 ...) is a once-only variant of
# AC_CHECK_HEADERS(HEADER1 HEADER2 ...).
AC_DEFUN([AC_CHECK_HEADERS_ONCE], [
:
AC_FOREACH([gl_HEADER_NAME], [$1], [
AC_DEFUN([gl_CHECK_HEADER_]m4_quote(translit(defn([gl_HEADER_NAME]),
[-./], [___])), [
AC_CHECK_HEADERS(gl_HEADER_NAME)
])
AC_REQUIRE([gl_CHECK_HEADER_]m4_quote(translit(gl_HEADER_NAME,
[-./], [___])))
])
])
# AC_CHECK_FUNCS_ONCE(FUNC1 FUNC2 ...) is a once-only variant of
# AC_CHECK_FUNCS(FUNC1 FUNC2 ...).
AC_DEFUN([AC_CHECK_FUNCS_ONCE], [
:
AC_FOREACH([gl_FUNC_NAME], [$1], [
AC_DEFUN([gl_CHECK_FUNC_]defn([gl_FUNC_NAME]), [
AC_CHECK_FUNCS(defn([gl_FUNC_NAME]))
])
AC_REQUIRE([gl_CHECK_FUNC_]defn([gl_FUNC_NAME]))
])
])
# AC_CHECK_DECLS_ONCE(DECL1 DECL2 ...) is a once-only variant of
# AC_CHECK_DECLS(DECL1, DECL2, ...).
AC_DEFUN([AC_CHECK_DECLS_ONCE], [
:
AC_FOREACH([gl_DECL_NAME], [$1], [
AC_DEFUN([gl_CHECK_DECL_]defn([gl_DECL_NAME]), [
AC_CHECK_DECLS(defn([gl_DECL_NAME]))
])
AC_REQUIRE([gl_CHECK_DECL_]defn([gl_DECL_NAME]))
])
])

View File

@ -0,0 +1,41 @@
DESCRIPTION = "GNU Transport Layer Security Library"
DEPENDS = "zlib libgcrypt lzo"
HOMEPAGE = "http://www.gnu.org/software/gnutls/"
LICENSE = "LGPL"
SRC_URI = "ftp://ftp.gnutls.org/pub/gnutls/gnutls-${PV}.tar.bz2 \
file://onceonly.m4 \
file://gnutls-openssl.patch;patch=1 \
file://gnutls-texinfo-euro.patch;patch=1"
inherit autotools binconfig
do_configure_prepend() {
cp ${WORKDIR}/onceonly.m4 ${S}/m4/
}
PACKAGES =+ "${PN}-openssl ${PN}-extra ${PN}-bin"
FILES_${PN}-openssl = "${libdir}/libgnutls-openssl.so.*"
FILES_${PN}-extra = "${libdir}/libgnutls-extra.so.*"
FILES_${PN} = "${libdir}/libgnutls.so.*"
FILES_${PN}-bin = "${bindir}/gnutls-serv \
${bindir}/gnutls-cli \
${bindir}/srptool \
${bindir}/certtool \
${bindir}/gnutls-srpcrypt \
${bindir}/psktool"
FILES_${PN}-dev += "${bindir}/*-config ${bindir}/gnutls-cli-debug"
EXTRA_OECONF="--with-included-opencdk --with-included-libtasn1"
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
install -d ${STAGING_DATADIR}/aclocal
cp ${S}/lib/libgnutls.m4 ${STAGING_DATADIR}/aclocal/
}

View File

@ -0,0 +1,28 @@
DESCRIPTION = "A general purpose cryptographic library based on the code from GnuPG"
SECTION = "libs"
PRIORITY = "optional"
LICENSE = "GPL LGPL FDL"
DEPENDS = "libgpg-error"
# move libgcrypt-config into -dev package
FILES_${PN} = "${libdir}/lib*.so.*"
FILES_${PN}-dev += "${bindir}"
SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${PV}.tar.gz"
inherit autotools binconfig
EXTRA_OECONF = "--without-pth --disable-asm --with-capabilities"
do_stage() {
oe_libinstall -so -C src libgcrypt ${STAGING_LIBDIR}
oe_libinstall -so -C src libgcrypt-pthread ${STAGING_LIBDIR}
install -m 0755 src/libgcrypt-config ${STAGING_BINDIR}/
install -d ${STAGING_INCDIR}/
for X in gcrypt.h gcrypt-module.h
do
install -m 0644 src/${X} ${STAGING_INCDIR}/${X}
done
}

View File

@ -0,0 +1,36 @@
DESCRIPTION = "Lossless data compression library"
HOMEPAGE = "http://www.oberhumer.com/opensource/lzo/"
LICENSE = "GPLv2"
SECTION = "libs"
PRIORITY = "optional"
PR = "r14"
SRC_URI = "http://www.oberhumer.com/opensource/lzo/download/lzo-${PV}.tar.gz"
inherit autotools
EXTRA_OECONF = "--enable-shared"
#do_configure () {
# # override this function to avoid the autoconf/automake/aclocal/autoheader
# # calls for now
# gnu-configize
# oe_runconf
#}
do_stage() {
install -m 0644 include/lzo1.h ${STAGING_INCDIR}/lzo1.h
install -m 0644 include/lzo16bit.h ${STAGING_INCDIR}/lzo16bit.h
install -m 0644 include/lzo1a.h ${STAGING_INCDIR}/lzo1a.h
install -m 0644 include/lzo1b.h ${STAGING_INCDIR}/lzo1b.h
install -m 0644 include/lzo1c.h ${STAGING_INCDIR}/lzo1c.h
install -m 0644 include/lzo1f.h ${STAGING_INCDIR}/lzo1f.h
install -m 0644 include/lzo1x.h ${STAGING_INCDIR}/lzo1x.h
install -m 0644 include/lzo1y.h ${STAGING_INCDIR}/lzo1y.h
install -m 0644 include/lzo1z.h ${STAGING_INCDIR}/lzo1z.h
install -m 0644 include/lzo2a.h ${STAGING_INCDIR}/lzo2a.h
install -m 0644 include/lzoconf.h ${STAGING_INCDIR}/lzoconf.h
install -m 0644 include/lzoutil.h ${STAGING_INCDIR}/lzoutil.h
oe_libinstall -a -so -C src liblzo ${STAGING_LIBDIR}
}