It has been pointed out that the wording of the license of this library is not entirely clear. The term "dual licensing" usually refers to a licence choice of two licenses "LICENSE1 _or_ LICENSE2. Instead the license of this library claimed "LICENSE1 _and_ LICENSE2". After an internal discussion with @metajack and @pasis it was made clear that the initial idea was to dual license the library in the usual way. This was also made clear by jack on the ML in the past [0]. As of jack, these licensing terms originated from jquery, which also used the 'and' version in the past and has since been corrected [1]. This patch changes the license terms to 'MIT or GPLv3' and also adds SPDX headers [2]. [0] https://groups.google.com/g/libstrophe/c/JkFgr601JQc [1] https://stackoverflow.com/q/2758409 [2] https://spdx.org Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
99 lines
2.5 KiB
Markdown
99 lines
2.5 KiB
Markdown
libstrophe [](https://github.com/strophe/libstrophe/actions/workflows/main.yml?query=branch%3Amaster+++)
|
|
==========
|
|
|
|
libstrophe is a lightweight XMPP client library written in C. It has
|
|
minimal dependencies and is configurable for various environments. It
|
|
runs well on Linux, Unix and Windows based platforms.
|
|
|
|
libstrophe is dual licensed under MIT or GPLv3.
|
|
|
|
Build Instructions
|
|
------------------
|
|
|
|
If you are building from a source control checkout, run:
|
|
|
|
./bootstrap.sh
|
|
|
|
to generate the `configure` script.
|
|
|
|
From the top-level directory, run the following commands:
|
|
|
|
./configure
|
|
make
|
|
|
|
The public API is defined in `strophe.h` which is in the
|
|
top-level directory.
|
|
|
|
The `examples` directory contains some examples of how to
|
|
use the library; these may be helpful in addition to the
|
|
API documentation
|
|
|
|
To install on your system, as root (or using sudo):
|
|
|
|
make install
|
|
|
|
Note, the default install path is `/usr/local/`, to specify
|
|
another path use the `--prefix` option during configure, e.g.:
|
|
|
|
./configure --prefix=/usr
|
|
|
|
### Android
|
|
|
|
Run script `build-android.sh` and follow the instructions. You will
|
|
need expat sources and android-ndk.
|
|
|
|
### Code Coverage
|
|
|
|
If you want to create a code coverage report, run:
|
|
|
|
./configure --enable-coverage
|
|
make coverage
|
|
|
|
The coverage report can be found in `./coverage/index.html`.
|
|
|
|
|
|
Requirements
|
|
------------
|
|
|
|
libstrophe requires:
|
|
|
|
- expat or libxml2 - expat is the default; use `--with-libxml2` to
|
|
switch
|
|
- openssl or GnuTLS on UNIX systems - openssl is default; use
|
|
`--with-gnutls` to switch
|
|
|
|
To build libstrophe using autotools you will need `autoconf`,
|
|
`automake`, `libtool` and `pkg-config`.
|
|
|
|
To run code coverage analysis you will need `gcov` and `lcov`.
|
|
|
|
Installation
|
|
------------
|
|
|
|
libstrophe package has been added to popular Linux distributions,
|
|
BSD systems and OSX package managers.
|
|
|
|
Documentation
|
|
-------------
|
|
|
|
API documentation is inline with the code and conforms to Doxygen
|
|
standards. You can generate an HTML version of the API documentation
|
|
by running:
|
|
|
|
doxygen
|
|
|
|
or if you have everything configured properly:
|
|
|
|
make docs
|
|
|
|
Then open `docs/html/index.html`.
|
|
|
|
An online version of the documentation of the latest release is available on http://strophe.im/libstrophe/
|
|
|
|
Releases
|
|
--------
|
|
|
|
Releases are signed with the GPG key with ID `F8ADC1F9A68A7AFF0E2C89E4391A5EFC2D1709DE`.
|
|
|
|
It can be found e.g. on https://keys.openpgp.org/
|