summaryrefslogtreecommitdiff
path: root/pkg/nsd/gen.lua
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2017-10-13 23:28:32 -0700
committerMichael Forney <mforney@mforney.org>2017-10-14 01:04:25 -0700
commit6c200af7986812602e94fd8ef7429277f1c32915 (patch)
tree8a10e88035a8652d7dc5f6f07e06619da9d730bb /pkg/nsd/gen.lua
parent45cb29c7061f720724965d39a3dc6711505b7f8a (diff)
Add nsd 4.1.17
Diffstat (limited to 'pkg/nsd/gen.lua')
-rw-r--r--pkg/nsd/gen.lua71
1 files changed, 71 insertions, 0 deletions
diff --git a/pkg/nsd/gen.lua b/pkg/nsd/gen.lua
new file mode 100644
index 00000000..773adffb
--- /dev/null
+++ b/pkg/nsd/gen.lua
@@ -0,0 +1,71 @@
+cflags{
+ '-Wall',
+ '-I $dir',
+ '-I pkg/openbsd/include',
+}
+
+lib('libcommon.a', [[
+ answer.c axfr.c buffer.c configlexer.c configparser.c dname.c dns.c
+ edns.c iterated_hash.c lookup3.c namedb.c nsec3.c options.c packet.c
+ query.c rbtree.c radtree.c rdata.c region-allocator.c rrl.c tsig.c
+ tsig-openssl.c udb.c udbradtree.c udbzone.c util.c
+ $builddir/pkg/openbsd/libbsd.a
+]])
+
+lib('libnsd.a', [[
+ dbaccess.c dbcreate.c difffile.c ipc.c mini_event.c netio.c server.c
+ zlexer.c zonec.c zparser.c
+ xfrd-disk.c xfrd-notify.c xfrd-tcp.c xfrd.c remote.c
+ libcommon.a.d
+]])
+
+exe('nsd', {'nsd.c', 'libnsd.a.d'})
+exe('nsd-checkconf', {'nsd-checkconf.c', 'libcommon.a.d'})
+exe('nsd-checkzone', {'nsd-checkzone.c', 'libnsd.a.d'})
+
+local cfg = {
+ logfile='/var/log/nsd.log', -- just used for man page example
+ chrootdir='',
+ ratelimit_default='on',
+}
+table.insert(pkg.inputs.gen, '$dir/config.h')
+for line in io.lines(pkg.dir..'/config.h') do
+ local var, val = line:match('^#define (%g+) "(%g+)"$')
+ if var then
+ cfg[var:lower()] = val
+ elseif line:find('^#define RATELIMIT') then
+ cfg.ratelimit = 'on'
+ elseif line:find('^#define RATELIMIT_DEFAULT_OFF') then
+ cfg.ratelimit_default = 'off'
+ end
+end
+local subst = {
+ '-e s,@configdir@,'..cfg.configdir..',g',
+ '-e s,@zonesdir@,'..cfg.zonesdir..',g',
+ '-e s,@chrootdir@,'..cfg.chrootdir..',g',
+ '-e s,@pidfile@,'..cfg.pidfile..',g',
+ '-e s,@logfile@,'..cfg.logfile..',g',
+ '-e s,@dbfile@,'..cfg.dbfile..',g',
+ '-e s,@xfrdir@,'..cfg.xfrdir..',g',
+ '-e s,@xfrdfile@,'..cfg.xfrdfile..',g',
+ '-e s,@zonelistfile@,'..cfg.zonelistfile..',g',
+ '-e s,@nsdconfigfile@,'..cfg.configfile..',g',
+ '-e s,@ratelimit_default@,'..cfg.ratelimit_default..',g',
+ '-e s,@user@,'..cfg.user..',g',
+}
+if not cfg.ratelimit then
+ table.insert(subst, '-e /rrlstart/,/rrlend/d')
+end
+set('subst', subst)
+local function substman(file)
+ build('sed', '$outdir/'..file, '$srcdir/'..file..'.in', {expr='$subst'})
+ man{'$outdir/'..file}
+end
+
+for _, cmd in ipairs{'nsd', 'nsd-checkconf', 'nsd-checkzone'} do
+ file('bin/'..cmd, '755', '$outdir/'..cmd)
+ substman(cmd..'.8')
+end
+substman('nsd.conf.5')
+
+fetch 'curl'