Good day, I'm having problem with smbtad to initialize sqlite db. Below is the actual steps I have taken to compile and run smbtad. TIA. **System info: [root@localhost dev]# uname -a Linux localhost 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux [root@localhost dev]# cat /etc/redhat-release CentOS release 6.3 (Final) [root@localhost dev]# rpm -qa | grep libdbi libdbi-devel-0.8.3-3.1.el6.x86_64 libdbi-0.8.3-3.1.el6.x86_64 [root@localhost dev]# rpm -qa | grep sqlite sqlite-3.6.20-1.el6.x86_64 qt-sqlite-4.6.2-24.el6.x86_64 [root@localhost dev]# rpm -qa | grep ncurses ncurses-libs-5.7-3.20090208.el6.x86_64 ncurses-5.7-3.20090208.el6.x86_64 ncurses-devel-5.7-3.20090208.el6.x86_64 ncurses-base-5.7-3.20090208.el6.x86_64 [root@localhost dev]# rpm -qa | grep cmake cmake-2.6.4-5.el6.x86_64 [root@localhost dev]# rpm -qa | grep libsmbclient libsmbclient-devel-3.5.10-125.el6.x86_64 libsmbclient-3.5.10-125.el6.x86_64 **Getting source from git: referring to https://bugzilla.samba.org/show_bug.cgi?id=8288#c19 [root@localhost dev]# git clone git://github.com/hhetter/smbtad.git Initialized empty Git repository in /root/dev/smbtad/.git/ remote: Counting objects: 2243, done. remote: Compressing objects: 100% (764/764), done. remote: Total 2243 (delta 1700), reused 2015 (delta 1472) Receiving objects: 100% (2243/2243), 1.52 MiB | 82 KiB/s, done. Resolving deltas: 100% (1700/1700), done. [root@localhost dev]# cd smbtad [root@localhost smbtad]# git branch test --track origin/devel Branch test set up to track remote branch devel from origin. [root@localhost smbtad]# git checkout devel Branch devel set up to track remote branch devel from origin. Switched to a new branch 'devel' [root@localhost smbtad]# mkdir build [root@localhost smbtad]# cd build/ [root@localhost build]# cmake --debug-output ../ Running with debug output on. -- The C compiler identification is GNU Called from: [2] /usr/share/cmake/Modules/CMakeDetermineCCompiler.cmake [1] /root/dev/smbtad/CMakeLists.txt -- Check for working C compiler: /usr/bin/gcc Called from: [2] /usr/share/cmake/Modules/CMakeTestCCompiler.cmake [1] /root/dev/smbtad/CMakeLists.txt -- Check for working C compiler: /usr/bin/gcc -- works Called from: [2] /usr/share/cmake/Modules/CMakeTestCCompiler.cmake [1] /root/dev/smbtad/CMakeLists.txt -- Detecting C compiler ABI info Called from: [2] /usr/share/cmake/Modules/CMakeTestCCompiler.cmake [1] /root/dev/smbtad/CMakeLists.txt -- Detecting C compiler ABI info - done Called from: [2] /usr/share/cmake/Modules/CMakeTestCCompiler.cmake [1] /root/dev/smbtad/CMakeLists.txt -- checking for modules 'QUIET;libdbi' Called from: [2] /root/dev/smbtad/FindLibDBI.cmake [1] /root/dev/smbtad/CMakeLists.txt -- package 'QUIET' not found Called from: [2] /root/dev/smbtad/FindLibDBI.cmake [1] /root/dev/smbtad/CMakeLists.txt -- package 'libdbi' not found Called from: [2] /root/dev/smbtad/FindLibDBI.cmake [1] /root/dev/smbtad/CMakeLists.txt -- Found LibDbi: /usr/lib64/libdbi.so Called from: [2] /root/dev/smbtad/FindLibDBI.cmake [1] /root/dev/smbtad/CMakeLists.txt -- checking for modules 'QUIET;libdbi' Called from: [2] /root/dev/smbtad/FindLibDBI.cmake [1] /root/dev/smbtad/CMakeLists.txt -- package 'QUIET' not found Called from: [2] /root/dev/smbtad/FindLibDBI.cmake [1] /root/dev/smbtad/CMakeLists.txt -- package 'libdbi' not found Called from: [2] /root/dev/smbtad/FindLibDBI.cmake [1] /root/dev/smbtad/CMakeLists.txt -- Found Talloc: /usr/lib64/libtalloc.so Called from: [2] /root/dev/smbtad/FindTalloc.cmake [1] /root/dev/smbtad/CMakeLists.txt -- Found Talloc: /usr/lib64/libtalloc.so;/usr/lib64/libtalloc.so Called from: [2] /root/dev/smbtad/FindTalloc.cmake [1] /root/dev/smbtad/CMakeLists.txt -- Looking for include files CMAKE_HAVE_PTHREAD_H Called from: [2] /usr/share/cmake/Modules/FindThreads.cmake [1] /root/dev/smbtad/CMakeLists.txt -- Looking for include files CMAKE_HAVE_PTHREAD_H - found Called from: [2] /usr/share/cmake/Modules/FindThreads.cmake [1] /root/dev/smbtad/CMakeLists.txt -- Looking for pthread_create in pthreads Called from: [2] /usr/share/cmake/Modules/FindThreads.cmake [1] /root/dev/smbtad/CMakeLists.txt -- Looking for pthread_create in pthreads - not found Called from: [2] /usr/share/cmake/Modules/FindThreads.cmake [1] /root/dev/smbtad/CMakeLists.txt -- Looking for pthread_create in pthread Called from: [2] /usr/share/cmake/Modules/FindThreads.cmake [1] /root/dev/smbtad/CMakeLists.txt -- Looking for pthread_create in pthread - found Called from: [2] /usr/share/cmake/Modules/FindThreads.cmake [1] /root/dev/smbtad/CMakeLists.txt -- Found Threads: TRUE Called from: [2] /usr/share/cmake/Modules/FindThreads.cmake [1] /root/dev/smbtad/CMakeLists.txt -- ----> FYI: Unable to find iniparser libraries on your system Called from: [1] /root/dev/smbtad/CMakeLists.txt -- ----> compiling my own version and link it statically. Called from: [1] /root/dev/smbtad/CMakeLists.txt -- Configuring done -- Generating /root/dev/smbtad/build -- Generating done -- Build files have been written to: /root/dev/smbtad/build ** my system current CMAKE doesn't seem to recognize QUIET keyword, but still it manage to find required libs. [root@localhost build]# make Scanning dependencies of target buildiniparser [ 0%] Building iniparser. compiling src/iniparser.c ... compiling src/dictionary.c ... a - src/iniparser.o a - src/dictionary.o [ 7%] Built target buildiniparser Scanning dependencies of target smbtad [ 14%] Building C object CMakeFiles/smbtad.dir/src/main.c.o [ 21%] Building C object CMakeFiles/smbtad.dir/src/configuration.c.o [ 28%] Building C object CMakeFiles/smbtad.dir/src/help.c.o [ 35%] Building C object CMakeFiles/smbtad.dir/src/daemon.c.o [ 42%] Building C object CMakeFiles/smbtad.dir/src/connection_list.c.o [ 50%] Building C object CMakeFiles/smbtad.dir/src/network.c.o [ 57%] Building C object CMakeFiles/smbtad.dir/src/protocol.c.o [ 64%] Building C object CMakeFiles/smbtad.dir/src/cache.c.o [ 71%] Building C object CMakeFiles/smbtad.dir/src/query_list.c.o [ 78%] Building C object CMakeFiles/smbtad.dir/src/database.c.o [ 85%] Building C object CMakeFiles/smbtad.dir/src/crypto/aes.c.o [ 92%] Building C object CMakeFiles/smbtad.dir/src/crypto/rijndael-alg-fst.c.o [100%] Building C object CMakeFiles/smbtad.dir/src/monitor-list.c.o Linking C executable smbtad [100%] Built target smbtad ** checking sqlite db and config file [root@localhost build]# ls -alh /var/smbtadb/smbdb.sqlite -rw-r--r--. 1 root root 0 Feb 6 19:54 /var/smbtadb/smbdb.sqlite [root@localhost build]# cat ~/smbtad.conf [general] debug_level = 10 use_db = 1 [network] query_port = 3491 unix_domain_socket = no unix_domain_socket_clients = no [database] driver = sqlite3 name = smbdb.sqlite sqlite_dbdir = /var/smbtadb/ [maintenance] interval = 01:00:00 config = 01,00:00:00 ** initializing tables... [root@localhost build]# date Wed Feb 6 20:14:53 PHT 2013 [root@localhost build]# ./smbtad -T -c ~/smbtad.conf DBI: ERROR dbi_initialize. Exiting. Error connecting to the database. please check syslog. [root@localhost build]# tail -n 5 /var/log/messages Feb 6 19:52:48 localhost smbd[18664]: failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL Feb 6 20:05:48 localhost smbd[22171]: [2013/02/06 20:05:48.897099, 0] printing/print_cups.c:109(cups_connect) Feb 6 20:05:48 localhost smbd[22171]: Unable to connect to CUPS server localhost:631 - Connection refused Feb 6 20:05:48 localhost smbd[18664]: [2013/02/06 20:05:48.897352, 0] printing/print_cups.c:468(cups_async_callback) Feb 6 20:05:48 localhost smbd[18664]: failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL [root@localhost build]# date Wed Feb 6 20:15:01 PHT 2013 ** above: smbtad failed to init db and no syslog generated. [root@localhost build]# ldd smbtad linux-vdso.so.1 => (0x00007fff89cab000) libdbi.so.0 => /usr/lib64/libdbi.so.0 (0x00007fc517dfa000) libtalloc.so.2 => /usr/lib64/libtalloc.so.2 (0x00007fc517bf0000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc5179d2000) libdl.so.2 => /lib64/libdl.so.2 (0x00007fc5177ce000) libc.so.6 => /lib64/libc.so.6 (0x00007fc51743b000) libm.so.6 => /lib64/libm.so.6 (0x00007fc5171b6000) /lib64/ld-linux-x86-64.so.2 (0x00007fc518014000)
It fails in the initialization of libdbi in this code segment, in database.c, in int database_connect( struct configuration_data *conf ) >>> rc = dbi_initialize(NULL); if ( rc == -1 ) { printf("DBI: ERROR dbi_initialize. Exiting.\n"); return 1; } <<< This is before it does anything else with the database. I am going to reproduce a setup step to make sure there's no libdbi stack problem.
have not yet had the time to reproduce this, please stay tuned.. This will block the release tracker bug.
holger@d163:~/Dev/smbtad/run> ./smbtad -T -c ./config Succesfully created database tables. holger@d163:~/Dev/smbtad/run> Works for me. My config is the same as yours, apart from the sqlite_dbdir: holger@d163:~/Dev/smbtad/run> cat config [general] debug_level = 10 use_db = 1 [network] query_port = 3491 unix_domain_socket = no unix_domain_socket_clients = no [database] driver = sqlite3 name = smbdb.sqlite sqlite_dbdir = /home/holger/Dev/smbtad/run/ [maintenance] interval = 01:00:00 config = 01,00:00:00 holger@d163:~/Dev/smbtad/run>
int dbi_initialize(const char *driverdir); Locates all available database drivers and loads them into memory. Arguments driverdir: The directory to search for drivers. If NULL, DBI_DRIVER_DIR (defined at compile time) will be used instead. Returns The number of drivers successfully loaded, or -1 if there was an error. Sure the sqlite dbi driver is correctly installed? Not sure how fragmented libdbi is on redhat RPM wise. openSUSE does provide subpackages for the libdbi drivers, including one for sqlite. Your grep for libdbi gives: [root@localhost dev]# rpm -qa | grep libdbi libdbi-devel-0.8.3-3.1.el6.x86_64 libdbi-0.8.3-3.1.el6.x86_64
Good day sir, yes it seems your right I was missing dbi-sqlite library, they were indeed on a separate package. I just did "yum install libdbi-dbd-sqlite.x86_64" and compiled again from dev source and it initialize the sqlite db. Thank you for help.