summaryrefslogtreecommitdiffstats
path: root/httpd-2.1.10-apctl.patch
diff options
context:
space:
mode:
Diffstat (limited to 'httpd-2.1.10-apctl.patch')
-rw-r--r--httpd-2.1.10-apctl.patch107
1 files changed, 107 insertions, 0 deletions
diff --git a/httpd-2.1.10-apctl.patch b/httpd-2.1.10-apctl.patch
new file mode 100644
index 0000000..4e34ea6
--- /dev/null
+++ b/httpd-2.1.10-apctl.patch
@@ -0,0 +1,107 @@
+
+- fail gracefully if links is not installed on target system
+- source sysconfig/httpd for custom env. vars etc.
+- make httpd -t work even in SELinux
+- refuse to restart into a bad config
+- pass $OPTIONS to all $HTTPD invocation
+
+Upstream-HEAD: vendor
+Upstream-2.0: vendor
+Upstream-Status: Vendor-specific changes for better initscript integration
+
+--- httpd-2.1.10/support/apachectl.in.apctl
++++ httpd-2.1.10/support/apachectl.in
+@@ -43,19 +43,25 @@
+ # the path to your httpd binary, including options if necessary
+ HTTPD='@exp_sbindir@/@progname@'
+ #
+-# pick up any necessary environment variables
+-if test -f @exp_sbindir@/envvars; then
+- . @exp_sbindir@/envvars
+-fi
+ #
+ # a command that outputs a formatted text version of the HTML at the
+ # url given on the command line. Designed for lynx, however other
+ # programs may work.
+-LYNX="@LYNX_PATH@ -dump"
++if [ -x "@LYNX_PATH@" ]; then
++ LYNX="@LYNX_PATH@ -dump"
++else
++ LYNX=none
++fi
+ #
+ # the URL to your server's mod_status status page. If you do not
+ # have one, then status and fullstatus will not work.
+ STATUSURL="http://localhost:@PORT@/server-status"
++
++# Source /etc/sysconfig/httpd for $HTTPD setting, etc.
++if [ -r /etc/sysconfig/httpd ]; then
++ . /etc/sysconfig/httpd
++fi
++
+ #
+ # Set this variable to a command that increases the maximum
+ # number of file descriptors allowed per child process. This is
+@@ -75,29 +81,51 @@
+ ARGV="-h"
+ fi
+
++function checklynx() {
++if [ "$LYNX" = "none" ]; then
++ echo "The 'links' package is required for this functionality."
++ exit 8
++fi
++}
++
++function testconfig() {
++# httpd is denied terminal access in SELinux, so run in the
++# current context to get stdout from $HTTPD -t.
++if test -x /usr/sbin/selinuxenabled && /usr/sbin/selinuxenabled; then
++ runcon -- `id -Z` $HTTPD $OPTIONS -t
++else
++ $HTTPD $OPTIONS -t
++fi
++ERROR=$?
++}
++
+ case $ARGV in
+-start|stop|restart|graceful|graceful-stop)
+- $HTTPD -k $ARGV
+- ERROR=$?
++restart|graceful)
++ if $HTTPD $OPTIONS -t >&/dev/null; then
++ $HTTPD $OPTIONS -k $ARGV
++ ERROR=$?
++ else
++ echo "apachectl: Configuration syntax error, will not run \"$ARGV\":"
++ testconfig
++ fi
+ ;;
+-startssl|sslstart|start-SSL)
+- echo The startssl option is no longer supported.
+- echo Please edit httpd.conf to include the SSL configuration settings
+- echo and then use "apachectl start".
+- ERROR=2
++start|stop|graceful-stop)
++ $HTTPD $OPTIONS -k $ARGV
++ ERROR=$?
+ ;;
+ configtest)
+- $HTTPD -t
+- ERROR=$?
++ testconfig
+ ;;
+ status)
++ checklynx
+ $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } '
+ ;;
+ fullstatus)
++ checklynx
+ $LYNX $STATUSURL
+ ;;
+ *)
+- $HTTPD $ARGV
++ $HTTPD $OPTIONS $ARGV
+ ERROR=$?
+ esac
+