On Fri, Mar 27, 2020 at 11:28:26AM -0400, Nathan Hartman wrote: > I wanted to run a full build and test all ra and backends overnight > using my slightly modified variant of tools/dev/unix-build (mostly > just different/newer versions of dependencies). > > It built everything and ran through local|svn x fsfs|bdb, but when it > prepared to test serf x fsfs, it quit with: > > [[[ > > /home/nate/svndev/prefix/httpd/bin/htpasswd -bc > /home/nate/svndev/prefix/httpd/conf/httpd-svn-check-users.tmp jrandom > rayjandom > /home/nate/svndev/prefix/httpd/bin/htpasswd: error while loading > shared libraries: libdb-18.1.so: cannot open shared object file: No > such file or directory > make: *** [Makefile:1775: > /home/nate/svndev/prefix/httpd/conf/httpd-svn-check-1.14.0-rc1.conf] > Error 127 > > ]]] > > Strange. This never happened before. > > $ find . -name libdb-18.1.so -print > ./src/db-18.1.32/build_unix/.libs/libdb-18.1.so > ./prefix/bdb/lib/libdb-18.1.so > > It's right where it should be, and Makefile.svn sets LD_LIBRARY_PATH. > There shouldn't be any problem. Right? > > I made the following change and then was able to run the serf x fsfs > test successfully, but I have no idea how/why it worked before (it > worked two days ago!) and why I needed to make this change now: > > [[[ > > Index: Makefile.svn > =================================================================== > --- Makefile.svn (revision 1875781) > +++ Makefile.svn (working copy) > @@ -1820,11 +1820,11 @@ > > $(HTTPD_CHECK_CONF): $(MOD_DONTDOTHAT_CONF) $(HTTPD_CHECK_GROUPS) > mkdir -p $(dir $@) > - $(PREFIX)/httpd/bin/htpasswd -bc $(HTTPD_CHECK_USERS).tmp jrandom rayjandom > - $(PREFIX)/httpd/bin/htpasswd -b $(HTTPD_CHECK_USERS).tmp jconstant rayjandom > - $(PREFIX)/httpd/bin/htpasswd -b $(HTTPD_CHECK_USERS).tmp > __dumpster__ __loadster__ > - $(PREFIX)/httpd/bin/htpasswd -b $(HTTPD_CHECK_USERS).tmp JRANDOM rayjandom > - $(PREFIX)/httpd/bin/htpasswd -b $(HTTPD_CHECK_USERS).tmp JCONSTANT rayjandom > + env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(PREFIX)/httpd/bin/htpasswd > -bc $(HTTPD_CHECK_USERS).tmp jrandom rayjandom > + env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(PREFIX)/httpd/bin/htpasswd > -b $(HTTPD_CHECK_USERS).tmp jconstant rayjandom > + env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(PREFIX)/httpd/bin/htpasswd > -b $(HTTPD_CHECK_USERS).tmp __dumpster__ __loadster__ > + env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(PREFIX)/httpd/bin/htpasswd > -b $(HTTPD_CHECK_USERS).tmp JRANDOM rayjandom > + env LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) $(PREFIX)/httpd/bin/htpasswd > -b $(HTTPD_CHECK_USERS).tmp JCONSTANT rayjandom > mv -f $(HTTPD_CHECK_USERS).tmp $(HTTPD_CHECK_USERS) > echo > $@.tmp '# httpd config for make check' > echo >>$@.tmp 'ServerRoot "$(PREFIX)/httpd"' > > ]]] > > Still baffled, > Nathan >
Not sure what happened either, but the change looks good and shouldn't hurt. Perhaps you had another libdb-something.so sitting somewhere else on your system which ld.so picked up and which happened to work, and now doesn't work any longer after an upgrade or something?