Update cgrates.spec file and installation docs for .rpm distros

This commit is contained in:
ionutboangiu
2023-06-12 11:37:22 -04:00
committed by Dan Christian Bogos
parent c87644a451
commit e7deb1bcd0
3 changed files with 51 additions and 35 deletions

View File

@@ -59,8 +59,8 @@ For .rpm distros, we are using copr to manage the CGRateS packages:
.. code-block:: bash
sudo dnf install -y dnf-plugins-core
sudo dnf copr enable cgrates/v0.10
sudo dnf install -y dnf-plugins-core
sudo dnf copr -y enable cgrates/v0.10
sudo dnf install -y cgrates
To install a specific version of the package, run:
@@ -82,7 +82,8 @@ Prerequisites:
.. code-block:: bash
sudo apt install git
sudo apt-get install -y git
# sudo dnf install -y git for .rpm distros
- **Go** (refer to the official Go installation docs: https://go.dev/doc/install)
@@ -90,7 +91,8 @@ To install the latest Go version at the time of writing this documentation, run:
.. code-block:: bash
sudo apt install wget -y
sudo apt-get install -y wget tar
# sudo dnf install -y wget tar for .rpm distros
sudo rm -rf /usr/local/go
cd /tmp
wget https://go.dev/dl/go1.20.5.linux-amd64.tar.gz
@@ -102,23 +104,26 @@ Installation:
.. code-block:: bash
mkdir -p ~/go/src/github.com/cgrates/cgrates
git clone https://github.com/cgrates/cgrates.git ~/go/src/github.com/cgrates/cgrates
cd ~/go/src/github.com/cgrates/cgrates
mkdir -p $HOME/go/src/github.com/cgrates/cgrates
git clone https://github.com/cgrates/cgrates.git $HOME/go/src/github.com/cgrates/cgrates
cd $HOME/go/src/github.com/cgrates/cgrates
# Switch to v0.10 branch
git checkout v0.10
# Compile the binaries and move them to $GOPATH/bin
./build.sh
# Create a symbolic link to the data folder
sudo ln -s ~/go/src/github.com/cgrates/cgrates/data /usr/share/cgrates
sudo ln -s $HOME/go/src/github.com/cgrates/cgrates/data /usr/share/cgrates
# Make cgr-engine binary available system-wide
sudo ln -s ~/go/bin/cgr-engine /usr/local/bin/cgr-engine
sudo ln -s $HOME/go/bin/cgr-engine /usr/local/bin/cgr-engine
# Optional: Additional useful symbolic links
sudo ln -s ~/go/bin/cgr-loader /usr/local/bin/cgr-loader
sudo ln -s ~/go/bin/cgr-migrator /usr/local/bin/cgr-migrator
sudo ln -s ~/go/bin/cgr-console /usr/local/bin/cgr-console
sudo ln -s $HOME/go/bin/cgr-loader /usr/local/bin/cgr-loader
sudo ln -s $HOME/go/bin/cgr-migrator /usr/local/bin/cgr-migrator
sudo ln -s $HOME/go/bin/cgr-console /usr/local/bin/cgr-console
Creating Your Own Packages
--------------------------
@@ -133,10 +138,10 @@ For Debian-based distros:
# Install dependencies
sudo apt-get install build-essential fakeroot dh-systemd -y
cd ~/go/src/github.com/cgrates/cgrates/packages
cd $HOME/go/src/github.com/cgrates/cgrates/packages
# Delete old ones, if any
rm -rf ~/go/src/github.com/cgrates/*.deb
rm -rf $HOME/go/src/github.com/cgrates/*.deb
make deb
@@ -147,7 +152,7 @@ To install the generated package, run:
.. code-block:: bash
cd ~/go/src/github.com/cgrates
cd $HOME/go/src/github.com/cgrates
sudo dpkg -i cgrates_*.deb
For Redhat-based distros:
@@ -155,15 +160,15 @@ For Redhat-based distros:
.. code-block:: bash
sudo apt-get install rpm
cd ~/go/src/github.com/cgrates/cgrates
sudo dnf install -y rpm-build
cd $HOME/go/src/github.com/cgrates/cgrates
export gitLastCommit=$(git rev-parse HEAD)
export rpmTag=$(git log -1 --format=%ci | date +%Y%m%d%H%M%S)+$(git rev-parse --short HEAD)
mkdir -p ~/cgr_build/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
wget -P ~/cgr_build/SOURCES https://github.com/cgrates/cgrates/archive/$gitLastCommit.tar.gz
cp ~/go/src/github.com/cgrates/cgrates/packages/redhat_fedora/cgrates.spec ~/cgr_build/SPECS
cd ~/cgr_build
rpmbuild -bb --define "_topdir ~/cgr_build" SPECS/cgrates.spec
mkdir -p $HOME/cgr_build/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
wget -P $HOME/cgr_build/SOURCES https://github.com/cgrates/cgrates/archive/$gitLastCommit.tar.gz
cp $HOME/go/src/github.com/cgrates/cgrates/packages/redhat_fedora/cgrates.spec $HOME/cgr_build/SPECS
cd $HOME/cgr_build
rpmbuild -bb --define "_topdir $HOME/cgr_build" SPECS/cgrates.spec
.. _post_install:

View File

@@ -1,4 +1,4 @@
%global version 0.10.0
%global version 0.10.3
%global git_commit %(echo $gitLastCommit)
%global releaseTag %(echo $rpmTag)
@@ -14,7 +14,7 @@ Summary: Carrier Grade Real-time Charging System
License: GPLv3
URL: https://github.com/cgrates/cgrates
Source0: https://github.com/cgrates/cgrates/archive/%{git_commit}.tar.gz
BuildRequires:git
%if 0%{?fedora} > 16 || 0%{?rhel} > 6
Requires(pre): shadow-utils
Requires(post): systemd
@@ -32,7 +32,7 @@ CGRateS is a very fast and easy scalable real-time charging system for Telecom e
%prep
%setup -q -n %{name}-%{version} -c
mkdir -p src/github.com/cgrates
ln -sf ../../../%{name}-%{git_commit} src/github.com/cgrates/cgrates
ln -sf ../../../$(ls |grep %{name}-) src/github.com/cgrates/cgrates
%pre
getent group %{name} >/dev/null || groupadd -r %{name}
@@ -76,7 +76,16 @@ cd $RPM_BUILD_DIR/%{name}-%{version}/src/github.com/cgrates/cgrates
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{_datarootdir}/%{name}
cp -rpf src/github.com/cgrates/cgrates/data/* $RPM_BUILD_ROOT%{_datarootdir}/%{name}
cp -rpf src/github.com/cgrates/cgrates/data/conf/ $RPM_BUILD_ROOT%{_datarootdir}/%{name}
cp -rpf src/github.com/cgrates/cgrates/data/diameter/ $RPM_BUILD_ROOT%{_datarootdir}/%{name}
cp -rpf src/github.com/cgrates/cgrates/data/postman/ $RPM_BUILD_ROOT%{_datarootdir}/%{name}
cp -rpf src/github.com/cgrates/cgrates/data/radius/ $RPM_BUILD_ROOT%{_datarootdir}/%{name}
cp -rpf src/github.com/cgrates/cgrates/data/tariffplans/ $RPM_BUILD_ROOT%{_datarootdir}/%{name}
cp -rpf src/github.com/cgrates/cgrates/data/tutorial_tests/ $RPM_BUILD_ROOT%{_datarootdir}/%{name}
cp -rpf src/github.com/cgrates/cgrates/data/tutorials/ $RPM_BUILD_ROOT%{_datarootdir}/%{name}
cp -rpf src/github.com/cgrates/cgrates/data/storage/mongo $RPM_BUILD_ROOT%{_datarootdir}/%{name}/storage
cp -rpf src/github.com/cgrates/cgrates/data/storage/mysql $RPM_BUILD_ROOT%{_datarootdir}/%{name}/storage
cp -rpf src/github.com/cgrates/cgrates/data/storage/postgres $RPM_BUILD_ROOT%{_datarootdir}/%{name}/storage
install -D -m 0644 -p src/github.com/cgrates/cgrates/data/conf/%{name}/%{name}.json $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/%{name}.json
install -D -m 0755 -p bin/cgr-console $RPM_BUILD_ROOT%{_bindir}/cgr-console
install -D -m 0755 -p bin/cgr-engine $RPM_BUILD_ROOT%{_bindir}/cgr-engine
@@ -90,6 +99,10 @@ mkdir -p $RPM_BUILD_ROOT%{_spooldir}/cdre/fwv
mkdir -p $RPM_BUILD_ROOT%{_spooldir}/tpe
mkdir -p $RPM_BUILD_ROOT%{_spooldir}/failed_posts
mkdir -p $RPM_BUILD_ROOT%{_libdir}/cache_dump
mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
mkdir -p $RPM_BUILD_ROOT/etc/rsyslog.d
install -m 755 src/github.com/cgrates/cgrates/data/conf/logging/logrotate.conf $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
install -m 755 src/github.com/cgrates/cgrates/data/conf/logging/rsyslog.conf $RPM_BUILD_ROOT/etc/rsyslog.d/%{name}.conf
install -D -m 0644 -p src/github.com/cgrates/cgrates/packages/redhat_fedora/%{name}.options $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name}
%if 0%{?fedora} > 16 || 0%{?rhel} > 6
install -D -m 0644 -p src/github.com/cgrates/cgrates/packages/redhat_fedora/%{name}.service $RPM_BUILD_ROOT%{_unitdir}/%{name}.service
@@ -106,6 +119,8 @@ install -D -m 0644 -p src/github.com/cgrates/cgrates/packages/redhat_fedora/%{na
%{_spooldir}/*
%{_libdir}/*
%{_sysconfdir}/sysconfig/%{name}
/etc/logrotate.d/%{name}
/etc/rsyslog.d/%{name}.conf
%if 0%{?fedora} > 16 || 0%{?rhel} > 6
%{_unitdir}/%{name}.service
%else
@@ -113,5 +128,5 @@ install -D -m 0644 -p src/github.com/cgrates/cgrates/packages/redhat_fedora/%{na
%endif
%clean
sudo rm -rf $RPM_BUILD_DIR/%{name}-%{version}
sudo rm -rf $RPM_BUILD_ROOT
#sudo rm -rf $RPM_BUILD_DIR/%{name}-%{version}
#sudo rm -rf $RPM_BUILD_ROOT

View File

@@ -1,16 +1,12 @@
Building package for RHEL/Centos/Oracle Linux/Scientific Linux/Fedora
PREREQUISITES
1. Go 1.5 or newer:
# wget https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz
# tar -C /usr/local -xzf go1.5.1.linux-amd64.tar.gz
# export GOROOT=/usr/local/go
# export PATH=$GOROOT/bin:$GOPATH/bin:$PATH
1. Go
2. Git 1.8 or newer for older systems.
2. Git
3. rpm-build and make packages.
# yum install rpm-build make
# dnf install rpm-build make
BUILD
1. Create build environment: