Index by title

Cloning the repo

If you want to clone this Mercurial (Hg) repository, use the following command :

hg clone http://hg.cerbelle.net/hg/rsstats/

or if you did not import my personal CA certificates (available from http://francois.cerbelle.net/pages/en/certificats/) :
hg clone --insecure https://hg.cerbelle.net/hg/rsstats/


Contributors using Debian

Cloning_the_repo


Contributors using MacOS

Cloning_the_repo


Contributors using RHEL8

Cloning_the_repo


Install in Debian/Ubuntu

From my repository

Add my repository

cat << EOF > /etc/apt/sources.list.d/cerbelle.list
deb [trusted=yes] https://packages.cerbelle.net/debian unstable/
deb-src [trusted=yes] https://packages.cerbelle.net/debian unstable/
EOF

Update your package list

apt-get update

Install the package

apt-get install rsstats

Uninstall and purge the package

apt-get purge rsstats

Install from the DEB package file

Download the package file

rsstats_0.0.1-1_amd64.deb

Install the package

gdebi rsstats_0.0.1-1_amd64.deb

or

gdebi-gtk rsstats_0.0.1-1_amd64.deb

or

apt-get install libopts25 libssl3
dpkg -i rsstats_0.0.1-1_amd64.deb

Uninstall and purge the package

dpkg -P rsstats

Use the AppImage

Download the file

rsstats-0.0.1-linux.AppImage

Make the file executable

chmod +x rsstats-0.0.1-linux.AppImage

From the compiled ZIP archive (TODO)

Build from the sources

Install the mandatory build dependencies

apt-get install build-essential libssl-dev pkg-config

Download the sources

rsstats-0.0.1.tar.gz

Extract the archive

tar xvzf rsstats-0.0.1.tar.gz
cd rsstats-0.0.1

Prepare the build

The default installation folder is /usr/local. You can add the standard --prefix argument to change the default installation folder to another location, such as --prefix=/opt/rsstats, for example.

./configure --disable-doxygen

Build & Check

make clean all check

Install & Check

You can install with the provided system

make install installcheck

or you can build the DEB packages by yourself (you'll need to install debuild from the dev-scripts package or dpkgbuildpackage from the dpkg-dev package) and follow the previous steps to use them :

make debian-deb

Remove the build folder (optional)

If you installed rsstats in the system's root (/), You should keep the build dir because you can use make uninstall to cleanly uninstall each installed file. If you installed rsstats in its own folder, you'll be able to simply delete this folder and should not need the build dir anymore.

cd ..
rm -Rf rsstats-0.0.1

Remove carefully the build dependencies (optional)

You can remove the build dependencies if they were not already installed when you requested them. Otherwise, another application is probably depending on them and you should probably not remove them. I suggest to keep them, but if you really want to remove them, please do only remove the dependencies which were not already installed before the first step.

apt-get purge libssl-dev
apt-get purge build-essential pkg-config

If you remove libssl-dev, you have to ensure that libssl3 remains installed (I hope that you already had it on your system).

apt-get install libssl3

Usage

This tool is a commandline tool and the usage is the same in all the supported operating systems. Please continue with the usage documentation.


Dependencies

Base environment

This project is managed with GNU Autotools (the magic behind "./configure && make all install"). It needs a unix-like shell command line which is native with all linux distributions, with MacOS, but not with Microsoft Windows.

For windows developpers, install either MinGW with MSYS2 or Cygwin. I recommend the first one because Cygwin needs runtime dependencies which needs to be packaged with the builds. Whatever the choice, I will not document here how to install the installations processes, please read the related install docs.

I assume that MacOS developers already have HomeBrew installed.

Development repository

The project uses the Mercurial:https://www.mercurial-scm.org Version Control System and publish the reporitory on the internet. The first step is to download and install Mercurial.

Debian based distributions (Ubuntu, Mint, ...)

apt-get install -y mercurial

RedHat based distributions (Fedora, Rocky, Centos, RHEL, ...)

yum install mercurial

MacOS

brew install mercurial

Windows

A whole Cygwin or MinGW development environment is needed, thus I recommend to install a commandline mercurial client. And, given that Windows users prefer mouse over keyboard, TortoiseHg can be also installed to integrate Mercurial features in Windows file explorer.

Compiler

Compilation toolchain

Debian

apt-get install -y build-essential

RedHat

MacOS

xcode-select --install

Windows MinGW/MSYS2

Autotools

Autotools generates files such as configure which are distributed with the sources to compile them. This project does not store generated files in the repository. Thus, starting from the repository means to have autotools installed, to generate all the files needed to compile the project.

apt-get install -y autoconf autogen libtool pkg-config
brew install autoconf autogen libtool pkg-config

Build libraries

Debian

apt-get install -y libssl-dev

RedHat

MacOS

brew install openssl@3

Windows

Coding helpers (optional)

CppCheck (code static analysis)

AStyle (code formatting)

Preparation

Get sources

Generate autotools files

Library mandatory dependencies

For the developers, libopt was already installed with autogen and is available system-wide. For the maintainers, to avoid the need for autogen, a copy of libopts in automatically distributed in the source package.

The mandatory libssl-dev and libssl libraries should already be installed previously to allow configure to be executed.

Library optional dependencies

Optionaly, the check library can be installed to allow unittesting.

Debian

apt-get install -y check

RedHat

MacOS

brew install check

Windows

Code and test

From here, all the development specific dependencies are installed, but the project also have build dependencies (libraries).

Configure

./configure

Reformat the code

make astyle

Analyze the code

make cppcheck
xdg-open cppcheck/index.html
make cppcheck-clean

API and Source documentation

Included by default in make all target

make html
make pdf
make -C doc clean

Compilation and tests (unit and functional)

make all check
make clean

Installation and check

make DESTDIR=`pwd`/_inst install installcheck
make DESTDIR=`pwd`/_inst uninstall

Package

Source distribution and check

make dist distcheck
make distclean

Linux AppImage

make linux-appimage
make linux-clean

Linux Debian/Ubuntu

make debian-deb
make debian-clean

Linux RedHat/Fedora/CentOS/Rocky

apt-get install rpm
mkdir -p rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

make redhat-rpm
make redhat-clean

Windows ZIP/Installer

make windows-zip
make windows-exe
make windows-clean

MacOS ZIP/DMG/PKG

make macos-zip
make macos-dmg
make macos-pkg
make macos-clean

Wrapup


Downloads folder

The following folder contains all the build files from the Buildbot CICD at each commit in the project repository : sources, cppcheck analysis, coverage and performances tests, compiled binaries for different operating systems (Linux, Windows, MacOS), packaged in different format (ZIP, DMG, PKG, DEB, RPM, EXE installer, ...) : Downloads

Debian/Ubuntu DEB repository

The Debian based distribution packages are available in a Debian format repository : Debian archive

Direct download links

v0.0.1

Fedora/Rocky/CentOS/RHEL

Source RPM for el6
Binary RPM for el6.x86_64

Generic Linux

Standalone self-contained AppImage
Compiled binaries in a tar.gz file

MacOS

DMG image containing a folder, not an Application Bundle
PKG to deploy in the system
Compiled binaries in a ZIP file

Windows

Windows installer
Compiled binaries in a ZIP file

Sources

Source dist in a tar.bz2 file
Source dist in a tar.gz file
Source dist in a tar.xz file
Source dist in a tar.zip file

Sources documentation

Doxygen code doc in a PDF file
Doxygen code doc published online
LCOV Coverage report online
CppCheck code static analysis


Install in MacOS

From ZIP archive

Download the file

rsstats-0.0.1-macos.zip

Install

Unzip the archive with ditto :

ditto -x rsstats-0.0.1-macos.zip

or with the user interface by opening it.

I recommend either to move the folder in /opt or at your home's root, using the command line in a terminal or drag'n dropping the folder and in the Finder :

sudo mv macosinst /opt/rsstats

Uninstall

Delete the folder.

From DMG image

Download the file

rsstats-0.0.1-macos.dmg

Install

Open/Mount the DMG Image in the Finder. Drag'n drop the inside folder in your home or in /opt.

Uninstall

Delete the folder.

From PKG package

Download the file

rsstats-0.0.1-macos.pkg

Install

Open the file in the Finder or use the following command line in a terminal. Despite it is possible, I recommend not to install the package in the system's root. I recommend to install it in /opt/rsstats . It makes the uninstall easier and less risky for your whole MacOS system !

installer -pkg rsstats-0.0.1-macos.pkg -target /opt/rsstats

Uninstall

Uninstalling a PKG is always tricky and can be challenging (if not dangerous for the MacOS System) depending on the installation location. Please read carefully, use a PKG uninstaller application or keep rsstats installed.

First, get the package name (unique identifier) :

pkgutil --pkgs | grep rsstats

It should be net.cerbelle.pkg.rsstats. Then, get the installation location, with the package unique id :

pkgutil --pkg-info net.cerbelle.pkg.rsstats

If you installed rsstats in a separate subfolder, such as /opt/rsstats, you can delete this folder /opt/rsstats and skip the next two steps (file and folder deletion).

Otherwise, you need to delete each installed file from the list returned by the following command, but you need to check that each file can be safely removed (it belongs and is used only to/by rsstats.

pkgutil --only-files --files net.cerbelle.pkg.rsstats

Then, you need to do the same with the folders. If you deployed the package in the root of the system (/), I do strongly recommand to not delete the folders.

pkgutil --only-dirs --files net.cerbelle.pkg.rsstats

Finally, you can ask the system to forget that the package was installed and remove the package's meta-data.

sudo pkgutil --forget net.cerbelle.pkg.rsstats

Build from the sources

Install the mandatory build dependencies

compilation toolchain

xcode-select --install

HomeBrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 
echo >> /Users/fcerbell/.bash_profile
echo 'eval "$(/usr/local/bin/brew shellenv)"' >> /Users/fcerbell/.bash_profile
eval "$(/usr/local/bin/brew shellenv)" 

libssl headers

brew install openssl@3 pkg-config

Download the sources

rsstats-0.0.1.tar.gz

Extract the archive

tar xvzf rsstats-0.0.1.tar.gz
cd rsstats-0.0.1

Prepare the build

The default installation folder is /usr/local. You can add the standard --prefix argument to change the default installation folder to another location, such as --prefix=/opt/rsstats, for example.

./configure --disable-doxygen --prefix=/opt/rsstats

Build & Check

make clean all check

Install & Check

You can install with the provided system

make install installcheck

or you can build the DMG/PKG/ZIP packages by yourself and follow the previous steps to use them :

make macos-zip macos-dmg macos-pkg

Remove the build folder (optional)

If you installed rsstats in the system's root (/), You should keep the build dir because you can use make uninstall to cleanly uninstall each installed file. If you installed rsstats in its own folder, you'll be able to simply delete this folder and should not need the build dir anymore.

cd ..
rm -Rf rsstats-0.0.1

Remove carefully the build dependencies (optional)

You can remove the build dependencies if they were not already installed when you requested them. Otherwise, another application is probably depending on them and you should probably not remove them. I suggest to keep them, but if you really want to remove them, please do only remove the dependencies which were not already installed before the first step.

brew uninstall pkg-config                                                                                                                                                                                                                                          

If you remove openssl@3, it will break rsstats and probably your system, plesae do not.

Usage

This tool is a commandline tool and the usage is the same in all the supported operating systems. Please continue with the usage documentation.


Install for Fedora/Rocky8/CentOS8/RHEL8 (unfinished doc)

From the ZIP

Download the archive

rsstats-0.0.1-linux.tar.gz

Extract the archive (TODO)

Use the RPM package

Download the package file

rsstats-0.0.1-1.el6.x86_64.rpm

Install the RPM (TODO)

Use the AppImage

Download the file

rsstats-0.0.1-linux.AppImage

Make the file executable

chmod +x rsstats-0.0.1-linux.AppImage

Build from the sources (Update with RHEL commands)

Install the mandatory build dependencies

apt-get install build-essential libssl-dev pkg-config

Download the sources

rsstats-0.0.1.tar.gz

Extract the archive

tar xvzf rsstats-0.0.1.tar.gz
cd rsstats-0.0.1

Prepare the build

The default installation folder is /usr/local. You can add the standard --prefix argument to change the default installation folder to another location, such as --prefix=/opt, for example.

./configure --disable-doxygen

Build & Check

make clean all check

Install & Check

You can install with the provided system

make install installcheck

or you can build the DEB packages by yourself (you(ll need to install debuild from the dev-scripts package or dpkgbuildpackage from the dpkg-dev package) and follow the previous steps to use them :

make debian-deb

Remove the build folder (optional)

If you installed rsstats in the system's root (/), You should keep the build dir because you can use make uninstall to cleanly uninstall each installed file. If you installed rsstats in its own folder, you'll be able to simply delete this folder and should not need the build dir anymore.

cd ..
rm -Rf rsstats-0.0.1

Remove carefully the build dependencies (optional)

You can remove the build dependencies if they were not already installed when you requested them. Otherwise, another application is probably depending on them and you should probably not remove them. I suggest to keep them, but if you really want to remove them, please do only remove the dependencies which were not already installed before the first step.

apt-get purge libssl-dev
apt-get purge build-essential pkg-config

If you remove libssl-dev, you have to ensure that libssl3 is installed (I hope that you already had it on your system).

apt-get install libssl3

Usage

This tool is a commandline tool and the usage is the same in all the supported operating systems. Please continue with the usage documentation.


Description

This tool generate the specified list of reports on the specified list of clusters in a CSV formatted output file.

Execution screenshot

Sample result in a spreadsheet
Sample result output file : rsstats.csv

Help

Help is available with the -h or --help option.

Clusters configuration

The default cluster definition list file is clusterdef.csv and can be specified with the -i option. It contains five mandatory fields per cluster (host, username, password, insecure, true by default, and cacert, file to load, empty by default) and one cluster per line, without header line. Given that it contains sensitive credential informations, it has to be protected. The CSV input format should conform to the RFC4180 :

Sample cluster definition file

Example (Download link):

192.168.0.1,admin@demo.com, 
192.168.0.2,admin@demo.com,"" 
127.0.0.1,admin@demo.com,password
127.0.0.1,admin@demo.com,password,true
192.168.0.3,admin@demo.com,password
192.168.0.4,admin@demo.com,"passw,ord" 

The default output CSV filename is rsstats.csv and can be specified with the -o option. It contains each report in an RFC4180 CSV compliant format concatenated in the same file. Thus, each report is RFC4180 compliant, but the whole output file is not.

Reports to generate

You can list the reports to generate using the -r option with a comma separated list of report. It supports the special all and none names. The default value is all. You can use + and - to add or remove reports. For example, if you want all the reports but not the bdbs report, you can use : -r all-bdbs or --reports all-bdbs, if you want only the cluster report, you can specify -r none+cluster. The list of possible values is returned when asking the help with --help. There is also one special report, sample, which does not query any cluster, but writes sample data to the output file.

Clusters to operate on

By default, the tool will iterate through the whole list of clusters defined in the configuration file (clusterdef.csv by default, which can be overriden using the -i option). You do not need to create a different file each time you want to execute the reports on a subset of your clusters. You can filter the enabled clusters using the -c option with a comma separated list of values from the first column of the configuration file, for example -c 192.168.0.3,192.168.0.4 or
--clusters 192.168.0.3,192.168.0.4.


Install for Windows

From the ZIP file

Download the archive

rsstats-0.0.1-windows.zip

Extract the archive

Open the archive with the Windows Explorer or any other archiver. Then, rename the wininst folder to rsstats-0.0.1 and copy it to a convenient location.

With the installer

Download the installer

rsstats-0.0.1-windows.exe

Install

Run the RSStats installer from your Windows Explorer and follow the steps.

Uninstall

The installer automatically created an uninstall icon and registered the application in the Windows Registry. Thus, you can either run the RSStats Uninstaller or use Windows' Add/Remove programs

Usage

This tool is a commandline tool and the usage is the same in all the supported operating systems. Please continue with the usage documentation.