Viktor Dukhovni: > On Tue, Apr 20, 2021 at 09:20:40AM -0400, Wietse Venema wrote: > > > Paul Menzel: > > > Would you accept a patch to add fix the instructions in `DB_README`? > > > > I think your problem is that /etc/ld.so.conf needs updating when you > > install libdb in a nonstandard place. > > But one can also augment the default search path with: > > AUXLIBS="-Wl,-R,/some/path ..." > > When I build Postfix for my FreeBSD server, I use: > > make -f Makefile.init dynamicmaps=yes shared=yes pie=yes \ > 'CCARGS=-DDEF_MAIL_OWNER=\"postfix\" -DDEF_SGID_GROUP=\"maildrop\" > -DHAS_EAI -DUSE_SASL_AUTH -I/usr/local/include -DHAS_PCRE -DUSE_CYRUS_SASL > -I/usr/local/include/sasl -DUSE_TLS -I/usr/local/include/db5 -DHAS_CDB > -DHAS_LMDB' \ > 'AUXLIBS=-L/usr/local/lib -lsasl2 -lpam -lcrypt > -Wl,-rpath,/usr/local/lib -fstack-protector-strong -lssl -lcrypto > -L/usr/local/lib/db5 -ldb-5.3' \ > 'AUXLIBS_CDB=-L/usr/local/lib -Wl,-R,/usr/local/lib -lcdb' \ > 'AUXLIBS_PCRE=-L/usr/local/lib -Wl,-R/usr/local/lib -lpcre' \ > 'AUXLIBS_LMDB=-L/usr/local/lib -Wl,-R/usr/local/lib -llmdb' \
Where "-Wl,-R,/some/directory" and "-Wl,-rpath,/some/directory" are different ways of saying the same thing. FreeBSD by default ldconfigs the files in /usr/local/lib. On my systems those libraries need -L but don't need runpath information. The -Wl,-rpath options are needed only for locations that the runtime linker does not already know about. I have added a TODO to add this to the Postfix XXX_README build instructions. Wietse > command_directory=/usr/local/sbin \ > config_directory=/usr/local/etc/postfix \ > daemon_directory=/usr/local/libexec/postfix \ > data_directory=/var/db/postfix \ > mailq_path=/usr/local/bin/mailq \ > newaliases_path=/usr/local/bin/newaliases \ > queue_directory=/var/spool/postfix \ > sendmail_path=/usr/local/sbin/sendmail \ > shlib_directory=/usr/local/lib/postfix \ > html_directory=/usr/local/share/doc/postfix \ > manpage_directory=/usr/local/man \ > readme_directory=/usr/local/share/doc/postfix \ > makefiles > > I don't need ".../db5" in the runpath for db-5.3, because the > version-explicit SONAME library is also installed into /usr/local/lib. > Only the bare .so and .a files require /usr/local/lib/db5. So I use > "/usr/local/lib" instead. > > -- > Viktor. >