From dd5888f02c9b16b53c4b5ce5fcb797fa9be8808b Mon Sep 17 00:00:00 2001 From: Robert Scheck Date: Jul 27 2019 17:09:33 +0000 Subject: Upgrade to 0.7 --- diff --git a/lua-sec-0.6-openssl_110.patch b/lua-sec-0.6-openssl_110.patch deleted file mode 100644 index 52baaa8..0000000 --- a/lua-sec-0.6-openssl_110.patch +++ /dev/null @@ -1,184 +0,0 @@ -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 c2f3720..044cebd 100644 --- a/lua-sec.spec +++ b/lua-sec.spec @@ -1,43 +1,28 @@ -%if 0%{?fedora} >= 22 -%define luaver 5.3 -%else -%if 0%{?fedora} >= 20 || 0%{?rhel} > 7 -%define luaver 5.2 -%else -%define luaver 5.1 -%endif -%endif - -%define luacompatver 5.1 -%define luacompatlibdir %{_libdir}/lua/%{luacompatver} -%define luacompatpkgdir %{_datadir}/lua/%{luacompatver} -%define lua51dir %{_builddir}/lua51-%{name}-%{version}-%{release} - -%global lualibdir %{_libdir}/lua/%{luaver} -%global luapkgdir %{_datadir}/lua/%{luaver} +%{!?lua_version: %global lua_version %{lua: print(string.sub(_VERSION, 5))}} +%{!?lua_libdir: %global lua_libdir %{_libdir}/lua/%{lua_version}} +%{!?lua_pkgdir: %global lua_pkgdir %{_datadir}/lua/%{lua_version}} -%global real_name luasec +%{!?lua_compat_version: %global lua_compat_version 5.1} +%{!?lua_compat_libdir: %global lua_compat_libdir %{_libdir}/lua/%{lua_compat_version}} +%{!?lua_compat_pkgdir: %global lua_compat_pkgdir %{_datadir}/lua/%{lua_compat_version}} +%{!?lua_compat_builddir: %global lua_compat_builddir %{_builddir}/compat-lua-%{name}-%{version}-%{release}} -Name: lua-sec -Version: 0.6 -Release: 7%{?dist} Summary: Lua binding for OpenSSL library - +Name: lua-sec +Version: 0.7 +Release: 1%{?dist} License: MIT URL: https://github.com/brunoos/luasec -Source0: https://github.com/brunoos/luasec/archive/%{real_name}-%{version}.tar.gz -Patch0: lua-sec-0.6-openssl_110.patch - -BuildRequires: gcc -BuildRequires: lua-devel -BuildRequires: openssl-devel -Requires: lua-socket +Source0: https://github.com/brunoos/luasec/archive/luasec-%{version}.tar.gz %if 0%{?fedora} >= 16 || 0%{?rhel} >= 7 -Requires: lua(abi) = %{luaver} +Requires: lua(abi) = %{lua_version} %else -Requires: lua >= %{luaver} +Requires: lua >= %{lua_version} %endif - +Requires: lua-socket +BuildRequires: gcc +BuildRequires: lua-devel +BuildRequires: openssl-devel %description Lua binding for OpenSSL library to provide TLS/SSL communication. @@ -45,87 +30,78 @@ It takes an already established TCP connection and creates a secure session between the peers. %if 0%{?fedora} >= 20 -%package compat -Summary: Lua 5.1 binding for OpenSSL library -BuildRequires: compat-lua >= %{luacompatver}, compat-lua-devel >= %{luacompatver} - -%description compat -Lua 5.1 binding for OpenSSL library to provide TLS/SSL communication. +%package -n lua%{lua_compat_version}-sec +Summary: Lua %{lua_compat_version} binding for OpenSSL library +Obsoletes: lua-sec-compat < 0.7 +Provides: lua-sec-compat = %{version}-%{release} +Provides: lua-sec-compat%{?_isa} = %{version}-%{release} +Requires: lua(abi) = %{lua_compat_version} +BuildRequires: compat-lua-devel >= %{lua_compat_version} + +%description -n lua%{lua_compat_version}-sec +Lua %{lua_compat_version} binding for OpenSSL library to provide TLS/SSL communication. It takes an already established TCP connection and creates a secure session between the peers. %endif %prep -%setup -q -n %{real_name}-%{real_name}-%{version} -%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 && \ - touch -r $file $file.new && \ - mv $file.new $file -done +%setup -q -n luasec-luasec-%{version} %if 0%{?fedora} >= 20 -rm -rf %{lua51dir} -cp -a . %{lua51dir} +rm -rf %{lua_compat_builddir} +cp -a . %{lua_compat_builddir} %endif %build -make %{?_smp_mflags} CFLAGS="$RPM_OPT_FLAGS -fPIC -I. -I%{_includedir} -DWITH_LUASOCKET -DLUASOCKET_DEBUG -DLUA_COMPAT_APIINTCASTS" \ - LD="gcc -shared" LDFLAGS="-O -fPIC -shared -L./luasocket" \ - linux +%make_build linux \ + CFLAGS="$RPM_OPT_FLAGS -fPIC -I. -I%{_includedir} -DWITH_LUASOCKET -DLUASOCKET_DEBUG -DLUA_COMPAT_APIINTCASTS" \ + LD="gcc -shared" LDFLAGS="-fPIC -shared -L./luasocket $RPM_LD_FLAGS" %if 0%{?fedora} >= 20 -pushd %{lua51dir} -make %{?_smp_mflags} CFLAGS="$RPM_OPT_FLAGS -fPIC -I. -I%{_includedir}/lua-%{luacompatver} -DWITH_LUASOCKET -DLUASOCKET_DEBUG -DLUA_COMPAT_APIINTCASTS" \ - LD="gcc -shared" LDFLAGS="-O -fPIC -shared -L./luasocket" \ - linux +pushd %{lua_compat_builddir} +%make_build linux \ + CFLAGS="$RPM_OPT_FLAGS -fPIC -I. -I%{_includedir}/lua-%{lua_compat_version} -DWITH_LUASOCKET -DLUASOCKET_DEBUG -DLUA_COMPAT_APIINTCASTS" \ + LD="gcc -shared" LDFLAGS="-fPIC -shared -L./luasocket $RPM_LD_FLAGS" popd %endif %install -rm -rf $RPM_BUILD_ROOT -mkdir -p $RPM_BUILD_ROOT%{luapkgdir} -mkdir -p $RPM_BUILD_ROOT%{lualibdir} -make install DESTDIR=$RPM_BUILD_ROOT \ - CFLAGS="$RPM_OPT_FLAGS -fPIC -I. -I%{_includedir}/lua-%{luaver} -DWITH_LUASOCKET -DLUASOCKET_DEBUG -DLUA_COMPAT_APIINTCASTS" \ - LUAPATH=%{luapkgdir} \ - LUACPATH=%{lualibdir} +%make_install \ + CFLAGS="$RPM_OPT_FLAGS -fPIC -I. -I%{_includedir} -DWITH_LUASOCKET -DLUASOCKET_DEBUG -DLUA_COMPAT_APIINTCASTS" \ + LD="gcc -shared" LDFLAGS="-fPIC -shared -L./luasocket $RPM_LD_FLAGS" \ + LUAPATH=%{lua_pkgdir} LUACPATH=%{lua_libdir} %if 0%{?fedora} >= 20 -pushd %{lua51dir} -mkdir -p $RPM_BUILD_ROOT%{luacompatpkgdir} -mkdir -p $RPM_BUILD_ROOT%{luacompatlibdir} -make install DESTDIR=$RPM_BUILD_ROOT \ - CFLAGS="$RPM_OPT_FLAGS -fPIC -I. -I%{_includedir}/lua-%{luacompatver} -DWITH_LUASOCKET -DLUASOCKET_DEBUG -DLUA_COMPAT_APIINTCASTS" \ - LUAPATH=%{luacompatpkgdir} \ - LUACPATH=%{luacompatlibdir} +pushd %{lua_compat_builddir} +%make_install \ + CFLAGS="$RPM_OPT_FLAGS -fPIC -I. -I%{_includedir}/lua-%{lua_compat_version} -DWITH_LUASOCKET -DLUASOCKET_DEBUG -DLUA_COMPAT_APIINTCASTS" \ + LD="gcc -shared" LDFLAGS="-fPIC -shared -L./luasocket $RPM_LD_FLAGS" \ + LUAPATH=%{lua_compat_pkgdir} LUACPATH=%{lua_compat_libdir} popd %endif %files -%{!?_licensedir:%global license %%doc} %license LICENSE %doc CHANGELOG -%{lualibdir}/ssl.so -%{luapkgdir}/ssl.lua -%dir %{luapkgdir}/ssl -%{luapkgdir}/ssl/* +%{lua_libdir}/ssl.so +%{lua_pkgdir}/ssl.lua +%dir %{lua_pkgdir}/ssl +%{lua_pkgdir}/ssl/*.lua %if 0%{?fedora} >= 20 -%files compat -%{!?_licensedir:%global license %%doc} +%files -n lua%{lua_compat_version}-sec %license LICENSE %doc CHANGELOG -%{luacompatlibdir}/ssl.so -%{luacompatpkgdir}/ssl.lua -%dir %{luacompatpkgdir}/ssl -%{luacompatpkgdir}/ssl/* +%{lua_compat_libdir}/ssl.so +%{lua_compat_pkgdir}/ssl.lua +%dir %{lua_compat_pkgdir}/ssl +%{lua_compat_pkgdir}/ssl/*.lua %endif %changelog +* Fri Jul 26 2019 Robert Scheck 0.7-1 +- Upgrade to 0.7 + * Thu Jul 25 2019 Fedora Release Engineering - 0.6-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild diff --git a/sources b/sources index 1082233..42c8245 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (luasec-0.6.tar.gz) = f7004a329153d0126a3ea27b4986e9d83fb8f2de9c5c2f0c96427c50cc42e1252c69fd8cc69e2e8d423745d2dbfdb5a781b609938f7f502c7aedeb99fd0778cd +SHA512 (luasec-0.7.tar.gz) = 6adf5241aa5a0d92c9dd7fc7f7e426969475548f47979ccc28187471b3bad4132c215de6da1f471d21b05c6558d36309264512c9c4ac70a53d6f6e204cac1358