qlibs - C library and headers based on "djb's libs" and libowfat.

Initially, these libs were excluded from *qmail and forseen to use with eQmail. 
As the packages of djb (D.J. Bernstein) uses these libs in different versions, 
there comes up the need to have a consistent state. 
As time was going on, there was also a need to include additional functionality 
and up-to-date best practices. 
Short - this was the point where some parts from libowfat were included.

The current fehQlibs rather accustom to the needs of different OS.

In theorie - these libs can be used with any djb software.

Achievements
------------

* IPv4/IPv6 unification:

The current package supports unified IPv4/IPv6 socket calls, while IPv6 is the default.

* DNS stub-resolver:

The provided DNS stub-resolver is IPv4 and IPv6 aware.
See the README in the ./dnsstub directory for details.


Installation
------------

Some build options can be configured through 'conf-build'.  
Read the comments in this file for more information. 

* Building:

a) Static libs:

Execute

  $ make

which does the steps of './configure && make'. 
Don't forget to make sure that libs and headers will be found by the compiler/linker.
For convenience, link the current version of fehQlibs to qlibs

  $ ln -s fehQlibs-XY qlibs

b) Shared objects libs:

You can also build dynamic libaries for qlibs and dnsresolv. After

  $ make

call 

  $ make shared

* Deployment:

In case conf-build has been customized to include the location of

- HDRDIR
- LIBDIR

issue 

  $ make install

to deploy the include files and libs at the given location.
By default, for the libs the parent directory is used.

* Verification:

Check the ELFCLASS of the generated binaries in the source directory while calling

  $ file open.o

They need to comply with your OS. See 'conf-build' for options.

* Resulting libraries:

The following libraries are generated:

- qlibs.a - static basic [w/o DNS] lib (linked to libqlibs.a)
- dnsresolv.a - static DNS resolver lib (linked to libdnsresolv.a)

and perhaps

- libqlibs.so - dynamic, position independent (PIC) 'shared object' lib
- libdnsresolv.so - dynamic, position independent (PIC) 'shared object' lib

These libs are of type ELF64 or ELF32 depending on the system.

Use 'ar -t' to get the included members of the static libs.
Use 'nm' to view the members and symbols of the libs.


Man pages
---------

In the ./man directory the current man pages for the basic qlibs routines are included.
Determine the current $mandir and (as root) install the man pages:

  $ cp *.3 $mandir/man3/


Updated: 20170329, Kai Peter
Updated: 20181214, Erwin Hoffmann
