New BIND releases ... 9.16.4: build, 'fatal error: lmdb.h: No such file or directory'

PGNet Dev pgnet.dev at gmail.com
Thu Jun 18 17:25:29 UTC 2020


On 6/18/20 6:34 AM, Matt Pallissard wrote:
> I'd imagine you want CPPFLAGS here.  or you can export C_INCLUDE_PATH
...
> Edit:
 `s/CPPFLAGS/CFLAGS`


specifically adding '-I/usr/local/lmdb/include' to $CFLAGS makes the build unhappy, here.

but, yep! ... there _is_ hoop-jumping that appears to workaround the WONTFIX silliness^^ ...

with lmdb installed as

	tree /usr/local/lmdb
		/usr/local/lmdb
		├── bin
		│   ├── mdb_copy
		│   ├── mdb_drop
		│   ├── mdb_dump
		│   ├── mdb_load
		│   └── mdb_stat
		├── include
		│   └── lmdb.h
		├── lib
		├── lib64
		│   ├── liblmdb.a
		│   └── liblmdb.so
		├── man
		└── share
		    └── man
		        └── man1
		            ├── mdb_copy.1
		            ├── mdb_drop.1
		            ├── mdb_dump.1
		            ├── mdb_load.1
		            └── mdb_stat.1

setting @ bind configure

	--with-lmdb=/usr/local/lmdb

to avoid

	checking for lmdb library... configure: error: include/lmdb.h not found.

and to ensure the feature is (at least) _reported_ as enabled

	...
	===============================================================================
	Configuration summary:
	-------------------------------------------------------------------------------
	Optional features enabled:
	    ...
	    LMDB database to store configuration for 'addzone' zones (--with-lmdb)
	    ...
	-------------------------------------------------------------------------------
	Features disabled or unavailable on this platform:
	...

then just this

	CPPFLAGS= ... -I/usr/local/lmdb/include ...

	LDFLAGS=... -L/usr/local/lmdb/lib64 -llmdb ...

is sufficient add'n to general flags

still to make add'l adjustments.
namely, to just completely circumvent the src code mess that results in,

	LMDB_CFLAGS = -I/usr/local/lmdb/include
	LMDB_LIBS = -L/usr/local/lmdb/lib none required

and build breakage, applying to clean source,

	patch << 'EOF'
	--- configure.ac.ORIG   2020-06-10 14:01:43.000000000 -0700
	+++ configure.ac        2020-06-18 09:45:42.142523855 -0700
	@@ -1274,6 +1274,8 @@
	 else
	        AC_MSG_RESULT(no)
	 fi
	+LMDB_CFLAGS="-I/usr/local/lmdb/include"
	+LMDB_LIBS="-L/usr/local/lmdb/lib64 -llmdb"
	 AC_SUBST([LMDB_CFLAGS])
	 AC_SUBST([LMDB_LIBS])
	EOF

then, of course,

	./autogen.sh

now, after config, correctly

	s|^LMDB_CFLAGS =.*|LMDB_CFLAGS = -I/usr/local/lmdb/include|g
	s|^LMDB_LIBS =.*|LMDB_LIBS = -L/usr/local/lmdb/lib64 -llmdb|g

on subsequent build, there's no longer any 'fatal error',

	In file included from server.c:131:
	/usr/local/src/bind-9.16.4/lib/dns/include/dns/lmdb.h:12:10: fatal error: lmdb.h: No such file or directory
	   12 | #include <lmdb.h>
	      |          ^~~~~~~~
	compilation terminated.

and, on install, named runs/functions

	named -v
		BIND 9.16.4 (Stable Release) <id:0849b42>

lmdb lib is linked,

	ldd `which named` | grep lmdb
        	liblmdb.so => /usr/local/lmdb/lib64/liblmdb.so (0x00007fedf088b000)

but whether lmdb inclusion/usage now _functions_ correctly with that^ cleanup, i have yet to verify.
checking now ...



More information about the bind-users mailing list