SHA256
1
0
forked from pool/apache2

Accepting request 639405 from Apache

- consider also patterns in APACHE_CONF_INCLUDE_DIRS as documentation
  says (patch Juergen Gleiss)

- relink /usr/sbin/httpd after apache2-MPM uninstall [bsc#1107930c#1]
- simplify find_mpm function from script-helpers
- /usr/sbin/httpd is now created depending on preference hardcoded
  in find_mpm (script-helpers), not depending on alphabetical
  order of MPMs
- simplify spec file a bit

OBS-URL: https://build.opensuse.org/request/show/639405
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/apache2?expand=0&rev=149
This commit is contained in:
Dominique Leuenberger 2018-10-04 17:00:13 +00:00 committed by Git OBS Bridge
commit dc95517e3e
4 changed files with 57 additions and 100 deletions

View File

@ -25,37 +25,33 @@ function load_sysconfig
function find_mpm
{
[ -n "$mpm_found" ] && return
# load sysconfig variables if they weren't yet
# load sysconfig variables if they weren't yet;
# this has no effect when find_mpm is not called
# from start_apache2
load_sysconfig
# try to read from sysconfig's APACHE_MPM
HTTPD_MPM=$APACHE_MPM
HTTPD_MPM="$APACHE_MPM"
# if empty, then choose one from installed
if [ -z "$HTTPD_MPM" ]; then
# guess
installed_mpms=""
for i in $HTTPD_SBIN_BASE-*; do
test -f $i || continue
i=$(basename $i)
i=${i#*-}
installed_mpms=(${installed_mpms[*]} $i)
installed_mpms="$installed_mpms $i"
done
# hardcoded preference here:
for mpm in event worker prefork; do
if [[ $installed_mpms =~ "$mpm" ]]; then
HTTPD_MPM=$mpm
break
fi
done
if [ -z "${installed_mpms[*]}" ]; then
HTTPD_MPM=""
return
elif [ ${#installed_mpms[*]} = 1 ]; then
HTTPD_MPM=${installed_mpms[*]}
else
case ${installed_mpms[*]} in
*prefork*) HTTPD_MPM=prefork;;
*worker*) HTTPD_MPM=worker;;
*event*) HTTPD_MPM=event;;
esac
fi
fi
export HTTPD_MPM mpm_found=true
# in case no
export HTTPD_MPM
}
#

View File

@ -1,3 +1,19 @@
-------------------------------------------------------------------
Mon Oct 1 13:38:05 UTC 2018 - Petr Gajdos <pgajdos@suse.com>
- consider also patterns in APACHE_CONF_INCLUDE_DIRS as documentation
says (patch Juergen Gleiss)
-------------------------------------------------------------------
Thu Sep 27 10:25:40 UTC 2018 - Petr Gajdos <pgajdos@suse.com>
- relink /usr/sbin/httpd after apache2-MPM uninstall [bsc#1107930c#1]
- simplify find_mpm function from script-helpers
- /usr/sbin/httpd is now created depending on preference hardcoded
in find_mpm (script-helpers), not depending on alphabetical
order of MPMs
- simplify spec file a bit
-------------------------------------------------------------------
Mon Sep 24 12:53:08 UTC 2018 - Michael Ströder <michael@stroeder.com>

View File

@ -25,11 +25,7 @@
%define apache_mmn %(test -s %{SOURCE0} && { echo -n apache_mmn_; bzcat %{SOURCE0} | awk '/^#define MODULE_MAGIC_NUMBER_MAJOR/ {printf "%d", $3}'; } || echo apache_mmn_notfound)
%define suse_maintenance_mmn 0
%define default_mpm prefork
%define prefork 1
%define worker 1
%define event 1
%define mpms_to_build %(test %{prefork} = 1 && printf prefork) %(test %{worker} = 1 && printf worker) %(test %{event} = 1 && printf event)
# dir names
%define mpms_to_build prefork worker event
%define datadir /srv/www
%define htdocsdir %{datadir}/htdocs
%define manualdir %{_datadir}/%{name}/manual
@ -228,7 +224,6 @@ Caching API.
See %{_docdir}/apache2/, http://httpd.apache.org/, and
http://httpd.apache.org/docs-2.4/upgrading.html.
%if %worker
%package worker
Summary: Apache 2 worker MPM (Multi-Processing Module)
Group: Productivity/Networking/Web/Servers
@ -236,9 +231,7 @@ Requires: %{name} = %{version}
# the post scriptlet sources /usr/share/apache2/script-helpers
Requires(post): %{name} = %{version}
Provides: %{name}-MPM
%endif
%if %prefork
%package prefork
Summary: Apache 2 "prefork" MPM (Multi-Processing Module)
Group: Productivity/Networking/Web/Servers
@ -247,9 +240,7 @@ Requires: %{name} = %{version}
Requires(post): %{name} = %{version}
Provides: %{name}-MPM
Provides: apache:%{_sbindir}/httpd
%endif
%if %event
%package event
Summary: Apache 2 event MPM (Multi-Processing Module)
Group: Productivity/Networking/Web/Servers
@ -257,27 +248,21 @@ Requires: %{name} = %{version}
# the post scriptlet sources /usr/share/apache2/script-helpers
Requires(post): %{name} = %{version}
Provides: %{name}-MPM
%endif
%if %worker
%description worker
The worker MPM (multi-Processing Module) implementing a hybrid
multi-threaded multi-process web server.
This combination offers a performance boost and retains some of the
stability of the multi-process model.
%endif
%if %{prefork}
%description prefork
"prefork" MPM (Multi-Processing Module)
This MPM is basically the one that Apache 1.3.x used. It warrants the
maximum stability because each server runs in its own process. If a
process dies it will not affect other servers.
%endif
%if %{event}
%description event
The event MPM (multi-Processing Module) is experimental, so it may or
may not work as expected.
@ -289,7 +274,6 @@ again until the Keep Alive timeout was reached.
This MPM depends on APR's atomic compare-and-swap operations for thread
synchronization.
%endif
%package devel
Summary: Apache 2 Header and Include Files
@ -894,7 +878,6 @@ rm %{buildroot}/%{sysconfdir}/*.test
/usr/share/apache2/load_configuration
%endif
%if %{prefork}
%files prefork
%defattr(-,root,root)
%{_sbindir}/httpd-prefork
@ -1021,9 +1004,7 @@ rm %{buildroot}/%{sysconfdir}/*.test
%{_libdir}/%{name}-prefork/mod_vhost_alias.so
%{_libdir}/%{name}-prefork/mod_watchdog.so
%{_libdir}/%{name}-prefork/mod_xml2enc.so
%endif
%if %{worker}
%files worker
%defattr(-,root,root)
%{_sbindir}/httpd-worker
@ -1150,9 +1131,7 @@ rm %{buildroot}/%{sysconfdir}/*.test
%{_libdir}/%{name}-worker/mod_vhost_alias.so
%{_libdir}/%{name}-worker/mod_watchdog.so
%{_libdir}/%{name}-worker/mod_xml2enc.so
%endif
%if %{event}
%files event
%defattr(-,root,root)
%{_sbindir}/httpd-event
@ -1279,7 +1258,6 @@ rm %{buildroot}/%{sysconfdir}/*.test
%{_libdir}/%{name}-event/mod_vhost_alias.so
%{_libdir}/%{name}-event/mod_watchdog.so
%{_libdir}/%{name}-event/mod_xml2enc.so
%endif
%files devel -f filelist-devel
%defattr(-,root,root)
@ -1347,94 +1325,69 @@ rm %{buildroot}/%{sysconfdir}/*.test
%{_sbindir}/rotatelogs
%{_sbindir}/rotatelogs2
%if %{prefork}
#
%define install_httpd_link() \
( \
# it might happen that apache2 including \
# %{_datadir}/apache2/script-helpers is not installed \
# yet even if apache2-<MPM> has Requires(post): apache2 \
# because of circular dependency between apache2 \
# and apache2-MPM \
if [ -f %{_datadir}/apache2/script-helpers ]; then \
. %{_datadir}/apache2/script-helpers \
find_mpm \
# when this is run in %post(apache2), it may happen \
# no MPM is installed so far \
if [ -n "$HTTPD_MPM" ]; then \
ln -sf $HTTPD_SBIN_BASE-$HTTPD_MPM $HTTPD_SBIN_BASE \
fi \
fi \
)
%post prefork
# install /usr/sbin/httpd link
if [ -f %{_datadir}/apache2/script-helpers ]; then
# it might happen that apache2 including
# %{_datadir}/apache2/script-helpers is not installed
# yet even if apache2-<MPM> has Requires(post): apache2
# because of circular dependency between apache2
# and apache2-MPM
. %{_datadir}/apache2/script-helpers
find_mpm
ln -sf $HTTPD_SBIN_BASE-$HTTPD_MPM $HTTPD_SBIN_BASE
fi
%install_httpd_link
exit 0
#
%postun prefork
if [ $1 -eq 1 ]; then
%apache_request_restart
fi
%install_httpd_link
exit 0
#
%posttrans prefork
%apache_restart_if_needed
exit 0
#
%endif
%if %{worker}
%post worker
# install /usr/sbin/httpd link
if [ -f %{_datadir}/apache2/script-helpers ]; then
# it might happen that apache2 including
# %{_datadir}/apache2/script-helpers is not installed
# yet even if apache2-<MPM> has Requires(post): apache2
# because of circular dependency between apache2
# and apache2-MPM
. %{_datadir}/apache2/script-helpers
find_mpm
ln -sf $HTTPD_SBIN_BASE-$HTTPD_MPM $HTTPD_SBIN_BASE
fi
%install_httpd_link
exit 0
#
%postun worker
if [ $1 -eq 1 ]; then
%apache_request_restart
fi
%install_httpd_link
exit 0
#
%posttrans worker
%apache_restart_if_needed
exit 0
#
%endif
%if %{event}
%post event
# install /usr/sbin/httpd link
if [ -f %{_datadir}/apache2/script-helpers ]; then
# it might happen that apache2 including
# %{_datadir}/apache2/script-helpers is not installed
# yet even if apache2-<MPM> has Requires(post): apache2
# because of circular dependency between apache2
# and apache2-MPM
. %{_datadir}/apache2/script-helpers
find_mpm
ln -sf $HTTPD_SBIN_BASE-$HTTPD_MPM $HTTPD_SBIN_BASE
fi
%install_httpd_link
exit 0
#
%postun event
if [ $1 -eq 1 ]; then
%apache_request_restart
fi
%install_httpd_link
exit 0
#
%posttrans event
%apache_restart_if_needed
exit 0
#
%endif
%pre
%if 0%{?suse_version} >= 1210
@ -1484,14 +1437,6 @@ fi
%else
%{fillup_and_insserv apache2}
%endif
# install /usr/bin/httpd link (the code here is
# needed when apache2 was installed after apache2-<MPM>)
. %{_datadir}/apache2/script-helpers
find_mpm
if [ -n "$HTTPD_MPM" ]; then
ln -sf $HTTPD_SBIN_BASE-$HTTPD_MPM $HTTPD_SBIN_BASE
fi
#
%if %{use_firewalld}
%firewalld_reload
%endif

View File

@ -104,7 +104,7 @@ done
# APACHE_CONF_INCLUDE_DIRS -> include.conf
for dir in $APACHE_CONF_INCLUDE_DIRS; do
test ${dir:0:1} = / || dir=/etc/apache2/$dir
if [ ! -e $dir ]; then
if ! ( [ -e $dir ] || [ -e ${dir%/*} ] ); then
continue
fi
echo "Include $dir" >> ${sysconfd_dir}/include.conf