I honestly haven't noticed whether earlier 5.x releases have any of
these problems.

When building Bacula with --enable-client-only, one would assume that
this would mean, well, client ONLY.  But it doesn't.

Using the configuration arguments generated by the Gentoo package with
'USE bacula-clientonly' as an example, though I had similar results last
night trying to manually build a static FD alone from clean source:


./configure --prefix=/usr --build=i686-pc-linux-gnu \
 --host=i686-pc-linux-gnu --mandir=/usr/share/man \
 --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc \
 --localstatedir=/var/lib --libdir=/usr/lib \
 --docdir=/usr/share/doc/bacula-5.0.2 --with-pid-dir=/var/run \
 --sysconfdir=/etc/bacula --with-subsys-dir=/var/lock/subsys \
 --with-working-dir=/var/lib/bacula \
 --with-scriptdir=/usr/libexec/bacula --with-dir-user=bacula \
 --with-dir-group=bacula --with-sd-user=root --with-sd-group=bacula \
 --with-fd-user=root --with-fd-group=bacula --enable-smartalloc \
 --host=i686-pc-linux-gnu --enable-client-only --enable-static-fd \
 --disable-tray-monitor --without-x --disable-bat --enable-static-cons \
 --without-python --enable-conio --disable-readline --without-readline \
 --with-openssl --enable-ipv6 --with-tcp-wrappers --disable-libtool


And, look, --enable-client-only is in there.  But what actually gets built?

   Large file support:      yes
   Bacula conio support:    yes -ltermcap
   readline support:        no
   TCP Wrappers support:    yes -lwrap
   TLS support:             yes
   Encryption support:      yes
   ZLIB support:            yes
   enable-smartalloc:       yes
   enable-lockmgr:          no
   bat support:             no
   enable-gnome:            no
   enable-bwx-console:      no
   enable-tray-monitor:     no
   client-only:             yes
   build-dird:              yes
   build-stored:            yes
   Plugin support:          no
   ACL support:             yes
   XATTR support:           yes
   Python support:          no
   Batch insert enabled:    no

Um .....   shouldn't "client-only" be mutually exclusive with build-dird
and build-stored?  In fact, shouldn't --enable-client-only automatically
imply --disable-build-dird and --disable-build-stored?

Also, should Bacula attempt to build and install the console if
configured with --enable-client-only?  The Makefile contains:


# --client-only directories
fd_subdirs = src scripts src/lib src/findlib src/filed \
           \
       src/console

# Non-client-only directores
subdirs =    src/cats   src/tools

Shouldn't src/console be in "Non-client-only directores"?  [sic]




Another thing I'm discovering, that is possibly a side effect of current
glibc versions, it that it appears it may no longer be possible to build
a FULLY static fd on Linux.  It appears some internal functions, even on
a statically linked binary, still require /lib/libc.so.* to be present:


../lib/libbac.a(plugins.o): In function `load_plugins(void*, void*, char
const*, char const*, bool (*)(Plugin*))':
plugins.c:(.text+0x620): warning: Using 'dlopen' in statically linked
applications requires at runtime the shared libraries from the glibc
version used for linking
../lib/libbac.a(priv.o): In function `drop(char*, char*, bool)':
priv.c:(.text+0x12e): warning: Using 'initgroups' in statically linked
applications requires at runtime the shared libraries from the glibc
version used for linking
/usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../libacl.a(__acl_to_any_text.o):
In function `__acl_to_any_text':
(.text+0x64b): warning: Using 'getgrgid' in statically linked
applications requires at runtime the shared libraries from the glibc
version used for linking
/usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../libacl.a(acl_from_text.o):
In function `acl_from_text':
(.text+0x67d): warning: Using 'getgrnam' in statically linked
applications requires at runtime the shared libraries from the glibc
version used for linking
/usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../libwrap.a(options.o): In
function `group_option':
(.text+0x8ec): warning: Using 'endgrent' in statically linked
applications requires at runtime the shared libraries from the glibc
version used for linking
/usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../libacl.a(acl_from_text.o):
In function `acl_from_text':
(.text+0x4e8): warning: Using 'getpwnam' in statically linked
applications requires at runtime the shared libraries from the glibc
version used for linking
/usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../libacl.a(__acl_to_any_text.o):
In function `__acl_to_any_text':
(.text+0x4e8): warning: Using 'getpwuid' in statically linked
applications requires at runtime the shared libraries from the glibc
version used for linking
/usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../libwrap.a(options.o): In
function `user_option':
(.text+0x99f): warning: Using 'endpwent' in statically linked
applications requires at runtime the shared libraries from the glibc
version used for linking
/usr/lib/gcc/i686-pc-linux-gnu/4.4.3/../../../libwrap.a(hosts_access.o):
In function `string_match':
(.text+0x7f1): warning: Using 'getaddrinfo' in statically linked
applications requires at runtime the shared libraries from the glibc
version used for linking
../lib/libbac.a(bnet.o): In function `resolv_host(int, char const*,
dlist*)':
bnet.c:(.text+0xee4): warning: Using 'gethostbyname2' in statically
linked applications requires at runtime the shared libraries from the
glibc version used for linking
../lib/libbac.a(address_conf.o): In function `add_address(dlist**,
IPADDR::i_type, unsigned short, int, char const*, char const*, char*, int)':
address_conf.c:(.text+0x9ff): warning: Using 'getservbyname' in
statically linked applications requires at runtime the shared libraries
from the glibc version used for linking
strip static-bacula-fd
==== Make of filed is good ====


This doesn't prevent building the filed, but causes it to SEGV on
starting a job if run with a different glibc than it was built on.  Say,
on a rescue CD.

(Ask me how I know this....  my laptop irretrievably corrupted its
filesystem sometime on Wednesday, and I spent most of yesterday testing
the disk and all yesterday evening restoring it from bare metal.
Because I couldn't get even a static fd to work on the rescue CD, I
ended up having to restore to a different machine and rsync everything
over.)






-- 
  Phil Stracchino, CDK#2     DoD#299792458     ICBM: 43.5607, -71.355
  [email protected]   [email protected]   [email protected]
         Renaissance Man, Unix ronin, Perl hacker, Free Stater
                 It's not the years, it's the mileage.

------------------------------------------------------------------------------

_______________________________________________
Bacula-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to