diff --git a/Shorewall-core/install.sh b/Shorewall-core/install.sh index c53392be1..a8aacd968 100755 --- a/Shorewall-core/install.sh +++ b/Shorewall-core/install.sh @@ -24,6 +24,9 @@ VERSION=xxx #The Build script inserts the actual version +PRODUCT=shorewall-core +Product="Shorewall Core" + usage() # $1 = exit status { ME=$(basename $0) @@ -100,6 +103,9 @@ require() eval [ -n "\$$1" ] || fatal_error "Required option $1 not set" } +# +# Change to the directory containing this script +# cd "$(dirname $0)" # @@ -340,8 +346,10 @@ fi mkdir -p ${DESTDIR}${SBINDIR} chmod 755 ${DESTDIR}${SBINDIR} -mkdir -p ${DESTDIR}${MANDIR} -chmod 755 ${DESTDIR}${MANDIR} +if [ -n "${MANDIR}" ]; then + mkdir -p ${DESTDIR}${MANDIR} + chmod 755 ${DESTDIR}${MANDIR} +fi if [ -n "${INITFILE}" ]; then mkdir -p ${DESTDIR}${INITDIR} diff --git a/Shorewall-core/shorewallrc.openwrt b/Shorewall-core/shorewallrc.openwrt index 0cfd3c6f8..7149aeac4 100644 --- a/Shorewall-core/shorewallrc.openwrt +++ b/Shorewall-core/shorewallrc.openwrt @@ -3,24 +3,21 @@ # # Input: host=openwrt # -HOST=openwrt -PREFIX=/usr -SHAREDIR=${PREFIX}/share -LIBEXECDIR=${PREFIX}/share -PERLLIBDIR=${PREFIX}/share/shorewall -CONFDIR=/etc -SBINDIR=/sbin -MANDIR=${PREFIX}/man -INITDIR=/etc/init.d -INITSOURCE=init.openwrt.sh -INITFILE=$PRODUCT -AUXINITSOURCE= -AUXINITFILE= -SERVICEDIR= -SERVICEFILE= -SYSCONFFILE=sysconfig -SYSCONFDIR=${CONFDIR}/sysconfig -SPARSE= -ANNOTATED= -VARLIB=/lib -VARDIR=${VARLIB}/$PRODUCT +PREFIX=/usr #Top-level directory for shared files, libraries, etc. +SHAREDIR=${PREFIX}/share #Directory for arch-neutral files. +LIBEXECDIR=${PREFIX}/share #Directory for executable scripts. +PERLLIBDIR=${PREFIX}/share/shorewall #Directory to install Shorewall Perl module directory +CONFDIR=/etc #Directory where subsystem configurations are installed +SBINDIR=/sbin #Directory where system administration programs are installed +MANDIR= #Directory where manpages are installed. +INITDIR=/etc/init.d #Directory where SysV init scripts are installed. +INITFILE=$PRODUCT #Name of the product's installed SysV init script +INITSOURCE=init.openwrt.sh #Name of the distributed file to be installed as the SysV init script +ANNOTATED= #If non-zero, annotated configuration files are installed +SYSCONFDIR=${CONFDIR}/sysconfig #Directory where SysV init parameter files are installed +SYSCONFFILE=sysconfig #Name of the distributed file to be installed in $SYSCONFDIR +SERVICEDIR= #Directory where .service files are installed (systems running systemd only) +SERVICEFILE= #Name of the file to install in $SYSTEMD. Default is $PRODUCT.service +SPARSE= #If non-empty, only install $PRODUCT/$PRODUCT.conf in $CONFDIR +VARLIB=/lib #Directory where product variable data is stored. +VARDIR=${VARLIB}/$PRODUCT #Directory where product variable data is stored. diff --git a/Shorewall-core/uninstall.sh b/Shorewall-core/uninstall.sh index 876fd19b1..58283deb1 100755 --- a/Shorewall-core/uninstall.sh +++ b/Shorewall-core/uninstall.sh @@ -27,7 +27,9 @@ # shown below. Simply run this script to remove Shorewall Firewall VERSION=xxx #The Build script inserts the actual version - +PRODUCT="shorewall-core" +Product="Shorewall Core" + usage() # $1 = exit status { ME=$(basename $0) @@ -66,6 +68,11 @@ remove_file() # $1 = file to restore fi } +# +# Change to the directory containing this script +# +cd "$(dirname $0)" + # # Read the RC file # diff --git a/Shorewall-init/init.openwrt.sh b/Shorewall-init/init.openwrt.sh new file mode 100644 index 000000000..f48af0c0d --- /dev/null +++ b/Shorewall-init/init.openwrt.sh @@ -0,0 +1,131 @@ +#!/bin/sh /etc/rc.common +# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V5.0 +# +# (c) 2010,2012-2014 - Tom Eastep (teastep@shorewall.net) +# (c) 2016 - Matt Darfeuille (matdarf@gmail.com) +# +# On most distributions, this file should be called /etc/init.d/shorewall-init. +# +# This program is part of Shorewall. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 2 of the license or, at your +# option, any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# +# + +# arg1 of init script is arg2 when rc.common is sourced + +case "$action" in + start|stop|boot) + if [ "$(id -u)" != "0" ] + then + echo "You must be root to start, stop or restart \"Shorewall \"." + exit 1 + fi + + # check if shorewall-init is configured or not + if [ -f "/etc/sysconfig/shorewall-init" ] + then + . /etc/sysconfig/shorewall-init + if [ -z "$PRODUCTS" ] + then + exit 0 + fi + else + exit 0 + fi + + ;; + enable|disable|enabled) + # Openwrt related + # start and stop runlevel variable + START=19 + STOP=91 + ;; + *) + echo "Usage: /etc/init.d/shorewall-init {start|stop}" + exit 1 +esac + +# +# The installer may alter this +# +. /usr/share/shorewall/shorewallrc + +# Locate the current PRODUCT's statedir +setstatedir() { + local statedir + if [ -f ${CONFDIR}/${PRODUCT}/vardir ]; then + statedir=$( . ${CONFDIR}/${PRODUCT}/vardir && echo $VARDIR ) + fi + + [ -n "$statedir" ] && STATEDIR=${statedir} || STATEDIR=${VARLIB}/${PRODUCT} + + if [ $PRODUCT = shorewall -o $PRODUCT = shorewall6 ]; then + ${SBINDIR}/$PRODUCT ${OPTIONS} compile $STATEDIR/firewall + else + return 0 + fi +} + +# Initialize the firewall +start () { + local PRODUCT + local STATEDIR + + echo -n "Initializing \"Shorewall-based firewalls\": " + for PRODUCT in $PRODUCTS; do + if setstatedir; then + if [ -x ${STATEDIR}/firewall ]; then + if ! ${SBIN}/$PRODUCT status > /dev/null 2>&1; then + ${STATEDIR}/firewall ${OPTIONS} stop + fi + fi + fi + done + + if [ -n "$SAVE_IPSETS" -a -f "$SAVE_IPSETS" ]; then + ipset -R < "$SAVE_IPSETS" + fi +} + +boot () { + start +} + +# Clear the firewall +stop () { + local PRODUCT + local STATEDIR + + echo -n "Clearing \"Shorewall-based firewalls\": " + for PRODUCT in $PRODUCTS; do + if setstatedir; then + if [ -x ${STATEDIR}/firewall ]; then + ${STATEDIR}/firewall ${OPTIONS} clear + fi + fi + done + + if [ -n "$SAVE_IPSETS" ]; then + mkdir -p $(dirname "$SAVE_IPSETS") + if ipset -S > "${SAVE_IPSETS}.tmp"; then + grep -qE -- '^(-N|create )' "${SAVE_IPSETS}.tmp" && mv -f "${SAVE_IPSETS}.tmp" "$SAVE_IPSETS" + fi + fi +} + diff --git a/Shorewall-init/install.sh b/Shorewall-init/install.sh index 9acbaa883..de7edc584 100755 --- a/Shorewall-init/install.sh +++ b/Shorewall-init/install.sh @@ -28,6 +28,8 @@ # VERSION=xxx #The Build script inserts the actual version. +PRODUCT=shorewall-init +Product="Shorewall Init" usage() # $1 = exit status { @@ -71,39 +73,50 @@ mywhich() { return 2 } -run_install() -{ - if ! install $*; then - echo - echo "ERROR: Failed to install $*" >&2 - exit 1 - fi -} - cant_autostart() { echo echo "WARNING: Unable to configure shorewall init to start automatically at boot" >&2 } +install_file() # $1 = source $2 = target $3 = mode +{ + if cp -f $1 $2; then + if chmod $3 $2; then + if [ -n "$OWNER" ]; then + if chown $OWNER:$GROUP $2; then + return + fi + else + return 0 + fi + fi + fi + + echo "ERROR: Failed to install $2" >&2 + exit 1 +} + +make_directory() # $1 = directory , $2 = mode +{ + mkdir -p $1 + chmod 0755 $1 + [ -n "$OWNERSHIP" ] && chown $OWNERSHIP $1 +} + require() { eval [ -n "\$$1" ] || fatal_error "Required option $1 not set" } -install_file() # $1 = source $2 = target $3 = mode -{ - run_install $T $OWNERSHIP -m $3 $1 ${2} -} - +# +# Change to the directory containing this script +# cd "$(dirname $0)" -PRODUCT=shorewall-init - # # Parse the run line # -T='-T' finished=0 configure=1 @@ -239,22 +252,24 @@ if [ -z "$BUILD" ]; then esac fi -[ -n "$OWNER" ] || OWNER=$(id -un) -[ -n "$GROUP" ] || GROUP=$(id -gn) - case $BUILD in apple) - T= - ;; - debian|gentoo|redhat|suse|slackware|archlinux) + [ -z "$OWNER" ] && OWNER=root + [ -z "$GROUP" ] && GROUP=wheel ;; + cygwin*|CYGWIN*) + OWNER=$(id -un) + GROUP=$(id -gn) + ;; *) - [ -n "$BUILD" ] && echo "ERROR: Unknown BUILD environment ($BUILD)" >&2 || echo "ERROR: Unknown BUILD environment" - exit 1 + if [ $(id -u) -eq 0 ]; then + [ -z "$OWNER" ] && OWNER=root + [ -z "$GROUP" ] && GROUP=root + fi ;; esac -OWNERSHIP="-o $OWNER -g $GROUP" +[ -n "$OWNER" ] && OWNERSHIP="$OWNER:$GROUP" [ -n "$HOST" ] || HOST=$BUILD @@ -280,7 +295,7 @@ case "$HOST" in echo "Installing SuSE-specific configuration..." ;; openwrt) - echo "Installing OpenWRT-specific configuration..." + echo "Installing Openwrt-specific configuration..." ;; linux) echo "ERROR: Shorewall-init is not supported on this system" >&2 @@ -295,12 +310,12 @@ esac [ -z "$TARGET" ] && TARGET=$HOST if [ -n "$DESTDIR" ]; then - if [ `id -u` != 0 ] ; then + if [ $(id -u) != 0 ] ; then echo "Not setting file owner/group permissions, not running as root." OWNERSHIP="" fi - install -d $OWNERSHIP -m 755 ${DESTDIR}${INITDIR} + make_directory ${DESTDIR}${INITDIR} 0755 fi echo "Installing Shorewall Init Version $VERSION" @@ -316,7 +331,7 @@ fi if [ -n "$DESTDIR" ]; then mkdir -p ${DESTDIR}${CONFDIR}/logrotate.d - chmod 755 ${DESTDIR}${CONFDIR}/logrotate.d + chmod 0755 ${DESTDIR}${CONFDIR}/logrotate.d fi # @@ -344,14 +359,14 @@ fi if [ -n "$SERVICEDIR" ]; then mkdir -p ${DESTDIR}${SERVICEDIR} [ -z "$SERVICEFILE" ] && SERVICEFILE=$PRODUCT.service - run_install $OWNERSHIP -m 644 $SERVICEFILE ${DESTDIR}${SERVICEDIR}/$PRODUCT.service + install_file $SERVICEFILE ${DESTDIR}${SERVICEDIR}/$PRODUCT.service 0644 [ ${SBINDIR} != /sbin ] && eval sed -i \'s\|/sbin/\|${SBINDIR}/\|\' ${DESTDIR}${SERVICEDIR}/$PRODUCT.service echo "Service file $SERVICEFILE installed as ${DESTDIR}${SERVICEDIR}/$PRODUCT.service" if [ -n "$DESTDIR" -o $configure -eq 0 ]; then mkdir -p ${DESTDIR}${SBINDIR} - chmod 755 ${DESTDIR}${SBINDIR} + chmod 0755 ${DESTDIR}${SBINDIR} fi - run_install $OWNERSHIP -m 700 shorewall-init ${DESTDIR}${SBINDIR}/shorewall-init + install_file shorewall-init ${DESTDIR}${SBINDIR}/shorewall-init 0700 [ "${SHAREDIR}" = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ${DESTDIR}${SBINDIR}/shorewall-init echo "CLI installed as ${DESTDIR}${SBINDIR}/shorewall-init" fi @@ -360,13 +375,13 @@ fi # Create /usr/share/shorewall-init if needed # mkdir -p ${DESTDIR}${SHAREDIR}/shorewall-init -chmod 755 ${DESTDIR}${SHAREDIR}/shorewall-init +chmod 0755 ${DESTDIR}${SHAREDIR}/shorewall-init # # Install logrotate file # if [ -d ${DESTDIR}${CONFDIR}/logrotate.d ]; then - run_install $OWNERSHIP -m 0644 logrotate ${DESTDIR}${CONFDIR}/logrotate.d/$PRODUCT + install_file logrotate ${DESTDIR}${CONFDIR}/logrotate.d/$PRODUCT 0644 echo "Logrotate file installed as ${DESTDIR}${CONFDIR}/logrotate.d/$PRODUCT" fi @@ -374,7 +389,7 @@ fi # Create the version file # echo "$VERSION" > ${DESTDIR}/${SHAREDIR}/shorewall-init/version -chmod 644 ${DESTDIR}${SHAREDIR}/shorewall-init/version +chmod 0644 ${DESTDIR}${SHAREDIR}/shorewall-init/version # # Remove and create the symbolic link to the init script @@ -417,6 +432,9 @@ else elif [ $HOST = gentoo ]; then # Gentoo does not support if-{up,down}.d /bin/true + elif [ $HOST = openwrt ]; then + # Not implemented on openwrt + /bin/true else mkdir -p ${DESTDIR}/${ETC}/NetworkManager/dispatcher.d fi @@ -424,8 +442,8 @@ else fi if [ -n "$SYSCONFFILE" -a ! -f ${DESTDIR}${SYSCONFDIR}/${PRODUCT} ]; then - run_install $OWNERSHIP -m 0644 ${SYSCONFFILE} ${DESTDIR}${SYSCONFDIR}/$PRODUCT - echo "$SYSCONFFILE installed in ${DESTDIR}${SYSCONFDIR}/${PRODUCT}" + install_file ${SYSCONFFILE} ${DESTDIR}${SYSCONFDIR}/$PRODUCT 0644 + echo "${SYSCONFFILE} file installed in ${DESTDIR}${SYSCONFDIR}/${PRODUCT}" fi [ $HOST = suse ] && IFUPDOWN=ifupdown.suse.sh || IFUPDOWN=ifupdown.fedora.sh @@ -435,13 +453,15 @@ fi # Install the ifupdown script # -cp $IFUPDOWN ifupdown +if [ $HOST != openwrt ]; then + cp $IFUPDOWN ifupdown -[ "${SHAREDIR}" = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ifupdown + [ "${SHAREDIR}" = /usr/share ] || eval sed -i \'s\|/usr/share/\|${SHAREDIR}/\|\' ifupdown -mkdir -p ${DESTDIR}${LIBEXECDIR}/shorewall-init + mkdir -p ${DESTDIR}${LIBEXECDIR}/shorewall-init -install_file ifupdown ${DESTDIR}${LIBEXECDIR}/shorewall-init/ifupdown 0544 + install_file ifupdown ${DESTDIR}${LIBEXECDIR}/shorewall-init/ifupdown 0544 +fi if [ -d ${DESTDIR}/etc/NetworkManager ]; then [ $configure -eq 1 ] || mkdir -p ${DESTDIR}${CONFDIR}/NetworkManager/dispatcher.d/ @@ -494,7 +514,7 @@ case $HOST in esac if [ -z "$DESTDIR" ]; then - if [ $configure -eq 1 -a -n "$first_install" ]; then + if [ $configure -eq 1 -a -n "first_install" ]; then if [ $HOST = debian ]; then if [ -n "$SERVICEDIR" ]; then if systemctl enable ${PRODUCT}.service; then @@ -516,6 +536,13 @@ if [ -z "$DESTDIR" ]; then else cant_autostart fi + elif [ $HOST = openwrt -a -f ${CONFDIR}/rc.common ]; then + /etc/init.d/$PRODUCT enable + if /etc/init.d/$PRODUCT enabled; then + echo "$Product will start automatically at boot" + else + cant_autostart + fi elif [ $HOST = gentoo ]; then # On Gentoo, a service must be enabled manually by the user, # not by the installer diff --git a/Shorewall-init/uninstall.sh b/Shorewall-init/uninstall.sh index f9518a7e7..3ba9ca031 100755 --- a/Shorewall-init/uninstall.sh +++ b/Shorewall-init/uninstall.sh @@ -27,6 +27,8 @@ # shown below. Simply run this script to remove Shorewall Firewall VERSION=xxx #The Build script inserts the actual version +PRODUCT=shorewall-init +Product="Shorewall Init" usage() # $1 = exit status { @@ -75,6 +77,11 @@ remove_file() # $1 = file to restore fi } +# +# Change to the directory containing this script +# +cd "$(dirname $0)" + finished=0 configure=1 @@ -162,7 +169,11 @@ INITSCRIPT=${CONFDIR}/init.d/shorewall-init if [ -f "$INITSCRIPT" ]; then if [ $configure -eq 1 ]; then - if mywhich updaterc.d ; then + if [ $HOST = openwrt ]; then + if /etc/init.d/shorewall-init enabled; then + /etc/init.d/shorewall-init disable + fi + elif mywhich updaterc.d ; then updaterc.d shorewall-init remove elif mywhich insserv ; then insserv -r $INITSCRIPT @@ -183,8 +194,13 @@ if [ -n "$SERVICEDIR" ]; then rm -f $SERVICEDIR/shorewall-init.service fi -[ "$(readlink -m -q ${SBINDIR}/ifup-local)" = ${SHAREDIR}/shorewall-init ] && remove_file ${SBINDIR}/ifup-local -[ "$(readlink -m -q ${SBINDIR}/ifdown-local)" = ${SHAREDIR}/shorewall-init ] && remove_file ${SBINDIR}/ifdown-local +if [ $HOST = openwrt ]; then + [ "$(readlink -q ${SBINDIR}/ifup-local)" = ${SHAREDIR}/shorewall-init ] && remove_file ${SBINDIR}/ifup-local + [ "$(readlink -q ${SBINDIR}/ifdown-local)" = ${SHAREDIR}/shorewall-init ] && remove_file ${SBINDIR}/ifdown-local +else + [ "$(readlink -m -q ${SBINDIR}/ifup-local)" = ${SHAREDIR}/shorewall-init ] && remove_file ${SBINDIR}/ifup-local + [ "$(readlink -m -q ${SBINDIR}/ifdown-local)" = ${SHAREDIR}/shorewall-init ] && remove_file ${SBINDIR}/ifdown-local +fi remove_file ${CONFDIR}/default/shorewall-init remove_file ${CONFDIR}/sysconfig/shorewall-init @@ -198,8 +214,6 @@ remove_file ${CONFDIR}/network/if-post-down.d/shorewall remove_file ${CONFDIR}/sysconfig/network/if-up.d/shorewall remove_file ${CONFDIR}/sysconfig/network/if-down.d/shorewall -[ -n "$SYSTEMD" ] && remove_file ${SYSTEMD}/shorewall.service - if [ -d ${CONFDIR}/ppp ]; then for directory in ip-up.d ip-down.d ipv6-up.d ipv6-down.d; do remove_file ${CONFDIR}/ppp/$directory/shorewall diff --git a/Shorewall-lite/init.openwrt.sh b/Shorewall-lite/init.openwrt.sh index 68c2c73ab..74c3a2800 100755 --- a/Shorewall-lite/init.openwrt.sh +++ b/Shorewall-lite/init.openwrt.sh @@ -32,38 +32,37 @@ # shorewall-lite start Starts the firewall # shorewall-lite restart Restarts the firewall # shorewall-lite reload Reload the firewall -# (same as restart) # shorewall-lite stop Stops the firewall # shorewall-lite status Displays firewall status # # description: Packet filtering firewall -# openwrt stuph +# Product name variable +PRODUCT=shorewall-lite ++ +# Openwrt related # start and stop runlevel variable -#START=21 -#STOP=91 +START=50 +STOP=89 # variable to display what the status command do when /etc/init.d/shorewall-lite is invoke without argument EXTRA_COMMANDS="status" -EXTRA_HELP="Displays shorewall status" +EXTRA_HELP="status displays shorewall status" ################################################################################ # Get startup options (override default) ################################################################################ -OPTIONS="-vvv" +OPTIONS= # # The installer may alter this # . /usr/share/shorewall/shorewallrc -if [ -f ${SYSCONFDIR}/shorewall-lite ]; then - . ${SYSCONFDIR}/shorewall-lite +if [ -f ${SYSCONFDIR}/$PRODUCT ]; then + . ${SYSCONFDIR}/$PRODUCT fi -START=${START:-21} -STOP=${STOP:-91} - SHOREWALL_INIT_SCRIPT=1 ################################################################################ @@ -73,7 +72,7 @@ SHOREWALL_INIT_SCRIPT=1 command="$action" start() { - exec ${SBINDIR}/shorewall-lite $OPTIONS $command ${STARTOPTIONS:-$@} + exec ${SBINDIR}/shorewall-lite $OPTIONS $command $STARTOPTIONS } boot() { @@ -82,17 +81,17 @@ start } restart() { - exec ${SBINDIR}/shorewall-lite $OPTIONS $command ${RESTARTOPTIONS:-$@} + exec ${SBINDIR}/shorewall-lite $OPTIONS $command $RESTARTOPTIONS } reload() { - exec ${SBINDIR}/shorewall-lite $OPTIONS $command ${RELOADOPTION:-$@} + exec ${SBINDIR}/shorewall-lite $OPTIONS $command $RELOADOPTION } stop() { - exec ${SBINDIR}/shorewall-lite $OPTIONS $command ${STOPOPTIONS:-$@} + exec ${SBINDIR}/shorewall-lite $OPTIONS $command $STOPOPTIONS } status() { - exec ${SBINDIR}/shorewall-lite $OPTIONS $command ${STATUSOPTIONS:-$@} + exec ${SBINDIR}/shorewall-lite $OPTIONS $command $STATUSOPTIONS } diff --git a/Shorewall-lite/uninstall.sh b/Shorewall-lite/uninstall.sh index b4d213898..f060acc04 100755 --- a/Shorewall-lite/uninstall.sh +++ b/Shorewall-lite/uninstall.sh @@ -28,6 +28,7 @@ VERSION=xxx #The Build script inserts the actual version PRODUCT=shorewall-lite +Product="Shorewall Lite" usage() # $1 = exit status { @@ -205,14 +206,16 @@ fi rm -f ${SBINDIR}/shorewall-lite rm -rf ${CONFDIR}/shorewall-lite -rm -rf ${VARDIR}/shorewall-lite +rm -rf ${VARDIR} rm -rf ${SHAREDIR}/shorewall-lite rm -rf ${LIBEXECDIR}/shorewall-lite rm -f ${CONFDIR}/logrotate.d/shorewall-lite rm -f ${SYSCONFDIR}/shorewall-lite -rm -f ${MANDIR}/man5/shorewall-lite* -rm -f ${MANDIR}/man8/shorewall-lite* +if [ -n "${MANDIR}" ]; then + rm -f ${MANDIR}/man5/shorewall-lite* + rm -f ${MANDIR}/man8/shorewall-lite* +fi echo "Shorewall Lite Uninstalled" diff --git a/Shorewall/uninstall.sh b/Shorewall/uninstall.sh index bcade9df5..e231a8ba5 100755 --- a/Shorewall/uninstall.sh +++ b/Shorewall/uninstall.sh @@ -80,6 +80,11 @@ remove_file() # $1 = file to restore fi } +# +# Change to the directory containing this script +# +cd "$(dirname $0)" + finished=0 configure=1 diff --git a/Shorewall6-lite/init.openwrt.sh b/Shorewall6-lite/init.openwrt.sh index 29c4b1749..c8c2fde79 100755 --- a/Shorewall6-lite/init.openwrt.sh +++ b/Shorewall6-lite/init.openwrt.sh @@ -41,29 +41,26 @@ # openwrt stuph # start and stop runlevel variable -#START=21 -#STOP=91 +START=50 +STOP=89 # variable to display what the status command do when /etc/init.d/shorewall6-lite is invoke without argument EXTRA_COMMANDS="status" -EXTRA_HELP="Displays shorewall status" +EXTRA_HELP="status displays shorewall status" ################################################################################ # Get startup options (override default) ################################################################################ -OPTIONS="-vvv" +OPTIONS= # # The installer may alter this # . /usr/share/shorewall/shorewallrc -if [ -f ${SYSCONFDIR}/shorewall6-lite ]; then - . ${SYSCONFDIR}/shorewall6-lite +if [ -f ${SYSCONFDIR}/$PRODUCT ]; then + . ${SYSCONFDIR}/$PRODUCT fi -START=${START:-21} -STOP=${STOP:-91} - SHOREWALL_INIT_SCRIPT=1 ################################################################################ @@ -73,7 +70,7 @@ SHOREWALL_INIT_SCRIPT=1 command="$action" start() { - exec ${SBINDIR}/shorewall6-lite $OPTIONS $command ${STARTOPTIONS:-$@} + exec ${SBINDIR}/shorewall6-lite $OPTIONS $command $STARTOPTIONS } boot() { @@ -82,17 +79,17 @@ start } restart() { - exec ${SBINDIR}/shorewall6-lite $OPTIONS $command ${RESTARTOPTIONS:-$@} + exec ${SBINDIR}/shorewall6-lite $OPTIONS $command $RESTARTOPTIONS } reload() { - exec ${SBINDIR}/shorewall6-lite $OPTIONS $command ${RELOADOPTION:-$@} + exec ${SBINDIR}/shorewall6-lite $OPTIONS $command $RELOADOPTION } stop() { - exec ${SBINDIR}/shorewall6-lite $OPTIONS $command ${STOPOPTIONS:-$@} + exec ${SBINDIR}/shorewall6-lite $OPTIONS $command $STOPOPTIONS } status() { - exec ${SBINDIR}/shorewall6-lite $OPTIONS $command ${STATUSOPTIONS:-$@} + exec ${SBINDIR}/shorewall6-lite $OPTIONS $command $STATUSOPTIONS } diff --git a/Shorewall6-lite/uninstall.sh b/Shorewall6-lite/uninstall.sh index 309ca4ccd..10cf91e0c 100755 --- a/Shorewall6-lite/uninstall.sh +++ b/Shorewall6-lite/uninstall.sh @@ -28,6 +28,7 @@ VERSION=xxx #The Build script inserts the actual version PRODUCT=shorewall6-lite +Product="Shorewall6 Lite" usage() # $1 = exit status { @@ -76,6 +77,11 @@ remove_file() # $1 = file to restore fi } +# +# Change to the directory containing this script +# +cd "$(dirname $0)" + finished=0 configure=1 @@ -202,13 +208,15 @@ fi rm -f ${SBINDIR}/shorewall6-lite rm -rf ${CONFDIR}/shorewall6-lite -rm -rf ${VARDIR}/shorewall6-lite +rm -rf ${VARDIR} rm -rf ${SHAREDIR}/shorewall6-lite rm -rf ${LIBEXECDIR}/shorewall6-lite rm -f ${CONFDIR}/logrotate.d/shorewall6-lite rm -f ${SYSCONFDIR}/shorewall6-lite -rm -f ${MANDIR}/man5/shorewall6-lite* -rm -f ${MANDIR}/man8/shorewall6-lite* +if [ -n "${MANDIR}" ]; then + rm -f ${MANDIR}/man5/shorewall6-lite* + rm -f ${MANDIR}/man8/shorewall6-lite* +fi echo "Shorewall6 Lite Uninstalled" diff --git a/Shorewall6/uninstall.sh b/Shorewall6/uninstall.sh index 4e8d37bd0..7bbfe8f96 100755 --- a/Shorewall6/uninstall.sh +++ b/Shorewall6/uninstall.sh @@ -28,6 +28,7 @@ VERSION=xxx #The Build script inserts the actual version PRODUCT=shorewall6 +Product=Shorewall6 usage() # $1 = exit status { @@ -76,6 +77,11 @@ remove_file() # $1 = file to restore fi } +# +# Change to the directory containing this script +# +cd "$(dirname $0)" + finished=0 configure=1 @@ -200,7 +206,7 @@ fi rm -f ${SBINDIR}/shorewall6 rm -rf ${CONFDIR}/shorewall6 -rm -rf ${VARDIR}/shorewall6 +rm -rf ${VARDIR} rm -rf ${LIBEXECDIR}/shorewall6 rm -rf ${SHAREDIR}/shorewall6