# File: stackbin.spec # Location: stackbin package # Author: bgstack15 # SPDX-License-Identifier: CC-BY-SA-4.0 # Startdate: 2021-01-05 # Title: Rpm spec for stackbin package # Purpose: Provide build instructions for CentOS rpm for package # History: # Usage: # Reference: # fuss.spec # Improve: # Documentation: # Dependencies: # Tunables # If you set this to 1, use the systemd-rpm-macros functionality described at https://docs.fedoraproject.org/en-US/packaging-guidelines/UsersAndGroups/ %global with_systemd_usercreate 0 %global pythonver python36 # Fedora defaults %if 0%{?fedora} %global with_systemd_usercreate 1 %global pythonver python3 %endif %global _appvardir %{?_localstatedir}%{!?_localstatedir:/var}/stackbin %global _appdir %{?_datarootdir}%{!?_datarootdir:%{_prefix}/share}/stackbin %global _user stackbin %define devtty "/dev/null" %define debug_package %{nil} %global _python_bytecompile_errors_terminate_build 0 Summary: Pastebin implementation in flask Name: stackbin Version: 0.0.1 Release: 1 License: GPL 3.0 Source0: https://gitlab.com/bgstack15/%{name}/-/archive/master/%{name}-master.tar.gz %if 0%{?with_systemd_usercreate} Source1: extra/%{name}.sysusers %endif #%%if ! 0%%{?fedora} #Patch1: extra/%%{name}-el7.patch #%%endif URL: https://bgstack15.ddns.net/ Packager: B. Stack Requires: %{pythonver}-flask Requires: %{pythonver}-sqlalchemy Requires: %{pythonver}-uwsgidecorators Requires: uwsgi-plugin-%{pythonver} Requires: uwsgi-logger-file %if 0%{?fedora} BuildRequires: make # Fedora has all the deps; no pip3 helper needed! Requires: %{pythonver}-pytimeparse Requires: %{pythonver}-flask-sqlalchemy %endif # Mandatory pip3 requirements: pytimeparse, flask-sqlalchemy #BuildRequires: txt2man %if 0%{?with_systemd_usercreate} BuildRequires: systemd-rpm-macros %endif %if 0%{?fedora} || 0%{?rhel} >= 8 Suggests: nginx %endif Buildarch: noarch %description Stackbin is a flask-based pastebin implementation. %prep %setup -q -c %{name} test -d "%{name}" && cd "%{name}" ; test -d "%{name}-"* && cd "%{name}-"* ; #%%if ! 0%%{?fedora} #%%patch1 -p1 #%%endif %build export srcdir="extra" test -d "%{name}" && cd "%{name}" ; test -d "%{name}-"* && cd "%{name}-"* ; %make_build -C "${srcdir}" %install export srcdir="extra" test -d "%{name}" && cd "%{name}" ; test -d "%{name}-"* && cd "%{name}-"* ; %make_install -C "${srcdir}" \ with_systemd=YES \ with_nginx=YES \ with_apache=NO \ with_init=NO \ %if 0%{?fedora} with_pip_helper=NO %else with_pip_helper=YES %endif %if 0%{?with_systemd_usercreate} install -p -D -m 0644 %{SOURCE1} %{buildroot}%{_sysusersdir}/%{name}.conf %endif exit 0 %clean rm -rf %{buildroot} %pre # Reference: squid.spec %if 0%{?with_systemd_usercreate} %sysusers_create_compat %{SOURCE1} %else if ! getent group %{_user} 1>/dev/null 2>&1 ; then /usr/sbin/groupadd --system --gid 724 %{_user} fi if ! getent passwd %{_user} 1>/dev/null 2>&1 ; then /usr/sbin/useradd --system --gid 724 \ --uid 724 --comment "stackbin system user" \ --home-dir %{_appvardir} --shell /sbin/nologin \ %{_user} fi %endif exit 0 %preun %systemd_postun_with_restart %{name}.service %post %systemd_post %{name}.service %postun %systemd_postun_with_restart %{name}.service %files %if 0%{?with_systemd_usercreate} %{_sysusersdir}/%{name}.conf %endif %attr(0644, %{_user}, %{_user}) %config(noreplace) %{_sysconfdir}/%{name}.conf %attr(0644, %{_user}, %{_user}) %config(noreplace) %{_sysconfdir}/%{name}.wsgi.ini %attr(0644, %{_user}, %{_user}) %{_libexecdir}/%{name}/*.py %attr(0755, %{_user}, %{_user}) %{_sbindir}/%{name}.bin %attr(0644, %{_user}, %{_user}) %{_appdir}/static/* %attr(0644, %{_user}, %{_user}) %{_appdir}/templates/* %attr(0755, %{_user}, %{_user}) %dir %{_appdir}/static %attr(0755, %{_user}, %{_user}) %dir %{_appdir}/templates %attr(0755, %{_user}, %{_user}) %dir %{_appdir} %attr(0755, %{_user}, %{_user}) %dir %{_appvardir} %if ! 0%{?fedora} %attr(0755, -, -) %{_libexecdir}/%{name}/pip-helper.sh %endif %attr(0644, root, root) %{?_unitdir}%{!?_unitdir:/usr/lib/systemd/system}/%{name}.service %attr(0644, root, root) %{_sysconfdir}/nginx/default.d/%{name}.conf %attr(0755, %{_user}, %{_user}) %dir %{?_localstatedir}%{!?_localstatedir:/var}/log/%{name} %{_defaultdocdir}/%{name} %changelog * Tue Feb 15 2022 B. Stack - 0.0.1-1 - Initial release