Hi Dale,

if you want, you can try



mkdir -p /usr/local/portage/net-libs

cp -ax /usr/portage/net-libs/neon /usr/local/portage/net-libs/

echo 'PORTDIR_OVERLAY="/usr/local/portage"' >> /etc/make.conf

mkdir -p /usr/local/portage/net-libs/

cp verify_peer2.patch /usr/local/portage/net-libs/files/

cp neon-0.29.6.ebuild /usr/local/portage/net-libs/neon/

ebuild /usr/local/portage/net-libs/neon-0.29.6.ebuild manifest
USE="-ssl gnutls" emerge net-libs/neon kde-base/kscd



with the attached patch and ebuild. neon compiles, but i dont want to install kscd on my server ;)

attach it to the bug report if it works, please.

Am 07.10.2011 10:47, schrieb Dale:
Jonas de Buhr wrote:
Am 07.10.2011 10:03, schrieb Dale:
/usr/lib64/libneon.so.27: undefined reference to
`gnutls_certificate_verify_peers'
gnutls_certificate_verify_peers is deprecated in gnutls.

you could try emerging net-libs/neon with

USE="-gnutls ssl"

for a quick workaround.



For those who run into this, just remove the gnutls flag and do a emerge
-uvaDN world. I had it in make.conf so I must have needed it at some
point in the past. Man that is a old USE line. lol

Thanks for the tip. It worked.

Dale

:-) :-)


# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-libs/neon/neon-0.29.6.ebuild,v 1.8 
2011/07/20 22:14:39 halcy0n Exp $

EAPI="3"

inherit autotools libtool versionator

DESCRIPTION="HTTP and WebDAV client library"
HOMEPAGE="http://www.webdav.org/neon/";
SRC_URI="http://www.webdav.org/neon/${P}.tar.gz";

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~ppc-aix 
~sparc-fbsd ~x86-fbsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix 
~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint 
~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="doc expat gnutls kerberos libproxy nls pkcs11 ssl static-libs zlib"
IUSE_LINGUAS="cs de fr ja nn pl ru tr zh_CN"
for lingua in ${IUSE_LINGUAS}; do
        IUSE+=" linguas_${lingua}"
done
unset lingua
RESTRICT="test"

RDEPEND="expat? ( dev-libs/expat )
        !expat? ( dev-libs/libxml2 )
        gnutls? (
                app-misc/ca-certificates
                >=net-libs/gnutls-2.0
                pkcs11? ( dev-libs/pakchois )
        )
        !gnutls? ( ssl? (
                >=dev-libs/openssl-0.9.6f
                pkcs11? ( dev-libs/pakchois )
        ) )
        kerberos? ( virtual/krb5 )
        libproxy? ( net-libs/libproxy )
        nls? ( virtual/libintl )
        zlib? ( sys-libs/zlib )"
DEPEND="${RDEPEND}
        dev-util/pkgconfig"

src_prepare() {
        local lingua linguas
        for lingua in ${IUSE_LINGUAS}; do
                use linguas_${lingua} && linguas+=" ${lingua}"
        done
        sed -i -e "s/ALL_LINGUAS=.*/ALL_LINGUAS=\"${linguas}\"/g" configure.in

        AT_M4DIR="macros" eautoreconf

        elibtoolize
    epatch "${FILESDIR}/verify_peers2.patch"
}

src_configure() {
        local myconf

        if has_version sys-libs/glibc; then
                einfo "Enabling SSL library thread-safety using POSIX 
threads..."
                myconf+=" --enable-threadsafe-ssl=posix"
        fi

        if use expat; then
                myconf+=" --with-expat"
        else
                myconf+=" --with-libxml2"
        fi

        if use gnutls; then
                myconf+=" --with-ssl=gnutls 
--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt"
        elif use ssl; then
                myconf+=" --with-ssl=openssl"
        fi

        econf \
                --enable-shared \
                $(use_with kerberos gssapi) \
                $(use_with libproxy) \
                $(use_enable nls) \
                $(use_with pkcs11 pakchois) \
                $(use_enable static-libs static) \
                $(use_with zlib) \
                ${myconf}
}

src_install() {
        emake DESTDIR="${D}" install-lib install-headers install-config 
install-nls || die "emake install failed"

        find "${ED}" -name "*.la" -print0 | xargs -0 rm -f

        if use doc; then
                emake DESTDIR="${D}" install-docs || die "emake install-docs 
failed"
        fi

        dodoc AUTHORS BUGS NEWS README THANKS TODO
        doman doc/man/*.[1-8]
}

pkg_postinst() {
        ewarn "Neon has a policy of breaking API across minor versions, this 
means"
        ewarn "that any package that links against Neon may be broken after"
        ewarn "updating. They will remain broken until they are ported to the"
        ewarn "new API. You can downgrade Neon to the previous version by 
doing:"
        ewarn
        ewarn "  emerge --oneshot 
'<${CATEGORY}/${PN}-$(get_version_component_range 1-2 ${PV})'"
        ewarn
        ewarn "You may also have to downgrade any package that has not been"
        ewarn "ported to the new API yet."
}
diff -u -r neon-0.29.6/src/ne_socket.c neon-0.29.6_patched/src/ne_socket.c
--- neon-0.29.6/src/ne_socket.c 2010-10-09 18:07:17.000000000 +0200
+++ neon-0.29.6_patched/src/ne_socket.c 2011-10-07 12:18:22.000000000 +0200
@@ -1660,6 +1660,7 @@
 
 int ne_sock_accept_ssl(ne_socket *sock, ne_ssl_context *ctx)
 {
+    unsigned int status;
     int ret;
     ne_ssl_socket ssl;
 
@@ -1697,7 +1698,7 @@
     if (ret < 0) {
         return error_gnutls(sock, ret);
     }
-    if (ctx->verify && gnutls_certificate_verify_peers(ssl)) {
+    if (ctx->verify && gnutls_certificate_verify_peers2(ssl, &status)) {
         set_error(sock, _("Client certificate verification failed"));
         return NE_SOCK_ERROR;
     }

Reply via email to