cScm Configuration Daemon

cScm – is a tool to convert SCM configuration files into binary format and store its in shared memory for reading by cSvn-ui and cGit-ui CGI scripts

2 Commits   0 Branches   1 Tag
author: kx <kx@radix.pro> 2023-03-24 02:53:04 +0300 committer: kx <kx@radix.pro> 2023-03-24 02:53:04 +0300 commit: 12c7b1c5658602269da2f5b75835ec0f5fab8890 parent: 4e72ffe940d9aff7c019d37a6459e765902c1fae
Commit Summary:
Version 0.1.4
Diffstat:
4 files changed, 84 insertions, 0 deletions
diff --git a/doc/build-packages/rpms/README b/doc/build-packages/rpms/README
new file mode 100644
index 0000000..e8c6c5d
--- /dev/null
+++ b/doc/build-packages/rpms/README
@@ -0,0 +1,26 @@
+
+To build RPM packages we have to copy source package downloaded
+from https://ftp.radix.pro/pub/cscm directory to /usr/src/packages/SOURSES/
+directory. And also copy the cscm.spec file into /usr/src/packages/SPECS/
+directory. Then edit the package version in the cscm.spec file according
+to source package version.
+
+Dependencies: pcre2-devel.
+
+RPMs can be built by following command:
+
+ $ rpmbuild --define "_topdir /usr/src/packages" -ba /usr/src/packages/SPECS/cscm.spec
+
+Resulting RPMs will be saved in /usr/src/packages/SRPMS/ and
+/usr/src/packages/RPMS/`uname -m`/ directories.
+
+After install binary RPM we have to create /etc/csvn-ui.rc [or|and] /etc/cgit-ui.rc
+configuration files and then enable and run csvnd.service [or|and] cgitd.service:
+
+ $ systemctl enable csvnd.service
+ $ systemctl start csvnd.service
+
+ $ systemctl enable cgitd.service
+ $ systemctl start cgitd.service
+
+Then we can to enable csvn-ui [or|and] cgit-ui web-servers.
diff --git a/doc/build-packages/rpms/cgitd.service b/doc/build-packages/rpms/cgitd.service
new file mode 100644
index 0000000..fa87546
--- /dev/null
+++ b/doc/build-packages/rpms/cgitd.service
@@ -0,0 +1,13 @@
+
+[Unit]
+Description=The cGit daemon
+After=network.target
+
+[Service]
+PIDFile=/var/run/cgitd.pid
+ExecStart=/usr/sbin/cscmd --daemonize --inotify --scm=git --pid=/var/run/cgitd.pid --log=/var/log/cgitd.log --config=/etc/cgit-ui.rc
+ExecReload=/bin/kill -s HUP $MAINPID
+ExecStop=/bin/kill -s TERM $MAINPID
+
+[Install]
+WantedBy=multi-user.target
diff --git a/doc/build-packages/rpms/cscm.spec b/doc/build-packages/rpms/cscm.spec
new file mode 100644
index 0000000..3ce0248
--- /dev/null
+++ b/doc/build-packages/rpms/cscm.spec
@@ -0,0 +1,57 @@
+
+Name:       cscm
+Version:    0.1.4
+Release:    2
+Summary:    cScm Configuration Daemon
+License:    RADIX-1.0
+Group:      System/base
+Source:     https://ftp.radix.pro/pub/cscm/cscm-0.1.4.tar.xz
+Url:        https://csvn.radix/pro/cscm/
+
+
+%define _sysconfdir /etc
+%define _libdir     /usr/lib64
+%define _homepath   /var/lib
+%define _logdir     /var/log
+%define _piddir     /var/run
+%define _systemddir /usr/lib/systemd/system
+
+
+%description
+cScm - is a Configuration Daemon for cSvn-ui and cGit-ui packages
+
+%prep
+%setup -q
+
+%build
+./configure \
+  --prefix=/usr \
+  --sysconfdir=%{_sysconfdir} \
+  --libdir=%{_libdir} \
+  --with-controldir=%{_sysconfdir}/rc.d \
+  --with-logrotatedir=%{_sysconfdir}/logrotate.d \
+  --with-homepath=%{_homepath} \
+  --with-logdir=%{_logdir} \
+  --with-piddir=%{_piddir}
+
+%install
+make install DESTDIR=%{buildroot}
+install -d %{buildroot}%{_systemddir}
+install -m 644 doc/build-packages/rpms/csvnd.service %{buildroot}%{_systemddir}
+install -m 644 doc/build-packages/rpms/cgitd.service %{buildroot}%{_systemddir}
+rm -rf %{buildroot}%{_sysconfdir}/rc.d
+
+%clean
+%{?buildroot:%__rm -rf "%{buildroot}"}
+
+%files
+%defattr(-,root,root)
+%{_sysconfdir}/*
+%attr(755,root,root) %{_sbindir}/cscmd
+%{_homepath}/*
+%{_includedir}/*
+%{_datadir}/*
+%doc LICENSE README README.md doc/
+%{_systemddir}/csvnd.service
+%{_systemddir}/cgitd.service
+
diff --git a/doc/build-packages/rpms/csvnd.service b/doc/build-packages/rpms/csvnd.service
new file mode 100644
index 0000000..f51919c
--- /dev/null
+++ b/doc/build-packages/rpms/csvnd.service
@@ -0,0 +1,13 @@
+
+[Unit]
+Description=The cSvn daemon
+After=network.target
+
+[Service]
+PIDFile=/var/run/csvnd.pid
+ExecStart=/usr/sbin/cscmd --daemonize --inotify --scm=svn --pid=/var/run/csvnd.pid --log=/var/log/csvnd.log --config=/etc/csvn-ui.rc
+ExecReload=/bin/kill -s HUP $MAINPID
+ExecStop=/bin/kill -s TERM $MAINPID
+
+[Install]
+WantedBy=multi-user.target