]> granicus.if.org Git - pdns/commitdiff
Re-do Lua detection
authorPieter Lexis <pieter.lexis@powerdns.com>
Wed, 4 Apr 2018 16:31:37 +0000 (18:31 +0200)
committerPieter Lexis <pieter.lexis@powerdns.com>
Thu, 5 Apr 2018 08:48:37 +0000 (10:48 +0200)
Detect LuaJIT first, then other implementations. Allows setting
`--with-lua` to a specific implementation as well (e.g. `lua51`). Will
produce errors appropriately.

Fixes #6423.

14 files changed:
build-scripts/build-auth-rpm
build-scripts/build-dnsdist-rpm
build-scripts/build-recursor-rpm
build-scripts/debian-authoritative/rules
build-scripts/debian-dnsdist/rules
build-scripts/debian-recursor/rules
configure.ac
m4/pdns_check_lua_hpp.m4
m4/pdns_with_lua.m4
m4/pdns_with_luajit.m4 [deleted file]
pdns/dnsdistdist/configure.ac
pdns/dnsdistdist/m4/pdns_with_luajit.m4 [deleted symlink]
pdns/recursordist/configure.ac
pdns/recursordist/m4/pdns_with_luajit.m4 [deleted symlink]

index 18c0d068b21615188344c00ac008085bea051f21..37b5693f4668e6099de96b082b339cc886a3402f 100755 (executable)
@@ -696,7 +696,7 @@ export CPPFLAGS="-DLDAP_DEPRECATED"
        --disable-dependency-tracking \
        --disable-silent-rules \
        --with-modules='' \
-       --with-luajit \
+       --with-lua=luajit \
        --with-dynmodules='%{backends} random' \
        --enable-tools \
        --enable-libsodium \
index 5a334628b38e3d631587265b13a7ed4ec9af01a5..118bf2e2b5c2effcd01c4c66a744dbf91e56e805 100755 (executable)
@@ -46,7 +46,7 @@ SNMP_CONFIGURE='--with-net-snmp \'
 
 # CentOS 6 has no luajit
 LUA_BUILDREQUIRES='BuildRequires: luajit-devel'
-LUA_CONFIGURE='--with-luajit \'
+LUA_CONFIGURE='--with-lua=luajit \'
 
 # These two are the same for sysv and systemd (we don't install defaults files at the moment)
 DEFAULTS_INSTALL=''
index b48aab951375f6e1bff25cb20c97c4e37dab6649..9247884161f2477e8f0ed2f377823a1c7789f080 100755 (executable)
@@ -237,7 +237,7 @@ package if you need a dns cache for your network.
        --with-protobuf \
        --enable-libsodium \
        --with-net-snmp \
-       --with-luajit \
+       --with-lua=luajit \
        --enable-systemd
 
 make %{?_smp_mflags}
index db29abecdac372d8536f33d9bb1f2650308b3df6..784721f9d8f5b6b5fc185bd87a4b7b015da367e8 100755 (executable)
@@ -52,7 +52,7 @@ override_dh_auto_configure:
                --with-modules="" \
                --enable-tools \
                --enable-unit-tests \
-               --with-luajit \
+               --with-lua=luajit \
                --enable-experimental-pkcs11 \
                $(ENABLE_SYSTEMD) \
                $(ENABLE_LIBSODIUM)
index cf0c6c704de71f11ff5fcc3004f3dc3bcf85c13a..db20fe94a7bd846e8ece02ba4bef7fb3256e5dee 100755 (executable)
@@ -65,7 +65,7 @@ override_dh_auto_configure:
          --libexecdir='$${prefix}/lib' \
          --with-protobuf=yes \
          --with-net-snmp \
-         --with-luajit \
+         --with-lua=luajit \
          $(ENABLE_SYSTEMD) \
          $(ENABLE_RE2) \
          $(ENABLE_LIBSODIUM)
index 02be156e55a5a7f9de3a7587430628bf455670a0..9cd1c5aaf243a1f6ce66de94f7f7413224c8dedc 100755 (executable)
@@ -62,7 +62,7 @@ override_dh_auto_configure:
                --infodir=\$${prefix}/share/info \
                --libdir='$${prefix}/lib/$(DEB_HOST_MULTIARCH)' \
                --libexecdir='$${prefix}/lib' \
-               --with-luajit \
+               --with-lua=luajit \
                --with-protobuf=yes \
                $(ENABLE_NETSNMP) \
                $(ENABLE_SYSTEMD) \
index 6f9258ae4d2b7e647b19562fc860156b14cfc3f3..bb89c9d4fd1cb4515aa1e6c751883eb5760b6259 100644 (file)
@@ -43,10 +43,7 @@ m4_pattern_forbid([^_?PKG_[A-Z_]+$], [*** pkg.m4 missing, please install pkg-con
 
 PDNS_CHECK_OS
 
-PDNS_WITH_LUAJIT
-AS_IF([test "x$with_luajit" = "xno"], [
-  PDNS_WITH_LUA
-])
+PDNS_WITH_LUA
 PDNS_CHECK_LUA_HPP
 
 AX_CXX_COMPILE_STDCXX_11
@@ -207,7 +204,7 @@ for a in $modules $dynmodules; do
       AS_IF([test "x$with_lua" = "xno"],
         AC_MSG_ERROR([Lua backend needs lua, run ./configure --with-lua])
       )
-      AS_IF([test "x$LUAPC" = "x" -a "x$LUAJITPC" = "x"],
+      AS_IF([test "x$LUAPC" = "x"],
         AC_MSG_ERROR([Lua backend needs lua but we cannot find it])
       )
       ;;
index 731715398483a65bc6a27b20de2ab0980e8c685f..64a3acc9e8555fa0af9a093e0925352bcd8c122b 100644 (file)
@@ -1,7 +1,6 @@
 AC_DEFUN([PDNS_CHECK_LUA_HPP],[
   AC_REQUIRE([PDNS_WITH_LUA])
-  AC_REQUIRE([PDNS_WITH_LUAJIT])
-  AS_IF([test "x$LUAPC" != "x" -o "x$LUAJITPC" != "x" ], [
+  AS_IF([test "x$LUAPC" != "x" ], [
     AC_CHECK_HEADER([lua.hpp], [ have_lua_hpp=y ])
   ])
   AM_CONDITIONAL([HAVE_LUA_HPP], [ test x"$have_lua_hpp" = "xy" ])
index 18bb1b9d8bd1a4469f1d24c09435e05836cf3b1a..50d8d40227ede766f821b48aedddfd18ee748c9a 100644 (file)
@@ -1,36 +1,51 @@
 AC_DEFUN([PDNS_WITH_LUA],[
-  AC_MSG_CHECKING([whether we will be linking in Lua])
-  AC_ARG_WITH([lua],
-    [AS_HELP_STRING([--with-lua], [build Lua Bindings @<:@default=auto@:>@])],
-    [with_lua=$withval],
-    [with_lua=auto]
-  )
+  AC_MSG_CHECKING([which Lua implementation to use])
+  AC_ARG_WITH([lua], [
+    AS_HELP_STRING([--with-lua], [select Lua implementation @<:@default=auto@:>@])
+  ], [
+    with_lua=$withval
+  ], [
+    with_lua=auto
+  ])
   AC_MSG_RESULT([$with_lua])
 
-  AS_IF([test "x$with_lua" != "xno"],[
-    AS_IF([test "x$with_lua" = "xyes" -o "x$with_lua" = "xauto"],
-      [for LUAPC in lua5.3 lua-5.3 lua53 lua5.2 lua-5.2 lua52 lua5.1 lua-5.1 lua51 lua; do
-         PKG_CHECK_MODULES([LUA], $LUAPC >= 5.1, [
-           AC_DEFINE([HAVE_LUA], [1], [Define to 1 if you have lua])
-           with_lua=yes
-         ], [LUAPC=""]) # otherwise pkg_check will fail
-         if test "x$LUA_LIBS" != "x"; then break; fi
-       done
-      ],
-      [LUAPC="$with_lua"
-        PKG_CHECK_MODULES([LUA], $LUAPC >= 5.1, [
-          AC_DEFINE([HAVE_LUA], [1], [Define to 1 if you have lua])
-          with_lua=yes
+  AS_IF([test "x$with_lua" = "xno" -a "$1" = "mandatory"], [
+    AC_MSG_ERROR([--without-lua specified, but Lua is not optional])
+  ])
+
+  LUAPC=""
+
+  AS_IF([test "x$with_lua" != "xno"], [
+    AS_IF([test "x$with_lua" != "xauto"], [
+      PKG_CHECK_MODULES([LUA], $with_lua >= 5.1, [
+        AC_DEFINE([HAVE_LUA], [1], [Define to 1 if you have Lua])
+        LUAPC=$with_lua
+      ], [
+        AC_MSG_ERROR([Selected Lua not found])
+      ])
+    ], [
+      PKG_CHECK_MODULES([LUA], [luajit], [
+        LUAPC=luajit
+        AC_DEFINE([HAVE_LUA], [1], [Define to 1 if you have Lua])
+      ], [ : ])
+      AS_IF([test -z "$LUAPC"], [
+        found_lua=n
+        m4_foreach_w([luapc], [lua5.3 lua-5.3 lua53 lua5.2 lua-5.2 lua52 lua5.1 lua-5.1 lua51 lua], [
+          AS_IF([test "$found_lua" != "y"], [
+            PKG_CHECK_MODULES([LUA], [luapc >= 5.1], [
+              AC_DEFINE([HAVE_LUA], [1], [Define to 1 if you have lua])
+              found_lua=y
+              LUAPC=luapc
+            ], [ : ])
+          ])
         ])
-    ])
-    AC_MSG_CHECKING([for chosen LUA])
-    AS_IF([test "x$LUAPC" = "x"], [
-      AS_IF([test "x$with_lua" = "xyes"],
-        [AC_MSG_ERROR([cannot find lua])],
-        [AC_MSG_RESULT([not found])]
-      )],[
-        AC_MSG_RESULT([$LUAPC])
       ])
     ])
-  AM_CONDITIONAL([LUA], [test "x$with_lua" = "xyes"])
+  ])
+
+  AS_IF([test -z "$LUAPC" -a "$1" = "mandatory"], [
+    AC_MSG_ERROR([No Lua not found, but is mandatory])
+  ])
+
+  AM_CONDITIONAL([LUA], [test -n "x$LUAPC"])
 ])
diff --git a/m4/pdns_with_luajit.m4 b/m4/pdns_with_luajit.m4
deleted file mode 100644 (file)
index 6639473..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-AC_DEFUN([PDNS_WITH_LUAJIT],[
-  AC_MSG_CHECKING([whether we will be linking in LuaJIT])
-  AC_ARG_WITH([luajit],
-    [AS_HELP_STRING([--with-luajit], [build LuaJIT bindings @<:@default=auto@:>@])],
-    [with_luajit=$withval],
-    [with_luajit=no]
-  )
-  AC_MSG_RESULT([$with_luajit])
-
-  AS_IF([test "x$with_luajit" = "xyes"], [
-    LUAJITPC="$with_luajit"
-    PKG_CHECK_MODULES([LUA], [luajit],
-      [AC_DEFINE([HAVE_LUA], [1], [Define to 1 if you have LuaJIT])],
-      [LUAJITPC=""]
-    )
-    AS_IF([test "x$LUAJITPC" = "x"], [
-      AC_MSG_ERROR([LuaJIT not found])]
-    )
-  ])
-
-  AM_CONDITIONAL([LUA], [test "x$with_luajit" = "xyes"])
-])
index 96b841f12436ed9e9df58b89bdc4ee787f7e404a..9bc010e3ff7a939f85c8b206c46bdf2a9a1777a9 100644 (file)
@@ -42,13 +42,7 @@ AM_CONDITIONAL([HAVE_SYSTEMD], [ test x"$systemd" = "xy" ])
 AC_SUBST([YAHTTP_CFLAGS], ['-I$(top_srcdir)/ext/yahttp'])
 AC_SUBST([YAHTTP_LIBS], ['$(top_builddir)/ext/yahttp/yahttp/libyahttp.la'])
 
-PDNS_WITH_LUAJIT
-AS_IF([test "x$with_luajit" = "xno"], [
-  PDNS_WITH_LUA
-])
-AS_IF([test "x$LUAPC" = "x" -a "x$LUAJITPC" = "x"], [
-  AC_MSG_ERROR([Neither Lua nor LuaJIT found, Lua support is not optional])
-])
+PDNS_WITH_LUA([mandatory])
 PDNS_CHECK_LUA_HPP
 
 DNSDIST_ENABLE_DNS_OVER_TLS
@@ -125,12 +119,7 @@ AC_MSG_NOTICE([BOOST_CPPFLAGS: $BOOST_CPPFLAGS])
 AC_MSG_NOTICE([])
 AC_MSG_NOTICE([Features enabled])
 AC_MSG_NOTICE([----------------])
-AS_IF([test "x$LUAPC" != "x"],
-  [AC_MSG_NOTICE([Lua: $LUAPC])],
-  [AS_IF([test "x$LUAJITPC" != "x"],
-    [AC_MSG_NOTICE([LuaJit: $LUAJITPC])],
-    [AC_MSG_NOTICE([Lua/LuaJit: no])])
-])
+AC_MSG_NOTICE([Lua: $LUAPC])
 AS_IF([test "x$PROTOBUF_LIBS" != "x" -a x"$PROTOC" != "x"],
   [AC_MSG_NOTICE([Protobuf: yes])],
   [AC_MSG_NOTICE([Protobuf: no])]
diff --git a/pdns/dnsdistdist/m4/pdns_with_luajit.m4 b/pdns/dnsdistdist/m4/pdns_with_luajit.m4
deleted file mode 120000 (symlink)
index 2f9477d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../m4/pdns_with_luajit.m4
\ No newline at end of file
index 08ed1f51c3c04812950a18a4aa991336f8aefa95..ec41468250e9a7a4237e1490e163ad2a2a776715 100644 (file)
@@ -99,13 +99,7 @@ PDNS_SELECT_CONTEXT_IMPL
 PDNS_ENABLE_UNIT_TESTS
 PDNS_ENABLE_REPRODUCIBLE
 
-PDNS_WITH_LUAJIT
-AS_IF([test "x$with_luajit" = "xno"], [
-  PDNS_WITH_LUA
-])
-AS_IF([test "x$LUAPC" = "x" -a "x$LUAJITPC" = "x"], [
-  AC_MSG_ERROR([Neither Lua nor LuaJIT found, Lua support is not optional])
-])
+PDNS_WITH_LUA([mandatory])
 PDNS_CHECK_LUA_HPP
 
 PDNS_ENABLE_VERBOSE_LOGGING
@@ -206,12 +200,7 @@ AC_MSG_NOTICE([BOOST_CPPFLAGS: $BOOST_CPPFLAGS])
 AC_MSG_NOTICE([])
 AC_MSG_NOTICE([Features enabled])
 AC_MSG_NOTICE([----------------])
-AS_IF([test "x$LUAPC" != "x"],
-  [AC_MSG_NOTICE([Lua: $LUAPC])],
-  [AS_IF([test "x$LUAJITPC" != "x"],
-    [AC_MSG_NOTICE([LuaJit: $LUAJITPC])],
-    [AC_MSG_NOTICE([Lua/LuaJit: no])])
-])
+AC_MSG_NOTICE([Lua: $LUAPC])
 AC_MSG_NOTICE([OpenSSL ECDSA: $libcrypto_ecdsa])
 AS_IF([test "x$LIBSODIUM_LIBS" != "x"],
   [AC_MSG_NOTICE([libsodium ed25519: yes])],
diff --git a/pdns/recursordist/m4/pdns_with_luajit.m4 b/pdns/recursordist/m4/pdns_with_luajit.m4
deleted file mode 120000 (symlink)
index 2f9477d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../../../m4/pdns_with_luajit.m4
\ No newline at end of file