commit:     337faf50f184b7d08da0df8b8cb5e981ccfe7c8c
Author:     orbea <orbea <AT> riseup <DOT> net>
AuthorDate: Mon Mar 27 22:19:20 2023 +0000
Commit:     Quentin Retornaz <gentoo <AT> retornaz <DOT> com>
CommitDate: Tue Mar 28 18:51:11 2023 +0000
URL:        https://gitweb.gentoo.org/repo/proj/libressl.git/commit/?id=337faf50

net-libs/neon: New package

Uptream-PR: https://github.com/notroj/neon/pull/113
Signed-off-by: orbea <orbea <AT> riseup.net>
Closes: https://github.com/gentoo/libressl/pull/509
Signed-off-by: Quentin Retornaz <gentoo <AT> retornaz.com>

 net-libs/neon/Manifest                         |   1 +
 net-libs/neon/files/neon-0.32.4-libressl.patch |  36 ++++++++
 net-libs/neon/metadata.xml                     |  32 ++++++++
 net-libs/neon/neon-0.32.4.ebuild               | 109 +++++++++++++++++++++++++
 4 files changed, 178 insertions(+)

diff --git a/net-libs/neon/Manifest b/net-libs/neon/Manifest
new file mode 100644
index 0000000..3385d6c
--- /dev/null
+++ b/net-libs/neon/Manifest
@@ -0,0 +1 @@
+DIST neon-0.32.4.tar.gz 895482 BLAKE2B 
917f17739976e159bf91f7c594e59c96bb8b92e39c19f5c881354c11951233d3157f6871e4ebc073d493170844e516acc36be4787dbe2005c33b1ec84ae0d364
 SHA512 
82bcd1555f047d26cc5ccd67d2fef8dea4eb5a4cc45ca8030d2f3c356eee03fd78efd7ef45f516948e89f1089686731046b3fe48e73b3d84c65848ef6d86bd7a

diff --git a/net-libs/neon/files/neon-0.32.4-libressl.patch 
b/net-libs/neon/files/neon-0.32.4-libressl.patch
new file mode 100644
index 0000000..1e779af
--- /dev/null
+++ b/net-libs/neon/files/neon-0.32.4-libressl.patch
@@ -0,0 +1,36 @@
+https://github.com/notroj/neon/pull/113
+
+From 233f17b86ebc2cd99d9deede484f4b0be586730f Mon Sep 17 00:00:00 2001
+From: orbea <or...@riseup.net>
+Date: Mon, 27 Mar 2023 14:58:49 -0700
+Subject: [PATCH] ne_openssl: Fix the build with libressl
+
+* Libressl 3.7 currently doesn't provide EVP_sha512_256().
+* Libressl 3.4 added SSL_CTX_set_post_handshake_auth().
+---
+ src/ne_openssl.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/ne_openssl.c b/src/ne_openssl.c
+index d13c25ab..a9b11345 100644
+--- a/src/ne_openssl.c
++++ b/src/ne_openssl.c
+@@ -581,7 +581,7 @@ ne_ssl_context *ne_ssl_context_create(int mode)
+         /* enable workarounds for buggy SSL server implementations */
+         SSL_CTX_set_options(ctx->ctx, SSL_OP_ALL);
+         SSL_CTX_set_verify(ctx->ctx, SSL_VERIFY_PEER, verify_callback);
+-#if !defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10101000L
++#if LIBRESSL_VERSION_NUMBER >= 0x3040000fL || 
(!defined(LIBRESSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER >= 0x10101000L)
+         SSL_CTX_set_post_handshake_auth(ctx->ctx, 1);
+ #endif
+     } else if (mode == NE_SSL_CTX_SERVER) {
+@@ -1122,7 +1122,9 @@ static const EVP_MD *hash_to_md(unsigned int flags)
+     case NE_HASH_SHA256: return EVP_sha256();
+ #ifdef HAVE_OPENSSL11
+     case NE_HASH_SHA512: return EVP_sha512();
++#ifndef LIBRESSL_VERSION_NUMBER
+     case NE_HASH_SHA512_256: return EVP_sha512_256();
++#endif
+ #endif
+     default: break;
+     }

diff --git a/net-libs/neon/metadata.xml b/net-libs/neon/metadata.xml
new file mode 100644
index 0000000..5fd2d0a
--- /dev/null
+++ b/net-libs/neon/metadata.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person" proxied="yes">
+               <email>arfrever....@gmail.com</email>
+               <name>Arfrever Frehtes Taifersar Arahesis</name>
+       </maintainer>
+       <maintainer type="person" proxied="proxy">
+               <email>jsmo...@gentoo.org</email>
+               <name>Jakov Smolić</name>
+       </maintainer>
+       <longdescription>
+               Neon is an HTTP and WebDAV client library for Unix systems, 
with a C
+               language API. It provides high-level interfaces to HTTP/1.1 and 
WebDAV
+               methods, and a low-level interface to HTTP request/response 
handling,
+               allowing new methods to be easily implemented.
+       </longdescription>
+       <longdescription lang="ja">
+               neon は Unix システムにおける HTTP 及び WebDAV クライアント・ライブラリ
+               であり、C言語 API です。HTTP/1.1 及び WebDAV のメソッドという高い視点
+               でのインターフェイス、HTTP リクエスト/レスポンス のハンドリングという
+               低い視点でのインターフェイス、簡単に実装できるようにした新しいメソッド
+               といったものを提供します。
+       </longdescription>
+       <use>
+               <flag name="libproxy">Add support for 
<pkg>net-libs/libproxy</pkg></flag>
+               <flag name="pkcs11">Add support for PKCS#11 using 
<pkg>dev-libs/pakchois</pkg></flag>
+       </use>
+       <upstream>
+               <remote-id type="github">notroj/neon</remote-id>
+       </upstream>
+</pkgmetadata>

diff --git a/net-libs/neon/neon-0.32.4.ebuild b/net-libs/neon/neon-0.32.4.ebuild
new file mode 100644
index 0000000..877f8d5
--- /dev/null
+++ b/net-libs/neon/neon-0.32.4.ebuild
@@ -0,0 +1,109 @@
+# Copyright 2001-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+inherit autotools libtool multilib-minimal
+
+DESCRIPTION="HTTP and WebDAV client library"
+HOMEPAGE="https://notroj.github.io/neon/ https://github.com/notroj/neon";
+SRC_URI="https://notroj.github.io/neon/${P}.tar.gz";
+
+LICENSE="GPL-2"
+SLOT="0/27"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv 
~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris 
~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="doc +expat gnutls kerberos libproxy nls pkcs11 ssl test zlib"
+RESTRICT="!test? ( test )"
+
+BDEPEND="virtual/pkgconfig
+       test? (
+               ssl? (
+                       dev-libs/openssl:0
+                       pkcs11? ( dev-libs/nss )
+               )
+       )"
+DEPEND="expat? ( dev-libs/expat:0=[${MULTILIB_USEDEP}] )
+       !expat? ( dev-libs/libxml2:2=[${MULTILIB_USEDEP}] )
+       kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] )
+       libproxy? ( net-libs/libproxy:0=[${MULTILIB_USEDEP}] )
+       nls? ( virtual/libintl:0=[${MULTILIB_USEDEP}] )
+       ssl? (
+               gnutls? (
+                       app-misc/ca-certificates
+                       net-libs/gnutls:0=[${MULTILIB_USEDEP}]
+               )
+               !gnutls? ( dev-libs/openssl:0=[${MULTILIB_USEDEP}] )
+               pkcs11? ( dev-libs/pakchois:0=[${MULTILIB_USEDEP}] )
+       )
+       zlib? ( sys-libs/zlib:0=[${MULTILIB_USEDEP}] )"
+RDEPEND="${DEPEND}"
+
+MULTILIB_CHOST_TOOLS=(
+       /usr/bin/neon-config
+)
+
+DOCS=( AUTHORS BUGS NEWS README.md THANKS TODO )
+
+src_prepare() {
+       if use gnutls; then
+               # Ignore failure of test pkcs11.
+               # https://github.com/notroj/neon/issues/72
+               sed -e "s/T(pkcs11)/T_XFAIL(pkcs11)/" -i test/ssl.c || die
+       fi
+
+       eapply "${FILESDIR}"/${P}-libressl.patch
+
+       eapply_user
+
+       AT_M4DIR="macros" eautoreconf
+
+       elibtoolize
+
+       multilib_copy_sources
+}
+
+multilib_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 ssl; then
+               if use gnutls; then
+                       myconf+=(--with-ssl=gnutls 
--with-ca-bundle="${EPREFIX}/etc/ssl/certs/ca-certificates.crt")
+               else
+                       myconf+=(--with-ssl=openssl)
+               fi
+       fi
+
+       econf \
+               --enable-shared \
+               $(use_with kerberos gssapi) \
+               $(use_with libproxy) \
+               $(use_enable nls) \
+               $(use_with pkcs11 pakchois) \
+               $(use_with zlib) \
+               "${myconf[@]}"
+}
+
+multilib_src_install() {
+       emake DESTDIR="${D}" install-{config,headers,lib,man,nls}
+
+       if multilib_is_native_abi && use doc; then
+               dodoc -r doc/html
+       fi
+}
+
+multilib_src_install_all() {
+       find "${ED}" -name "*.la" -delete || die
+
+       einstalldocs
+}

Reply via email to