summaryrefslogtreecommitdiff
path: root/dev-lua/luasec
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lua/luasec')
-rw-r--r--dev-lua/luasec/Manifest2
-rw-r--r--dev-lua/luasec/files/luasec-1.0.1_openssl3.patch96
-rw-r--r--dev-lua/luasec/luasec-1.0.1-r1.ebuild90
3 files changed, 188 insertions, 0 deletions
diff --git a/dev-lua/luasec/Manifest b/dev-lua/luasec/Manifest
index 8db784dba40c..57090c9394ff 100644
--- a/dev-lua/luasec/Manifest
+++ b/dev-lua/luasec/Manifest
@@ -1,3 +1,5 @@
+AUX luasec-1.0.1_openssl3.patch 3126 BLAKE2B 8b50179b5c76aa332803c0d71539d6118ee7b4c539748dc1161804437263a4dca5ae24ada4208efd32bc9e967f1d1a80bee3db1c750843d04261fa93b0951aa5 SHA512 6de91108288cc336ac7ce2e23f68e9e720d34036507c6183f0ef59007c42bbd223ae3c717fb098f3bf1b4ebbb229ad238f010d68960d8227d7189ea9ba86ab0c
DIST luasec-1.0.1.tar.gz 52370 BLAKE2B 4e90adafc5091fe462f2413f54aae9d3baf699471fad287ee58cc033140587a93e15baddea6fd6bbf7a90378e99f6fa12e63eeecab24d31c91a1ee2f9924df70 SHA512 21ae200e40f13a35eebca95cdac25ae13532a3008b2f9ec97a079033b9efde69e81954354453623eb77340368f482d3c69adb26881a6c0d7c4897df31301af93
+EBUILD luasec-1.0.1-r1.ebuild 1592 BLAKE2B 9148ae4f79fc3fbe9910df494e46f019f3f2dbfac263508cbfc8babba7c04ed1ea3e69fc8e82a84b3951decbd7eb344db4020686fecf6e2a1c4af365742c10ba SHA512 018a7b49a803fb4b513879c0e75164c5e1074a197befa112bc76eeaa0284eb89c7353280346baa7476422335b6d2736ca8dadbd7568913b28ed81073d34f0fb4
EBUILD luasec-1.0.1.ebuild 1538 BLAKE2B 2acc3879b5d0c0d815b62fdb6168bdb7a5b0620ee69afd44760532fe4317f0db8151a8f6e1baf3c23ff05aa5dfd669db267187e3028bbf1332be033a42f847b1 SHA512 6fa9484a5168bfad532ca016ed5020f62cb68934b5115af11cc80f53aaebbf947d8b6c2afb76bf085002b960fd6bde877a96024b39b00cc8f4cee5b64d0430e0
MISC metadata.xml 596 BLAKE2B 0116422318c66247af5add321ba97b4d48a27b5871a2edb2eab81f03611ddad4f6e616c16070e89f8df7ef1dba6fdc94a070325e24f90df6f6095c2afb0af9f7 SHA512 97f09d268b8bb90d82707f6a39a2339a8cdab827b4fbf70292904e580f15b3503d0473855dfb9141c9384579339df4073ad2926662ff8839ffbe73ce009b3402
diff --git a/dev-lua/luasec/files/luasec-1.0.1_openssl3.patch b/dev-lua/luasec/files/luasec-1.0.1_openssl3.patch
new file mode 100644
index 000000000000..6fc161bfbe32
--- /dev/null
+++ b/dev-lua/luasec/files/luasec-1.0.1_openssl3.patch
@@ -0,0 +1,96 @@
+From 79bbc0bc3ed50303d0887f44137a1104ede3ea8f Mon Sep 17 00:00:00 2001
+From: Bruno Silvestre <brunoos@inf.ufg.br>
+Date: Mon, 2 Aug 2021 17:02:44 -0300
+Subject: [PATCH] Ignore SSL_OP_BIT(n) macro and update option.c #178
+
+---
+ src/options.c | 20 +++++++++++++++++++-
+ src/options.lua | 9 ++++++---
+ 2 files changed, 25 insertions(+), 4 deletions(-)
+
+diff --git a/src/options.c b/src/options.c
+index 24fd2c9..7c6f21e 100644
+--- a/src/options.c
++++ b/src/options.c
+@@ -13,13 +13,16 @@
+
+
+ /*
+- OpenSSL version: OpenSSL 1.1.1
++ OpenSSL version: OpenSSL 3.0.0-beta2
+ */
+
+ static lsec_ssl_option_t ssl_options[] = {
+ #if defined(SSL_OP_ALL)
+ {"all", SSL_OP_ALL},
+ #endif
++#if defined(SSL_OP_ALLOW_CLIENT_RENEGOTIATION)
++ {"allow_client_renegotiation", SSL_OP_ALLOW_CLIENT_RENEGOTIATION},
++#endif
+ #if defined(SSL_OP_ALLOW_NO_DHE_KEX)
+ {"allow_no_dhe_kex", SSL_OP_ALLOW_NO_DHE_KEX},
+ #endif
+@@ -32,21 +35,33 @@ static lsec_ssl_option_t ssl_options[] = {
+ #if defined(SSL_OP_CISCO_ANYCONNECT)
+ {"cisco_anyconnect", SSL_OP_CISCO_ANYCONNECT},
+ #endif
++#if defined(SSL_OP_CLEANSE_PLAINTEXT)
++ {"cleanse_plaintext", SSL_OP_CLEANSE_PLAINTEXT},
++#endif
+ #if defined(SSL_OP_COOKIE_EXCHANGE)
+ {"cookie_exchange", SSL_OP_COOKIE_EXCHANGE},
+ #endif
+ #if defined(SSL_OP_CRYPTOPRO_TLSEXT_BUG)
+ {"cryptopro_tlsext_bug", SSL_OP_CRYPTOPRO_TLSEXT_BUG},
+ #endif
++#if defined(SSL_OP_DISABLE_TLSEXT_CA_NAMES)
++ {"disable_tlsext_ca_names", SSL_OP_DISABLE_TLSEXT_CA_NAMES},
++#endif
+ #if defined(SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS)
+ {"dont_insert_empty_fragments", SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS},
+ #endif
++#if defined(SSL_OP_ENABLE_KTLS)
++ {"enable_ktls", SSL_OP_ENABLE_KTLS},
++#endif
+ #if defined(SSL_OP_ENABLE_MIDDLEBOX_COMPAT)
+ {"enable_middlebox_compat", SSL_OP_ENABLE_MIDDLEBOX_COMPAT},
+ #endif
+ #if defined(SSL_OP_EPHEMERAL_RSA)
+ {"ephemeral_rsa", SSL_OP_EPHEMERAL_RSA},
+ #endif
++#if defined(SSL_OP_IGNORE_UNEXPECTED_EOF)
++ {"ignore_unexpected_eof", SSL_OP_IGNORE_UNEXPECTED_EOF},
++#endif
+ #if defined(SSL_OP_LEGACY_SERVER_CONNECT)
+ {"legacy_server_connect", SSL_OP_LEGACY_SERVER_CONNECT},
+ #endif
+@@ -89,6 +104,9 @@ static lsec_ssl_option_t ssl_options[] = {
+ #if defined(SSL_OP_NO_ENCRYPT_THEN_MAC)
+ {"no_encrypt_then_mac", SSL_OP_NO_ENCRYPT_THEN_MAC},
+ #endif
++#if defined(SSL_OP_NO_EXTENDED_MASTER_SECRET)
++ {"no_extended_master_secret", SSL_OP_NO_EXTENDED_MASTER_SECRET},
++#endif
+ #if defined(SSL_OP_NO_QUERY_MTU)
+ {"no_query_mtu", SSL_OP_NO_QUERY_MTU},
+ #endif
+diff --git a/src/options.lua b/src/options.lua
+index a757c8b..678e8d5 100644
+--- a/src/options.lua
++++ b/src/options.lua
+@@ -60,9 +60,12 @@ local function loadoptions(file)
+ local options = {}
+ local f = assert(io.open(file, "r"))
+ for line in f:lines() do
+- local op = string.match(line, "define%s+(SSL_OP_%S+)")
+- if op then
+- table.insert(options, op)
++ local op = string.match(line, "define%s+(SSL_OP_BIT%()")
++ if not op then
++ op = string.match(line, "define%s+(SSL_OP_%S+)")
++ if op then
++ table.insert(options, op)
++ end
+ end
+ end
+ table.sort(options, function(a,b) return a<b end)
diff --git a/dev-lua/luasec/luasec-1.0.1-r1.ebuild b/dev-lua/luasec/luasec-1.0.1-r1.ebuild
new file mode 100644
index 000000000000..5cbfb8b1bd03
--- /dev/null
+++ b/dev-lua/luasec/luasec-1.0.1-r1.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+LUA_COMPAT=( lua5-{1..4} luajit )
+LUA_REQ_USE="deprecated(+)"
+
+inherit lua toolchain-funcs
+
+DESCRIPTION="Lua binding for OpenSSL library to provide TLS/SSL communication"
+HOMEPAGE="https://github.com/brunoos/luasec"
+SRC_URI="https://github.com/brunoos/luasec/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86"
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+
+RDEPEND="
+ dev-lua/luasocket[${LUA_USEDEP}]
+ dev-libs/openssl:0=
+ ${LUA_DEPS}
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}/${P}_openssl3.patch"
+)
+
+lua_src_prepare() {
+ pushd "${BUILD_DIR}" || die
+
+ ${ELUA} src/options.lua -g /usr/include/openssl/ssl.h > src/options.c || die
+
+ popd
+}
+
+src_prepare() {
+ default
+
+ # Respect users CFLAGS
+ sed -e 's/-O2//g' -i src/Makefile || die
+
+ lua_copy_sources
+
+ lua_foreach_impl lua_src_prepare
+}
+
+lua_src_compile() {
+ pushd "${BUILD_DIR}" || die
+
+ local myemakeargs=(
+ "CC=$(tc-getCC)"
+ "LD=$(tc-getCC)"
+ "INC_PATH=-I$(lua_get_include_dir)"
+ "LIB_PATH=$(lua_get_CFLAGS)"
+ "MYCFLAGS=${CFLAGS}"
+ "MYLDFLAGS=${LDFLAGS}"
+ )
+
+ emake "${myemakeargs[@]}" linux
+
+ popd
+}
+
+src_compile() {
+ lua_foreach_impl lua_src_compile
+}
+
+lua_src_install() {
+ pushd "${BUILD_DIR}" || die
+
+ local emakeargs=(
+ "DESTDIR=${ED}"
+ "LUAPATH=$(lua_get_lmod_dir)"
+ "LUACPATH=$(lua_get_cmod_dir)"
+ )
+
+ emake "${emakeargs[@]}" install
+
+ popd
+}
+
+src_install() {
+ lua_foreach_impl lua_src_install
+
+ einstalldocs
+}