summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-firewall/shorewall/files')
-rw-r--r--net-firewall/shorewall/files/4.5.21.10-r1/shorewall-10-fix-ipset-support-detection.patch29
-rw-r--r--net-firewall/shorewall/files/4.5.21.10-r1/shorewall.confd15
-rw-r--r--net-firewall/shorewall/files/4.5.21.10-r1/shorewall.initd107
-rw-r--r--net-firewall/shorewall/files/4.5.21.10-r1/shorewall.systemd17
-rw-r--r--net-firewall/shorewall/files/4.5.21.10-r1/shorewallrc23
-rw-r--r--net-firewall/shorewall/files/4.5.21.9/shorewall.confd15
-rw-r--r--net-firewall/shorewall/files/4.5.21.9/shorewall.initd107
-rw-r--r--net-firewall/shorewall/files/4.5.21.9/shorewall.systemd17
-rw-r--r--net-firewall/shorewall/files/4.5.21.9/shorewallrc23
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall-init-01_remove-ipset-functionality-r1.patch28
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall-init-01_remove-ipset-functionality.patch27
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall-init.confd6
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall-init.initd192
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall-init.readme30
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall-init.systemd19
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall-init.systemd-r119
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall-lite.confd15
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall-lite.initd74
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall-lite.systemd19
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall-lite.systemd-r120
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall.confd15
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall.initd99
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall.systemd19
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall.systemd-r120
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall6-lite.confd15
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall6-lite.initd84
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall6-lite.systemd19
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall6-lite.systemd-r120
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall6.confd15
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall6.initd109
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall6.systemd19
-rw-r--r--net-firewall/shorewall/files/4.6/shorewall6.systemd-r120
-rw-r--r--net-firewall/shorewall/files/4.6/shorewallrc23
33 files changed, 1279 insertions, 0 deletions
diff --git a/net-firewall/shorewall/files/4.5.21.10-r1/shorewall-10-fix-ipset-support-detection.patch b/net-firewall/shorewall/files/4.5.21.10-r1/shorewall-10-fix-ipset-support-detection.patch
new file mode 100644
index 000000000000..55b8f7039747
--- /dev/null
+++ b/net-firewall/shorewall/files/4.5.21.10-r1/shorewall-10-fix-ipset-support-detection.patch
@@ -0,0 +1,29 @@
+Beginning with 3.14, the address family of the ipset was checked and an
+error is generated:
+
+root@jessie:~# ipset -N foo iphash
+root@jessie:~# ip6tables -N foo
+root@jessie:~# ip6tables -A foo -m set --match-set foo src
+ip6tables v1.4.21: The protocol family of set foo is IPv4, which is not
+applicable.
+
+Try `ip6tables -h' or 'ip6tables --help' for more information.
+root@jessie:~#
+
+This caused the failure. By reversing the order of the terms, an ipv6
+ipset is created (if supported) and the ip6tables command succeeds.
+
+http://thread.gmane.org/gmane.comp.security.shorewall/31349
+
+diff -rupN old/shorewall-4.5.21.10/Perl/Shorewall/Config.pm new/shorewall-4.5.21.10/Perl/Shorewall/Config.pm
+--- old/shorewall-4.5.21.10/Perl/Shorewall/Config.pm 2014-05-26 16:47:21.000000000 +0200
++++ new/shorewall-4.5.21.10/Perl/Shorewall/Config.pm 2014-07-20 18:11:28.186658453 +0200
+@@ -3961,7 +3961,7 @@ sub IPSet_Match() {
+ if ( $ipset && -x $ipset ) {
+ qt( "$ipset -X $sillyname" );
+
+- if ( qt( "$ipset -N $sillyname iphash" ) || qt( "$ipset -N $sillyname hash:ip family $fam") ) {
++ if ( qt( "$ipset -N $sillyname hash:ip family $fam" ) || qt( "$ipset -N $sillyname iphash" ) ) {
+ if ( qt1( "$iptables $iptablesw -A $sillyname -m set --match-set $sillyname src -j ACCEPT" ) ) {
+ qt1( "$iptables $iptablesw -F $sillyname" );
+ $result = ! ( $capabilities{OLD_IPSET_MATCH} = 0 );
diff --git a/net-firewall/shorewall/files/4.5.21.10-r1/shorewall.confd b/net-firewall/shorewall/files/4.5.21.10-r1/shorewall.confd
new file mode 100644
index 000000000000..e5957167b5b9
--- /dev/null
+++ b/net-firewall/shorewall/files/4.5.21.10-r1/shorewall.confd
@@ -0,0 +1,15 @@
+# Global start/restart/stop options
+#
+OPTIONS=""
+
+# Start options
+#
+STARTOPTIONS=""
+
+# Stop options
+#
+STOPOPTIONS=""
+
+# Restart options
+#
+RESTARTOPTIONS=""
diff --git a/net-firewall/shorewall/files/4.5.21.10-r1/shorewall.initd b/net-firewall/shorewall/files/4.5.21.10-r1/shorewall.initd
new file mode 100644
index 000000000000..898dc319b0c2
--- /dev/null
+++ b/net-firewall/shorewall/files/4.5.21.10-r1/shorewall.initd
@@ -0,0 +1,107 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description='The Shoreline Firewall, more commonly known as "Shorewall", is'
+description="${description} a high-level tool for configuring Netfilter."
+
+extra_commands="check clear"
+extra_started_commands="refresh reset"
+
+description_check="Checks if the configuration will compile or not."
+
+description_clear="Clear will remove all rules and chains installed by"
+description_clear="${description_clear} Shorewall. The firewall is then"
+description_clear="${description_clear} wide open and unprotected."
+
+description_refresh="The mangle table will be refreshed along with the"
+description_refresh="${description_refresh} blacklist chain (if any)."
+
+description_reset="All the packet and byte counters in the firewall are reset."
+
+depend() {
+ need net
+ provide firewall
+ after ulogd
+}
+
+status() {
+ local _retval
+ /sbin/shorewall status 1>/dev/null
+ _retval=$?
+ if [ ${_retval} = '0' ]; then
+ einfo 'status: started'
+ mark_service_started "${SVCNAME}"
+ return 0
+ else
+ einfo 'status: stopped'
+ mark_service_stopped "${SVCNAME}"
+ return 3
+ fi
+}
+
+start() {
+ ebegin "Starting shorewall"
+ /sbin/shorewall ${OPTIONS} start ${STARTOPTIONS} 1>/dev/null
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping shorewall"
+ /sbin/shorewall ${OPTIONS} stop ${STOPOPTIONS} 1>/dev/null
+ eend $?
+}
+
+restart() {
+ # shorewall comes with its own control script that includes a
+ # restart function, so refrain from calling svc_stop/svc_start
+ # here. Note that this comment is required to fix bug 55576;
+ # runscript.sh greps this script... (09 Jul 2004 agriffis)
+
+ ebegin "Restarting shorewall"
+ /sbin/shorewall status 1>/dev/null
+ if [ $? != 0 ] ; then
+ svc_start
+ else
+ /sbin/shorewall ${OPTIONS} restart ${RESTARTOPTIONS} 1>/dev/null
+ fi
+ eend $?
+}
+
+clear() {
+ # clear will remove all the rules and bring the system to an unfirewalled
+ # state. (21 Nov 2004 eldad)
+
+ ebegin "Clearing all shorewall rules and setting policy to ACCEPT"
+ /sbin/shorewall ${OPTIONS} clear 1>/dev/null
+ eend $?
+}
+
+reset() {
+ # reset the packet and byte counters in the firewall
+
+ ebegin "Resetting the packet and byte counters in shorewall"
+ /sbin/shorewall ${OPTIONS} reset 1>/dev/null
+ eend $?
+}
+
+refresh() {
+ # refresh the rules involving the broadcast addresses of firewall
+ # interfaces, the black list, traffic control rules and
+ # ECN control rules
+
+ ebegin "Refreshing shorewall rules"
+ /sbin/shorewall ${OPTIONS} refresh 1>/dev/null
+ eend $?
+}
+
+check() {
+ # perform cursory validation of the zones, interfaces, hosts, rules
+ # and policy files. CAUTION: does not parse and validate the generated
+ # iptables commands.
+
+ ebegin "Checking shorewall configuration"
+ /sbin/shorewall ${OPTIONS} check 1>/dev/null
+ eend $?
+}
diff --git a/net-firewall/shorewall/files/4.5.21.10-r1/shorewall.systemd b/net-firewall/shorewall/files/4.5.21.10-r1/shorewall.systemd
new file mode 100644
index 000000000000..db278fd54585
--- /dev/null
+++ b/net-firewall/shorewall/files/4.5.21.10-r1/shorewall.systemd
@@ -0,0 +1,17 @@
+#
+# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V4.5
+#
+[Unit]
+Description=Shorewall IPv4 firewall
+Documentation=man:shorewall(8) http://www.shorewall.net/Documentation_Index.html
+After=network.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile=/etc/conf.d/shorewall
+ExecStart=/sbin/shorewall $OPTIONS start $STARTOPTIONS
+ExecStop=/sbin/shorewall $OPTIONS stop $STOPOPTIONS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-firewall/shorewall/files/4.5.21.10-r1/shorewallrc b/net-firewall/shorewall/files/4.5.21.10-r1/shorewallrc
new file mode 100644
index 000000000000..46f5eb9a3603
--- /dev/null
+++ b/net-firewall/shorewall/files/4.5.21.10-r1/shorewallrc
@@ -0,0 +1,23 @@
+#
+# Gentoo Shorewall 4.5 rc file
+#
+BUILD= #Default is to detect the build system
+HOST=gentoo #Gentoo GNU Linux
+PREFIX=@GENTOO_PORTAGE_EPREFIX@/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=@GENTOO_PORTAGE_EPREFIX@/etc #Directory where subsystem configurations are installed
+SBINDIR=@GENTOO_PORTAGE_EPREFIX@/sbin #Directory where system administration programs are installed
+MANDIR=${PREFIX}/share/man #Directory where manpages are installed.
+INITDIR=${CONFDIR}/init.d #Directory where SysV init scripts are installed.
+INITFILE=${PRODUCT} #Name of the product's installed SysV init script
+INITSOURCE=init.gentoo.sh #Name of the distributed file to be installed as the SysV init script
+ANNOTATED= #If non-zero, annotated configuration files are installed
+SYSTEMD=@GENTOO_PORTAGE_EPREFIX@/usr/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
+SERVICEFILE=gentoo.service #Name of the distributed file to be installed as systemd service file
+SYSCONFFILE=default.gentoo #Name of the distributed file to be installed in $SYSCONFDIR
+SYSCONFDIR=${CONFDIR}/conf.d #Directory where SysV init parameter files are installed
+SPARSE= #If non-empty, only install $PRODUCT/$PRODUCT.conf in $CONFDIR
+VARLIB=@GENTOO_PORTAGE_EPREFIX@/var/lib #Directory where product variable data is stored.
+VARDIR=${VARLIB}/${PRODUCT} #Directory where product variable data is stored.
diff --git a/net-firewall/shorewall/files/4.5.21.9/shorewall.confd b/net-firewall/shorewall/files/4.5.21.9/shorewall.confd
new file mode 100644
index 000000000000..e5957167b5b9
--- /dev/null
+++ b/net-firewall/shorewall/files/4.5.21.9/shorewall.confd
@@ -0,0 +1,15 @@
+# Global start/restart/stop options
+#
+OPTIONS=""
+
+# Start options
+#
+STARTOPTIONS=""
+
+# Stop options
+#
+STOPOPTIONS=""
+
+# Restart options
+#
+RESTARTOPTIONS=""
diff --git a/net-firewall/shorewall/files/4.5.21.9/shorewall.initd b/net-firewall/shorewall/files/4.5.21.9/shorewall.initd
new file mode 100644
index 000000000000..898dc319b0c2
--- /dev/null
+++ b/net-firewall/shorewall/files/4.5.21.9/shorewall.initd
@@ -0,0 +1,107 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description='The Shoreline Firewall, more commonly known as "Shorewall", is'
+description="${description} a high-level tool for configuring Netfilter."
+
+extra_commands="check clear"
+extra_started_commands="refresh reset"
+
+description_check="Checks if the configuration will compile or not."
+
+description_clear="Clear will remove all rules and chains installed by"
+description_clear="${description_clear} Shorewall. The firewall is then"
+description_clear="${description_clear} wide open and unprotected."
+
+description_refresh="The mangle table will be refreshed along with the"
+description_refresh="${description_refresh} blacklist chain (if any)."
+
+description_reset="All the packet and byte counters in the firewall are reset."
+
+depend() {
+ need net
+ provide firewall
+ after ulogd
+}
+
+status() {
+ local _retval
+ /sbin/shorewall status 1>/dev/null
+ _retval=$?
+ if [ ${_retval} = '0' ]; then
+ einfo 'status: started'
+ mark_service_started "${SVCNAME}"
+ return 0
+ else
+ einfo 'status: stopped'
+ mark_service_stopped "${SVCNAME}"
+ return 3
+ fi
+}
+
+start() {
+ ebegin "Starting shorewall"
+ /sbin/shorewall ${OPTIONS} start ${STARTOPTIONS} 1>/dev/null
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping shorewall"
+ /sbin/shorewall ${OPTIONS} stop ${STOPOPTIONS} 1>/dev/null
+ eend $?
+}
+
+restart() {
+ # shorewall comes with its own control script that includes a
+ # restart function, so refrain from calling svc_stop/svc_start
+ # here. Note that this comment is required to fix bug 55576;
+ # runscript.sh greps this script... (09 Jul 2004 agriffis)
+
+ ebegin "Restarting shorewall"
+ /sbin/shorewall status 1>/dev/null
+ if [ $? != 0 ] ; then
+ svc_start
+ else
+ /sbin/shorewall ${OPTIONS} restart ${RESTARTOPTIONS} 1>/dev/null
+ fi
+ eend $?
+}
+
+clear() {
+ # clear will remove all the rules and bring the system to an unfirewalled
+ # state. (21 Nov 2004 eldad)
+
+ ebegin "Clearing all shorewall rules and setting policy to ACCEPT"
+ /sbin/shorewall ${OPTIONS} clear 1>/dev/null
+ eend $?
+}
+
+reset() {
+ # reset the packet and byte counters in the firewall
+
+ ebegin "Resetting the packet and byte counters in shorewall"
+ /sbin/shorewall ${OPTIONS} reset 1>/dev/null
+ eend $?
+}
+
+refresh() {
+ # refresh the rules involving the broadcast addresses of firewall
+ # interfaces, the black list, traffic control rules and
+ # ECN control rules
+
+ ebegin "Refreshing shorewall rules"
+ /sbin/shorewall ${OPTIONS} refresh 1>/dev/null
+ eend $?
+}
+
+check() {
+ # perform cursory validation of the zones, interfaces, hosts, rules
+ # and policy files. CAUTION: does not parse and validate the generated
+ # iptables commands.
+
+ ebegin "Checking shorewall configuration"
+ /sbin/shorewall ${OPTIONS} check 1>/dev/null
+ eend $?
+}
diff --git a/net-firewall/shorewall/files/4.5.21.9/shorewall.systemd b/net-firewall/shorewall/files/4.5.21.9/shorewall.systemd
new file mode 100644
index 000000000000..db278fd54585
--- /dev/null
+++ b/net-firewall/shorewall/files/4.5.21.9/shorewall.systemd
@@ -0,0 +1,17 @@
+#
+# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V4.5
+#
+[Unit]
+Description=Shorewall IPv4 firewall
+Documentation=man:shorewall(8) http://www.shorewall.net/Documentation_Index.html
+After=network.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile=/etc/conf.d/shorewall
+ExecStart=/sbin/shorewall $OPTIONS start $STARTOPTIONS
+ExecStop=/sbin/shorewall $OPTIONS stop $STOPOPTIONS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-firewall/shorewall/files/4.5.21.9/shorewallrc b/net-firewall/shorewall/files/4.5.21.9/shorewallrc
new file mode 100644
index 000000000000..46f5eb9a3603
--- /dev/null
+++ b/net-firewall/shorewall/files/4.5.21.9/shorewallrc
@@ -0,0 +1,23 @@
+#
+# Gentoo Shorewall 4.5 rc file
+#
+BUILD= #Default is to detect the build system
+HOST=gentoo #Gentoo GNU Linux
+PREFIX=@GENTOO_PORTAGE_EPREFIX@/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=@GENTOO_PORTAGE_EPREFIX@/etc #Directory where subsystem configurations are installed
+SBINDIR=@GENTOO_PORTAGE_EPREFIX@/sbin #Directory where system administration programs are installed
+MANDIR=${PREFIX}/share/man #Directory where manpages are installed.
+INITDIR=${CONFDIR}/init.d #Directory where SysV init scripts are installed.
+INITFILE=${PRODUCT} #Name of the product's installed SysV init script
+INITSOURCE=init.gentoo.sh #Name of the distributed file to be installed as the SysV init script
+ANNOTATED= #If non-zero, annotated configuration files are installed
+SYSTEMD=@GENTOO_PORTAGE_EPREFIX@/usr/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
+SERVICEFILE=gentoo.service #Name of the distributed file to be installed as systemd service file
+SYSCONFFILE=default.gentoo #Name of the distributed file to be installed in $SYSCONFDIR
+SYSCONFDIR=${CONFDIR}/conf.d #Directory where SysV init parameter files are installed
+SPARSE= #If non-empty, only install $PRODUCT/$PRODUCT.conf in $CONFDIR
+VARLIB=@GENTOO_PORTAGE_EPREFIX@/var/lib #Directory where product variable data is stored.
+VARDIR=${VARLIB}/${PRODUCT} #Directory where product variable data is stored.
diff --git a/net-firewall/shorewall/files/4.6/shorewall-init-01_remove-ipset-functionality-r1.patch b/net-firewall/shorewall/files/4.6/shorewall-init-01_remove-ipset-functionality-r1.patch
new file mode 100644
index 000000000000..8b60eb245fc0
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall-init-01_remove-ipset-functionality-r1.patch
@@ -0,0 +1,28 @@
+diff -rupN old/shorewall-init-4.6.10.1/shorewall-init new/shorewall-init-4.6.10.1/shorewall-init
+--- old/shorewall-init-4.6.10.1/shorewall-init 2015-06-09 20:02:00.000000000 +0200
++++ new/shorewall-init-4.6.10.1/shorewall-init 2015-06-14 17:16:17.396424059 +0200
+@@ -78,10 +78,6 @@ shorewall_start () {
+ fi
+ done
+
+- if [ -n "$SAVE_IPSETS" -a -f "$SAVE_IPSETS" ]; then
+- ipset -R < "$SAVE_IPSETS"
+- fi
+-
+ return 0
+ }
+
+@@ -99,13 +95,6 @@ shorewall_stop () {
+ 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
+-
+ return 0
+ }
+
diff --git a/net-firewall/shorewall/files/4.6/shorewall-init-01_remove-ipset-functionality.patch b/net-firewall/shorewall/files/4.6/shorewall-init-01_remove-ipset-functionality.patch
new file mode 100644
index 000000000000..620e479f92fc
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall-init-01_remove-ipset-functionality.patch
@@ -0,0 +1,27 @@
+--- shorewall-init.old 2013-09-08 23:25:36.364924304 +0200
++++ shorewall-init 2013-09-08 23:29:27.418736392 +0200
+@@ -79,10 +79,6 @@
+ fi
+ done
+
+- if [ -n "$SAVE_IPSETS" -a -f "$SAVE_IPSETS" ]; then
+- ipset -R < "$SAVE_IPSETS"
+- fi
+-
+ return 0
+ }
+
+@@ -100,13 +96,6 @@
+ 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
+-
+ return 0
+ }
+
diff --git a/net-firewall/shorewall/files/4.6/shorewall-init.confd b/net-firewall/shorewall/files/4.6/shorewall-init.confd
new file mode 100644
index 000000000000..1b126be4e8bf
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall-init.confd
@@ -0,0 +1,6 @@
+# List the Shorewall products Shorewall-init should
+# initialize (space-separated list).
+#
+# Sample: PRODUCTS="shorewall shorewall6-lite"
+#
+PRODUCTS=""
diff --git a/net-firewall/shorewall/files/4.6/shorewall-init.initd b/net-firewall/shorewall/files/4.6/shorewall-init.initd
new file mode 100644
index 000000000000..837d609bb9fd
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall-init.initd
@@ -0,0 +1,192 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+SHOREWALLRC_FILE="@GENTOO_PORTAGE_EPREFIX@/usr/share/shorewall/shorewallrc"
+CONFIG_FILE="@GENTOO_PORTAGE_EPREFIX@/etc/conf.d/${SVCNAME}"
+
+description="Puts Shorewall in a safe state at boot time"
+description="${description} prior to bringing up the network."
+
+required_files="$SHOREWALLRC_FILE"
+
+depend() {
+ need localmount
+ before net
+ after bootmisc ipset tmpfiles.setup ulogd
+}
+
+
+. $SHOREWALLRC_FILE
+
+checkconfig() {
+ local PRODUCT=
+
+ if [ -z "${VARLIB}" ]; then
+ eerror "\"VARLIB\" isn't defined or empty! Please check" \
+ "\"${SHOREWALLRC_FILE}\"."
+
+ return 1
+ fi
+
+ if [ -z "${PRODUCTS}" ]; then
+ eerror "${SVCNAME} isn't configured! Please check" \
+ "\"${CONFIG_FILE}\"."
+
+ return 1
+ fi
+
+ for PRODUCT in ${PRODUCTS}; do
+ if [ ! -x ${SBINDIR}/${PRODUCT} ]; then
+ eerror "Invalid product \"${PRODUCT}\" specified" \
+ "in \"${CONFIG_FILE}\"!"
+ eerror "Maybe \"${PRODUCT}\" isn't installed?"
+
+ return 1
+ fi
+ done
+
+ return 0
+}
+
+check_firewall_script() {
+ if [ ${PRODUCT} = shorewall -o ${PRODUCT} = shorewall6 ]; then
+ ebegin "Checking \"${STATEDIR}/firewall\""
+ ${SBINDIR}/${PRODUCT} compile -c 1>/dev/null
+ eend $?
+ fi
+
+ if [ ! -x ${STATEDIR}/firewall ]; then
+ eerror "\"${PRODUCT}\" isn't configured!"
+
+ if [ ${PRODUCT} = shorewall-lite -o ${PRODUCT} = shorewall6-lite ]; then
+ eerror "Please go to your 'administrative system'" \
+ "and deploy the compiled firewall" \
+ "configuration for this system."
+ fi
+
+ return 1
+ fi
+
+ return 0
+}
+
+is_allowed_to_be_executed() {
+ # This is not a real service. shorewall-init is an intermediate
+ # script to put your Shorewall-based firewall into a safe state
+ # at boot time prior to bringing up the network.
+ # Please read /usr/share/doc/shorewall-init-*/README.gentoo.gz
+ # for more information.
+ # When your system is up, there is no need to call shorewall-init.
+ # Please call shorewall{,6,-lite,6-lite} directly. That's the
+ # reason why we are preventing start, stop or restart here.
+
+ local PRODUCT=
+
+ if [ "${RC_RUNLEVEL}" != "boot" -a "${RC_CMD}" = "start" ]; then
+ # Starting shorewall-init is only allowed at boot time
+ eerror "This is a boot service, which can only be started" \
+ "at boot."
+ eerror "If you want to get your shorewall-based firewall" \
+ "into the same safe boot state again, run"
+ eerror ""
+ eindent
+ for PRODUCT in ${PRODUCTS}; do
+ eerror "/etc/init.d/${PRODUCT} stop"
+ done
+ eoutdent
+ eerror ""
+ eerror "Yes, \"stop\" and not start."
+ eerror ""
+ return 1
+ fi
+
+ if [ "${RC_RUNLEVEL}" != "shutdown" -a "${RC_CMD}" = "stop" ]; then
+ # Stopping shorewall-init is only allowed at shutdown
+ eerror "This is a boot service, which cannot be stopped."
+ eerror "If you really want to stop your Shorewall-based" \
+ "firewall the same way this service would stop" \
+ "Shorewall at shutdown, please run"
+ eerror ""
+ eindent
+ for PRODUCT in ${PRODUCTS}; do
+ eerror "/etc/init.d/${PRODUCT} clear"
+ done
+ eoutdent
+ eerror ""
+ eerror "Keep in mind that this will clear (=bring down)" \
+ "your firewall!"
+ eerror ""
+ return 1
+ fi
+
+ if [ "${RC_CMD}" = "restart" ]; then
+ eerror "This is a boot service, which cannot be restarted."
+ eerror "If you want to restart any of your Shorewall-based" \
+ "firewalls, run"
+ eerror ""
+ eindent
+ for PRODUCT in ${PRODUCTS}; do
+ eerror "/etc/init.d/${PRODUCT} restart"
+ done
+ eoutdent
+ eerror ""
+ return 1
+ fi
+
+ return 0
+}
+
+set_statedir() {
+ STATEDIR=
+ local VARDIR=
+
+ if [ -f ${CONFDIR}/${PRODUCT}/vardir ]; then
+ STATEDIR=$( . ${CONFDIR}/${PRODUCT}/vardir && echo ${VARDIR} )
+ fi
+
+ [ ! -n "${STATEDIR}" ] && STATEDIR=${VARLIB}/${PRODUCT}
+}
+
+start_pre() {
+ checkconfig || return 1
+
+ is_allowed_to_be_executed || return 1
+}
+
+start() {
+ local PRODUCT=
+ local STATEDIR=
+
+ for PRODUCT in ${PRODUCTS}; do
+ set_statedir
+
+ check_firewall_script || return 1
+
+ ebegin "Initializing \"${PRODUCT}\""
+ ${STATEDIR}/firewall stop 1>/dev/null
+ eend $?
+ done
+}
+
+stop_pre() {
+ checkconfig || return 1
+
+ is_allowed_to_be_executed || return 1
+}
+
+stop() {
+ local PRODUCT=
+ local STATEDIR=
+
+ for PRODUCT in ${PRODUCTS}; do
+ set_statedir
+
+ check_firewall_script || return 1
+
+ ebegin "Clearing \"${PRODUCT}\""
+ ${STATEDIR}/firewall clear 1>/dev/null
+ eend $?
+ done
+}
diff --git a/net-firewall/shorewall/files/4.6/shorewall-init.readme b/net-firewall/shorewall/files/4.6/shorewall-init.readme
new file mode 100644
index 000000000000..f7b13fed3de6
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall-init.readme
@@ -0,0 +1,30 @@
+shorewall-init from upstream offers two features (taken from [1]):
+
+ 1. It can 'close' the firewall before the network interfaces are
+ brought up during boot.
+
+ 2. It can change the firewall state as the result of interfaces
+ being brought up or taken down.
+
+On Gentoo we only support the first feature -- the firewall lockdown during
+boot.
+
+We do not support the second feature, because Gentoo doesn't support a
+if-{up,down}.d folder like other distributions do. If you would want to use
+such a feature, you would have to add a custom action to /etc/conf.d/net
+(please refer to the Gentoo Linux Handbook [2] for more information).
+If you are able to add your custom {pre,post}{up,down} action, your are
+also able to specify what shorewall{6,-lite,6-lite} should do, so there is
+no need for upstream's scripts in Gentoo.
+
+If you disagree with us, feel free to open a bug [3] and contribute your
+solution for Gentoo.
+
+Upstream's original init script also supports saving and restoring of
+ipsets. Please use the init script from net-firewall/ipset if you need
+such a feature.
+
+
+[1] http://www.shorewall.net/Shorewall-init.html
+[2] http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=4&chap=5
+[3] https://bugs.gentoo.org
diff --git a/net-firewall/shorewall/files/4.6/shorewall-init.systemd b/net-firewall/shorewall/files/4.6/shorewall-init.systemd
new file mode 100644
index 000000000000..e98565fce8a1
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall-init.systemd
@@ -0,0 +1,19 @@
+#
+# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V4.6
+#
+[Unit]
+Description=shorewall-init
+Documentation=http://www.shorewall.net/Shorewall-init.html
+Before=network-pre.target
+Wants=network-pre.target
+Conflicts=iptables.service firewalld.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+StandardOutput=syslog
+ExecStart=/sbin/shorewall-init start
+ExecStop=/sbin/shorewall-init stop
+
+[Install]
+WantedBy=basic.target
diff --git a/net-firewall/shorewall/files/4.6/shorewall-init.systemd-r1 b/net-firewall/shorewall/files/4.6/shorewall-init.systemd-r1
new file mode 100644
index 000000000000..542e2c26223b
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall-init.systemd-r1
@@ -0,0 +1,19 @@
+#
+# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V4.6
+#
+[Unit]
+Description=shorewall-init
+Documentation=http://www.shorewall.net/Shorewall-init.html
+Before=network-pre.target
+Wants=network-pre.target
+Conflicts=iptables.service ip6tables.service firewalld.service iptables-restore.service ip6tables-restore.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+StandardOutput=syslog
+ExecStart=/sbin/shorewall-init start
+ExecStop=/sbin/shorewall-init stop
+
+[Install]
+WantedBy=basic.target
diff --git a/net-firewall/shorewall/files/4.6/shorewall-lite.confd b/net-firewall/shorewall/files/4.6/shorewall-lite.confd
new file mode 100644
index 000000000000..0e419b87a3c0
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall-lite.confd
@@ -0,0 +1,15 @@
+# Global start/restart/stop options
+#
+OPTIONS="-tvv"
+
+# Start options
+#
+STARTOPTIONS=""
+
+# Stop options
+#
+STOPOPTIONS=""
+
+# Restart options
+#
+RESTARTOPTIONS=""
diff --git a/net-firewall/shorewall/files/4.6/shorewall-lite.initd b/net-firewall/shorewall/files/4.6/shorewall-lite.initd
new file mode 100644
index 000000000000..c3375153c44a
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall-lite.initd
@@ -0,0 +1,74 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description='The Shoreline Firewall Lite, more commonly known as "Shorewall Lite", is'
+description="${description} a high-level tool for configuring Netfilter."
+
+extra_commands="clear"
+extra_started_commands="reset"
+
+description_clear="Clear will remove all rules and chains installed by"
+description_clear="${description_clear} Shorewall Lite. The firewall is"
+description_clear="${description_clear} then wide open and unprotected."
+
+description_reset="All the packet and byte counters in the firewall are reset."
+
+command="/usr/sbin/shorewall-lite"
+
+depend() {
+ need net
+ provide firewall
+ after ulogd
+}
+
+status() {
+ local _retval
+ ${command} status 1>/dev/null
+ _retval=$?
+ if [ ${_retval} = '0' ]; then
+ einfo 'status: started'
+ mark_service_started "${SVCNAME}"
+ return 0
+ else
+ einfo 'status: stopped'
+ mark_service_stopped "${SVCNAME}"
+ return 3
+ fi
+}
+
+start() {
+ ebegin "Starting shorewall-lite"
+ ${command} ${OPTIONS} start ${STARTOPTIONS} 1>/dev/null
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping shorewall-lite"
+ ${command} ${OPTIONS} stop ${STOPOPTIONS} 1>/dev/null
+ eend $?
+}
+
+restart() {
+ ebegin "Restarting shorewall-lite"
+ ${command} status 1>/dev/null
+ if [ $? != 0 ] ; then
+ svc_start
+ else
+ ${command} ${OPTIONS} restart ${RESTARTOPTIONS} 1>/dev/null
+ fi
+ eend $?
+}
+
+clear() {
+ ebegin "Clearing all shorewall-lite rules and setting policy to ACCEPT"
+ ${command} ${OPTIONS} clear 1>/dev/null
+ eend $?
+}
+
+reset() {
+ ebegin "Resetting the packet and byte counters in shorewall-lite"
+ ${command} ${OPTIONS} reset 1>/dev/null
+ eend $?
+}
diff --git a/net-firewall/shorewall/files/4.6/shorewall-lite.systemd b/net-firewall/shorewall/files/4.6/shorewall-lite.systemd
new file mode 100644
index 000000000000..5898ccb86c14
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall-lite.systemd
@@ -0,0 +1,19 @@
+#
+# The Shoreline Firewall Lite (Shorewall-Lite) Packet Filtering Firewall - V4.6
+#
+[Unit]
+Description=Shorewall IPv4 firewall lite
+Documentation=man:shorewall-lite(8) http://www.shorewall.net/Documentation_Index.html
+After=network-online.target
+Conflicts=iptables.service firewalld.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile=/etc/conf.d/shorewall-lite
+StandardOutput=syslog
+ExecStart=/sbin/shorewall-lite $OPTIONS start $STARTOPTIONS
+ExecStop=/sbin/shorewall-lite $OPTIONS stop $STOPOPTIONS
+
+[Install]
+WantedBy=basic.target
diff --git a/net-firewall/shorewall/files/4.6/shorewall-lite.systemd-r1 b/net-firewall/shorewall/files/4.6/shorewall-lite.systemd-r1
new file mode 100644
index 000000000000..b24fca8e33a3
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall-lite.systemd-r1
@@ -0,0 +1,20 @@
+#
+# The Shoreline Firewall Lite (Shorewall-Lite) Packet Filtering Firewall - V4.6
+#
+[Unit]
+Description=Shorewall IPv4 firewall lite
+Documentation=man:shorewall-lite(8) http://www.shorewall.net/Documentation_Index.html
+Wants=network-online.target
+After=network-online.target
+Conflicts=iptables.service firewalld.service iptables-restore.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile=/etc/conf.d/shorewall-lite
+StandardOutput=syslog
+ExecStart=/sbin/shorewall-lite $OPTIONS start $STARTOPTIONS
+ExecStop=/sbin/shorewall-lite $OPTIONS stop $STOPOPTIONS
+
+[Install]
+WantedBy=basic.target
diff --git a/net-firewall/shorewall/files/4.6/shorewall.confd b/net-firewall/shorewall/files/4.6/shorewall.confd
new file mode 100644
index 000000000000..0e419b87a3c0
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall.confd
@@ -0,0 +1,15 @@
+# Global start/restart/stop options
+#
+OPTIONS="-tvv"
+
+# Start options
+#
+STARTOPTIONS=""
+
+# Stop options
+#
+STOPOPTIONS=""
+
+# Restart options
+#
+RESTARTOPTIONS=""
diff --git a/net-firewall/shorewall/files/4.6/shorewall.initd b/net-firewall/shorewall/files/4.6/shorewall.initd
new file mode 100644
index 000000000000..76d7741a1ecd
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall.initd
@@ -0,0 +1,99 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description='The Shoreline Firewall, more commonly known as "Shorewall", is'
+description="${description} a high-level tool for configuring Netfilter."
+
+extra_commands="check clear"
+extra_started_commands="refresh reset"
+
+description_check="Checks if the configuration will compile or not."
+
+description_clear="Clear will remove all rules and chains installed by"
+description_clear="${description_clear} Shorewall. The firewall is then"
+description_clear="${description_clear} wide open and unprotected."
+
+description_refresh="The mangle table will be refreshed along with the"
+description_refresh="${description_refresh} blacklist chain (if any)."
+
+description_reset="All the packet and byte counters in the firewall are reset."
+
+command="/usr/sbin/shorewall"
+
+depend() {
+ need net
+ provide firewall
+ after ulogd
+}
+
+status() {
+ local _retval
+ ${command} status 1>/dev/null
+ _retval=$?
+ if [ ${_retval} = '0' ]; then
+ einfo 'status: started'
+ mark_service_started "${SVCNAME}"
+ return 0
+ else
+ einfo 'status: stopped'
+ mark_service_stopped "${SVCNAME}"
+ return 3
+ fi
+}
+
+start() {
+ ebegin "Starting shorewall"
+ ${command} ${OPTIONS} start ${STARTOPTIONS} 1>/dev/null
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping shorewall"
+ ${command} ${OPTIONS} stop ${STOPOPTIONS} 1>/dev/null
+ eend $?
+}
+
+restart() {
+ ebegin "Restarting shorewall"
+ ${command} status 1>/dev/null
+ if [ $? != 0 ] ; then
+ svc_start
+ else
+ ${command} ${OPTIONS} restart ${RESTARTOPTIONS} 1>/dev/null
+ fi
+ eend $?
+}
+
+clear() {
+ ebegin "Clearing all shorewall rules and setting policy to ACCEPT"
+ ${command} ${OPTIONS} clear 1>/dev/null
+ eend $?
+}
+
+reset() {
+ ebegin "Resetting the packet and byte counters in shorewall"
+ ${command} ${OPTIONS} reset 1>/dev/null
+ eend $?
+}
+
+refresh() {
+ # refresh the rules involving the broadcast addresses of firewall
+ # interfaces, the black list, traffic control rules and
+ # ECN control rules
+
+ ebegin "Refreshing shorewall rules"
+ ${command} ${OPTIONS} refresh 1>/dev/null
+ eend $?
+}
+
+check() {
+ # perform cursory validation of the zones, interfaces, hosts, rules
+ # and policy files. CAUTION: does not parse and validate the generated
+ # iptables commands.
+
+ ebegin "Checking shorewall configuration"
+ ${command} ${OPTIONS} check 1>/dev/null
+ eend $?
+}
diff --git a/net-firewall/shorewall/files/4.6/shorewall.systemd b/net-firewall/shorewall/files/4.6/shorewall.systemd
new file mode 100644
index 000000000000..986c3510454a
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall.systemd
@@ -0,0 +1,19 @@
+#
+# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V4.6
+#
+[Unit]
+Description=Shorewall IPv4 firewall
+Documentation=man:shorewall(8) http://www.shorewall.net/Documentation_Index.html
+After=network-online.target
+Conflicts=iptables.service firewalld.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile=/etc/conf.d/shorewall
+StandardOutput=syslog
+ExecStart=/sbin/shorewall $OPTIONS start $STARTOPTIONS
+ExecStop=/sbin/shorewall $OPTIONS stop $STOPOPTIONS
+
+[Install]
+WantedBy=basic.target
diff --git a/net-firewall/shorewall/files/4.6/shorewall.systemd-r1 b/net-firewall/shorewall/files/4.6/shorewall.systemd-r1
new file mode 100644
index 000000000000..209d3f78ee33
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall.systemd-r1
@@ -0,0 +1,20 @@
+#
+# The Shoreline Firewall (Shorewall) Packet Filtering Firewall - V4.6
+#
+[Unit]
+Description=Shorewall IPv4 firewall
+Documentation=man:shorewall(8) http://www.shorewall.net/Documentation_Index.html
+Wants=network-online.target
+After=network-online.target
+Conflicts=iptables.service firewalld.service iptables-restore.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile=/etc/conf.d/shorewall
+StandardOutput=syslog
+ExecStart=/sbin/shorewall $OPTIONS start $STARTOPTIONS
+ExecStop=/sbin/shorewall $OPTIONS stop $STOPOPTIONS
+
+[Install]
+WantedBy=basic.target
diff --git a/net-firewall/shorewall/files/4.6/shorewall6-lite.confd b/net-firewall/shorewall/files/4.6/shorewall6-lite.confd
new file mode 100644
index 000000000000..0e419b87a3c0
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall6-lite.confd
@@ -0,0 +1,15 @@
+# Global start/restart/stop options
+#
+OPTIONS="-tvv"
+
+# Start options
+#
+STARTOPTIONS=""
+
+# Stop options
+#
+STOPOPTIONS=""
+
+# Restart options
+#
+RESTARTOPTIONS=""
diff --git a/net-firewall/shorewall/files/4.6/shorewall6-lite.initd b/net-firewall/shorewall/files/4.6/shorewall6-lite.initd
new file mode 100644
index 000000000000..527eb5b47a26
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall6-lite.initd
@@ -0,0 +1,84 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description='The Shoreline Firewall 6 Lite, more commonly known as "Shorewall6 Lite", is'
+description="${description} a high-level tool for configuring Netfilter."
+
+extra_commands="clear"
+extra_started_commands="reset"
+
+description_clear="Clear will remove all rules and chains installed by"
+description_clear="${description_clear} Shorewall6 Lite. The firewall is"
+description_clear="${description_clear} then wide open and unprotected."
+
+description_reset="All the packet and byte counters in the firewall are reset."
+
+command="/usr/sbin/shorewall6-lite"
+
+depend() {
+ need net
+ provide firewall
+ after ulogd
+}
+
+status() {
+ local _retval
+ ${command} status 1>/dev/null
+ _retval=$?
+ if [ ${_retval} = '0' ]; then
+ einfo 'status: started'
+ mark_service_started "${SVCNAME}"
+ return 0
+ else
+ einfo 'status: stopped'
+ mark_service_stopped "${SVCNAME}"
+ return 3
+ fi
+}
+
+start() {
+ ebegin "Starting shorewall6-lite"
+ ${command} ${OPTIONS} start ${STARTOPTIONS} 1>/dev/null
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping shorewall6-lite"
+ ${command} ${OPTIONS} stop ${STOPOPTIONS} 1>/dev/null
+ eend $?
+}
+
+restart() {
+ # shorewall comes with its own control script that includes a
+ # restart function, so refrain from calling svc_stop/svc_start
+ # here. Note that this comment is required to fix bug 55576;
+ # runscript.sh greps this script... (09 Jul 2004 agriffis)
+
+ ebegin "Restarting shorewall6-lite"
+ ${command} status 1>/dev/null
+ if [ $? != 0 ] ; then
+ svc_start
+ else
+ ${command} ${OPTIONS} restart ${RESTARTOPTIONS} 1>/dev/null
+ fi
+ eend $?
+}
+
+clear() {
+ # clear will remove all the rules and bring the system to an unfirewalled
+ # state. (21 Nov 2004 eldad)
+
+ ebegin "Clearing all shorewall6-lite rules and setting policy to ACCEPT"
+ ${command} ${OPTIONS} clear 1>/dev/null
+ eend $?
+}
+
+reset() {
+ # reset the packet and byte counters in the firewall
+
+ ebegin "Resetting the packet and byte counters in shorewall6-lite"
+ ${command} ${OPTIONS} reset 1>/dev/null
+ eend $?
+}
diff --git a/net-firewall/shorewall/files/4.6/shorewall6-lite.systemd b/net-firewall/shorewall/files/4.6/shorewall6-lite.systemd
new file mode 100644
index 000000000000..768a84f2ded1
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall6-lite.systemd
@@ -0,0 +1,19 @@
+#
+# The Shoreline Firewall 6 Lite (Shorewall6-Lite) Packet Filtering Firewall - V4.6
+#
+[Unit]
+Description=Shorewall IPv6 firewall lite
+Documentation=man:shorewall6-lite(8) http://www.shorewall.net/Documentation_Index.html
+After=network-online.target
+Conflicts=ip6tables.service firewalld.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile=/etc/conf.d/shorewall6-lite
+StandardOutput=syslog
+ExecStart=/sbin/shorewall6-lite $OPTIONS start $STARTOPTIONS
+ExecStop=/sbin/shorewall6-lite $OPTIONS stop $STOPOPTIONS
+
+[Install]
+WantedBy=basic.target
diff --git a/net-firewall/shorewall/files/4.6/shorewall6-lite.systemd-r1 b/net-firewall/shorewall/files/4.6/shorewall6-lite.systemd-r1
new file mode 100644
index 000000000000..eda311d1b9c4
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall6-lite.systemd-r1
@@ -0,0 +1,20 @@
+#
+# The Shoreline Firewall 6 Lite (Shorewall6-Lite) Packet Filtering Firewall - V4.6
+#
+[Unit]
+Description=Shorewall IPv6 firewall lite
+Documentation=man:shorewall6-lite(8) http://www.shorewall.net/Documentation_Index.html
+Wants=network-online.target
+After=network-online.target
+Conflicts=ip6tables.service firewalld.service ip6tables-restore.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile=/etc/conf.d/shorewall6-lite
+StandardOutput=syslog
+ExecStart=/sbin/shorewall6-lite $OPTIONS start $STARTOPTIONS
+ExecStop=/sbin/shorewall6-lite $OPTIONS stop $STOPOPTIONS
+
+[Install]
+WantedBy=basic.target
diff --git a/net-firewall/shorewall/files/4.6/shorewall6.confd b/net-firewall/shorewall/files/4.6/shorewall6.confd
new file mode 100644
index 000000000000..210eec1b5730
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall6.confd
@@ -0,0 +1,15 @@
+# Global start/restart/stop options
+#
+OPTIONS="-tvv"
+
+# Start options
+#
+STARTOPTIONS=""
+
+# Stop options
+#
+STOPOPTIONS=""
+
+# Restart options
+#
+RESTARTOPTIONS=""
diff --git a/net-firewall/shorewall/files/4.6/shorewall6.initd b/net-firewall/shorewall/files/4.6/shorewall6.initd
new file mode 100644
index 000000000000..8ed1079db1ed
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall6.initd
@@ -0,0 +1,109 @@
+#!/sbin/runscript
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+description='The Shoreline Firewall 6, more commonly known as "Shorewall6", is'
+description="${description} a high-level tool for configuring Netfilter."
+
+extra_commands="check clear"
+extra_started_commands="refresh reset"
+
+description_check="Checks if the configuration will compile or not."
+
+description_clear="Clear will remove all rules and chains installed by"
+description_clear="${description_clear} Shorewall6. The firewall is then"
+description_clear="${description_clear} wide open and unprotected."
+
+description_refresh="The mangle table will be refreshed along with the"
+description_refresh="${description_refresh} blacklist chain (if any)."
+
+description_reset="All the packet and byte counters in the firewall are reset."
+
+command="/usr/sbin/shorewall6"
+
+depend() {
+ need net
+ provide firewall
+ after ulogd
+}
+
+status() {
+ local _retval
+ ${command} status 1>/dev/null
+ _retval=$?
+ if [ ${_retval} = '0' ]; then
+ einfo 'status: started'
+ mark_service_started "${SVCNAME}"
+ return 0
+ else
+ einfo 'status: stopped'
+ mark_service_stopped "${SVCNAME}"
+ return 3
+ fi
+}
+
+start() {
+ ebegin "Starting shorewall6"
+ ${command} ${OPTIONS} start ${STARTOPTIONS} 1>/dev/null
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping shorewall6"
+ ${command} ${OPTIONS} stop ${STOPOPTIONS} 1>/dev/null
+ eend $?
+}
+
+restart() {
+ # shorewall comes with its own control script that includes a
+ # restart function, so refrain from calling svc_stop/svc_start
+ # here. Note that this comment is required to fix bug 55576;
+ # runscript.sh greps this script... (09 Jul 2004 agriffis)
+
+ ebegin "Restarting shorewall6"
+ ${command} status 1>/dev/null
+ if [ $? != 0 ] ; then
+ svc_start
+ else
+ ${command} ${OPTIONS} restart ${RESTARTOPTIONS} 1>/dev/null
+ fi
+ eend $?
+}
+
+clear() {
+ # clear will remove all the rules and bring the system to an unfirewalled
+ # state. (21 Nov 2004 eldad)
+
+ ebegin "Clearing all shorewall rules and setting policy to ACCEPT"
+ ${command} ${OPTIONS} clear 1>/dev/null
+ eend $?
+}
+
+reset() {
+ # reset the packet and byte counters in the firewall
+
+ ebegin "Resetting the packet and byte counters in shorewall6"
+ ${command} ${OPTIONS} reset 1>/dev/null
+ eend $?
+}
+
+refresh() {
+ # refresh the rules involving the broadcast addresses of firewall
+ # interfaces, the black list, traffic control rules and
+ # ECN control rules
+
+ ebegin "Refreshing shorewall6 rules"
+ ${command} ${OPTIONS} refresh 1>/dev/null
+ eend $?
+}
+
+check() {
+ # perform cursory validation of the zones, interfaces, hosts, rules
+ # and policy files. CAUTION: does not parse and validate the generated
+ # iptables commands.
+
+ ebegin "Checking shorewall6 configuration"
+ ${command} ${OPTIONS} check 1>/dev/null
+ eend $?
+}
diff --git a/net-firewall/shorewall/files/4.6/shorewall6.systemd b/net-firewall/shorewall/files/4.6/shorewall6.systemd
new file mode 100644
index 000000000000..6ae4ea589ee8
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall6.systemd
@@ -0,0 +1,19 @@
+#
+# The Shoreline Firewall 6 (Shorewall6) Packet Filtering Firewall - V4.6
+#
+[Unit]
+Description=Shorewall IPv6 firewall
+Documentation=man:shorewall6(8) http://www.shorewall.net/Documentation_Index.html
+After=network-online.target
+Conflicts=ip6tables.service firewalld.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile=/etc/conf.d/shorewall6
+StandardOutput=syslog
+ExecStart=/sbin/shorewall6 $OPTIONS start $STARTOPTIONS
+ExecStop=/sbin/shorewall6 $OPTIONS stop $STOPOPTIONS
+
+[Install]
+WantedBy=basic.target
diff --git a/net-firewall/shorewall/files/4.6/shorewall6.systemd-r1 b/net-firewall/shorewall/files/4.6/shorewall6.systemd-r1
new file mode 100644
index 000000000000..64fd43585cf6
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewall6.systemd-r1
@@ -0,0 +1,20 @@
+#
+# The Shoreline Firewall 6 (Shorewall6) Packet Filtering Firewall - V4.6
+#
+[Unit]
+Description=Shorewall IPv6 firewall
+Documentation=man:shorewall6(8) http://www.shorewall.net/Documentation_Index.html
+Wants=network-online.target
+After=network-online.target
+Conflicts=ip6tables.service firewalld.service ip6tables-restore.service
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+EnvironmentFile=/etc/conf.d/shorewall6
+StandardOutput=syslog
+ExecStart=/sbin/shorewall6 $OPTIONS start $STARTOPTIONS
+ExecStop=/sbin/shorewall6 $OPTIONS stop $STOPOPTIONS
+
+[Install]
+WantedBy=basic.target
diff --git a/net-firewall/shorewall/files/4.6/shorewallrc b/net-firewall/shorewall/files/4.6/shorewallrc
new file mode 100644
index 000000000000..0eef4147c008
--- /dev/null
+++ b/net-firewall/shorewall/files/4.6/shorewallrc
@@ -0,0 +1,23 @@
+#
+# Gentoo Shorewall 4.6 rc file
+#
+BUILD=gentoo #Default is to detect the build system
+HOST=gentoo #Gentoo GNU Linux
+PREFIX=@GENTOO_PORTAGE_EPREFIX@/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=@GENTOO_PORTAGE_EPREFIX@/etc #Directory where subsystem configurations are installed
+SBINDIR=${PREFIX}/sbin #Directory where system administration programs are installed
+MANDIR=${PREFIX}/share/man #Directory where manpages are installed.
+INITDIR=${CONFDIR}/init.d #Directory where SysV init scripts are installed.
+INITFILE=${PRODUCT} #Name of the product's installed SysV init script
+INITSOURCE=init.gentoo.sh #Name of the distributed file to be installed as the SysV init script
+ANNOTATED= #If non-zero, annotated configuration files are installed
+SERVICEDIR=@GENTOO_PORTAGE_EPREFIX@/usr/lib/systemd/system #Directory where .service files are installed (systems running systemd only)
+SERVICEFILE=gentoo.service #Name of the distributed file to be installed as systemd service file
+SYSCONFFILE=default.gentoo #Name of the distributed file to be installed in $SYSCONFDIR
+SYSCONFDIR=${CONFDIR}/conf.d #Directory where SysV init parameter files are installed
+SPARSE= #If non-empty, only install $PRODUCT/$PRODUCT.conf in $CONFDIR
+VARLIB=@GENTOO_PORTAGE_EPREFIX@/var/lib #Directory where product variable data is stored.
+VARDIR=${VARLIB}/${PRODUCT} #Directory where product variable data is stored.