Skip to content

Commit

Permalink
[#480] Adds DISTRIBUTIONS.md file
Browse files Browse the repository at this point in the history
Adds instrunctions to install the required dependencies in order to
compile from sources.
So far, there are commands for Rocky Linux and FreeBSD.

Close #480
  • Loading branch information
fluca1978 committed Nov 4, 2024
1 parent 0e4c711 commit 522cb18
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 33 deletions.
37 changes: 4 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,42 +54,13 @@ 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)
* [cmake](https://cmake.org)
* [make](https://www.gnu.org/software/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)
[**pgagroal**](https://github.com/agroal/pgagroal) can be compiled from sources,
after having installed all the required dependencies.
See the [documentation about installing the required dependencies](doc/DISTRIBUTIONS.md).

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
```


Alternatively to GCC, [clang 8+](https://clang.llvm.org/) can be used.

### Release build

Expand Down
51 changes: 51 additions & 0 deletions doc/DISTRIBUTIONS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Compiling `pgagroal` from sources

[**pgagroal**](https://github.com/agroal/pgagroal) requires the following dependencies:

* a C compiler liker [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 \
```

0 comments on commit 522cb18

Please sign in to comment.