From 2a4801b9c1d1ad96f4e97b7fbd2d21f9c81c3ced Mon Sep 17 00:00:00 2001 From: gezimbll Date: Tue, 28 Feb 2023 05:42:09 -0500 Subject: [PATCH] spec and macros file for copr build --- .../copr.fedorainfracloud.org/cgrates.spec | 134 ++++++++++++++++++ .../copr.fedorainfracloud.org/rpkg.macros | 9 ++ rpkg.conf | 2 + 3 files changed, 145 insertions(+) create mode 100644 packages/copr.fedorainfracloud.org/cgrates.spec create mode 100644 packages/copr.fedorainfracloud.org/rpkg.macros create mode 100644 rpkg.conf diff --git a/packages/copr.fedorainfracloud.org/cgrates.spec b/packages/copr.fedorainfracloud.org/cgrates.spec new file mode 100644 index 000000000..f3f333981 --- /dev/null +++ b/packages/copr.fedorainfracloud.org/cgrates.spec @@ -0,0 +1,134 @@ +%global version 0.10.3 + +%define debug_package %{nil} +%global _logdir /var/log/%name +%global _spooldir /var/spool/%name +%global _libdir /var/lib/%name + +Name: cgrates +Version: %{version} +Release: {{{releaseTag}}} +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:golang +BuildRequires:git +%if 0%{?fedora} > 16 || 0%{?rhel} > 6 +Requires(pre): shadow-utils +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%else +Requires(post): chkconfig +Requires(preun):chkconfig +Requires(preun):initscripts +%endif +%if 0%{?rhel}>7 +BuildRequires: systemd-rpm-macros +%endif + +%description +CGRateS is a very fast and easy scalable real-time charging system for Telecom environments. + +%prep +%setup -q -n %{name}-%{version} -c +mkdir -p src/github.com/cgrates +ln -sf ../../../$(ls |grep %{name}-) src/github.com/cgrates/cgrates + +%pre +getent group %{name} >/dev/null || groupadd -r %{name} +getent passwd %{name} >/dev/null || \ +useradd -r -g %{name} -d %{_localstatedir}/run/%{name} -s /sbin/nologin \ +-c "CGRateS" %{name} 2>/dev/null || : + +%post +%if 0%{?fedora} > 16 || 0%{?rhel} > 6 +if [ $1 -eq 1 ] ; then + # Initial installation + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi +%else +/sbin/chkconfig --add %{name} +%endif +/bin/chown -R %{name}:%{name} %{_logdir} +/bin/chown -R %{name}:%{name} %{_spooldir} +/bin/chown -R %{name}:%{name} %{_libdir} +sudo systemctl restart rsyslog + +%preun +%if 0%{?fedora} > 16 || 0%{?rhel} > 6 +if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable %{name}.service > /dev/null 2>&1 || : + /bin/systemctl stop %{name}.service > /dev/null 2>&1 || : +fi +%else +if [ $1 = 0 ]; then + /sbin/service %{name} stop > /dev/null 2>&1 + /sbin/chkconfig --del %{name} +fi +%endif + +%build +export GOPATH=$RPM_BUILD_DIR/%{name}-%{version} +cd $RPM_BUILD_DIR/%{name}-%{version}/src/github.com/cgrates/cgrates +./build.sh + +%install +rm -rf $RPM_BUILD_ROOT +mkdir -p $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 +install -D -m 0755 -p bin/cgr-loader $RPM_BUILD_ROOT%{_bindir}/cgr-loader +install -D -m 0755 -p bin/cgr-tester $RPM_BUILD_ROOT%{_bindir}/cgr-tester +install -D -m 0755 -p bin/cgr-migrator $RPM_BUILD_ROOT%{_bindir}/cgr-migrator +mkdir -p $RPM_BUILD_ROOT%{_logdir}/cdre/csv +mkdir -p $RPM_BUILD_ROOT%{_logdir}/cdre/fwv +mkdir -p $RPM_BUILD_ROOT%{_spooldir}/cdre/csv +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 +%else + install -D -m 0755 -p src/github.com/cgrates/cgrates/packages/redhat_fedora/%{name}.init $RPM_BUILD_ROOT%{_initrddir}/%{name} +%endif + +%files +%defattr(-,root,root,-) +%{_datarootdir}/%{name}/* +%{_bindir}/* +%config(noreplace) %{_sysconfdir}/%{name}/%{name}.json +%{_logdir}/* +%{_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 + %{_initrddir}/%{name} +%endif + +%clean +#sudo rm -rf $RPM_BUILD_DIR/%{name}-%{version} +#sudo rm -rf $RPM_BUILD_ROOT diff --git a/packages/copr.fedorainfracloud.org/rpkg.macros b/packages/copr.fedorainfracloud.org/rpkg.macros new file mode 100644 index 000000000..0978bf90a --- /dev/null +++ b/packages/copr.fedorainfracloud.org/rpkg.macros @@ -0,0 +1,9 @@ +function releaseTag { +rpmTag=$(git log -1 --format=%ci | date +%Y%m%d%H%M%S)+$(git rev-parse --short HEAD) +echo $rpmTag +} + +function git_commit { +gitLastCommit=$(git rev-parse HEAD) +echo $gitLastCommit +} diff --git a/rpkg.conf b/rpkg.conf new file mode 100644 index 000000000..1e3ff7c7b --- /dev/null +++ b/rpkg.conf @@ -0,0 +1,2 @@ +[rpkg] +user_macros = "${git_props:root}/packages/copr.fedorainfracloud.org/rpkg.macros"