diff --git a/lua-sec-0.4.1-fix-Makefile.patch b/lua-sec-0.4.1-fix-Makefile.patch deleted file mode 100644 index 4b864a5..0000000 --- a/lua-sec-0.4.1-fix-Makefile.patch +++ /dev/null @@ -1,47 +0,0 @@ ---- a/Makefile -+++ b/Makefile -@@ -32,13 +32,13 @@ none: - @echo " * macosx" - - install: -- @cd src && $(MAKE) LUACPATH="$(LUACPATH)" LUAPATH="$(LUAPATH)" install -+ cd src && $(MAKE) LUACPATH="$(LUACPATH)" LUAPATH="$(LUAPATH)" install - - linux: -- @echo "---------------------" -- @echo "** Build for Linux **" -- @echo "---------------------" -- @cd src && $(MAKE) INCDIR="$(INCDIR)" LIBDIR="$(LIBDIR)" DEFS="$(DEFS)" EXTRA="$(EXTRA)" $@ -+ echo "---------------------" -+ echo "** Build for Linux **" -+ echo "---------------------" -+ cd src && $(MAKE) INCDIR="$(INCDIR)" LIBDIR="$(LIBDIR)" DEFS="$(DEFS)" EXTRA="$(EXTRA)" $@ - - bsd: - @echo "-------------------" -@@ -53,4 +53,4 @@ macosx: - @cd src && $(MAKE) INCDIR="$(INCDIR)" LIBDIR="$(LIBDIR)" MACVER="$(MACOSX_VERSION)" DEFS="$(DEFS)" EXTRA="$(EXTRA)" $@ - - clean: -- @cd src && $(MAKE) clean -+ cd src && $(MAKE) clean ---- a/src/Makefile -+++ b/src/Makefile -@@ -38,7 +38,7 @@ install: $(CMOD) $(LMOD) - $(INSTALL) -m644 -D https.lua $(DESTDIR)$(LUAPATH)/ssl - - linux: -- @$(MAKE) $(CMOD) MYCFLAGS="$(LNX_CFLAGS)" MYLDFLAGS="$(LNX_LDFLAGS)" EXTRA="$(EXTRA)" -+ $(MAKE) $(CMOD) MYCFLAGS="$(LNX_CFLAGS)" MYLDFLAGS="$(LNX_LDFLAGS)" EXTRA="$(EXTRA)" - - bsd: - @$(MAKE) $(CMOD) MYCFLAGS="$(BSD_CFLAGS)" MYLDFLAGS="$(BSD_LDFLAGS)" EXTRA="$(EXTRA)" -@@ -47,7 +47,7 @@ macosx: - @$(MAKE) $(CMOD) MYCFLAGS="$(MAC_CFLAGS)" MYLDFLAGS="$(MAC_LDFLAGS)" MYENV="$(MAC_ENV)" EXTRA="$(EXTRA)" - - luasocket: -- @cd luasocket && $(MAKE) -+ cd luasocket && $(MAKE) - - $(CMOD): $(EXTRA) $(OBJS) - $(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) diff --git a/lua-sec-0.6-openssl_110.patch b/lua-sec-0.6-openssl_110.patch new file mode 100644 index 0000000..52baaa8 --- /dev/null +++ b/lua-sec-0.6-openssl_110.patch @@ -0,0 +1,184 @@ +git diff 20443861ebc3f6498ee7d9c70fbdaa059bec15e1...98f8872743f3d38bd44cb9eedb2c82e38571fe04 + +diff --git a/src/Makefile b/src/Makefile +index 727794b..02425af 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -31,10 +31,10 @@ LDFLAGS += $(MYLDFLAGS) + all: + + install: $(CMOD) $(LMOD) +- $(INSTALL) -d $(LUAPATH)/ssl $(LUACPATH) +- $(INSTALL) $(CMOD) $(LUACPATH) +- $(INSTALL) -m644 $(LMOD) $(LUAPATH) +- $(INSTALL) -m644 https.lua $(LUAPATH)/ssl ++ $(INSTALL) -d $(DESTDIR)$(LUAPATH)/ssl $(DESTDIR)$(LUACPATH) ++ $(INSTALL) $(CMOD) $(DESTDIR)$(LUACPATH) ++ $(INSTALL) -m644 $(LMOD) $(DESTDIR)$(LUAPATH) ++ $(INSTALL) -m644 https.lua $(DESTDIR)$(LUAPATH)/ssl + + linux: + @$(MAKE) $(CMOD) MYCFLAGS="$(LNX_CFLAGS)" MYLDFLAGS="$(LNX_LDFLAGS)" EXTRA="$(EXTRA)" +diff --git a/src/context.c b/src/context.c +index 22f43b7..4187314 100644 +--- a/src/context.c ++++ b/src/context.c +@@ -35,10 +35,6 @@ typedef const SSL_METHOD LSEC_SSL_METHOD; + typedef SSL_METHOD LSEC_SSL_METHOD; + #endif + +-#if OPENSSL_VERSION_NUMBER>=0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) +-#define SSLv23_method() TLS_method() +-#endif +- + /*-- Compat - Lua 5.1 --------------------------------------------------------*/ + + #if (LUA_VERSION_NUM == 501) +diff --git a/src/https.lua b/src/https.lua +index befb72d..7916851 100644 +--- a/src/https.lua ++++ b/src/https.lua +@@ -89,6 +89,7 @@ local function tcp(params) + function conn:connect(host, port) + try(self.sock:connect(host, port)) + self.sock = try(ssl.wrap(self.sock, params)) ++ self.sock:sni(host) + try(self.sock:dohandshake()) + reg(self, getmetatable(self.sock)) + return 1 +diff --git a/src/ssl.c b/src/ssl.c +index d2b495d..d7b7243 100644 +--- a/src/ssl.c ++++ b/src/ssl.c +@@ -31,6 +31,13 @@ + #include "context.h" + #include "ssl.h" + ++ ++#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER<0x10100000L ++#define SSL_is_server(s) (s->server) ++#define X509_up_ref(c) CRYPTO_add(&c->references, 1, CRYPTO_LOCK_X509) ++#endif ++ ++ + /** + * Underline socket error. + */ +@@ -191,9 +198,9 @@ static int ssl_recv(void *ctx, char *data, size_t count, size_t *got, + { + int err; + p_ssl ssl = (p_ssl)ctx; ++ *got = 0; + if (ssl->state != LSEC_STATE_CONNECTED) + return IO_CLOSED; +- *got = 0; + for ( ; ; ) { + ERR_clear_error(); + err = SSL_read(ssl->ssl, data, (int)count); +@@ -203,7 +210,6 @@ static int ssl_recv(void *ctx, char *data, size_t count, size_t *got, + *got = err; + return IO_DONE; + case SSL_ERROR_ZERO_RETURN: +- *got = err; + return IO_CLOSED; + case SSL_ERROR_WANT_READ: + err = socket_waitfd(&ssl->sock, WAITFD_R, tm); +@@ -461,7 +467,7 @@ static int meth_getpeercertificate(lua_State *L) + /* In a server-context, the stack doesn't contain the peer cert, + * so adjust accordingly. + */ +- if (ssl->ssl->server) ++ if (SSL_is_server(ssl->ssl)) + --n; + certs = SSL_get_peer_cert_chain(ssl->ssl); + if (n >= sk_X509_num(certs)) { +@@ -471,7 +477,7 @@ static int meth_getpeercertificate(lua_State *L) + cert = sk_X509_value(certs, n); + /* Increment the reference counting of the object. */ + /* See SSL_get_peer_certificate() source code. */ +- CRYPTO_add(&cert->references, 1, CRYPTO_LOCK_X509); ++ X509_up_ref(cert); + lsec_pushx509(L, cert); + return 1; + } +@@ -493,7 +499,7 @@ static int meth_getpeerchain(lua_State *L) + return 2; + } + lua_newtable(L); +- if (ssl->ssl->server) { ++ if (SSL_is_server(ssl->ssl)) { + lsec_pushx509(L, SSL_get_peer_certificate(ssl->ssl)); + lua_rawseti(L, -2, idx++); + } +@@ -503,7 +509,7 @@ static int meth_getpeerchain(lua_State *L) + cert = sk_X509_value(certs, i); + /* Increment the reference counting of the object. */ + /* See SSL_get_peer_certificate() source code. */ +- CRYPTO_add(&cert->references, 1, CRYPTO_LOCK_X509); ++ X509_up_ref(cert); + lsec_pushx509(L, cert); + lua_rawseti(L, -2, idx++); + } +diff --git a/src/x509.c b/src/x509.c +index 49f9a5f..0042fc4 100644 +--- a/src/x509.c ++++ b/src/x509.c +@@ -32,6 +32,17 @@ + + #include "x509.h" + ++ ++/* ++ * ASN1_STRING_data is deprecated in OpenSSL 1.1.0 ++ */ ++#if OPENSSL_VERSION_NUMBER>=0x1010000fL && !defined(LIBRESSL_VERSION_NUMBER) ++#define LSEC_ASN1_STRING_data(x) ASN1_STRING_get0_data(x) ++#else ++#define LSEC_ASN1_STRING_data(x) ASN1_STRING_data(x) ++#endif ++ ++ + static const char* hex_tab = "0123456789abcdef"; + + /** +@@ -146,7 +157,7 @@ static void push_asn1_string(lua_State* L, ASN1_STRING *string, int encode) + } + switch (encode) { + case LSEC_AI5_STRING: +- lua_pushlstring(L, (char*)ASN1_STRING_data(string), ++ lua_pushlstring(L, (char*)LSEC_ASN1_STRING_data(string), + ASN1_STRING_length(string)); + break; + case LSEC_UTF8_STRING: +@@ -182,7 +193,7 @@ static void push_asn1_ip(lua_State *L, ASN1_STRING *string) + { + int af; + char dst[INET6_ADDRSTRLEN]; +- unsigned char *ip = ASN1_STRING_data(string); ++ unsigned char *ip = (unsigned char*)LSEC_ASN1_STRING_data(string); + switch(ASN1_STRING_length(string)) { + case 4: + af = AF_INET; +@@ -293,11 +304,11 @@ int meth_extensions(lua_State* L) + break; + + /* Push ret[oid] */ +- push_asn1_objname(L, extension->object, 1); ++ push_asn1_objname(L, X509_EXTENSION_get_object(extension), 1); + push_subtable(L, -2); + + /* Set ret[oid].name = name */ +- push_asn1_objname(L, extension->object, 0); ++ push_asn1_objname(L, X509_EXTENSION_get_object(extension), 0); + lua_setfield(L, -2, "name"); + + n_general_names = sk_GENERAL_NAME_num(values); +@@ -404,7 +415,7 @@ static int meth_pubkey(lua_State* L) + bytes = BIO_get_mem_data(bio, &data); + if (bytes > 0) { + lua_pushlstring(L, data, bytes); +- switch(EVP_PKEY_type(pkey->type)) { ++ switch(EVP_PKEY_base_id(pkey)) { + case EVP_PKEY_RSA: + lua_pushstring(L, "RSA"); + break; diff --git a/lua-sec.spec b/lua-sec.spec index fbb23c7..6b91a65 100644 --- a/lua-sec.spec +++ b/lua-sec.spec @@ -19,15 +19,15 @@ %global real_name luasec Name: lua-sec -Version: 0.5 -Release: 7%{?dist} +Version: 0.6 +Release: 1%{?dist} Summary: Lua binding for OpenSSL library Group: Development/Libraries License: MIT URL: https://github.com/brunoos/luasec Source0: https://github.com/brunoos/luasec/archive/%{real_name}-%{version}.tar.gz -Patch0: lua-sec-0.4.1-fix-Makefile.patch +Patch0: lua-sec-0.6-openssl_110.patch BuildRequires: lua-devel BuildRequires: openssl-devel @@ -59,7 +59,9 @@ session between the peers. %prep %setup -q -n %{real_name}-%{real_name}-%{version} -%patch0 -p1 -b .fixMakefile +%patch0 -p1 -b .openssl_110 + +sed -e 's/^\t@/\t/' -i Makefile src/Makefile for file in CHANGELOG LICENSE; do iconv -f ISO-8859-1 -t UTF-8 -o $file.new $file && \ @@ -110,7 +112,9 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) -%doc CHANGELOG LICENSE +%{!?_licensedir:%global license %%doc} +%license LICENSE +%doc CHANGELOG %{lualibdir}/ssl.so %{luapkgdir}/ssl.lua %dir %{luapkgdir}/ssl @@ -119,7 +123,9 @@ rm -rf $RPM_BUILD_ROOT %if 0%{?fedora} >= 20 %files compat %defattr(-,root,root,-) -%doc CHANGELOG LICENSE +%{!?_licensedir:%global license %%doc} +%license LICENSE +%doc CHANGELOG %{luacompatlibdir}/ssl.so %{luacompatpkgdir}/ssl.lua %dir %{luacompatpkgdir}/ssl @@ -127,6 +133,9 @@ rm -rf $RPM_BUILD_ROOT %endif %changelog +* Sat Feb 18 2017 Robert Scheck 0.6-1 +- Upgrade to 0.6 (#1423914) + * Fri Feb 10 2017 Fedora Release Engineering - 0.5-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild diff --git a/sources b/sources index a6bb2ca..1082233 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -0518f4524f399f33424c6f450e1d06db luasec-0.5.tar.gz +SHA512 (luasec-0.6.tar.gz) = f7004a329153d0126a3ea27b4986e9d83fb8f2de9c5c2f0c96427c50cc42e1252c69fd8cc69e2e8d423745d2dbfdb5a781b609938f7f502c7aedeb99fd0778cd