diff --git a/README.md b/README.md index 240bf82c..8242d12d 100644 --- a/README.md +++ b/README.md @@ -54,42 +54,27 @@ See [Architecture](./doc/ARCHITECTURE.md) for the architecture of [**pgagroal**] * [FreeBSD](https://www.freebsd.org/) * [OpenBSD](http://www.openbsd.org/) -## Compiling the source -[**pgagroal**](https://github.com/agroal/pgagroal) requires +## Compiling from sources -* [gcc 8+](https://gcc.gnu.org) (C17) +[**pgagroal**](https://github.com/agroal/pgagroal) can be compiled from sources, +after having installed all the required dependencies: + +* [gcc 8+](https://gcc.gnu.org) (C17) or [clang 8+](https://clang.llvm.org/) * [cmake](https://cmake.org) -* [make](https://www.gnu.org/software/make/) +* [GNU make](https://www.gnu.org/software/make/) or BSD `make` * [libev](http://software.schmorp.de/pkg/libev.html) * [OpenSSL](http://www.openssl.org/) -* [systemd](https://www.freedesktop.org/wiki/Software/systemd/) * [rst2man](https://docutils.sourceforge.io/) * [libatomic](https://gcc.gnu.org/wiki/Atomic) * [cJSON](https://github.com/DaveGamble/cJSON) +* [Doxygen](https://doxygen.nl/index.html) +* [pdflatex](https://tug.org/texlive/) +* [systemd](https://www.freedesktop.org/wiki/Software/systemd/) (on Linux systems) -On Rocky Linux (and similar) operating systems, the dependencies -can be installed via `dnf(8)` as follows: - -```sh -dnf install git gcc cmake make \ - libev libev-devel \ - openssl openssl-devel \ - systemd systemd-devel \ - python3-docutils \ - libatomic \ - cjson cjson-devel -``` - -Please note that, on Rocky Linux, in order to install the `python3-docutils` -package (that provides `rst2man` executable), you need to enable the `crb` repository: - -```sh -dnf config-manager --set-enabled crb -``` +See the [documentation about installing the required dependencies](doc/DISTRIBUTIONS.md). -Alternatively to GCC, [clang 8+](https://clang.llvm.org/) can be used. ### Release build diff --git a/doc/DISTRIBUTIONS.md b/doc/DISTRIBUTIONS.md new file mode 100644 index 00000000..52882868 --- /dev/null +++ b/doc/DISTRIBUTIONS.md @@ -0,0 +1,51 @@ +# Compiling `pgagroal` from sources + +[**pgagroal**](https://github.com/agroal/pgagroal) requires the following dependencies: + +* a C compiler like [gcc 8+](https://gcc.gnu.org) (C17) or [clang 8+](https://clang.llvm.org/) +* [cmake](https://cmake.org) +* [GNU make](https://www.gnu.org/software/make/) or BSD `make` +* [libev](http://software.schmorp.de/pkg/libev.html) +* [OpenSSL](http://www.openssl.org/) +* [rst2man](https://docutils.sourceforge.io/) +* [libatomic](https://gcc.gnu.org/wiki/Atomic) +* [cJSON](https://github.com/DaveGamble/cJSON) +* [Doxygen](https://doxygen.nl/index.html) +* [pdflatex](https://tug.org/texlive/) +* on Linux platforms, there is also the need for + * [systemd](https://www.freedesktop.org/wiki/Software/systemd/) + + + +## Compiling on Rocky Linux + +All the dependencies can be installed via `dnf(8)` as follows: + +```sh +dnf install git gcc cmake make \ + libev libev-devel \ + openssl openssl-devel \ + systemd systemd-devel \ + python3-docutils \ + libatomic \ + cjson cjson-devel +``` + +Please note that, on Rocky Linux, in order to install the `python3-docutils` +package (that provides `rst2man` executable), you need to enable the `crb` repository: + +```sh +dnf config-manager --set-enabled crb +``` + +## Compiling on FreeBSD + +All the dependencies can be installed via `pkg(8)` as follows: + +```sh +pkg install cmake \ + libev libevent \ + py311-docutils \ + libcjson \ + texlive-formats \ +``` diff --git a/pgagroal.spec b/pgagroal.spec index cc8d8e7e..0f1138fa 100644 --- a/pgagroal.spec +++ b/pgagroal.spec @@ -108,6 +108,7 @@ cd %{buildroot}%{_libdir}/ %{_docdir}/%{name}/README.md %{_docdir}/%{name}/RPM.md %{_docdir}/%{name}/SECURITY.md +%{_docdir}/%{name}/DISTRIBUTIONS.md %{_docdir}/%{name}/grafana/dashboard.json %{_docdir}/%{name}/grafana/README.md %{_docdir}/%{name}/etc/pgagroal.service