commit:     b31e7e4664d8f8c61fb4fd6443b29d70702663f7
Author:     Mario Haustein <mario.haustein <AT> hrz <DOT> tu-chemnitz <DOT> de>
AuthorDate: Tue Aug 29 16:42:48 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Aug 29 23:20:59 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b31e7e46

net-libs/libssh2: fix conflicting types (32-bit build)

Closes: https://bugs.gentoo.org/911279
Signed-off-by: Mario Haustein <mario.haustein <AT> hrz.tu-chemnitz.de>
Closes: https://github.com/gentoo/gentoo/pull/32510
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-libs/libssh2/files/libssh2-1.11.0-size_t.patch | 95 ++++++++++++++++++++++
 net-libs/libssh2/libssh2-1.11.0-r2.ebuild          | 66 +++++++++++++++
 2 files changed, 161 insertions(+)

diff --git a/net-libs/libssh2/files/libssh2-1.11.0-size_t.patch 
b/net-libs/libssh2/files/libssh2-1.11.0-size_t.patch
new file mode 100644
index 000000000000..ade3cdee8a49
--- /dev/null
+++ b/net-libs/libssh2/files/libssh2-1.11.0-size_t.patch
@@ -0,0 +1,95 @@
+https://bugs.gentoo.org/911279
+Upstream: https://github.com/libssh2/libssh2/issues/1053
+Commit: 
https://github.com/libssh2/libssh2/commit/1153ebdeba563ac657b525edd6bf6da68b1fe5e2
+From: Viktor Szakats <[email protected]>
+Date: Tue, 30 May 2023 17:28:03 +0000
+Subject: [PATCH] mbedtls: use more `size_t` to sync up with `crypto.h`
+
+Ref: 5a96f494ee0b00282afb2db2e091246fc5e1774a #846 #879
+
+Fixes #1053
+Closes #1054
+--- a/src/mbedtls.c
++++ b/src/mbedtls.c
+@@ -186,7 +186,7 @@ _libssh2_mbedtls_cipher_dtor(_libssh2_cipher_ctx *ctx)
+ int
+ _libssh2_mbedtls_hash_init(mbedtls_md_context_t *ctx,
+                            mbedtls_md_type_t mdtype,
+-                           const unsigned char *key, unsigned long keylen)
++                           const unsigned char *key, size_t keylen)
+ {
+     const mbedtls_md_info_t *md_info;
+     int ret, hmac;
+@@ -221,7 +221,7 @@ _libssh2_mbedtls_hash_final(mbedtls_md_context_t *ctx, 
unsigned char *hash)
+ }
+ 
+ int
+-_libssh2_mbedtls_hash(const unsigned char *data, unsigned long datalen,
++_libssh2_mbedtls_hash(const unsigned char *data, size_t datalen,
+                       mbedtls_md_type_t mdtype, unsigned char *hash)
+ {
+     const mbedtls_md_info_t *md_info;
+@@ -497,8 +497,9 @@ int
+ _libssh2_mbedtls_rsa_sha2_verify(libssh2_rsa_ctx * rsactx,
+                                  size_t hash_len,
+                                  const unsigned char *sig,
+-                                 unsigned long sig_len,
+-                                 const unsigned char *m, unsigned long m_len)
++                                 size_t sig_len,
++                                 const unsigned char *m,
++                                 size_t m_len)
+ {
+     int ret;
+     int md_type;
+@@ -548,8 +549,9 @@ _libssh2_mbedtls_rsa_sha2_verify(libssh2_rsa_ctx * rsactx,
+ int
+ _libssh2_mbedtls_rsa_sha1_verify(libssh2_rsa_ctx * rsactx,
+                                  const unsigned char *sig,
+-                                 unsigned long sig_len,
+-                                 const unsigned char *m, unsigned long m_len)
++                                 size_t sig_len,
++                                 const unsigned char *m,
++                                 size_t m_len)
+ {
+     return _libssh2_mbedtls_rsa_sha2_verify(rsactx, SHA_DIGEST_LENGTH,
+                                             sig, sig_len, m, m_len);
+--- a/src/mbedtls.h
++++ b/src/mbedtls.h
+@@ -478,12 +478,12 @@ _libssh2_mbedtls_cipher_dtor(_libssh2_cipher_ctx *ctx);
+ int
+ _libssh2_mbedtls_hash_init(mbedtls_md_context_t *ctx,
+                            mbedtls_md_type_t mdtype,
+-                           const unsigned char *key, unsigned long keylen);
++                           const unsigned char *key, size_t keylen);
+ 
+ int
+ _libssh2_mbedtls_hash_final(mbedtls_md_context_t *ctx, unsigned char *hash);
+ int
+-_libssh2_mbedtls_hash(const unsigned char *data, unsigned long datalen,
++_libssh2_mbedtls_hash(const unsigned char *data, size_t datalen,
+                       mbedtls_md_type_t mdtype, unsigned char *hash);
+ 
+ _libssh2_bn *
+@@ -526,9 +526,8 @@ 
_libssh2_mbedtls_rsa_new_private_frommemory(libssh2_rsa_ctx **rsa,
+ int
+ _libssh2_mbedtls_rsa_sha1_verify(libssh2_rsa_ctx *rsa,
+                                  const unsigned char *sig,
+-                                 unsigned long sig_len,
+-                                 const unsigned char *m,
+-                                 unsigned long m_len);
++                                 size_t sig_len,
++                                 const unsigned char *m, size_t m_len);
+ int
+ _libssh2_mbedtls_rsa_sha1_sign(LIBSSH2_SESSION *session,
+                                libssh2_rsa_ctx *rsa,
+@@ -540,8 +539,8 @@ int
+ _libssh2_mbedtls_rsa_sha2_verify(libssh2_rsa_ctx * rsactx,
+                                  size_t hash_len,
+                                  const unsigned char *sig,
+-                                 unsigned long sig_len,
+-                                 const unsigned char *m, unsigned long m_len);
++                                 size_t sig_len,
++                                 const unsigned char *m, size_t m_len);
+ int
+ _libssh2_mbedtls_rsa_sha2_sign(LIBSSH2_SESSION *session,
+                                libssh2_rsa_ctx *rsa,

diff --git a/net-libs/libssh2/libssh2-1.11.0-r2.ebuild 
b/net-libs/libssh2/libssh2-1.11.0-r2.ebuild
new file mode 100644
index 000000000000..561e2a9ec8dc
--- /dev/null
+++ b/net-libs/libssh2/libssh2-1.11.0-r2.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake-multilib
+
+DESCRIPTION="Library implementing the SSH2 protocol"
+HOMEPAGE="https://www.libssh2.org";
+SRC_URI="https://www.libssh2.org/download/${P}.tar.xz";
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+IUSE="gcrypt mbedtls test zlib"
+REQUIRED_USE="?? ( gcrypt mbedtls )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       gcrypt? ( >=dev-libs/libgcrypt-1.5.3:0[${MULTILIB_USEDEP}] )
+       !gcrypt? (
+               mbedtls? ( net-libs/mbedtls:0=[${MULTILIB_USEDEP}] )
+               !mbedtls? (
+                       >=dev-libs/openssl-1.0.1h-r2:0=[${MULTILIB_USEDEP}]
+               )
+       )
+       zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
+"
+DEPEND="
+       ${RDEPEND}
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.11.0-mansyntax_sh.patch
+       "${FILESDIR}"/${PN}-1.11.0-size_t.patch
+)
+
+multilib_src_configure() {
+       local crypto_backend=OpenSSL
+       if use gcrypt; then
+               crypto_backend=Libgcrypt
+       elif use mbedtls; then
+               crypto_backend=mbedTLS
+       fi
+
+       local mycmakeargs=(
+               -DBUILD_SHARED_LIBS=ON
+               -DBUILD_TESTING=$(usex test)
+               -DCRYPTO_BACKEND=${crypto_backend}
+               -DENABLE_ZLIB_COMPRESSION=$(usex zlib)
+       )
+
+       if use test ; then
+               # Pass separately to avoid unused var warnings w/ USE=-test
+               mycmakeargs+=(
+                       -DRUN_SSHD_TESTS=OFF
+                       -DRUN_DOCKER_TESTS=OFF
+               )
+       fi
+
+       cmake_src_configure
+}
+
+multilib_src_install_all() {
+       einstalldocs
+}

Reply via email to