diff --git a/centos/SPECS/polemarch.spec b/centos/SPECS/polemarch.spec new file mode 100644 index 0000000..012ad15 --- /dev/null +++ b/centos/SPECS/polemarch.spec @@ -0,0 +1,121 @@ +# Attention: Before you can build this package, you must install venvctrl package through pip: +# pip install venvctrl + +# Globals +%global __os_install_post %{nil} +# prevents the building of /usr/lib/.build-id directories and files: +# this only happens, if you are using python virtualenv +%global _build_id_links none +# don't check for rpath: +%global __arch_install_post /usr/lib/rpm/check-buildroot + +# Macros +%define pyversion 3.8 +%define name polemarch +%define shortname polemarch +%define namebase polemarch +%define user polemarch +%define datad poledata +%define version 2.0.0b1 +%define release 1 +%define __prelink_undo_cmd %{nil} +%define _binaries_in_noarch_packages_terminate_build 0 +%define unmangled_version %{version} + +Name: %{name} +Version: %{version} +Release: %{release}%{?dist} +Summary: Infrastructure Heat Service for orchestration infrastructure by ansible. +Group: Application/System +Vendor: VST Consulting +License: AGPL-3+ +AutoReq: No +AutoProv: No +# compiled binary tree: +Source0: %name-%{version}-bin.tar.gz +Source1: %name-settings +Source2: %name.service +Source3: %name.tmpfiles.conf + +# Note: these two packages must not be installed by distribution (fedora): python3-pyyaml, python3-blockdiag-devel +# Build fails, if these two packages are installed! +Requires: python38, openssl-devel, libxcrypt +Requires: python38-PyMySQL +Requires: git +Requires: krb5-devel, krb5-libs, openldap-devel +Requires: mailcap + +%description +Polemarch is service for orchestration infrastructure by ansible. +Simply WEB gui for orchestration infrastructure by ansible playbooks. + +%prep + +%install +#/usr/bin/make BUILD_DIR=%{buildroot} +# Install binary package (compiling does not work here! You need to compile it first!) +# cd BUILD/polemarch-1.7.3 +# /usr/bin/patch --no-backup-if-mismatch -p0 -b --suffix ~/rpmbuild/SOURCES/venvctrl-patch --fuzz=0 +# /usr/bin/make BUILD_DIR=/root/rpmbuild/BUILDROOT/polemarch +# cd /root/rpmbuild/BUILDROOT/polemarch +# tar czf ~/rpmbuild/SOURCES/polemarch-bin-1.7.3.tgz . +# don't forget to replace version and release number! +tar xzf %{S:0} -C %{buildroot} +install -D %{S:1} %{buildroot}%{_sysconfdir}/%{namebase}/settings.ini +install -D %{S:1} %{buildroot}%{_sysconfdir}/%{namebase}/settings.ini.template +# fix for fedora rundir config: +install -d %{buildroot}/run/%name +install -D %{S:2} %{buildroot}%{_sysconfdir}/systemd/system/%{name}.service +install -d %{buildroot}%{_var}/lock/%{name} +install -D %{S:3} %{buildroot}%{_sysconfdir}/tmpfiles.d/%{name}.conf +# create additional directories: +install -d %{buildroot}/%{_var}/log/%{name} +install -d %{buildroot}/opt/%{datad} +# remove buildroot path in opt/polemarch/bin/activate.csh: +sed -i -e 's|/root/rpmbuild/BUILDROOT/polemarch.*x86_64||' %{buildroot}/opt/polemarch/bin/activate.csh +# remove .gitignore file: +rm -f %{buildroot}/opt/polemarch/.gitignore + +%pre +getent group %{user} >/dev/null || \ + groupadd -r %{user} +getent passwd %{user} >/dev/null || \ + useradd -r -g %{user} -d /opt/%{user} \ + -s /sbin/nologin -c "%{user} user" %{user} +exit 0 + +%post +%systemd_post %{name}.service +sudo -u %{user} /opt/%{name}/bin/%{shortname}ctl migrate + +%preun +%systemd_preun %{name}.service + +%postun +%systemd_postun_with_restart %{name}.service + +%files +%defattr(-,%{user},%{user},-) +%dir %attr(-,%{user},%{user}) /opt/%{namebase} +%dir %attr(-,%{user},%{user}) /opt/%{datad} +%dir %attr(-,%{user},%{user}) %{_var}/log/%{namebase} +%attr(-,%{user},%{user}) /opt/%{namebase}/bin/* +%attr(-,%{user},%{user}) /opt/%{namebase}/lib/* +/opt/%{namebase}/lib64 +/opt/%{namebase}/*.cfg +%dir %{_sysconfdir}/%{namebase} +%{_rundir}/%{namebase} +%{_var}/lock/%{namebase} +%attr(755,%{user},%{user}) %{_sysconfdir}/systemd/system/%{name}.service +%attr(755,root,root) %{_sysconfdir}/tmpfiles.d/%{namebase}.conf +%config(noreplace) %{_sysconfdir}/%{namebase}/settings.ini +%config(noreplace) %{_sysconfdir}/%{namebase}/settings.ini.template + +%clean +[ "%{buildroot}" != "/" ] && [ -d "%{buildroot}" ] && rm -rf %{buildroot} +[ "%{_builddir}" != "/" ] && [ -d "%{_builddir}" ] && rm -rf %{_builddir}/* + +%changelog +* Mon Jul 18 2022 Daniel Steiner +- First 2.0.0 build on Almalinux 8. +