From 664ab287e76baeccff5ab7c556a477f08a42fec4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
Date: Sat, 10 May 2014 14:07:26 +0300
Subject: [PATCH] main/lua-pc: build for lua5.1 and lua5.2

---
 main/lua-pc/APKBUILD                | 64 ++++++++++++++++++++++++-----
 main/lua-pc/lpc-lua5.2-compat.patch | 41 ++++++++++++++++++
 2 files changed, 95 insertions(+), 10 deletions(-)
 create mode 100644 main/lua-pc/lpc-lua5.2-compat.patch

diff --git a/main/lua-pc/APKBUILD b/main/lua-pc/APKBUILD
index 20707585d10f..ee96cc1e7c22 100644
--- a/main/lua-pc/APKBUILD
+++ b/main/lua-pc/APKBUILD
@@ -1,25 +1,69 @@
 # Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+
+_luaversions="5.1 5.2"
+
 pkgname=lua-pc
 _name=lpc
 pkgver=1.0.0
-pkgrel=4
+pkgrel=5
 pkgdesc="Lua Process Call"
 url="https://github.com/LuaDist/lpc"
 arch="all"
 license="MIT/X11"
-makedepends="lua-dev"
-depends="lua"
-source="http://dev.alpinelinux.org/archive/lpc/lpc-$pkgver.tar.gz"
+makedepends=""
+depends="lua5.1-pc"
+source="http://dev.alpinelinux.org/archive/lpc/lpc-$pkgver.tar.gz
+	lpc-lua5.2-compat.patch
+	"
+
+for _i in $_luaversions; do
+	makedepends="$makedepends lua$_i-dev"
+	subpackages="$subpackages lua$_i-pc:_pc_${_i/./_}"
+done
+
+_builddir="$srcdir/$_name-$pkgver"
+
+prepare() {
+	cd "$_builddir"
+	for i in $source; do
+		case $i in
+                *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+                esac
+	done
+	for _i in $_luaversions; do
+		cp -r "$_builddir" "$srcdir"/build-$_i
+	done
+}
 
 build() {
-	cd "$srcdir/$_name-$pkgver"
-	make CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS -shared"
+	for _i in $_luaversions; do
+		cd "$srcdir"/build-$_i
+		make LUA_PKGCONF="lua$_i" \
+			CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS -shared" \
+			|| return 1
+	done
 }
 
 package() {
-	cd "$srcdir/$_name-$pkgver"
-	# does not respect DESTDIR
-	make install PREFIX="$pkgdir"/usr
+	mkdir -p "$pkgdir"
 }
 
-md5sums="a8cd8b0c190e7d72dd7ec2f76e74e3c8  lpc-1.0.0.tar.gz"
+_split_pc() {
+	local _ver=$1
+	pkgdesc="$pkgdesc for Lua $_ver"
+
+	mkdir -p "$subpkgdir"
+	cd "$srcdir"/build-$_ver
+	make install LUA_PKGCONF="lua$_ver" PREFIX="$subpkgdir"/usr
+}
+
+for _i in $_luaversions; do
+	eval "_pc_${_i/./_}() { _split_pc $_i; }"
+done
+
+md5sums="a8cd8b0c190e7d72dd7ec2f76e74e3c8  lpc-1.0.0.tar.gz
+7ef6e6439837a31ca4e9ea63c6a887b1  lpc-lua5.2-compat.patch"
+sha256sums="2fbbdfbbfa03a70792bb83655f3e1f990fcb972c55a074717ba417514261805c  lpc-1.0.0.tar.gz
+c495eafd855f964a95dfea16e0ca4670a2b92463ae4157136ed61f9802ba79f1  lpc-lua5.2-compat.patch"
+sha512sums="a955f802b9ea7c4615b8b22b1f4ab540d41e4ddb0edb5e1b77f2f2e1472c49248cb276f8bfec6b929d23ef01681a0018db6cbd401ade1cc1eb366b0a6ace9772  lpc-1.0.0.tar.gz
+ff731dd87ed4e9d4f0651747ed2d39a45cf6a637f279f4f9c40209f1b3ee54093a069e6d3adcf19399a07a3b32077fc15e73f35c908df32c3b8369b57af93f87  lpc-lua5.2-compat.patch"
diff --git a/main/lua-pc/lpc-lua5.2-compat.patch b/main/lua-pc/lpc-lua5.2-compat.patch
new file mode 100644
index 000000000000..17a9aaab4b65
--- /dev/null
+++ b/main/lua-pc/lpc-lua5.2-compat.patch
@@ -0,0 +1,41 @@
+diff -ru lpc-1.0.0.orig/Makefile lpc-1.0.0/Makefile
+--- lpc-1.0.0.orig/Makefile	2012-08-21 17:39:10.000000000 -0300
++++ lpc-1.0.0/Makefile	2014-05-10 13:52:18.833865486 -0300
+@@ -1,16 +1,20 @@
+-LUA_PREFIX = /usr/local/
+-PREFIX	= /usr/local/
++LUA_PKGCONF ?= lua
++
+ MODULE = lpc
+ VERSION = 1.0.0
+ 
+-INSTALL_PREFIX = $(PREFIX)/lib/lua/5.1/
++ifneq ($(shell pkg-config $(LUA_PKGCONF) || echo not-installed),)
++$(error $(LUA_PKGCONF).pc not found)
++endif
++
++INSTALL_PREFIX = $(PREFIX)$(shell pkg-config $(LUA_PKGCONF) --variable=INSTALL_CMOD)
+ 
+ CC	= gcc
+ TARGET	= lpc.so
+ OBJS	= lpc.o
+ LIBS	=
+-CFLAGS	= -I $(LUA_PREFIX)/include -fPIC
+-LDFLAGS	= -shared -fPIC
++CFLAGS	= $(shell pkg-config $(LUA_PKGCONF) --cflags) -fPIC
++LDFLAGS	= $(shell pkg-config $(LUA_PKGCONF) --libs) -shared -fPIC
+ 
+ default: $(TARGET)
+ 
+diff -ru lpc-1.0.0.orig/lpc.c lpc-1.0.0/lpc.c
+--- lpc-1.0.0.orig/lpc.c	2012-08-21 17:39:10.000000000 -0300
++++ lpc-1.0.0/lpc.c	2014-05-10 13:51:01.740949801 -0300
+@@ -192,7 +192,7 @@
+ 	lua_settable (L, -3);
+ }
+ 
+-static const struct luaL_reg lpclib[] =
++static const struct luaL_Reg lpclib[] =
+ {
+ 	{"run", lpc_run},
+ 	{"wait", lpc_wait},
-- 
GitLab