diff --git a/docs/installation.rst b/docs/installation.rst index b0dbbbaa7..7d1ab162f 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -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: diff --git a/packages/redhat_fedora/cgrates.spec b/packages/redhat_fedora/cgrates.spec index e16caa566..f5dc1e397 100644 --- a/packages/redhat_fedora/cgrates.spec +++ b/packages/redhat_fedora/cgrates.spec @@ -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 \ No newline at end of file +#sudo rm -rf $RPM_BUILD_DIR/%{name}-%{version} +#sudo rm -rf $RPM_BUILD_ROOT diff --git a/packages/redhat_fedora/readme.txt b/packages/redhat_fedora/readme.txt index bacfcd3e0..d5f7a4f8c 100644 --- a/packages/redhat_fedora/readme.txt +++ b/packages/redhat_fedora/readme.txt @@ -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: