%global composer_vendor fkooman %global composer_project vpn-cert-service %global composer_namespace %{composer_vendor}/VPN %global github_owner eduVPN %global github_name vpn-cert-service %global github_commit 3af5e7a0244ed0f93153493e2f052c435acbd046 %global github_short %(c=%{github_commit}; echo ${c:0:7}) %if 0%{?rhel} == 5 %global with_tests 0%{?_with_tests:1} %else %global with_tests 0%{!?_without_tests:1} %endif Name: vpn-cert-service Version: 2.0.0 Release: 1%{?dist} Summary: OpenVPN configuration manager written in PHP Group: Applications/Internet License: ASL-2.0 URL: https://github.com/%{github_owner}/%{github_name} Source0: %{url}/archive/%{github_commit}/%{name}-%{version}-%{github_short}.tar.gz Source1: %{name}-autoload.php Source2: %{name}-httpd.conf BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: httpd Requires: easy-rsa >= 2.0.0 Requires: easy-rsa < 3.0.0 Requires: openvpn Requires: php(language) >= 5.4 Requires: php-date Requires: php-pcre Requires: php-spl Requires: php-composer(fkooman/ini) >= 1.0.0 Requires: php-composer(fkooman/ini) < 2.0.0 Requires: php-composer(fkooman/http) >= 1.0.0 Requires: php-composer(fkooman/http) < 2.0.0 Requires: php-composer(fkooman/rest) >= 1.0.0 Requires: php-composer(fkooman/rest) < 2.0.0 Requires: php-composer(fkooman/rest-plugin-authentication) >= 2.0.0 Requires: php-composer(fkooman/rest-plugin-authentication) < 3.0.0 Requires: php-composer(fkooman/rest-plugin-authentication-basic) >= 2.0.0 Requires: php-composer(fkooman/rest-plugin-authentication-basic) < 3.0.0 Requires: php-composer(fkooman/tpl) >= 2.0.0 Requires: php-composer(fkooman/tpl) < 3.0.0 Requires: php-composer(fkooman/tpl-twig) >= 1.0.0 Requires: php-composer(fkooman/tpl-twig) < 2.0.0 Requires: php-composer(symfony/class-loader) Requires(post): policycoreutils-python Requires(postun): policycoreutils-python %description This is a configuration generator for OpenVPN. It aims at providing a REST API that makes it easy to manage client configuration files. It is possible to generate a configuration and revoke a configuration. %prep %setup -qn %{github_name}-%{github_commit} cp %{SOURCE1} src/%{composer_namespace}/autoload.php sed -i "s|require_once dirname(__DIR__).'/vendor/autoload.php';|require_once '%{_datadir}/%{name}/src/%{composer_namespace}/autoload.php';|" bin/* sed -i "s|require_once dirname(__DIR__).'/vendor/autoload.php';|require_once '%{_datadir}/%{name}/src/%{composer_namespace}/autoload.php';|" web/*.php sed -i "s|dirname(__DIR__)|'%{_datadir}/%{name}'|" bin/* %build %install # Apache configuration install -m 0644 -D -p %{SOURCE2} ${RPM_BUILD_ROOT}%{_sysconfdir}/httpd/conf.d/%{name}.conf # Application mkdir -p ${RPM_BUILD_ROOT}%{_datadir}/%{name} cp -pr web views src ${RPM_BUILD_ROOT}%{_datadir}/%{name} mkdir -p ${RPM_BUILD_ROOT}%{_bindir} cp -pr bin/* ${RPM_BUILD_ROOT}%{_bindir} # Config mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name} cp -p config/config.ini.defaults ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/config.ini # point to correct targetPath sed -i "s|;targetPath|targetPath|" ${RPM_BUILD_ROOT}%{_sysconfdir}/%{name}/config.ini ln -s ../../../etc/%{name} ${RPM_BUILD_ROOT}%{_datadir}/%{name}/config # Data mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/lib/%{name} %post semanage fcontext -a -t httpd_sys_rw_content_t '%{_localstatedir}/lib/%{name}(/.*)?' 2>/dev/null || : restorecon -R %{_localstatedir}/lib/%{name} || : %postun if [ $1 -eq 0 ] ; then # final removal semanage fcontext -d -t httpd_sys_rw_content_t '%{_localstatedir}/lib/%{name}(/.*)?' 2>/dev/null || : fi %files %defattr(-,root,root,-) %config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}.conf %dir %attr(-,apache,apache) %{_sysconfdir}/%{name} %config(noreplace) %attr(0600,apache,apache) %{_sysconfdir}/%{name}/config.ini %{_bindir}/* %dir %{_datadir}/%{name} %{_datadir}/%{name}/src %{_datadir}/%{name}/web %{_datadir}/%{name}/views %{_datadir}/%{name}/config %dir %attr(0700,apache,apache) %{_localstatedir}/lib/%{name} %doc README.md composer.json config/config.ini.defaults %license COPYING %changelog * Sun Nov 29 2015 François Kooman - 2.0.0-1 - update to 2.0.0 * Tue Sep 22 2015 François Kooman - 1.0.3-2 - fix the path in bin scripts - update tag * Tue Sep 22 2015 François Kooman - 1.0.3-1 - update to 1.0.3 * Mon Sep 21 2015 François Kooman - 1.0.2-3 - fix autoloader path * Mon Sep 21 2015 François Kooman - 1.0.2-2 - use new style autoloader, major rework on spec * Mon Aug 10 2015 François Kooman - 1.0.2-1 - update to 1.0.2 * Mon Aug 10 2015 François Kooman - 1.0.1-1 - update to 1.0.1 * Mon Jul 20 2015 François Kooman - 1.0.0-1 - initial release