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 +}