16 PATH = lib.concatStringsSep ":"
27 stdenv.mkDerivation rec {
33 url = "http://www.shorewall.net/pub/shorewall/5.2/shorewall-5.2.3/shorewall-core-${version}.tar.bz2";
34 sha256 = "1gg2yfxzm3y9qqjrrg5nq2ggi1c6yfxx0s7fvwjw70b185mwa5p5";
37 url = "http://www.shorewall.net/pub/shorewall/5.2/shorewall-5.2.3/shorewall-${version}.tar.bz2";
38 sha256 = "1ka70pa3s0cnvc83rlm57r05cdv9idnxnq0vmxi6nr7razak5f3b";
41 url = "http://www.shorewall.net/pub/shorewall/5.2/shorewall-5.2.3/shorewall6-${version}.tar.bz2";
42 sha256 = "0mhs4m6agwk082h1n69gnyfsjpycdd8215r4r9rzb3czs5xi087n";
57 ] ++ (with perlPackages; [
61 # Patch configure and install.sh files
64 # Remove hardcoded PATH
65 sed -i shorewall-core-${version}/lib.cli \
69 shorewall-core-${version}/configure \
72 CONFDIR=\$PREFIX/etc-example \
73 SBINDIR=\$PREFIX/sbin \
75 SHAREDIR=\$PREFIX/share \
76 LIBEXECDIR=\$SHAREDIR \
77 PERLLIBDIR=\$SHAREDIR/shorewall \
87 shorewall-core-${version}/install.sh
89 ln -s ../shorewall-core-${version}/shorewallrc shorewall-${version}/
90 shorewall-${version}/install.sh
92 ln -s ../shorewall-core-${version}/shorewallrc shorewall6-${version}/
93 shorewall6-${version}/install.sh
95 # Patch the example shorewall{,6}.conf in case it is included
96 # in services.shorewall{,6}.configs
97 sed -i $out/etc-example/shorewall/shorewall.conf \
98 $out/etc-example/shorewall6/shorewall6.conf \
99 -e 's|^LOGFILE=.*|LOGFILE=/var/log/shorewall.log|' \
100 -e 's|^PATH=.*|PATH=${PATH}|' \
101 -e 's|^PERL=.*|PERL=${perl}/bin/perl|' \
102 -e 's|^SHOREWALL_SHELL=.*|SHOREWALL_SHELL=${stdenv.shell}|'
103 sed -i $out/etc-example/shorewall6/shorewall6.conf \
104 -e 's|^CONFIG_PATH=.*|CONFIG_PATH=:''${CONFDIR}/shorewall6:''${SHAREDIR}/shorewall6:''${SHAREDIR}/shorewall|'
105 # FIXME: the default GEOIPDIR=/usr/share/xt_geoip/LE may require attention.
107 # Redirect CONFDIR to /etc where services.shorewall{,6}.configs
108 # will generate the config files.
109 sed -i $out/share/shorewall/shorewallrc \
110 -e 's~^CONFDIR=.*~CONFDIR=/etc~'
114 homepage = "http://www.shorewall.net/";
115 description = "An IP gateway/firewall configuration tool for GNU/Linux";
117 Shorewall is a high-level tool for configuring Netfilter. You describe your
118 firewall/gateway requirements using entries in a set of configuration
119 files. Shorewall reads those configuration files and with the help of the
120 iptables, iptables-restore, ip and tc utilities, Shorewall configures
121 Netfilter and the Linux networking subsystem to match your requirements.
122 Shorewall can be used on a dedicated firewall system, a multi-function
123 gateway/router/server or on a standalone GNU/Linux system. Shorewall does
124 not use Netfilter's ipchains compatibility mode and can thus take
125 advantage of Netfilter's connection state tracking capabilities.
127 license = lib.licenses.gpl2Plus;
128 platforms = lib.platforms.linux;