commit:     2b5021931af5a2e8eafa31dc0d503ba3ce50dfd2
Author:     Jocelyn-MAYER <l_indien <AT> mailmagic <DOT> fr>
AuthorDate: Thu Dec 29 17:28:00 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Dec 29 18:21:30 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2b502193

media-libs/libquvi: support luajit and lua5.4

libquvi used to build only with lua version 5.1
- the configure.ac file is to be patched in order to be able to build with 
luajit
- the second patch allow build with lua version 5.4

Closes: https://bugs.gentoo.org/504876
Signed-off-by: Jocelyn-MAYER <l_indien <AT> mailmagic.fr>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/libquvi-0.9.4-luaL_setfuncs_ver.patch    | 70 ++++++++++++++++++++++
 .../libquvi/files/libquvi-0.9.4-luajit.patch       | 15 +++++
 media-libs/libquvi/libquvi-0.9.4-r101.ebuild       | 69 +++++++++++++++++++++
 3 files changed, 154 insertions(+)

diff --git a/media-libs/libquvi/files/libquvi-0.9.4-luaL_setfuncs_ver.patch 
b/media-libs/libquvi/files/libquvi-0.9.4-luaL_setfuncs_ver.patch
new file mode 100644
index 000000000000..156468b0e7b1
--- /dev/null
+++ b/media-libs/libquvi/files/libquvi-0.9.4-luaL_setfuncs_ver.patch
@@ -0,0 +1,70 @@
+--- libquvi-0.9.4/src/lua/init.c       2013-11-04 13:55:26.000000000 +0100
++++ libquvi-0.9.4/src/lua/init.c       2022-12-29 09:25:41.579621070 +0100
+@@ -43,11 +43,19 @@ static const luaL_Reg quvi_reg_meth[] =
+ 
+ static const luaL_Reg quvi_http_reg_meth[] =
+ {
++#if (LUA_VERSION_NUM == 501)
+   {"metainfo", l_quvi_http_metainfo},
+   {"resolve", l_quvi_http_resolve},
+   {"cookie", l_quvi_http_cookie},
+   {"header", l_quvi_http_header},
+   {"fetch", l_quvi_http_fetch},
++#elif (LUA_VERSION_NUM >= 504)
++  {"quvi.http.metainfo", l_quvi_http_metainfo},
++  {"quvi.http.resolve", l_quvi_http_resolve},
++  {"quvi.http.cookie", l_quvi_http_cookie},
++  {"quvi.http.header", l_quvi_http_header},
++  {"quvi.http.fetch", l_quvi_http_fetch},
++#endif
+   {NULL, NULL}
+ };
+ 
+@@ -57,9 +65,15 @@ extern gint l_quvi_crypto_hash(lua_State
+ 
+ static const luaL_Reg quvi_crypto_reg_meth[] =
+ {
++#if (LUA_VERSION_NUM == 501)
+   {"encrypt", l_quvi_crypto_encrypt},
+   {"decrypt", l_quvi_crypto_decrypt},
+   {"hash",    l_quvi_crypto_hash},
++#elif (LUA_VERSION_NUM >= 504)
++  {"quvi.crypto.encrypt", l_quvi_crypto_encrypt},
++  {"quvi.crypto.decrypt", l_quvi_crypto_decrypt},
++  {"quvi.crypto.hash",    l_quvi_crypto_hash},
++#endif
+   {NULL, NULL}
+ };
+ 
+@@ -68,8 +82,13 @@ extern gint l_quvi_base64_decode(lua_Sta
+ 
+ static const luaL_Reg quvi_base64_reg_meth[] =
+ {
++#if (LUA_VERSION_NUM == 501)
+   {"encode",    l_quvi_base64_encode},
+   {"decode",    l_quvi_base64_decode},
++#elif (LUA_VERSION_NUM >= 504)
++  {"quvi.base64.encode",    l_quvi_base64_encode},
++  {"quvi.base64.decode",    l_quvi_base64_decode},
++#endif
+   {NULL, NULL}
+ };
+ 
+@@ -80,10 +99,17 @@ QuviError l_init(_quvi_t q)
+     return (QUVI_ERROR_LUA_INIT);
+ 
+   luaL_openlibs(q->handle.lua);
++#if (LUA_VERSION_NUM == 501)
+   luaL_register(q->handle.lua, "quvi", quvi_reg_meth);
+   luaL_register(q->handle.lua, "quvi.http", quvi_http_reg_meth);
+   luaL_register(q->handle.lua, "quvi.crypto", quvi_crypto_reg_meth);
+   luaL_register(q->handle.lua, "quvi.base64", quvi_base64_reg_meth);
++#elif (LUA_VERSION_NUM >= 504)
++  luaL_newlib(q->handle.lua, quvi_reg_meth);
++  luaL_newlib(q->handle.lua, quvi_http_reg_meth);
++  luaL_newlib(q->handle.lua, quvi_crypto_reg_meth);
++  luaL_newlib(q->handle.lua, quvi_base64_reg_meth);
++#endif
+ 
+   return (QUVI_OK);
+ }

diff --git a/media-libs/libquvi/files/libquvi-0.9.4-luajit.patch 
b/media-libs/libquvi/files/libquvi-0.9.4-luajit.patch
new file mode 100644
index 000000000000..dd4dc58238c9
--- /dev/null
+++ b/media-libs/libquvi/files/libquvi-0.9.4-luajit.patch
@@ -0,0 +1,15 @@
+--- libquvi-0.9.4/configure.ac 2021-10-20 13:44:09.834182117 +0200
++++ libquvi-0.9.4/configure.ac 2021-10-20 13:46:23.611188250 +0200
+@@ -85,7 +85,9 @@ AC_SUBST([VALGRIND])
+ PKG_CHECK_MODULES([liblua], [lua >= 5.1], [], [
+   PKG_CHECK_MODULES([liblua], [lua51 >= 5.1], [], [
+     PKG_CHECK_MODULES([liblua], [lua5.1 >= 5.1], [], [
+-      PKG_CHECK_MODULES(liblua, [lua-5.1 >= 5.1])])
++      PKG_CHECK_MODULES([liblua], [lua-5.1 >= 5.1], [], [
++        PKG_CHECK_MODULES(liblua, [luajit])])
++    ])
+   ])
+ ])
+ PKG_CHECK_MODULES([libproxy], [libproxy-1.0 >= 0.3.1])
+
+

diff --git a/media-libs/libquvi/libquvi-0.9.4-r101.ebuild 
b/media-libs/libquvi/libquvi-0.9.4-r101.ebuild
new file mode 100644
index 000000000000..e6500141edd7
--- /dev/null
+++ b/media-libs/libquvi/libquvi-0.9.4-r101.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+LUA_COMPAT=( lua5-1 )
+LUA_REQ_USE="deprecated"
+
+inherit autotools lua-single
+
+DESCRIPTION="Library for parsing video download links"
+HOMEPAGE="http://quvi.sourceforge.net/";
+SRC_URI="mirror://sourceforge/quvi/${PV:0:3}/${P}.tar.xz"
+
+LICENSE="AGPL-3"
+SLOT="0/8" # subslot = libquvi soname version
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
+IUSE="examples nls static-libs"
+
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+
+RDEPEND="
+       ${LUA_DEPS}
+       >=dev-libs/glib-2.34.3:2
+       >=dev-libs/libgcrypt-1.5.3:0=
+       >=media-libs/libquvi-scripts-0.9.20130903[${LUA_SINGLE_USEDEP}]
+       !<media-libs/quvi-0.4.0
+       >=net-libs/libproxy-0.4.11-r1
+       >=net-misc/curl-7.36.0
+       nls? ( >=virtual/libintl-0-r1 )
+"
+
+DEPEND="${RDEPEND}"
+
+BDEPEND="
+       app-arch/xz-utils
+       virtual/pkgconfig
+       nls? ( sys-devel/gettext )
+"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-0.9.1-headers-reinstall.patch
+       "${FILESDIR}"/${PN}-0.9.4-autoconf-2.70.patch #749816
+       "${FILESDIR}"/${PN}-0.9.4-luajit.patch            # 504876
+       "${FILESDIR}"/${PN}-0.9.4-luaL_setfuncs_ver.patch # 504876
+)
+
+src_prepare() {
+       default
+       eautoreconf
+}
+
+src_configure() {
+       local myeconfargs=(
+               $(use_enable nls)
+               --with-manual
+       )
+
+       econf "${myeconfargs[@]}"
+}
+
+src_install() {
+       default
+
+       einstalldocs
+       use examples && dodoc -r examples
+
+       find "${ED}" -name '*.la' -delete || die
+}

Reply via email to