## ## apache-zeus.spec -- OpenPKG RPM Package Specification ## Copyright (c) 2000-2016 OpenPKG Foundation e.V. ## ## Permission to use, copy, modify, and distribute this software for ## any purpose with or without fee is hereby granted, provided that ## the above copyright notice and this permission notice appear in all ## copies. ## ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ## SUCH DAMAGE. ## # package information Name: apache-zeus Summary: Apache Extension: Client IP Transparency URL: http://knowledgehub.zeus.com/ Vendor: Zeus Technology Ltd. Packager: OpenPKG Foundation e.V. Distribution: OpenPKG Community Class: EVAL Group: Web License: BSD Version: 0 Release: 20080101 # package options %option with_zeus_header X-Cluster-Client-Ip # list of sources Source0: http://knowledgehub.zeus.com/media/apache2/mod_zeus.c Source1: apache-zeus.conf # build information BuildPreReq: OpenPKG, openpkg >= 20100101, gcc PreReq: OpenPKG, openpkg >= 20100101 BuildPreReq: apache, apr PreReq: apache, apr %description When using load balancers in front of an Apache HTTP server or Apache-based application, the connection appears to originate from the load balancer device. This can be a problem if the server wishes to perform access control based on the client's IP address or if it wants to log the true source address of the request. With mod_zeus the value Apache's internal 'remote_ip' field will be fixed if the HTTP request contains an specific header inserted by a trusted load balancer containing the client's IP address. In addition, the environment variable 'ZEUS_LOAD_BALANCER_ADDR' will point to the IP address of the load balancer that the request came through. The name of the HTTP header can be defined during build time of the module. %track prog apache-zeus = { disabled comment = "cs: unversioned source code" version = %{version} url = http://knowledgehub.zeus.com/faqs/2005/12/02/preserving_the_client_ip_address_to_apac regex = mod_zeus.c } %prep %setup -q -c -T %{l_shtool} install -c -m 644 \ -e 's;X-Cluster-Client-Ip;%{with_zeus_header};g' \ %{SOURCE mod_zeus.c} \ . %build # build module %{l_prefix}/sbin/apxs -c mod_zeus.c %install # install module %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/etc/apache/apache.d \ $RPM_BUILD_ROOT%{l_prefix}/libexec/apache %{l_shtool} install -c -m 755 \ .libs/mod_zeus.so \ $RPM_BUILD_ROOT%{l_prefix}/libexec/apache/mod_zeus.so %{l_shtool} install -c -m 644 %{l_value -s -a} \ %{SOURCE apache-zeus.conf} \ $RPM_BUILD_ROOT%{l_prefix}/etc/apache/apache.d/ # determine installation files %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ %{l_files_std} \ '%config %{l_prefix}/etc/apache/apache.d/apache-zeus.conf' %files -f files %clean %post # after upgrade, restart service [ $1 -eq 2 ] || exit 0 eval `%{l_rc} apache status 2>/dev/null` [ ".$apache_active" = .yes ] && %{l_rc} apache restart exit 0