OpenWBEM Frequently Asked Questions

Table of contents:

  • What do I need to build OpenWBEM?
  • How do I link a binary to the OpenWBEM libraries?
  • make check failed.  What do I do now?
  • Why can't I authenticate using Linux-PAM authentication?
  • Why doesn't the configure script detect OpenSSL?
  • How do I build from OpenWBEM from CVS?
  • owcimomd closes the connection after authentication failed, and my client doesn't handle the Connection: close header. Is this a bug?

  • What do I need to build OpenWBEM?

    To build OpenWBEM, you need gcc version 3.1 or higher, GNU make, and flex.  Note that you currently can't use gcc 3.0.x due to some problems that gcc 3.0.x has with iostreams. gcc 3.1.x and 3.2 have been verified to work correctly. It is recommended that you also have OpenSSL to support HTTPS, and zlib if you want to support zlib (deflate) compression.

    How do I link a binary to the OpenWBEM libraries?

    All applications using OpenWBEM will need to link with libopenwbem.so. This is accomplished by adding -lopenwbem to your link flags.   In addition, you may need some of the following flags, depending on how OpenWBEM was built.
  • -lssl -lcrypto if OpenWBEM was built with OpenSSL.
  • -lz if OpenWBEM was built with zlib.
  • -lpthread if OpenWBEM was built with pthreads.  This should be done on Linux only.  On Unixware/OpenUnix, add -pthread to both the compile and link flags.  On Solaris, add -pthreads to both the compile and link flags.
  • -lsocket -lnsl if building on Solaris.
  • -lsocket if building on UnixWare/OpenUnix
  • To use the OpenWBEM client API, there are a number of other libraries that may be necessary, depending on what features you are using:

    If your program needs to use the server components of OpenWBEM (i.e. you are writing a provider or an authentication module), you need to add the following link flags: -lowserver -lowdb.

    If you are writing an application that uses the OpenWBEM mof compiler library, add -lowmofc to your link flags.

    make check failed.  What do I do now?

    If the acceptance test script failed, there are several log files which may help you determine what went wrong.  The acceptance script installs OpenWBEM in test/acceptance/stage.  The directory test/acceptance/stage/results contains the output from the various tests performed by the acceptance test script.  You might start with owcimomd.output.  You can also look in test/acceptance/stage for core files.  If you are familiar with gdb, please create a backtrace from the core file(s) and email it to openwbem-devel@lists.sourceforge.net.

    Why can't I authenticate using Linux-PAM authentication?

    Make sure you have a /etc/pam.d/openwbem file that works.  You should be able to copy the one from etc/pam.d/ in the source tar file.  Also, make sure you are authenticating as a user listed in the owcimomd.allowed_users variable in openwbem.conf.  For additional information, see the file AuthModule.HOWTO in the source tar file.

    Why doesn't the configure script detect OpenSSL?

    The configure script will look in the following places the the OpenSSL headers and libraries: /usr/local/openssl /usr/lib/openssl /usr/local/ssl /usr/lib/ssl /usr/local /usr/pkg /opt /opt/openssl If you have installed OpenSSL in another directory, then you must use the --with-ssl-dir switch to specify the path to the OpenSSL "installation", not the headers. This should be the directory containing ./include and ./lib. If you installed OpenSSL from the source tarball distribution, the default location is /usr/local/ssl, and should be found automatically.
    If OpenSSL is installed in one of the locations listed above, and the configure script is not finding it, then most likely you don't have the OpenSSL library directory in your LD_LIBRARY_PATH. If OpenSSL is installed in /usr/local/ssl, then /usr/local/ssl/lib must be in your LD_LIBRARY_PATH. configure tries to compile and run a small ssl program. If the program doesn't run, then the configure script will not detect OpenSSL. With /usr/local/ssl/lib in your LD_LIBRARY_PATH, the small test program should work, and configure will "find" OpenSSL in /usr/local/ssl automatically.

    How do I build from OpenWBEM from CVS?

    First run the cvsbootstrap.sh script, which will generate the Makefile.in files and the configure script. You must have autoconf and automake installed for this to work. Then you can run configure and finally make.

    owcimomd closes the connection after authentication failed, and my client doesn't handle the Connection: close header. Is this a bug?

    No, its not a bug, in fact, that's expected behavior. owcimomd closes the connection to prevent a denial of service attack. It's perfectly acceptable behavior according to the HTTP 1.1 rfc 2616 (see section 8, in particular 8.1.4: "A client, server, or proxy MAY close the transport connection at any time." and "This means that clients, servers, and proxies MUST be able to recover from asynchronous close events.") This is also normal http server behavior to close the connection when authorization fails. For some examples google for: 401 "Connection: close"



    Last modified
    Thu May 19 2005