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.
>