2 # Available build options:
3 %bcond_with checkpath # enable check if php execution is within DOCUMENT_ROOT of the vhost
6 %define apxs /usr/sbin/apxs1
7 Summary: Apache module: suPHP - execute PHP scripts with the permissions of their owners
8 Summary(pl.UTF-8): Moduł do apache: suPHP - uruchamianie skryptów PHP z uprawnieniami ich właścicieli
9 Name: apache1-mod_%{mod_name}
13 Group: Networking/Daemons
14 Source0: http://www.suphp.org/download/%{mod_name}-%{version}.tar.gz
15 # Source0-md5: 7eb8ae29404392d9eb07c69d5242d716
16 Source1: %{name}.logrotate
18 Source2: %{name}-suphp.conf
19 Patch0: %{name}-apr.patch
20 Patch1: %{name}-notallowed.patch
21 URL: http://www.suphp.org/
22 BuildRequires: apache1-devel >= 1.3.39
23 BuildRequires: autoconf
24 BuildRequires: automake
25 BuildRequires: libstdc++-devel
26 BuildRequires: rpmbuild(macros) >= 1.268
27 Requires(triggerpostun): %{apxs}
28 Requires(triggerpostun): grep
29 Requires(triggerpostun): sed >= 4.0
32 Conflicts: logrotate < 3.7-4
33 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
35 %define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
36 %define _sysconfdir %(%{apxs} -q SYSCONFDIR 2>/dev/null)
39 suPHP is a tool for executing PHP scripts with the permissions of
40 their owners. It consists of an Apache module (mod_suphp) and a setuid
41 root binary (suphp) that is called by the Apache module to change the
42 uid of the process executing the PHP interpreter.
44 %description -l pl.UTF-8
45 suPHP jest narzędziem pozwalającym na wykonywanie skryptów w PHP z
46 uprawnieniami ich właścicieli. Składa się z modułu (mod_suphp) oraz
47 programu (suphp) z ustawionym bitem suid, który uruchamiany jest przez
48 moduł w celu zmiany uid procesu uruchamiającego interpreter PHP.
51 %setup -q -n %{mod_name}-%{version}
60 export APACHE_VERSION=$(rpm -q --qf '%%{version}' apache1-apxs)
62 %{?with_checkpath: --enable-checkpath} \
63 %{!?with_checkpath: --disable-checkpath} \
64 --with-apache-user=http \
70 --with-setid-mode=owner \
71 --with-logfile=/var/log/apache/suphp_log
76 rm -rf $RPM_BUILD_ROOT
77 install -d $RPM_BUILD_ROOT{%{_sbindir},%{_pkglibdir},%{_sysconfdir}/conf.d}
79 install src/suphp $RPM_BUILD_ROOT%{_sbindir}
80 install src/apache/.libs/mod_%{mod_name}.so $RPM_BUILD_ROOT%{_pkglibdir}
81 install %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/conf.d/90_mod_%{mod_name}.conf
82 install %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{mod_name}.conf
84 install -d $RPM_BUILD_ROOT/etc/logrotate.d
85 # TODO: apache1-mod_suphp + trigger
86 install %{SOURCE1} $RPM_BUILD_ROOT/etc/logrotate.d/apache-mod_suphp
89 rm -rf $RPM_BUILD_ROOT
92 %service -q apache restart
95 if [ "$1" = "0" ]; then
96 %service -q apache restart
99 # TODO remove the trigger, if no longer needed
100 %triggerpostun -- %{name} <= 0.5.2-1
101 if grep -q '^Include conf\.d' /etc/apache/apache.conf; then
102 %{apxs} -e -A -n %{mod_name} %{_pkglibdir}/mod_%{mod_name}.so 1>&2
104 /^Include.*mod_%{mod_name}\.conf/d
105 ' /etc/apache/apache.conf
107 %service -q apache restart
111 %defattr(644,root,root,755)
112 %doc AUTHORS ChangeLog README doc
113 %attr(4755,root,root) %{_sbindir}/suphp
114 %attr(755,root,root) %{_pkglibdir}/*.so
115 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/*
116 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/*_mod_%{mod_name}.conf
117 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{mod_name}.conf