[arch-commits] Commit in nageru/trunk (PKGBUILD luajit-patch.patch)

Morten Linderud foxboron at archlinux.org
Sat Jul 13 13:14:54 UTC 2019


    Date: Saturday, July 13, 2019 @ 13:14:54
  Author: foxboron
Revision: 489357

upgpkg: nageru 1.8.6-1

Added:
  nageru/trunk/PKGBUILD
  nageru/trunk/luajit-patch.patch

--------------------+
 PKGBUILD           |   40 ++++++++++++++++++
 luajit-patch.patch |  113 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 153 insertions(+)

Added: PKGBUILD
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2019-07-13 13:14:54 UTC (rev 489357)
@@ -0,0 +1,40 @@
+# Maintainer: Morten Linderd <morten at linderud.pw>
+
+pkgname=nageru
+pkgver=1.8.6
+pkgrel=1
+pkgdesc="live video mixer, based around the standard M/E workflow."
+arch=(x86_64)
+url="https://nageru.sesse.net/"
+license=('GPL3')
+depends=('libmicrohttpd' 'ffmpeg' 'libx264' 'protobuf' 
+         'movit' 'bmusb' 'qcustomplot' 'pciutils' 'zita-resampler'
+         'sqlite3' 'luajit' 'cmake')
+makedepends=('meson' 'eigen')
+source=("https://nageru.sesse.net/nageru-${pkgver}.tar.gz"
+        "luajit-patch.patch")
+sha256sums=('67dcb070a23589f624d7067c4b09fe11faa9b1c756b884c50473545fdf7817b3'
+            '480c4de61188684fc8d1727a2e3ec615d33892234e8466db8011589e9277bdf7')
+
+prepare() {
+    cd "$pkgname-$pkgver"
+    patch -Np1 -i "${srcdir}/luajit-patch.patch"
+}
+
+build() {
+  cd "$pkgname-$pkgver"
+  arch-meson ../build
+  ninja -v -C ../build
+}
+
+check() {
+  cd "$pkgname-$pkgver"
+  ninja -C ../build test
+}
+
+package() {
+  cd "$pkgname-$pkgver"
+  DESTDIR="$pkgdir" ninja -C ../build install
+}
+
+# vim:set ts=2 sw=2 et:

Added: luajit-patch.patch
===================================================================
--- luajit-patch.patch	                        (rev 0)
+++ luajit-patch.patch	2019-07-13 13:14:54 UTC (rev 489357)
@@ -0,0 +1,113 @@
+diff --git a/README b/README
+index ed86214..86eb42a 100644
+--- a/README
++++ b/README
+@@ -70,7 +70,7 @@ Nageru currently needs:
+  - libzita-resampler, for resampling sound sources so that they are in sync
+    between sources, and also for oversampling for the peak meter.
+ 
+- - LuaJIT, for driving the theme engine. You will need at least version 2.1.
++ - LuaJIT, for driving the theme engine.
+ 
+  - libjpeg, for encoding MJPEG streams when VA-API JPEG support is not
+    available.
+@@ -257,3 +257,27 @@ SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+ FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
++
++
++Marked parts of theme.cpp (Lua shims):
++
++The MIT License (MIT)
++
++Copyright (c) 2013 Hisham Muhammad
++
++Permission is hereby granted, free of charge, to any person obtaining a copy of
++this software and associated documentation files (the "Software"), to deal in
++the Software without restriction, including without limitation the rights to
++use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
++the Software, and to permit persons to whom the Software is furnished to do so,
++subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in all
++copies or substantial portions of the Software.
++
++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
++FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
++COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
++IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+diff --git a/nageru/theme.cpp b/nageru/theme.cpp
+index dc73c2c..43174fa 100644
+--- a/nageru/theme.cpp
++++ b/nageru/theme.cpp
+@@ -41,6 +41,67 @@
+ #include "pbo_frame_allocator.h"
+ #include "scene.h"
+ 
++#if !defined LUA_VERSION_NUM || LUA_VERSION_NUM==501
++
++// Compatibility shims for LuaJIT 2.0 (LuaJIT 2.1 implements the entire Lua 5.2 API).
++// Adapted from https://github.com/keplerproject/lua-compat-5.2/blob/master/c-api/compat-5.2.c
++// and licensed as follows:
++//
++// The MIT License (MIT)
++//
++// Copyright (c) 2013 Hisham Muhammad
++//
++// Permission is hereby granted, free of charge, to any person obtaining a copy of
++// this software and associated documentation files (the "Software"), to deal in
++// the Software without restriction, including without limitation the rights to
++// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
++// the Software, and to permit persons to whom the Software is furnished to do so,
++// subject to the following conditions:
++//
++// The above copyright notice and this permission notice shall be included in all
++// copies or substantial portions of the Software.
++//
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
++// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
++// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
++// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++
++/*
++** Adapted from Lua 5.2.0
++*/
++void luaL_setfuncs(lua_State *L, const luaL_Reg *l, int nup) {
++	luaL_checkstack(L, nup+1, "too many upvalues");
++	for (; l->name != NULL; l++) {  /* fill the table with given functions */
++		int i;
++		lua_pushstring(L, l->name);
++		for (i = 0; i < nup; i++)  /* copy upvalues to the top */
++			lua_pushvalue(L, -(nup + 1));
++		lua_pushcclosure(L, l->func, nup);  /* closure with those upvalues */
++		lua_settable(L, -(nup + 3)); /* table must be below the upvalues, the name and the closure */
++	}
++	lua_pop(L, nup);  /* remove upvalues */
++}
++
++void *luaL_testudata(lua_State *L, int i, const char *tname) {
++	void *p = lua_touserdata(L, i);
++	luaL_checkstack(L, 2, "not enough stack slots");
++	if (p == NULL || !lua_getmetatable(L, i))
++		return NULL;
++	else {
++		int res = 0;
++		luaL_getmetatable(L, tname);
++		res = lua_rawequal(L, -1, -2);
++		lua_pop(L, 2);
++		if (!res)
++			p = NULL;
++	}
++	return p;
++}
++
++#endif
++
+ class Mixer;
+ 
+ namespace movit {


More information about the arch-commits mailing list