aboutsummaryrefslogtreecommitdiffstats
path: root/main/awall
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2017-05-10 20:12:41 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2017-05-10 20:15:54 +0000
commit68b71ed4763394715599c8d812f85cc6974eb89f (patch)
tree3830102c0379b7a02a81a5be64a66e6aa9b3d7b2 /main/awall
parentfcb859f95a434a01352bb86e4233ef0b3c3e50e5 (diff)
downloadaports-68b71ed4763394715599c8d812f85cc6974eb89f.tar.bz2
aports-68b71ed4763394715599c8d812f85cc6974eb89f.tar.xz
main/awall: use lua5.2 and backport yaml/toml support
we use lua5.2 dependencies. that way we dont pull in more packages than needed.
Diffstat (limited to 'main/awall')
-rw-r--r--main/awall/APKBUILD19
-rw-r--r--main/awall/yaml-toml-support.patch69
2 files changed, 81 insertions, 7 deletions
diff --git a/main/awall/APKBUILD b/main/awall/APKBUILD
index 539a3551bc..f14a43533e 100644
--- a/main/awall/APKBUILD
+++ b/main/awall/APKBUILD
@@ -2,17 +2,20 @@
# Maintainer: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
pkgname=awall
pkgver=1.4.2
-pkgrel=0
+pkgrel=1
pkgdesc="Alpine Wall"
url="http://git.alpinelinux.org/cgit/awall/"
+_luaver=5.2
arch="noarch"
license="GPL2"
replaces="awall-nat"
-depends="bind-tools ip6tables ipset iptables lua lua-alt-getopt lua-cjson
- lua-pc lua-posix lua-stringy xtables-addons"
+depends="bind-tools ip6tables ipset iptables lua$_luaver lua$_luaver-alt-getopt lua$_luaver-cjson
+ lua$_luaver-pc lua$_luaver-posix lua$_luaver-stringy xtables-addons"
subpackages=$pkgname-masquerade
triggers="$pkgname.trigger=/usr/share/awall"
-source="http://dev.alpinelinux.org/archive/awall/awall-$pkgver.tar.xz"
+source="http://dev.alpinelinux.org/archive/awall/awall-$pkgver.tar.xz
+ yaml-toml-support.patch
+ "
_builddir=$srcdir/awall-$pkgver
prepare() {
@@ -25,22 +28,24 @@ prepare() {
}
build() {
+ sed -i -e "1,1s:lua:lua$_luaver:" awall-cli
return 0
}
package() {
cd "$_builddir"
- make "ROOT_DIR=$pkgdir" install
+ make "ROOT_DIR=$pkgdir" LUA_VERSION=$_luaver install
}
masquerade() {
depends=awall
cd "$_builddir"
- for file in lua/5.1/awall/modules/masquerade.lua awall/mandatory/masquerade.json; do
+ for file in lua/$_luaver/awall/modules/masquerade.lua awall/mandatory/masquerade.json; do
local path=usr/share/$file
install -d "$subpkgdir/$(dirname $path)"
mv "$pkgdir/$path" "$subpkgdir/$path"
done
}
-sha512sums="1c58c6c9ecc9394bb5f19338224edb5eeff82d5139a78ede85ab04fbd35be21e3fd7f7c8fd5938460a754113372cb3f39c02d9e551dda84450c4515a856a21cd awall-1.4.2.tar.xz"
+sha512sums="1c58c6c9ecc9394bb5f19338224edb5eeff82d5139a78ede85ab04fbd35be21e3fd7f7c8fd5938460a754113372cb3f39c02d9e551dda84450c4515a856a21cd awall-1.4.2.tar.xz
+a76d0b2decd6277b3b723d874de7aaa1a9e9b444e025307fbfa8ef4b97cb98a53c44dfcb5f15bcd649e0a849e07ecd85f9d3ee10e9d259ecdc68324fc53cc20a yaml-toml-support.patch"
diff --git a/main/awall/yaml-toml-support.patch b/main/awall/yaml-toml-support.patch
new file mode 100644
index 0000000000..6128f067fb
--- /dev/null
+++ b/main/awall/yaml-toml-support.patch
@@ -0,0 +1,69 @@
+From 463c4117d2c985b3e6d693508240fdf34272f22d Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Tue, 9 May 2017 14:48:24 +0200
+Subject: [PATCH] policy: add support for loading yaml and toml policies
+
+The lua modules for yaml and toml are optional, and will only be
+required if there are any *.yaml or *.toml files.
+---
+ awall/policy.lua | 17 ++++++++++++-----
+ 1 file changed, 12 insertions(+), 5 deletions(-)
+
+diff --git a/awall/policy.lua b/awall/policy.lua
+index 1509d3f..cb2c93a 100644
+--- a/awall/policy.lua
++++ b/awall/policy.lua
+@@ -17,7 +17,6 @@ local map = util.map
+ local printmsg = util.printmsg
+
+
+-local json = require('cjson')
+ local posix = require('posix')
+
+
+@@ -75,7 +74,7 @@ function Policy:load()
+ local data = file:read('*all')
+ file:close()
+
+- local success, res = pcall(json.decode, data)
++ local success, res = pcall(self.decode, data)
+ if success then return res end
+ raise(res..' while parsing '..self.path)
+ end
+@@ -109,14 +108,21 @@ local PolicySet = class()
+
+ function PolicySet:init(dirs)
+ local confdir = (dirs.mandatory or defdirs.mandatory)[1]
++ local decoder = {
++ json = { mod="cjson", func="decode" },
++ yaml = { mod="lyaml", func="load" },
++ toml = { mod="toml", func="parse" },
++ }
+ self.policies = {}
+
+ for i, cls in ipairs{'private', 'optional', 'mandatory'} do
+ for i, dir in ipairs(dirs[cls] or defdirs[cls]) do
+ for _, fname in ipairs(posix.dir(dir)) do
+- local si, ei, name = fname:find('^([%w-]+)%.json$')
+- if name then
++ local si, ei, name, suff = fname:find('^([%w-]+)%.([jyt][sao][om][nl])$') -- json|yaml|toml
++
++ if name and suff and decoder[suff] then
+ local pol = self.policies[name]
++ local decmod = require(decoder[suff].mod)
+
+ local path = dir..'/'..fname
+ if path:sub(1, 1) ~= '/' then
+@@ -141,7 +147,8 @@ function PolicySet:init(dirs)
+ path=path,
+ fname=fname,
+ loc=loc,
+- confdir=confdir
++ confdir=confdir,
++ decode=decmod[decoder[suff].func]
+ }
+ end
+ end
+--
+2.12.2
+