Accepting request 328614 from Apache:Modules

- bump version to 20150902

- added macros to test loading modules
  %apache_test_module_start_apache
  %apache_test_module_stop_apache
  %apache_test_module_load
  + macros.apache-module-test

OBS-URL: https://build.opensuse.org/request/show/328614
OBS-URL: https://build.opensuse.org/package/show/Apache/apache-rpm-macros?expand=0&rev=14
This commit is contained in:
Petr Gajdos 2015-09-02 10:28:28 +00:00 committed by Git OBS Bridge
parent 819ba6d0b4
commit 29bb540b4c
3 changed files with 160 additions and 1 deletions

View File

@ -1,3 +1,17 @@
-------------------------------------------------------------------
Mon Aug 31 08:30:28 UTC 2015 - pgajdos@suse.com
- bump version to 20150902
-------------------------------------------------------------------
Fri Aug 28 08:27:11 UTC 2015 - pgajdos@suse.com
- added macros to test loading modules
%apache_test_module_start_apache
%apache_test_module_stop_apache
%apache_test_module_load
+ macros.apache-module-test
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Jul 28 12:01:08 UTC 2015 - pgajdos@suse.com Tue Jul 28 12:01:08 UTC 2015 - pgajdos@suse.com

View File

@ -43,12 +43,13 @@
%endif %endif
%define macros_file macros.apache %define macros_file macros.apache
Name: apache-rpm-macros Name: apache-rpm-macros
Version: 20150717 Version: 20150831
Release: 0 Release: 0
Summary: Apache RPM Macros Summary: Apache RPM Macros
License: Apache-2.0 License: Apache-2.0
Group: Productivity/Networking/Web/Servers Group: Productivity/Networking/Web/Servers
Url: http://httpd.apache.org/ Url: http://httpd.apache.org/
Source1: macros.apache-module-test
BuildRequires: apache%{ap_major}-devel BuildRequires: apache%{ap_major}-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -75,6 +76,8 @@ cat << eom > %{macros_file}
%%apache_user %{ap_user} %%apache_user %{ap_user}
%%apache_group %{ap_group} %%apache_group %{ap_group}
eom eom
echo >> %{macros_file}
cat %{SOURCE1} >> %{macros_file}
%install %install
mkdir -p %{buildroot}%{macros_dir} mkdir -p %{buildroot}%{macros_dir}

142
macros.apache-module-test Normal file
View File

@ -0,0 +1,142 @@
#
# macro: apache_test_module_start_apache -- start apache with specified modules loaded
#
# usage: apache_test_module_start_apache -m module_list [-i include_list] [-r document_root]
#
# module_list: colon separated list of module names to be loaded with test run
# search path: %{buildroot} tree
# %{apache_libexecdir}-prefork
# %{apache_libexecdir}
# [example value: asn:dbd]
# include_list: colon separated list of names of apache configuration files
# to be included (path relative to current dir)
# search path %{buildroot}%{apache_sysconfdir} tree
# $PWD tree
# [example value: mod_asn.conf]
# document_root: document root of the test server,
# [default value: $PWD/test/htdocs]
#
#
%apache_test_module_start_apache(m:,i:,r:) \
# constants \
TEST_DIR='test' \
TEST_MPM='prefork' \
TEST_USER='abuild' \
TEST_GROUP='abuild' \
TEST_PORT='60080' \
# arguments \
# modules to load, from BUILD tree or system \
MODULES=$(echo %{-m:%{-m*}} | tr ':' ' ') \
if [ -z "$MODULES" ]; then \
echo "ERROR: Missing -m argument in %%apache_test_module macro call." \
exit 1 \
fi \
# configs to include \
CONFIGS="%{-i:%{-i*}}" \
# document root of the test server \
DOCUMENT_ROOT="%{-r:%{-r*}}" \
if [ -z "$DOCUMENT_ROOT" ]; then \
DOCUMENT_ROOT=$PWD/$TEST_DIR/htdocs \
fi \
# helpers \
APACHE_BRANCH=$(echo %{apache_branch} | tr -d '.') \
# begin \
echo "-----------------------------------------------------------" \
echo "APACHE MODULE TEST" \
echo \
echo "modules to load: $MODULES" \
echo "configs to include: $CONFIGS" \
# create test \
mkdir $TEST_DIR \
# create document root if not exist \
mkdir -p $DOCUMENT_ROOT \
# create test/httpd-test.conf \
TEST_CONF_FILE="$TEST_DIR/httpd-test.conf" \
SYSTEM_MODULE_PATH="%{apache_libexecdir}-$TEST_MPM" \
echo "ServerName test" > $TEST_CONF_FILE \
echo "User $TEST_USER" >> $TEST_CONF_FILE \
echo "Group $TEST_GROUP" >> $TEST_CONF_FILE \
echo "Listen $TEST_PORT" >> $TEST_CONF_FILE \
echo "PidFile $PWD/$TEST_DIR/pid" >> $TEST_CONF_FILE \
echo "ErrorLog $PWD/$TEST_DIR/error_log" >> $TEST_CONF_FILE \
echo "LoadModule dir_module $SYSTEM_MODULE_PATH/mod_dir.so" >> $TEST_CONF_FILE \
echo "LoadModule auth_basic_module $SYSTEM_MODULE_PATH/mod_auth_basic.so" >> $TEST_CONF_FILE \
if [ $APACHE_BRANCH -ge 24 ]; then \
echo "LoadModule authz_core_module $SYSTEM_MODULE_PATH/mod_authz_core.so" >> $TEST_CONF_FILE \
fi \
echo "LoadModule authz_host_module $SYSTEM_MODULE_PATH/mod_authz_host.so" >> $TEST_CONF_FILE \
for m in $(echo $MODULES | tr ':' ' '); do \
module_path=$(find %{buildroot} %{apache_libexecdir}-$TEST_MPM %{apache_libexecdir} -name "mod_$m.so" | tail -n 1) \
if [ -z "$module_path" ]; then \
echo "ERROR: Module $m not found." \
exit 1 \
fi \
echo "Will load ${m}_module $module_path" \
echo "LoadModule ${m}_module $module_path" >> $TEST_CONF_FILE \
done \
for c in $(echo $CONFIGS | tr ':' ' '); do \
include_path=$(find %{buildroot}%{apache_sysconfdir} $PWD -name "$c" 2>/dev/null | tail -n 1) \
if [ -z "$include_path" ]; then \
echo "ERROR: Config file $c not found." \
exit 1 \
fi \
echo "Will include $include_path" \
echo "Include $include_path" >> $TEST_CONF_FILE \
done \
echo "DocumentRoot $DOCUMENT_ROOT" >> $TEST_CONF_FILE \
echo "DirectoryIndex index.html" >> $TEST_CONF_FILE \
echo "<Directory $DOCUMENT_ROOT>" >> $TEST_CONF_FILE \
if [ $APACHE_BRANCH -ge 24 ]; then \
echo " Require local" >> $TEST_CONF_FILE \
else \
echo " Order deny,allow" >> $TEST_CONF_FILE \
echo " Deny from all" >> $TEST_CONF_FILE \
echo " Allow from localhost" >> $TEST_CONF_FILE \
fi \
echo "</Directory>" >> $TEST_CONF_FILE \
# run apache \
CMD=$(ls %{_sbindir}/httpd*-$TEST_MPM | tail -n 1) \
echo -n "Starting Apache ... " \
$CMD -f $PWD/$TEST_CONF_FILE -k start || \
{ echo "FAILED:"; cat $TEST_DIR/error_log; echo "See $PWD/$TEST_DIR for details"; exit 1; } \
echo "SUCCESS" \
%nil
#
# macro: apache_test_module_stop_apache -- stops apache previously started with *_start_apache
#
# usage: apache_test_module_stop_apache
#
%apache_test_module_stop_apache() \
# stop apache \
echo "Stopping Apache ..." \
# wait to be sure apache finish start \
sleep 2 \
kill -TERM `cat $TEST_DIR/pid` \
echo "Done." \
echo "-----------------------------------------------------------" \
# cleanup \
rm -r $TEST_DIR \
%nil
#
# macro: apache_test_module_load -- tests that module(s) can be loaded
#
# usage: apache_test_module_load -m module_list [-i include_list]
#
# module_list: colon separated list of module names to be loaded with test run
# search path: %{buildroot} tree
# %{apache_libexecdir}-prefork
# %{apache_libexecdir}
# [example value: asn:dbd]
# include_list: colon separated list of names of apache configuration files
# to be included (path relative to current dir)
# search path %{buildroot}%{apache_sysconfdir} tree
# $PWD tree
# [example value: mod_asn.conf]
#
%apache_test_module_load(m:,i:) \
%apache_test_module_start_apache %{-m:-m %{-m*}} %{-i:-i %{-i*}} \
%apache_test_module_stop_apache \
%nil