#!/bin/sh # EXT=apache2.4 TCZ=/tmp/$EXT/TCZ sudo rm -rf /tmp/$EXT DEPS="apr-dev apr apr-util-dev apr-util openldap-dev openldap libxml2-dev recode-dev recode net-snmp-dev net-snmp unixODBC-dev unixODBC libgd-dev libgd curl-dev curl enchant-dev libwebp-nox libwebp-nox-dev libvpx-dev gmp-dev gmp icu-dev cyrus-sasl-dev cyrus-sasl fontconfig-dev libXft-dev libnghttp2-dev libnghttp2 xorg-server-dev perl5 postgresql-9.6 postgresql-9.6-dev" test "$KBITS" = "64" && DEPS="$DEPS mariadb-10.1-dev lua-dev" || DEPS="$DEPS mariadb-dev lua-5.23-dev" NOTFOUND="" for a in compiletc bash file squashfs-tools $DEPS do tce-load -i $a || tce-load -iwl $a || NOTFOUND=x done test -z "$NOTFOUND" || exit for a in $(grep -I -r -l '_RUNTIMEDIR "/var/logs"' *) do sed -i 's#_RUNTIMEDIR "/var/logs"#_RUNTIMEDIR "/var/run"#' $a done for a in $(grep -I -r -l '_LOGFILEDIR "/var/logs"' *) do sed -i 's#_LOGFILEDIR "/var/logs"#_LOGFILEDIR "/var/log/httpd"#' $a done for a in $(grep -I -r -l '/logs' * | grep -v '^docs/' | cut -d: -f1 | sort -u); do sed -i -e 's#/logs#/log#g' $a; done #make clean ./configure \ --bindir=/usr/local/bin \ --sbindir=/usr/local/sbin \ --sysconfdir=/usr/local/etc/httpd \ --localstatedir=/var \ --enable-ssl \ --enable-so \ --enable-mods-shared=reallyall \ --enable-mpms-shared=all \ || exit d1='SUEXEC_BIN=\"/usr/local/sbin/suexec\"' d2='DEFAULT_PIDLOG=\"/var/run/httpd.pid\"' d3='DEFAULT_SCOREBOARD=\"/var/log/httpd/apache_runtime_status\"' d4='DEFAULT_ERRORLOG=\"/var/log/httpd/error_log\"' make CFLAGS="-D$d1 -D$d2 -D$d3 -D$d4" || exit make install DESTDIR=$TCZ || exit for a in $(find $TCZ -type f); do file -b $a | grep -q '^ELF .*not stripped$' && strip --strip-unneeded $a; done rm -rf $TCZ/var mkdir -p $TCZ-dev/usr/local/apache2 mkdir -p $TCZ-doc/usr/local/apache2 rm -f $TCZ/usr/local/etc/httpd/httpd.conf rm -rf $TCZ/usr/local/etc/httpd/extra mkdir -p $TCZ/usr/local/etc/init.d cat >$TCZ/usr/local/etc/init.d/httpd <<'EOF' #!/bin/sh # # Start/stop/restart/graceful[ly restart]/graceful[ly]-stop # the Apache (httpd) web server. # # For information on these options, "man apachectl". ACTLX=$(which apachectl) test "$ACTLX" != "" && ACTLX="$ACTLX -k" || exit 1 case "$1" in 'start') $ACTLX start ;; 'stop') $ACTLX stop killall httpd # Remove both old and new .pid locations: rm -f /var/run/httpd.pid /var/run/httpd/httpd.pid ;; 'force-restart') # Because sometimes restarting through apachectl just doesn't do the trick... $ACTLX stop killall httpd # Remove both old and new .pid locations: rm -f /var/run/httpd.pid /var/run/httpd/httpd.pid $ACTLX start ;; 'restart') $ACTLX restart ;; 'graceful') $ACTLX graceful ;; 'graceful-stop') $ATCLX graceful-stop ;; *) echo "Usage: $0 {start|stop|force-restart|restart|graceful|graceful-stop}" ;; esac EOF chmod 775 $TCZ/usr/local/etc/init.d/httpd mkdir -p $TCZ/usr/local/etc/httpd/conf.d mv $TCZ/usr/local/etc/httpd/original/extra $TCZ/usr/local/etc/httpd/original/conf.d mv $TCZ/usr/local/etc/httpd/original/httpd.conf $TCZ/usr/local/etc/httpd/original/httpd.conf-sample mv $TCZ/usr/local/apache2/include $TCZ-dev/usr/local/apache2 mv $TCZ/usr/local/apache2/build $TCZ-dev/usr/local/apache2 mkdir -p $TCZ-dev/usr/local/bin mv $TCZ/usr/local/bin/apxs $TCZ-dev/usr/local/bin mv $TCZ/usr/local/apache2/man $TCZ-doc/usr/local/share mv $TCZ/usr/local/apache2/manual $TCZ-doc/usr/local/apache2 sudo chown -R root.root $TCZ* mksquashfs $TCZ /tmp/$EXT/$EXT.tcz -noappend mksquashfs $TCZ-dev /tmp/$EXT/$EXT-dev.tcz -noappend mksquashfs $TCZ-doc /tmp/$EXT/$EXT-doc.tcz -noappend