As reported by Larry Rosenman in 192526, upgrading sysutils/bacula-server from one version to another gives bad exe. original install of 7.0.4: $ ldd /usr/local/sbin/bconsole /usr/local/sbin/bacula-* | grep bac libbaccfg-7.0.4.so => /usr/local/lib/libbaccfg-7.0.4.so (0x8010c3000) libbac-7.0.4.so => /usr/local/lib/libbac-7.0.4.so (0x8012cd000) /usr/local/sbin/bacula-dir: libbacfind-7.0.4.so => /usr/local/lib/libbacfind-7.0.4.so (0x800aa1000) libbacsql-7.0.4.so => /usr/local/lib/libbacsql-7.0.4.so (0x800caf000) libbaccats-7.0.4.so => /usr/local/lib/libbaccats-7.0.4.so (0x800ed8000) libbaccfg-7.0.4.so => /usr/local/lib/libbaccfg-7.0.4.so (0x8010e1000) libbac-7.0.4.so => /usr/local/lib/libbac-7.0.4.so (0x8012eb000) /usr/local/sbin/bacula-fd: libbacfind-7.0.4.so => /usr/local/lib/libbacfind-7.0.4.so (0x800c65000) libbaccfg-7.0.4.so => /usr/local/lib/libbaccfg-7.0.4.so (0x800e73000) libbac-7.0.4.so => /usr/local/lib/libbac-7.0.4.so (0x80107d000) /usr/local/sbin/bacula-sd: libbaccfg-7.0.4.so => /usr/local/lib/libbaccfg-7.0.4.so (0x800c91000) libbac-7.0.4.so => /usr/local/lib/libbac-7.0.4.so (0x800e9b000) After portupgrade bacula-* $ ldd /usr/local/sbin/bconsole /usr/local/sbin/bacula-* | grep bac libbaccfg-7.0.4.so => not found (0) libbac-7.0.4.so => not found (0) /usr/local/sbin/bacula-dir: libbacfind-7.0.5.so => /usr/local/lib/libbacfind-7.0.5.so (0x800aa2000) libbacsql-7.0.4.so => not found (0) libbaccats-postgresql-7.0.4.so => not found (0) libbaccfg-7.0.5.so => /usr/local/lib/libbaccfg-7.0.5.so (0x800cb0000) libbac-7.0.5.so => /usr/local/lib/libbac-7.0.5.so (0x800ebb000) /usr/local/sbin/bacula-fd: libbacfind-7.0.4.so => not found (0) libbaccfg-7.0.4.so => not found (0) libbac-7.0.4.so => not found (0) /usr/local/sbin/bacula-sd: libbaccfg-7.0.5.so => /usr/local/lib/libbaccfg-7.0.5.so (0x800c91000) libbac-7.0.5.so => /usr/local/lib/libbac-7.0.5.so (0x800e9c000) $ ls -l /usr/local/lib/libbac* -rwxr-xr-x 1 root wheel 454693 Sep 14 19:18 /usr/local/lib/libbac-7.0.5.so -rwxr-xr-x 1 root wheel 934 Sep 14 19:18 /usr/local/lib/libbac.la lrwxr-xr-x 1 root wheel 15 Sep 14 19:18 /usr/local/lib/libbac.so -> libbac-7.0.5.so lrwxr-xr-x 1 root wheel 24 Sep 14 19:19 /usr/local/lib/libbaccats-7.0.5.so -> libbaccats-postgresql.so -rwxr-xr-x 1 root wheel 44863 Sep 14 19:19 /usr/local/lib/libbaccats-postgresql-7.0.5.so -rwxr-xr-x 1 root wheel 1024 Sep 14 19:19 /usr/local/lib/libbaccats-postgresql.la lrwxr-xr-x 1 root wheel 30 Sep 14 19:19 /usr/local/lib/libbaccats-postgresql.so -> libbaccats-postgresql-7.0.5.so -rwxr-xr-x 1 root wheel 958 Sep 14 19:19 /usr/local/lib/libbaccats.la lrwxr-xr-x 1 root wheel 19 Sep 14 19:19 /usr/local/lib/libbaccats.so -> libbaccats-7.0.5.so -rwxr-xr-x 1 root wheel 55195 Sep 14 19:18 /usr/local/lib/libbaccfg-7.0.5.so -rwxr-xr-x 1 root wheel 952 Sep 14 19:18 /usr/local/lib/libbaccfg.la lrwxr-xr-x 1 root wheel 18 Sep 14 19:18 /usr/local/lib/libbaccfg.so -> libbaccfg-7.0.5.so -rwxr-xr-x 1 root wheel 66567 Sep 14 19:18 /usr/local/lib/libbacfind-7.0.5.so -rwxr-xr-x 1 root wheel 958 Sep 14 19:18 /usr/local/lib/libbacfind.la lrwxr-xr-x 1 root wheel 19 Sep 14 19:18 /usr/local/lib/libbacfind.so -> libbacfind-7.0.5.so -rwxr-xr-x 1 root wheel 190694 Sep 14 19:19 /usr/local/lib/libbacsql-7.0.5.so -rwxr-xr-x 1 root wheel 952 Sep 14 19:19 /usr/local/lib/libbacsql.la lrwxr-xr-x 1 root wheel 18 Sep 14 19:19 /usr/local/lib/libbacsql.so -> libbacsql-7.0.5.so
Maintainer CC'd
sysutils/bacula-client is a slave port of sysutils/bacula-server sysutils/bacula-client installs shared libraries sysutils/bacula-server requires sysutils/bacula-client
It seems like everything installed by sysutils/bacula-client gets the wrong libraries. ie. bacula-dir and bacula-sd are fine. bconsole and bacula-fd are wrong, still pointing to the old libraries: 790,4 $ ldd /usr/local/sbin/bconsole /usr/local/sbin/bacula-* /usr/local/sbin/bconsole: libintl.so.9 => /usr/local/lib/libintl.so.9 (0x800822000) libreadline.so.8 => /lib/libreadline.so.8 (0x800a2c000) libncurses.so.8 => /lib/libncurses.so.8 (0x800c6d000) libbaccfg-7.0.4.so => not found (0) libbac-7.0.4.so => not found (0) libthr.so.3 => /lib/libthr.so.3 (0x800ebb000) libssl.so.6 => /usr/lib/libssl.so.6 (0x8010de000) libcrypto.so.6 => /lib/libcrypto.so.6 (0x801334000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x8016dc000) libm.so.5 => /lib/libm.so.5 (0x8019e3000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x801c04000) libc.so.7 => /lib/libc.so.7 (0x801e12000) libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x80216d000) /usr/local/sbin/bacula-dir: libintl.so.9 => /usr/local/lib/libintl.so.9 (0x800898000) libbacfind-7.0.5.so => /usr/local/lib/libbacfind-7.0.5.so (0x800aa2000) libbacsql-7.0.4.so => not found (0) libbaccats-postgresql-7.0.4.so => not found (0) libbaccfg-7.0.5.so => /usr/local/lib/libbaccfg-7.0.5.so (0x800cb0000) libbac-7.0.5.so => /usr/local/lib/libbac-7.0.5.so (0x800ebb000) libthr.so.3 => /lib/libthr.so.3 (0x801126000) libwrap.so.6 => /usr/lib/libwrap.so.6 (0x801349000) libssl.so.6 => /usr/lib/libssl.so.6 (0x801552000) libcrypto.so.6 => /lib/libcrypto.so.6 (0x8017a8000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x801b50000) libm.so.5 => /lib/libm.so.5 (0x801e57000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x802078000) libc.so.7 => /lib/libc.so.7 (0x802286000) libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x8025e1000) libz.so.6 => /lib/libz.so.6 (0x8028dd000) /usr/local/sbin/bacula-fd: libintl.so.9 => /usr/local/lib/libintl.so.9 (0x800847000) libz.so.6 => /lib/libz.so.6 (0x800a51000) libbacfind-7.0.4.so => not found (0) libbaccfg-7.0.4.so => not found (0) libbac-7.0.4.so => not found (0) libthr.so.3 => /lib/libthr.so.3 (0x800c65000) libwrap.so.6 => /usr/lib/libwrap.so.6 (0x800e88000) libssl.so.6 => /usr/lib/libssl.so.6 (0x801091000) libcrypto.so.6 => /lib/libcrypto.so.6 (0x8012e7000) liblzo2.so.2 => /usr/local/lib/liblzo2.so.2 (0x80168f000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x8018ae000) libm.so.5 => /lib/libm.so.5 (0x801bb5000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x801dd6000) libc.so.7 => /lib/libc.so.7 (0x801fe4000) libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x80233f000) /usr/local/sbin/bacula-sd: libintl.so.9 => /usr/local/lib/libintl.so.9 (0x800873000) libz.so.6 => /lib/libz.so.6 (0x800a7d000) libbaccfg-7.0.5.so => /usr/local/lib/libbaccfg-7.0.5.so (0x800c91000) libbac-7.0.5.so => /usr/local/lib/libbac-7.0.5.so (0x800e9c000) libthr.so.3 => /lib/libthr.so.3 (0x801107000) libwrap.so.6 => /usr/lib/libwrap.so.6 (0x80132a000) libssl.so.6 => /usr/lib/libssl.so.6 (0x801533000) libcrypto.so.6 => /lib/libcrypto.so.6 (0x801789000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x801b31000) libm.so.5 => /lib/libm.so.5 (0x801e38000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x802059000) libc.so.7 => /lib/libc.so.7 (0x802267000) libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x8025c2000) [dan@testing:/usr/ports.SVN/sysutils/bacula-server] $
See UPDATING 20140909 It sounds like there is no fix I can implement now. It's a matter of just reinstalling stuff until it works. see also https://lists.freebsd.org/pipermail/freebsd-ports/2014-May/092082.html At present, we use: USES+= libtool:oldver I wonder if removeing :oldver might help. I've run out of time to test this further today.
Larry: I just submitted patches for Bacula 7.2.0
IIRC there also was a recent Ports Framework change to put the workdir stuff before ${PREFIX}/lib which should help as well
The issue persists with 7.2.0 and a current (as of today) -CURRENT and PORTS tree. I'll look and see if I can figure out a way to get Bacula to search wrkdir first.
Created attachment 161990 [details] use USES=localbase
that patch does NOT fix it for me: inking bacula-dir ... /var/ports/basejail/usr/ports/sysutils/bacula-server/work/bacula-7.2.0/libtool --silent --tag=CXX --mode=link /usr/bin/c++ -L/usr/local/lib -L/usr/local/lib -fstack-protector -L../lib -L../cats -L../findlib -o bacula-dir dird.o admin.o authenticate.o autoprune.o backup.o bsr.o catreq.o dir_plugins.o dird_conf.o expand.o fd_cmds.o getmsg.o inc_conf.o job.o jobq.o mac.o mac_sql.o mountreq.o msgchan.o next_vol.o newvol.o recycle.o restore.o run_conf.o scheduler.o ua_acl.o ua_cmds.o ua_dotcmds.o ua_query.o ua_input.o ua_label.o ua_output.o ua_prune.o ua_purge.o ua_restore.o ua_run.o ua_select.o ua_server.o snapshot.o ua_status.o ua_tree.o ua_update.o vbackup.o verify.o -lbacfind -lbacsql -lbaccats -lbaccfg -lbac -lm -lpthread -lintl -lwrap /usr/local/lib/libintl.so -Wl,-rpath -Wl,/usr/local/lib -lssl -lcrypto dird.o: In function `main': dird.c:(.text+0x2f3): undefined reference to `debug_level_tags' dird.c:(.text+0x9e7): undefined reference to `bdb_debug_print(JCR*, __sFILE*)' dird.o: In function `check_catalog(cat_op)': dird.c:(.text+0x1d42): undefined reference to `BDB::bdb_create_client_record(JCR*, CLIENT_DBR*)' dird.c:(.text+0x1e25): undefined reference to `BDB::bdb_create_mediatype_record(JCR*, MEDIATYPE_DBR*)' dird.c:(.text+0x1e66): undefined reference to `BDB::bdb_create_storage_record(JCR*, STORAGE_DBR*)' dird.c:(.text+0x1ec5): undefined reference to `BDB::bdb_update_storage_record(JCR*, STORAGE_DBR*)' dird.c:(.text+0x20a9): undefined reference to `BDB::bdb_create_counter_record(JCR*, COUNTER_DBR*)' dird.c:(.text+0x2153): undefined reference to `BDB::bdb_get_engine_name()' dird.c:(.text+0x215b): undefined reference to `set_db_engine_name(char const*)' dird.c:(.text+0x21ff): undefined reference to `BDB::bdb_check_max_connections(JCR*, unsigned int)' admin.o: In function `admin_cleanup(JCR*, int)': admin.c:(.text+0x117): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' autoprune.o: In function `prune_volumes(JCR*, bool, MEDIA_DBR*, STORE*)': autoprune.c:(.text+0x205): undefined reference to `BDB::bdb_lock(char const*, int)' autoprune.c:(.text+0x25b): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' autoprune.c:(.text+0x3ed): undefined reference to `BDB::bdb_get_query_dbids(JCR*, POOL_MEM&, dbid_list&)' autoprune.c:(.text+0x4a5): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' autoprune.c:(.text+0x84a): undefined reference to `BDB::bdb_unlock(char const*, int)' backup.o: In function `send_accurate_current_files(JCR*)': backup.c:(.text+0x286): undefined reference to `BDB::bdb_get_base_jobid(JCR*, JOB_DBR*, unsigned int*)' backup.c:(.text+0x33b): undefined reference to `BDB::bdb_get_accurate_jobids(JCR*, JOB_DBR*, db_list_ctx*)' backup.c:(.text+0x5ee): undefined reference to `BDB::bdb_open_batch_connexion(JCR*)' backup.c:(.text+0x62c): undefined reference to `BDB::bdb_create_base_file_list(JCR*, char*)' backup.c:(.text+0x652): undefined reference to `BDB::bdb_get_base_file_list(JCR*, bool, int (*)(void*, int, char**), void*)' backup.c:(.text+0x6ea): undefined reference to `BDB::bdb_get_file_list(JCR*, char*, bool, bool, int (*)(void*, int, char**), void*)' backup.o: In function `do_backup(JCR*)': backup.c:(.text+0xc94): undefined reference to `BDB::bdb_update_job_start_record(JCR*, JOB_DBR*)' backup.c:(.text+0x132d): undefined reference to `BDB::bdb_update_job_start_record(JCR*, JOB_DBR*)' backup.c:(.text+0x13d5): undefined reference to `bdb_write_batch_file_records(JCR*)' backup.c:(.text+0x13ee): undefined reference to `BDB::bdb_commit_base_file_attributes_record(JCR*)' backup.o: In function `backup_cleanup(JCR*, int)': backup.c:(.text+0x1a55): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' backup.c:(.text+0x1ac4): undefined reference to `BDB::bdb_get_client_record(JCR*, CLIENT_DBR*)' backup.c:(.text+0x1b25): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' backup.c:(.text+0x1d84): undefined reference to `BDB::bdb_get_job_volume_names(JCR*, unsigned int, char**)' backup.o: In function `update_bootstrap_file(JCR*)': backup.c:(.text+0x2635): undefined reference to `open_bpipe(char*, int, char const*, char**)' backup.c:(.text+0x26a7): undefined reference to `BDB::bdb_get_job_volume_parameters(JCR*, unsigned int, VOL_PARAMS**)' bsr.o: In function `complete_bsr(UAContext*, RBSR*)': bsr.c:(.text+0x144): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' bsr.c:(.text+0x17a): undefined reference to `BDB::bdb_get_job_volume_parameters(JCR*, unsigned int, VOL_PARAMS**)' catreq.o: In function `catalog_request(JCR*, BSOCK*)': catreq.c:(.text+0x12c): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' catreq.c:(.text+0x30d): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' catreq.c:(.text+0x552): undefined reference to `BDB::bdb_lock(char const*, int)' catreq.c:(.text+0x5c4): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' catreq.c:(.text+0x748): undefined reference to `BDB::bdb_lock(char const*, int)' catreq.c:(.text+0x85e): undefined reference to `BDB::bdb_create_jobmedia_record(JCR*, JOBMEDIA_DBR*)' catreq.c:(.text+0x8a1): undefined reference to `BDB::bdb_unlock(char const*, int)' catreq.c:(.text+0x950): undefined reference to `BDB::bdb_unlock(char const*, int)' catreq.c:(.text+0xb9a): undefined reference to `BDB::bdb_unlock(char const*, int)' catreq.c:(.text+0xcca): undefined reference to `BDB::bdb_update_media_record(JCR*, MEDIA_DBR*)' catreq.c:(.text+0xd64): undefined reference to `BDB::bdb_unlock(char const*, int)' catreq.o: In function `update_attribute(JCR*, char*, int)': catreq.c:(.text+0x1533): undefined reference to `BDB::bdb_create_attributes_record(JCR*, ATTR_DBR*)' catreq.c:(.text+0x1ab1): undefined reference to `BDB::bdb_create_restore_object_record(JCR*, ROBJECT_DBR*)' catreq.c:(.text+0x1cb9): undefined reference to `BDB::bdb_create_attributes_record(JCR*, ATTR_DBR*)' catreq.c:(.text+0x1d29): undefined reference to `BDB::bdb_add_digest_to_file_record(JCR*, unsigned long, char*, int)' dir_plugins.o: In function `generate_plugin_event': dir_plugins.c:(.text+0x23): undefined reference to `b_plugin_list' dir_plugins.c:(.text+0xa7): undefined reference to `b_plugin_list' dir_plugins.c:(.text+0xe5): undefined reference to `b_plugin_list' dir_plugins.o: In function `load_dir_plugins': dir_plugins.c:(.text+0x264): undefined reference to `b_plugin_list' dir_plugins.c:(.text+0x28a): undefined reference to `b_plugin_list' dir_plugins.o:dir_plugins.c:(.text+0x30b): more undefined references to `b_plugin_list' follow dir_plugins.o: In function `baculaGetValue(bpContext*, brDirVariable, void*)': dir_plugins.c:(.text+0xba8): undefined reference to `BDB::bdb_get_pool_numvols(JCR*, POOL_DBR*)' expand.o: In function `lookup_var(var_st*, void*, char const*, int, int, int, char const**, int*, int*)': expand.c:(.text+0x682): undefined reference to `BDB::bdb_update_counter_record(JCR*, COUNTER_DBR*)' fd_cmds.o: In function `connect_to_file_daemon(JCR*, int, int, int)': fd_cmds.c:(.text+0x491): undefined reference to `BDB::bdb_update_client_record(JCR*, CLIENT_DBR*)' fd_cmds.o: In function `get_level_since_time(JCR*, char*, int)': fd_cmds.c:(.text+0x61b): undefined reference to `BDB::bdb_find_job_start_time(JCR*, JOB_DBR*, char**, char*)' fd_cmds.c:(.text+0x645): undefined reference to `BDB::bdb_find_last_job_start_time(JCR*, JOB_DBR*, char**, char*, int)' fd_cmds.c:(.text+0x70b): undefined reference to `BDB::bdb_find_last_job_start_time(JCR*, JOB_DBR*, char**, char*, int)' fd_cmds.c:(.text+0x961): undefined reference to `BDB::bdb_find_failed_job_since(JCR*, JOB_DBR*, char*, int&)' fd_cmds.o: In function `restore_object_handler(void*, int, char**)': fd_cmds.c:(.text+0x1a4c): undefined reference to `BSOCK::send(int)' fd_cmds.c:(.text+0x1ac4): undefined reference to `BSOCK::send(int)' fd_cmds.o: In function `get_attributes_and_put_in_catalog(JCR*)': fd_cmds.c:(.text+0x1ed7): undefined reference to `BDB::bdb_create_file_attributes_record(JCR*, ATTR_DBR*)' fd_cmds.c:(.text+0x229e): undefined reference to `BDB::bdb_create_file_attributes_record(JCR*, ATTR_DBR*)' fd_cmds.o: In function `send_list_item(JCR*, char const*, char*, BSOCK*)': fd_cmds.c:(.text+0x2487): undefined reference to `BSOCK::send(int)' fd_cmds.c:(.text+0x24d4): undefined reference to `open_bpipe(char*, int, char const*, char**)' fd_cmds.c:(.text+0x25de): undefined reference to `BSOCK::send(int)' fd_cmds.c:(.text+0x2662): undefined reference to `BSOCK::send(int)' job.o: In function `job_thread(void*)': job.c:(.text+0x313): undefined reference to `BDB::bdb_update_job_start_record(JCR*, JOB_DBR*)' job.c:(.text+0x37d): undefined reference to `BDB::bdb_update_job_start_record(JCR*, JOB_DBR*)' job.o: In function `setup_job(JCR*)': job.c:(.text+0x100e): undefined reference to `BDB::bdb_create_job_record(JCR*, JOB_DBR*)' job.o: In function `get_or_create_client_record(JCR*)': job.c:(.text+0x172d): undefined reference to `BDB::bdb_create_client_record(JCR*, CLIENT_DBR*)' job.o: In function `update_job_end_record(JCR*)': job.c:(.text+0x202f): undefined reference to `BDB::bdb_update_job_end_record(JCR*, JOB_DBR*)' job.o: In function `cancel_job(UAContext*, JCR*, bool)': job.c:(.text+0x24fe): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' job.c:(.text+0x252e): undefined reference to `BDB::bdb_get_client_record(JCR*, CLIENT_DBR*)' job.o: In function `get_or_create_pool_record(JCR*, char*)': job.c:(.text+0x2f35): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' job.c:(.text+0x2f9e): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' job.o: In function `get_or_create_fileset_record(JCR*)': job.c:(.text+0x38be): undefined reference to `BDB::bdb_get_fileset_record(JCR*, FILESET_DBR*)' job.c:(.text+0x38d8): undefined reference to `BDB::bdb_create_fileset_record(JCR*, FILESET_DBR*)' mac.o: In function `set_mac_next_pool(JCR*, POOL**)': mac.c:(.text+0x5c1): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' mac.o: In function `do_mac(JCR*)': mac.c:(.text+0x724): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' mac.c:(.text+0xae9): undefined reference to `BDB::bdb_update_job_start_record(JCR*, JOB_DBR*)' mac.c:(.text+0xb3b): undefined reference to `BDB::bdb_update_job_start_record(JCR*, JOB_DBR*)' mac.c:(.text+0xf59): undefined reference to `bdb_write_batch_file_records(JCR*)' mac.o: In function `mac_cleanup(JCR*, int, int)': mac.c:(.text+0x13fc): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' mac.c:(.text+0x1461): undefined reference to `BDB::bdb_get_job_volume_names(JCR*, unsigned int, char**)' mac.c:(.text+0x14f9): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' mac_sql.o: In function `getJob_to_migrate(JCR*)': mac_sql.c:(.text+0x165): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' next_vol.o: In function `find_next_volume_for_append(JCR*, MEDIA_DBR*, int, bool, bool)': next_vol.c:(.text+0xd6): undefined reference to `BDB::bdb_lock(char const*, int)' next_vol.c:(.text+0x173): undefined reference to `BDB::bdb_find_next_volume(JCR*, int, bool, MEDIA_DBR*)' next_vol.c:(.text+0x46b): undefined reference to `BDB::bdb_find_next_volume(JCR*, int, bool, MEDIA_DBR*)' next_vol.c:(.text+0x690): undefined reference to `BDB::bdb_unlock(char const*, int)' next_vol.o: In function `get_scratch_volume(JCR*, bool, MEDIA_DBR*, STORE*)': next_vol.c:(.text+0x770): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' next_vol.c:(.text+0x7e6): undefined reference to `BDB::bdb_find_next_volume(JCR*, int, bool, MEDIA_DBR*)' next_vol.c:(.text+0x87e): undefined reference to `BDB::bdb_get_pool_numvols(JCR*, POOL_DBR*)' next_vol.c:(.text+0x90a): undefined reference to `BDB::bdb_update_media_record(JCR*, MEDIA_DBR*)' next_vol.o: In function `has_volume_expired(JCR*, MEDIA_DBR*)': next_vol.c:(.text+0xcf4): undefined reference to `BDB::bdb_update_media_record(JCR*, MEDIA_DBR*)' newvol.o: In function `newVolume(JCR*, MEDIA_DBR*, STORE*)': newvol.c:(.text+0x51): undefined reference to `BDB::bdb_lock(char const*, int)' newvol.c:(.text+0x71): undefined reference to `BDB::bdb_get_pool_numvols(JCR*, POOL_DBR*)' newvol.c:(.text+0x14f): undefined reference to `BDB::bdb_create_media_record(JCR*, MEDIA_DBR*)' newvol.c:(.text+0x16e): undefined reference to `BDB::bdb_update_pool_record(JCR*, POOL_DBR*)' newvol.c:(.text+0x1e8): undefined reference to `BDB::bdb_unlock(char const*, int)' newvol.c:(.text+0x326): undefined reference to `BDB::bdb_unlock(char const*, int)' newvol.c:(.text+0x4bc): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' recycle.o: In function `find_recycled_volume(JCR*, bool, MEDIA_DBR*, STORE*)': recycle.c:(.text+0x4f): undefined reference to `BDB::bdb_find_next_volume(JCR*, int, bool, MEDIA_DBR*)' recycle.o: In function `recycle_oldest_purged_volume(JCR*, bool, MEDIA_DBR*, STORE*)': recycle.c:(.text+0x10a): undefined reference to `BDB::bdb_find_next_volume(JCR*, int, bool, MEDIA_DBR*)' recycle.c:(.text+0x195): undefined reference to `BDB::bdb_update_media_record(JCR*, MEDIA_DBR*)' recycle.o: In function `recycle_volume(JCR*, MEDIA_DBR*)': recycle.c:(.text+0x2b9): undefined reference to `BDB::bdb_update_media_record(JCR*, MEDIA_DBR*)' restore.o: In function `do_restore(JCR*)': restore.c:(.text+0xcaa): undefined reference to `BDB::bdb_update_job_start_record(JCR*, JOB_DBR*)' scheduler.o: In function `wait_for_next_job(char*)': scheduler.c:(.text+0x48): undefined reference to `debug_level_tags' scheduler.c:(.text+0x189): undefined reference to `debug_level_tags' scheduler.c:(.text+0x240): undefined reference to `debug_level_tags' scheduler.c:(.text+0x336): undefined reference to `debug_level_tags' scheduler.c:(.text+0x5eb): undefined reference to `debug_level_tags' scheduler.o:scheduler.c:(.text+0x81d): more undefined references to `debug_level_tags' follow ua_cmds.o: In function `add_cmd(UAContext*, char const*)': ua_cmds.c:(.text+0x520): undefined reference to `BDB::bdb_create_media_record(JCR*, MEDIA_DBR*)' ua_cmds.c:(.text+0x57f): undefined reference to `BDB::bdb_update_pool_record(JCR*, POOL_DBR*)' ua_cmds.o: In function `setdebug_cmd(UAContext*, char const*)': ua_cmds.c:(.text+0x159e): undefined reference to `debug_level_tags' ua_cmds.o: In function `wait_cmd(UAContext*, char const*)': ua_cmds.c:(.text+0x21cf): undefined reference to `job_status_to_str(int, int)' ua_cmds.o: In function `update_pool_references(JCR*, BDB*, POOL*)': ua_cmds.c:(.text+0x26bb): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' ua_cmds.c:(.text+0x2700): undefined reference to `BDB::bdb_update_pool_record(JCR*, POOL_DBR*)' ua_cmds.o: In function `set_pooldbr_references(JCR*, BDB*, POOL_DBR*, POOL*)': ua_cmds.c:(.text+0x27be): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' ua_cmds.c:(.text+0x2880): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' ua_cmds.o: In function `create_pool(JCR*, BDB*, POOL*, e_pool_op)': ua_cmds.c:(.text+0x2976): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' ua_cmds.c:(.text+0x29b9): undefined reference to `BDB::bdb_update_pool_record(JCR*, POOL_DBR*)' ua_cmds.c:(.text+0x29f2): undefined reference to `BDB::bdb_create_pool_record(JCR*, POOL_DBR*)' ua_cmds.o: In function `do_enable_disable_cmd(UAContext*, bool)': ua_cmds.c:(.text+0x32b0): undefined reference to `bdb_disable_batch_insert(bool)' ua_cmds.o: In function `delete_volume(UAContext*)': ua_cmds.c:(.text+0x41dd): undefined reference to `BDB::bdb_get_volume_jobids(JCR*, MEDIA_DBR*, db_list_ctx*)' ua_cmds.c:(.text+0x425e): undefined reference to `BDB::bdb_delete_media_record(JCR*, MEDIA_DBR*)' ua_cmds.o: In function `delete_pool(UAContext*)': ua_cmds.c:(.text+0x4399): undefined reference to `BDB::bdb_delete_pool_record(JCR*, POOL_DBR*)' ua_dotcmds.o: In function `dot_bvfs_lsdirs(UAContext*, char const*)': ua_dotcmds.c:(.text+0x1709): undefined reference to `Bvfs::Bvfs(JCR*, BDB*)' ua_dotcmds.o: In function `dot_bvfs_lsfiles(UAContext*, char const*)': ua_dotcmds.c:(.text+0x1a27): undefined reference to `Bvfs::Bvfs(JCR*, BDB*)' ua_dotcmds.o: In function `dot_bvfs_get_volumes(UAContext*, char const*)': ua_dotcmds.c:(.text+0x1dd6): undefined reference to `Bvfs::Bvfs(JCR*, BDB*)' ua_dotcmds.c:(.text+0x1f41): undefined reference to `Bvfs::get_volumes(unsigned long)' ua_dotcmds.o: In function `dot_bvfs_update(UAContext*, char const*)': ua_dotcmds.c:(.text+0x1fea): undefined reference to `bvfs_update_path_hierarchy_cache(JCR*, BDB*, char*)' ua_dotcmds.c:(.text+0x2014): undefined reference to `bvfs_update_cache(JCR*, BDB*)' ua_dotcmds.o: In function `dot_bvfs_get_jobids(UAContext*, char const*)': ua_dotcmds.c:(.text+0x20ef): undefined reference to `Bvfs::Bvfs(JCR*, BDB*)' ua_dotcmds.c:(.text+0x22fe): undefined reference to `BDB::bdb_lock(char const*, int)' ua_dotcmds.c:(.text+0x235e): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_dotcmds.c:(.text+0x242c): undefined reference to `BDB::bdb_lock(char const*, int)' ua_dotcmds.c:(.text+0x247a): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_dotcmds.c:(.text+0x24de): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' ua_dotcmds.c:(.text+0x2682): undefined reference to `BDB::bdb_get_query_dbids(JCR*, POOL_MEM&, dbid_list&)' ua_dotcmds.c:(.text+0x2715): undefined reference to `BDB::bdb_get_accurate_jobids(JCR*, JOB_DBR*, db_list_ctx*)' ua_dotcmds.o: In function `dot_bvfs_get_jobs(UAContext*, char const*)': ua_dotcmds.c:(.text+0x28e2): undefined reference to `BDB::bdb_lock(char const*, int)' ua_dotcmds.c:(.text+0x29a2): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_dotcmds.o: In function `dot_bvfs_versions(UAContext*, char const*)': ua_dotcmds.c:(.text+0x2b99): undefined reference to `Bvfs::Bvfs(JCR*, BDB*)' ua_dotcmds.c:(.text+0x2cdb): undefined reference to `Bvfs::get_all_file_versions(unsigned int, unsigned long, char const*)' ua_dotcmds.o: In function `dot_bvfs_restore(UAContext*, char const*)': ua_dotcmds.c:(.text+0x2dcd): undefined reference to `Bvfs::Bvfs(JCR*, BDB*)' ua_dotcmds.o: In function `dot_bvfs_cleanup(UAContext*, char const*)': ua_dotcmds.c:(.text+0x3064): undefined reference to `Bvfs::Bvfs(JCR*, BDB*)' ua_dotcmds.o: In function `dot_bvfs_clear_cache(UAContext*, char const*)': ua_dotcmds.c:(.text+0x32ef): undefined reference to `Bvfs::Bvfs(JCR*, BDB*)' ua_dotcmds.o: In function `dot_bvfs_update_fv(UAContext*, char const*)': ua_dotcmds.c:(.text+0x33aa): undefined reference to `bvfs_update_path_hierarchy_cache(JCR*, BDB*, char*)' ua_dotcmds.c:(.text+0x33bf): undefined reference to `bvfs_update_fv_cache(JCR*, BDB*, char*)' ua_dotcmds.o: In function `tagscmd(UAContext*, char const*)': ua_dotcmds.c:(.text+0x3472): undefined reference to `debug_get_tag(unsigned int, char const**)' ua_dotcmds.c:(.text+0x34ab): undefined reference to `debug_get_tag(unsigned int, char const**)' ua_dotcmds.o: In function `bvfs_parse_arg(UAContext*, unsigned int*, char**, char**, char**, int*, int*)': ua_dotcmds.c:(.text+0x3847): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' ua_query.o: In function `querycmd(UAContext*, char const*)': ua_query.c:(.text+0x3aa): undefined reference to `BDB::bdb_list_sql_query(JCR*, char const*, void (*)(void*, char const*), void*, int, e_list_type)' ua_query.c:(.text+0x3c6): undefined reference to `BDB::bdb_list_sql_query(JCR*, char const*, void (*)(void*, char const*), void*, int, e_list_type)' ua_query.c:(.text+0x50e): undefined reference to `BDB::bdb_list_sql_query(JCR*, char const*, void (*)(void*, char const*), void*, int, e_list_type)' ua_query.c:(.text+0x54c): undefined reference to `BDB::bdb_list_sql_query(JCR*, char const*, void (*)(void*, char const*), void*, int, e_list_type)' ua_query.o: In function `sqlquerycmd(UAContext*, char const*)': ua_query.c:(.text+0xbea): undefined reference to `BDB::bdb_list_sql_query(JCR*, char const*, void (*)(void*, char const*), void*, int, e_list_type)' ua_label.o: In function `do_label(UAContext*, char const*, int)': ua_label.c:(.text+0x2f8): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' ua_label.c:(.text+0x376): undefined reference to `BDB::bdb_update_media_record(JCR*, MEDIA_DBR*)' ua_label.c:(.text+0x500): undefined reference to `BDB::bdb_update_media_record(JCR*, MEDIA_DBR*)' ua_label.c:(.text+0x627): undefined reference to `BDB::bdb_create_media_record(JCR*, MEDIA_DBR*)' ua_label.c:(.text+0x666): undefined reference to `BDB::bdb_update_pool_record(JCR*, POOL_DBR*)' ua_label.c:(.text+0x70f): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' ua_label.c:(.text+0x935): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' ua_label.c:(.text+0xa69): undefined reference to `BDB::bdb_delete_media_record(JCR*, MEDIA_DBR*)' ua_label.c:(.text+0xaac): undefined reference to `BDB::bdb_update_pool_record(JCR*, POOL_DBR*)' ua_label.o: In function `update_slots(UAContext*)': ua_label.c:(.text+0x1234): undefined reference to `BDB::bdb_lock(char const*, int)' ua_label.c:(.text+0x1248): undefined reference to `BDB::bdb_make_inchanger_unique(JCR*, MEDIA_DBR*)' ua_label.c:(.text+0x125b): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_label.c:(.text+0x12c1): undefined reference to `BDB::bdb_lock(char const*, int)' ua_label.c:(.text+0x131d): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' ua_label.c:(.text+0x144e): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_label.c:(.text+0x14a0): undefined reference to `BDB::bdb_update_media_record(JCR*, MEDIA_DBR*)' ua_label.c:(.text+0x14fa): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_label.c:(.text+0x1559): undefined reference to `BDB::bdb_lock(char const*, int)' ua_label.c:(.text+0x158a): undefined reference to `BDB::bdb_make_inchanger_unique(JCR*, MEDIA_DBR*)' ua_label.c:(.text+0x15a6): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_label.o: In function `content_send_info(UAContext*, char, int, char*)': ua_label.c:(.text+0x24b9): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' ua_label.c:(.text+0x24f5): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' ua_label.o: In function `status_slots(UAContext*, STORE*)': ua_label.c:(.text+0x28b3): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' ua_label.c:(.text+0x28f1): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' ua_label.o: In function `send_label_request(UAContext*, MEDIA_DBR*, MEDIA_DBR*, POOL_DBR*, int, bool, int)': ua_label.c:(.text+0x2f82): undefined reference to `BDB::bdb_update_media_record(JCR*, MEDIA_DBR*)' ua_label.c:(.text+0x3037): undefined reference to `BDB::bdb_create_media_record(JCR*, MEDIA_DBR*)' ua_label.c:(.text+0x3077): undefined reference to `BDB::bdb_update_pool_record(JCR*, POOL_DBR*)' ua_output.o: In function `acl_access_jobid_ok(UAContext*, char const*)': ua_output.c:(.text+0xa91): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' ua_output.o: In function `do_list_cmd(UAContext*, char const*, e_list_type)': ua_output.c:(.text+0xdc5): undefined reference to `BDB::bdb_list_job_records(JCR*, JOB_DBR*, void (*)(void*, char const*), void*, e_list_type)' ua_output.c:(.text+0xdef): undefined reference to `BDB::bdb_list_job_records(JCR*, JOB_DBR*, void (*)(void*, char const*), void*, e_list_type)' ua_output.c:(.text+0xe18): undefined reference to `BDB::bdb_list_job_totals(JCR*, JOB_DBR*, void (*)(void*, char const*), void*)' ua_output.c:(.text+0xe81): undefined reference to `BDB::bdb_list_job_records(JCR*, JOB_DBR*, void (*)(void*, char const*), void*, e_list_type)' ua_output.c:(.text+0xecd): undefined reference to `BDB::bdb_list_job_records(JCR*, JOB_DBR*, void (*)(void*, char const*), void*, e_list_type)' ua_output.c:(.text+0x10de): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' ua_output.c:(.text+0x1127): undefined reference to `BDB::bdb_list_base_files_for_job(JCR*, unsigned int, void (*)(void*, char const*), void*)' ua_output.c:(.text+0x11ae): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' ua_output.c:(.text+0x11f7): undefined reference to `BDB::bdb_list_files_for_job(JCR*, unsigned int, void (*)(void*, char const*), void*)' ua_output.c:(.text+0x126b): undefined reference to `BDB::bdb_list_pool_records(JCR*, POOL_DBR*, void (*)(void*, char const*), void*, e_list_type)' ua_output.c:(.text+0x1316): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' ua_output.c:(.text+0x1341): undefined reference to `BDB::bdb_list_jobmedia_records(JCR*, unsigned int, void (*)(void*, char const*), void*, e_list_type)' ua_output.c:(.text+0x1372): undefined reference to `BDB::bdb_list_jobmedia_records(JCR*, unsigned int, void (*)(void*, char const*), void*, e_list_type)' ua_output.c:(.text+0x1416): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' ua_output.c:(.text+0x1441): undefined reference to `BDB::bdb_list_joblog_records(JCR*, unsigned int, void (*)(void*, char const*), void*, e_list_type)' ua_output.c:(.text+0x1472): undefined reference to `BDB::bdb_list_joblog_records(JCR*, unsigned int, void (*)(void*, char const*), void*, e_list_type)' ua_output.c:(.text+0x149b): undefined reference to `BDB::bdb_list_client_records(JCR*, void (*)(void*, char const*), void*, e_list_type)' ua_output.c:(.text+0x1549): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' ua_output.c:(.text+0x158c): undefined reference to `BDB::bdb_get_job_volume_names(JCR*, unsigned int, char**)' ua_output.c:(.text+0x17f7): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' ua_output.c:(.text+0x1b17): undefined reference to `BDB::bdb_list_copies_records(JCR*, unsigned int, char*, void (*)(void*, char const*), void*, e_list_type)' ua_output.c:(.text+0x1b67): undefined reference to `BDB::bdb_list_media_records(JCR*, MEDIA_DBR*, void (*)(void*, char const*), void*, e_list_type)' ua_output.c:(.text+0x1bbc): undefined reference to `BDB::bdb_get_pool_ids(JCR*, int*, unsigned int**)' ua_output.c:(.text+0x1c08): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' ua_output.c:(.text+0x1c58): undefined reference to `BDB::bdb_list_media_records(JCR*, MEDIA_DBR*, void (*)(void*, char const*), void*, e_list_type)' ua_output.c:(.text+0x1cf0): undefined reference to `BDB::bdb_list_media_records(JCR*, MEDIA_DBR*, void (*)(void*, char const*), void*, e_list_type)' ua_output.o: In function `complete_jcr_for_job(JCR*, JOB*, POOL*)': ua_output.c:(.text+0x22c5): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' ua_output.c:(.text+0x2332): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' ua_output.o: In function `do_messages(UAContext*, char const*)': ua_output.c:(.text+0x2546): undefined reference to `BSOCK::send(int)' ua_output.o: In function `bmsg(UAContext*, char const*, __va_list_tag*)': ua_output.c:(.text+0x277e): undefined reference to `BSOCK::send(int)' ua_prune.o: In function `prunecmd(UAContext*, char const*)': ua_prune.c:(.text+0x381): undefined reference to `BDB::bdb_lock(char const*, int)' ua_prune.c:(.text+0x3d7): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' ua_prune.c:(.text+0x5ad): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' ua_prune.c:(.text+0x7a6): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_prune.o: In function `prune_files(UAContext*, CLIENT*, POOL*)': ua_prune.c:(.text+0x9b0): undefined reference to `BDB::bdb_lock(char const*, int)' ua_prune.c:(.text+0xbd3): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_prune.o: In function `prune_jobs(UAContext*, CLIENT*, POOL*, int)': ua_prune.c:(.text+0xdf6): undefined reference to `BDB::bdb_lock(char const*, int)' ua_prune.c:(.text+0x1079): undefined reference to `BDB::bdb_get_accurate_jobids(JCR*, JOB_DBR*, db_list_ctx*)' ua_prune.c:(.text+0x124d): undefined reference to `BDB::bdb_get_used_base_jobids(JCR*, char*, db_list_ctx*)' ua_prune.c:(.text+0x13f6): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_prune.o: In function `prune_volume(UAContext*, MEDIA_DBR*)': ua_prune.c:(.text+0x164c): undefined reference to `BDB::bdb_lock(char const*, int)' ua_prune.c:(.text+0x1757): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_prune.o: In function `prune_stats(UAContext*, long)': ua_prune.c:(.text+0x1812): undefined reference to `BDB::bdb_lock(char const*, int)' ua_prune.c:(.text+0x185f): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_prune.o: In function `prune_set_filter(UAContext*, CLIENT*, POOL*, long, POOL_MEM*, POOL_MEM*)': ua_prune.c:(.text+0x19be): undefined reference to `BDB::bdb_lock(char const*, int)' ua_prune.c:(.text+0x1b29): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_purge.o: In function `purge_files_from_client(UAContext*, CLIENT*)': ua_purge.c:(.text+0x4ba): undefined reference to `BDB::bdb_create_client_record(JCR*, CLIENT_DBR*)' ua_purge.o: In function `purge_jobs_from_client(UAContext*, CLIENT*)': ua_purge.c:(.text+0x70a): undefined reference to `BDB::bdb_create_client_record(JCR*, CLIENT_DBR*)' ua_purge.o: In function `purge_jobs_from_volume(UAContext*, MEDIA_DBR*, bool)': ua_purge.c:(.text+0xa0d): undefined reference to `BDB::bdb_get_volume_jobids(JCR*, MEDIA_DBR*, db_list_ctx*)' ua_purge.o: In function `truncate_cmd(UAContext*, char const*)': ua_purge.c:(.text+0xd73): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' ua_purge.c:(.text+0xdec): undefined reference to `BDB::bdb_get_media_ids(JCR*, MEDIA_DBR*, int*, unsigned int**)' ua_purge.c:(.text+0xe5c): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' ua_purge.c:(.text+0x103a): undefined reference to `BDB::bdb_update_media_record(JCR*, MEDIA_DBR*)' ua_purge.o: In function `upgrade_copies(UAContext*, char*)': ua_purge.c:(.text+0x183e): undefined reference to `BDB::bdb_lock(char const*, int)' ua_purge.c:(.text+0x18f7): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_purge.o: In function `mark_media_purged(UAContext*, MEDIA_DBR*)': ua_purge.c:(.text+0x1c51): undefined reference to `BDB::bdb_update_media_record(JCR*, MEDIA_DBR*)' ua_purge.c:(.text+0x1ce4): undefined reference to `BDB::bdb_get_pool_numvols(JCR*, POOL_DBR*)' ua_purge.c:(.text+0x1cfb): undefined reference to `BDB::bdb_get_pool_numvols(JCR*, POOL_DBR*)' ua_restore.o: In function `restore_cmd(UAContext*, char const*)': ua_restore.c:(.text+0x9e6): undefined reference to `BDB::bdb_list_sql_query(JCR*, char const*, void (*)(void*, char const*), void*, int, e_list_type)' ua_restore.c:(.text+0xad9): undefined reference to `BDB::bdb_list_sql_query(JCR*, char const*, void (*)(void*, char const*), void*, int, e_list_type)' ua_restore.c:(.text+0xb8f): undefined reference to `BDB::bdb_list_sql_query(JCR*, char const*, void (*)(void*, char const*), void*, int, e_list_type)' ua_restore.c:(.text+0xedf): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' ua_restore.c:(.text+0xf2d): undefined reference to `BDB::bdb_get_accurate_jobids(JCR*, JOB_DBR*, db_list_ctx*)' ua_restore.c:(.text+0x12cb): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' ua_restore.c:(.text+0x14fa): undefined reference to `BDB::bdb_get_used_base_jobids(JCR*, char*, db_list_ctx*)' ua_restore.c:(.text+0x15a9): undefined reference to `BDB::bdb_list_sql_query(JCR*, char const*, void (*)(void*, char const*), void*, int, e_list_type)' ua_restore.c:(.text+0x1754): undefined reference to `BDB::bdb_get_file_list(JCR*, char*, bool, bool, int (*)(void*, int, char**), void*)' ua_restore.o: In function `select_backups_before_date(UAContext*, RESTORE_CTX*, char*)': ua_restore.c:(.text+0x31ae): undefined reference to `BDB::bdb_get_fileset_record(JCR*, FILESET_DBR*)' ua_restore.c:(.text+0x32c0): undefined reference to `BDB::bdb_get_fileset_record(JCR*, FILESET_DBR*)' ua_restore.c:(.text+0x3378): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' ua_restore.c:(.text+0x3680): undefined reference to `BDB::bdb_list_copies_records(JCR*, unsigned int, char*, void (*)(void*, char const*), void*, e_list_type)' ua_restore.c:(.text+0x36a9): undefined reference to `BDB::bdb_list_sql_query(JCR*, char const*, void (*)(void*, char const*), void*, int, e_list_type)' ua_run.o: In function `run_cmd(UAContext*, char const*)': ua_run.c:(.text+0x9df): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' ua_run.o: In function `restart_cmd(UAContext*, char const*)': ua_run.c:(.text+0x440f): undefined reference to `BDB::bdb_list_job_records(JCR*, JOB_DBR*, void (*)(void*, char const*), void*, e_list_type)' ua_run.c:(.text+0x4612): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' ua_select.o: In function `get_client_dbr(UAContext*, CLIENT_DBR*)': ua_select.c:(.text+0x184f): undefined reference to `BDB::bdb_get_client_record(JCR*, CLIENT_DBR*)' ua_select.c:(.text+0x1925): undefined reference to `BDB::bdb_get_client_record(JCR*, CLIENT_DBR*)' ua_select.o: In function `select_client_dbr(UAContext*, CLIENT_DBR*)': ua_select.c:(.text+0x19c3): undefined reference to `BDB::bdb_get_client_ids(JCR*, int*, unsigned int**)' ua_select.c:(.text+0x1a2c): undefined reference to `BDB::bdb_get_client_record(JCR*, CLIENT_DBR*)' ua_select.c:(.text+0x1aee): undefined reference to `BDB::bdb_get_client_record(JCR*, CLIENT_DBR*)' ua_select.o: In function `get_pool_dbr(UAContext*, POOL_DBR*, char const*)': ua_select.c:(.text+0x1bdb): undefined reference to `BDB::bdb_get_pool_numvols(JCR*, POOL_DBR*)' ua_select.o: In function `select_pool_dbr(UAContext*, POOL_DBR*, char const*)': ua_select.c:(.text+0x1d03): undefined reference to `BDB::bdb_get_pool_ids(JCR*, int*, unsigned int**)' ua_select.c:(.text+0x1d9b): undefined reference to `BDB::bdb_get_pool_numvols(JCR*, POOL_DBR*)' ua_select.c:(.text+0x1e82): undefined reference to `BDB::bdb_get_pool_numvols(JCR*, POOL_DBR*)' ua_select.c:(.text+0x1f2a): undefined reference to `BDB::bdb_get_pool_numvols(JCR*, POOL_DBR*)' ua_select.o: In function `select_pool_and_media_dbr(UAContext*, POOL_DBR*, MEDIA_DBR*)': ua_select.c:(.text+0x2030): undefined reference to `BDB::bdb_get_pool_record(JCR*, POOL_DBR*)' ua_select.o: In function `select_media_dbr(UAContext*, MEDIA_DBR*)': ua_select.c:(.text+0x21e9): undefined reference to `BDB::bdb_list_media_records(JCR*, MEDIA_DBR*, void (*)(void*, char const*), void*, e_list_type)' ua_select.c:(.text+0x226e): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' ua_select.o: In function `get_job_dbr(UAContext*, JOB_DBR*)': ua_select.c:(.text+0x262b): undefined reference to `BDB::bdb_list_job_records(JCR*, JOB_DBR*, void (*)(void*, char const*), void*, e_list_type)' ua_select.c:(.text+0x2664): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' ua_select.c:(.text+0x26ca): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' snapshot.o: In function `delete_snapshot(UAContext*)': snapshot.c:(.text+0x383): undefined reference to `BDB::bdb_delete_snapshot_record(JCR*, SNAPSHOT_DBR*)' snapshot.o: In function `select_snapshot_dbr(UAContext*, SNAPSHOT_DBR*)': snapshot.c:(.text+0x5d2): undefined reference to `BDB::bdb_list_snapshot_records(JCR*, SNAPSHOT_DBR*, void (*)(void*, char const*), void*, e_list_type)' snapshot.o: In function `prune_snapshot(UAContext*)': snapshot.c:(.text+0xebc): undefined reference to `BDB::bdb_list_snapshot_records(JCR*, SNAPSHOT_DBR*, void (*)(void*, char const*), void*, e_list_type)' snapshot.c:(.text+0x114e): undefined reference to `BDB::bdb_delete_snapshot_record(JCR*, SNAPSHOT_DBR*)' snapshot.o: In function `get_snapshot_record(UAContext*, SNAPSHOT_DBR*)': snapshot.c:(.text+0x1439): undefined reference to `BDB::bdb_get_snapshot_record(JCR*, SNAPSHOT_DBR*)' snapshot.o: In function `snapshot_catreq(JCR*, BSOCK*)': snapshot.c:(.text+0x1605): undefined reference to `debug_level_tags' snapshot.c:(.text+0x175d): undefined reference to `debug_level_tags' snapshot.c:(.text+0x17a4): undefined reference to `BDB::bdb_lock(char const*, int)' snapshot.c:(.text+0x17ba): undefined reference to `BDB::bdb_create_snapshot_record(JCR*, SNAPSHOT_DBR*)' snapshot.c:(.text+0x17ec): undefined reference to `BDB::bdb_unlock(char const*, int)' snapshot.c:(.text+0x191f): undefined reference to `debug_level_tags' snapshot.c:(.text+0x1975): undefined reference to `BDB::bdb_list_snapshot_records(JCR*, SNAPSHOT_DBR*, void (*)(void*, char const*), void*, e_list_type)' snapshot.c:(.text+0x1a1a): undefined reference to `debug_level_tags' snapshot.c:(.text+0x1a64): undefined reference to `BDB::bdb_lock(char const*, int)' snapshot.c:(.text+0x1a7a): undefined reference to `BDB::bdb_delete_snapshot_record(JCR*, SNAPSHOT_DBR*)' snapshot.c:(.text+0x1aad): undefined reference to `BDB::bdb_unlock(char const*, int)' snapshot.o: In function `snapshot_list(UAContext*, int, void (*)(void*, char const*), e_list_type)': snapshot.c:(.text+0x1cf4): undefined reference to `BDB::bdb_list_snapshot_records(JCR*, SNAPSHOT_DBR*, void (*)(void*, char const*), void*, e_list_type)' snapshot.o: In function `list_client_snapshot(UAContext*, bool)': snapshot.c:(.text+0x22f8): undefined reference to `BDB::bdb_get_snapshot_record(JCR*, SNAPSHOT_DBR*)' snapshot.c:(.text+0x2313): undefined reference to `BDB::bdb_create_snapshot_record(JCR*, SNAPSHOT_DBR*)' snapshot.o: In function `update_snapretention(UAContext*, char*, SNAPSHOT_DBR*)': snapshot.c:(.text+0x29fe): undefined reference to `BDB::bdb_lock(char const*, int)' snapshot.c:(.text+0x2a0e): undefined reference to `BDB::bdb_update_snapshot_record(JCR*, SNAPSHOT_DBR*)' snapshot.c:(.text+0x2a3e): undefined reference to `BDB::bdb_unlock(char const*, int)' snapshot.o: In function `update_snapcomment(UAContext*, char*, SNAPSHOT_DBR*)': snapshot.c:(.text+0x2b7a): undefined reference to `BDB::bdb_lock(char const*, int)' snapshot.c:(.text+0x2b8c): undefined reference to `BDB::bdb_update_snapshot_record(JCR*, SNAPSHOT_DBR*)' snapshot.c:(.text+0x2bbb): undefined reference to `BDB::bdb_unlock(char const*, int)' snapshot.o: In function `SNAPSHOT_DBR::debug(int)': snapshot.c:(.text._ZN12SNAPSHOT_DBR5debugEi[_ZN12SNAPSHOT_DBR5debugEi]+0x2b): undefined reference to `debug_level_tags' ua_status.o: In function `list_dir_status_header(UAContext*)': ua_status.c:(.text+0x4e0): undefined reference to `b_plugin_list' ua_status.c:(.text+0x529): undefined reference to `b_plugin_list' ua_status.c:(.text+0x580): undefined reference to `b_plugin_list' ua_tree.o: In function `estimatecmd(UAContext*, TREE_CTX*)': ua_tree.c:(.text+0x5f7): undefined reference to `BDB::bdb_get_file_attributes_record(JCR*, char*, JOB_DBR*, FILE_DBR*)' ua_tree.o: In function `set_extract(UAContext*, s_tree_node*, TREE_CTX*, bool)': ua_tree.c:(.text+0x17f8): undefined reference to `BDB::bdb_get_file_attributes_record(JCR*, char*, JOB_DBR*, FILE_DBR*)' ua_tree.o: In function `do_dircmd(UAContext*, TREE_CTX*, bool)': ua_tree.c:(.text+0x1b92): undefined reference to `BDB::bdb_get_file_attributes_record(JCR*, char*, JOB_DBR*, FILE_DBR*)' ua_update.o: In function `update_cmd(UAContext*, char const*)': ua_update.c:(.text+0x203): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' ua_update.o: In function `update_volume(UAContext*)': ua_update.c:(.text+0x768): undefined reference to `BDB::bdb_get_pool_numvols(JCR*, POOL_DBR*)' ua_update.c:(.text+0xef6): undefined reference to `BDB::bdb_update_media_record(JCR*, MEDIA_DBR*)' ua_update.c:(.text+0x1297): undefined reference to `BDB::bdb_get_pool_numvols(JCR*, POOL_DBR*)' ua_update.c:(.text+0x1347): undefined reference to `BDB::bdb_get_pool_numvols(JCR*, POOL_DBR*)' ua_update.o: In function `update_pool(UAContext*)': ua_update.c:(.text+0x14f5): undefined reference to `BDB::bdb_update_pool_record(JCR*, POOL_DBR*)' ua_update.c:(.text+0x1596): undefined reference to `BDB::bdb_list_sql_query(JCR*, char const*, void (*)(void*, char const*), void*, int, e_list_type)' ua_update.o: In function `update_stats(UAContext*)': ua_update.c:(.text+0x162b): undefined reference to `BDB::bdb_update_stats(JCR*, long)' ua_update.o: In function `update_vol_pool(UAContext*, char*, MEDIA_DBR*, POOL_DBR*)': ua_update.c:(.text+0x1710): undefined reference to `BDB::bdb_lock(char const*, int)' ua_update.c:(.text+0x17a8): undefined reference to `BDB::bdb_update_pool_record(JCR*, POOL_DBR*)' ua_update.c:(.text+0x17e3): undefined reference to `BDB::bdb_update_pool_record(JCR*, POOL_DBR*)' ua_update.c:(.text+0x1833): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_update.o: In function `update_vol_recyclepool(UAContext*, char*, MEDIA_DBR*)': ua_update.c:(.text+0x196c): undefined reference to `BDB::bdb_lock(char const*, int)' ua_update.c:(.text+0x1a14): undefined reference to `BDB::bdb_unlock(char const*, int)' ua_update.o: In function `update_volslot(UAContext*, char*, MEDIA_DBR*)': ua_update.c:(.text+0x2527): undefined reference to `BDB::bdb_get_pool_numvols(JCR*, POOL_DBR*)' ua_update.c:(.text+0x25a6): undefined reference to `BDB::bdb_update_media_record(JCR*, MEDIA_DBR*)' ua_update.o: In function `update_vol_from_pool(UAContext*, MEDIA_DBR*)': ua_update.c:(.text+0x2674): undefined reference to `BDB::bdb_get_pool_numvols(JCR*, POOL_DBR*)' ua_update.c:(.text+0x26b8): undefined reference to `BDB::bdb_update_media_defaults(JCR*, MEDIA_DBR*)' ua_update.o: In function `update_all_vols_from_pool(UAContext*, char const*)': ua_update.c:(.text+0x27d5): undefined reference to `BDB::bdb_update_media_defaults(JCR*, MEDIA_DBR*)' ua_update.o: In function `update_volenabled(UAContext*, char*, MEDIA_DBR*)': ua_update.c:(.text+0x2882): undefined reference to `BDB::bdb_update_media_record(JCR*, MEDIA_DBR*)' ua_update.o: In function `update_vol_actiononpurge(UAContext*, char*, MEDIA_DBR*)': ua_update.c:(.text+0x293f): undefined reference to `BDB::bdb_update_media_record(JCR*, MEDIA_DBR*)' ua_update.o: In function `update_all_vols(UAContext*)': ua_update.c:(.text+0x2a4f): undefined reference to `BDB::bdb_get_pool_ids(JCR*, int*, unsigned int**)' ua_update.c:(.text+0x2a9c): undefined reference to `BDB::bdb_get_pool_numvols(JCR*, POOL_DBR*)' ua_update.c:(.text+0x2ac7): undefined reference to `BDB::bdb_update_media_defaults(JCR*, MEDIA_DBR*)' vbackup.o: In function `do_vbackup_init(JCR*)': vbackup.c:(.text+0x105): undefined reference to `BDB::bdb_update_job_start_record(JCR*, JOB_DBR*)' vbackup.o: In function `do_vbackup(JCR*)': vbackup.c:(.text+0x440): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' vbackup.c:(.text+0x49c): undefined reference to `BDB::bdb_get_accurate_jobids(JCR*, JOB_DBR*, db_list_ctx*)' vbackup.c:(.text+0x4c9): undefined reference to `BDB::bdb_get_accurate_jobids(JCR*, JOB_DBR*, db_list_ctx*)' vbackup.c:(.text+0x7d4): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' vbackup.c:(.text+0x826): undefined reference to `BDB::bdb_open_batch_connexion(JCR*)' vbackup.c:(.text+0x852): undefined reference to `BDB::bdb_get_file_list(JCR*, char*, bool, bool, int (*)(void*, int, char**), void*)' vbackup.c:(.text+0x9c2): undefined reference to `BDB::bdb_update_job_start_record(JCR*, JOB_DBR*)' vbackup.c:(.text+0xa25): undefined reference to `bdb_write_batch_file_records(JCR*)' vbackup.o: In function `vbackup_cleanup(JCR*, int)': vbackup.c:(.text+0xde6): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' vbackup.c:(.text+0xe55): undefined reference to `BDB::bdb_get_client_record(JCR*, CLIENT_DBR*)' vbackup.c:(.text+0xeb6): undefined reference to `BDB::bdb_get_media_record(JCR*, MEDIA_DBR*)' vbackup.c:(.text+0x10cc): undefined reference to `BDB::bdb_get_job_volume_names(JCR*, unsigned int, char**)' verify.o: In function `do_verify(JCR*)': verify.c:(.text+0x1c7): undefined reference to `BDB::bdb_find_last_jobid(JCR*, char const*, JOB_DBR*)' verify.c:(.text+0x236): undefined reference to `BDB::bdb_get_job_record(JCR*, JOB_DBR*)' verify.c:(.text+0x34a): undefined reference to `BDB::bdb_update_job_start_record(JCR*, JOB_DBR*)' verify.c:(.text+0x824): undefined reference to `bdb_write_batch_file_records(JCR*)' verify.o: In function `get_attributes_and_compare_to_catalog(JCR*, unsigned int)': verify.c:(.text+0x11de): undefined reference to `BDB::bdb_get_file_attributes_record(JCR*, char*, JOB_DBR*, FILE_DBR*)' verify.c:(.text+0x1205): undefined reference to `BDB::bdb_mark_file_record(JCR*, unsigned long, unsigned int)' c++: error: linker command failed with exit code 1 (use -v to see invocation) *** Error code 1 Stop. make[3]: stopped in /var/ports/basejail/usr/ports/sysutils/bacula-server/work/bacula-7.2.0/src/dird ====== Error in /var/ports/basejail/usr/ports/sysutils/bacula-server/work/bacula-7.2.0/src/dird ====== *** Error code 1 Stop. make[2]: stopped in /var/ports/basejail/usr/ports/sysutils/bacula-server/work/bacula-7.2.0 *** Error code 1 Stop. make[1]: stopped in /basejail/usr/ports/sysutils/bacula-server *** Error code 1 Stop. make: stopped in /basejail/usr/ports/sysutils/bacula-server ports-play /usr/ports/sysutils/bacula-server #
*** Bug 192526 has been marked as a duplicate of this bug. ***
Created attachment 162186 [details] full compile log with the CPPFLAGS commented out
Just ran a verification test, and with 7.2.0 installed, 7.2.0 compiles/installs fine \
(In reply to Larry Rosenman from comment #12) Here is what I think happens. The issue seems to be related to shared libraries, which are installed by sysutil/bacula-client When crossing major lib numbers (e.g. 5.x to 7.x), everything gets into an evil twist: * trying to upgrade bacula-client v5 by installing bacula-client v7 * can't deinstall v5 because bacula-server v5 needs it I'm not sure, but that's my theory.
Created attachment 162194 [details] proposed fix
My proposed fix makes the -server port dependent on the -client port being the SAME version, and makes other cleanups to make it work, removing some environment polluting statements. Ports Folks: Is there a prefered way to make sure the -client port is upgraded AND INSTALLED before -server is built?
Created attachment 162195 [details] proposed fix, including the added patch
Thank you. I tried the patch. I made one change because it failed testport (http://services.unixathome.org/poudriere/data/102amd64-clean/2015-10-19_17h30m54s/logs/errors/bacula-server-7.2.0.log): line 144: LIB_DEPENDS+= libpq.so:${PORTSDIR}/databases/postgresql94-client Clearly, this is not ideal because we are hardcoding the PostgreSQL Version, but it's a work-around for now. The current block is readline (http://services.unixathome.org/poudriere/data/102amd64-clean/2015-10-19_17h44m08s/logs/errors/bacula-server-7.2.0.log): --- console.o --- console.c:363:10: fatal error: 'readline.h' file not found #include "readline.h" I found readline.h at /usr/local/include/editline/ This led me to try readline_ARGS= /usr/local/include/editline but that did not succeed either.
Created attachment 162221 [details] Hopefully final version
Created attachment 162222 [details] Update patch - revision to address swills comments in IRC
these changes move $(LDFLAGS) and $(CONS_LDFLAGS) after all the -L../* for ALL the Makefiles. The reason for this is so we pick up the LOCAL version that matches the install version. We also change the bacula-client dependency to force -client and -server to have the SAME version. This fixes the build with the OLDER version installed, so that we do NOT pick up the installed SHLIBS. Also fixed is the readline detection for 11+
Created attachment 162254 [details] final patch This removes my debugging comments, fixes pgsql uses, and fixes readline on <11.
A commit references this bug: Author: dvl Date: Wed Oct 21 22:46:08 UTC 2015 New revision: 399938 URL: https://svnweb.freebsd.org/changeset/ports/399938 Log: Improve the upgrade process with respect to shared libraries My thanks to Larry Rosenman who did all the heavy lifting on this patch. The existing port relied heavily upon an agressive sed which seems to have adverse affects. Submitted by: ler@lerctr.org PR: 193641 193617 Approved by: mat (mentor) Changes: head/sysutils/bacula-client/Makefile head/sysutils/bacula-server/Makefile head/sysutils/bacula-server/Makefile.common head/sysutils/bacula-server/files/patch-src__qt-configle__bat.pro.in head/sysutils/bacula-server/files/patch-src_console_Makefile.in head/sysutils/bacula-server/files/patch-src_dird_Makefile.in head/sysutils/bacula-server/files/patch-src_filed_Makefile.in head/sysutils/bacula-server/files/patch-src_qt-console_bat.pro.in head/sysutils/bacula-server/files/patch-src_stored_Makefile.in head/sysutils/bacula-server/files/patch-src_tools_Makefile.in
Committed. Thank you.
sigh, this is happening again with 7.4.4....
Seems I was able to solve the libabccfg so issue by installing the binary port once, then I could do a `make reinstall clean` and not run into the issue (For those who may also run into this)