Fix loading plugins using just their filenames

BIND 9 plugins are installed using Automake's pkglib_LTLIBRARIES stanza,
which causes the relevant shared objects to be placed in the
$(libdir)/@PACKAGE@/ directory, where @PACKAGE@ is expanded to the
lowercase form of the first argument passed to AC_INIT(), i.e. "bind".
Meanwhile, NAMED_PLUGINDIR - the preprocessor macro that the
ns_plugin_expandpath() function uses for determining the absolute path
to a plugin for which only a filename has been provided (rather than a
path) - is set to $(libdir)/named.  This discrepancy breaks loading
plugins using just their filenames.  Fix the issue (and also prevent it
from reoccurring) by setting NAMED_PLUGINDIR to $(pkglibdir).

(cherry picked from commit 5065c4686e)
This commit is contained in:
Michał Kępień 2022-04-22 13:27:12 +02:00
parent 83eaff2851
commit 4ac4640c40
2 changed files with 2 additions and 2 deletions

View file

@ -12,7 +12,7 @@ AM_CFLAGS += \
AM_CPPFLAGS += \
$(CMOCKA_CFLAGS) \
-DNAMED_PLUGINDIR=\"$(libdir)/named\" \
-DNAMED_PLUGINDIR=\"$(pkglibdir)\" \
-DSKIPPED_TEST_EXIT_CODE=77 \
-DTESTS_DIR=\"$(abs_srcdir)\"

View file

@ -1,7 +1,7 @@
include $(top_srcdir)/Makefile.top
AM_CPPFLAGS += \
-DNAMED_PLUGINDIR=\"$(libdir)/named\"
-DNAMED_PLUGINDIR=\"$(pkglibdir)\"
lib_LTLIBRARIES = libns.la