diff options
Diffstat (limited to 'net-firewall')
-rw-r--r-- | net-firewall/shorewall/Manifest | 7 | ||||
-rw-r--r-- | net-firewall/shorewall/shorewall-5.1.12.2.ebuild | 456 |
2 files changed, 463 insertions, 0 deletions
diff --git a/net-firewall/shorewall/Manifest b/net-firewall/shorewall/Manifest index e07440d881e4..5803f52be0d7 100644 --- a/net-firewall/shorewall/Manifest +++ b/net-firewall/shorewall/Manifest @@ -1,14 +1,21 @@ DIST shorewall-5.1.11.2.tar.bz2 551818 BLAKE2B f0bc4b7f55e0e5189b50c1fb274229c4485802ea891256cb39c1bb89ff90b8a7e6c46d095fcedc9900ff211d218627c7822db9abc5e3bb6d6764be75b2462f01 SHA512 d214d497b70a56e40af115148907fd36cfc3daa8bd8689605cdc52c0312a0843d081f8c6a33f725cfd6778b400a91eb5c5d538f5083c8ac27f72652ce026714c DIST shorewall-5.1.12.1.tar.bz2 554575 BLAKE2B 1f49f5fb2dec41f6f1040c82c2a95bc1b658d3add16d385a0166fc3cb9fca8bdfcb594d620b969243b71420c9de15bc84ef4d0648dde9328794fb6383d0e6468 SHA512 7b79a0f849dc24680ab99bae4345857ef70d20cda5e089c74c339b5483cacdfbbff72ae671729bdba87d5940e66b32ccd5e00f6d62a3e2d65577edbf5a305986 +DIST shorewall-5.1.12.2.tar.bz2 555472 BLAKE2B 4eaf7cf1256c4edd5d5bc134a501077d3705d6dd32717234d14566e556267d63181506e9498d50f168b0ebf9c2bebe50dc4087dcd8f2aea5834870fdfe1fb476 SHA512 7cfff999f245da3fa992cd67f18f8b13919e31d95da3dda1920cb0f883766bd5bf8e514a2db09f3fd386b7780dfdc0b811c4fbafa82f459f96dc78dd2e6fc4a4 DIST shorewall-core-5.1.11.2.tar.bz2 85166 BLAKE2B 7e6d3d858163fa6ab20a3b663bc59339c4d2a244f0f4b00a125e48a45739dadaa102a4c8637e662db5452967bcc36b0ee95752c0d92bcfd8cd9dcaaf6d03fadc SHA512 6951a4d3139bd624ecc654a1992dba367cee84d6de218f20d6c2929b34de51a6a53f94061e1e9dc286094312ece75f113e123983c80de0f450d6e786093c6030 DIST shorewall-core-5.1.12.1.tar.bz2 85905 BLAKE2B f867d690c0c3ef8582b5418cf2a45200b5298db9f978d2d5531a4fee157298017b38e98beec0c243aa1009a138e92faa8e19fcf38f88ed030781d4a149fdd26a SHA512 d3f8e347fe2b0c9590830d297e6cea8a830c16467e461fd1d422138850ab80d0eb67213c26f0ca594d04b86d99999bf47800c57b47ae25bd064aa56d9e70fa66 +DIST shorewall-core-5.1.12.2.tar.bz2 86246 BLAKE2B c1e14fd42aadf97298ffe4ebee666ba1098142ef076a5086b45632b2f1063389756fadfbd4e35dd7958300da97d1c01e77fe234987119579d6e5588a409bbeff SHA512 457bf0db6c7b5d83895b471bcd40fa21f2f60007a819be4f9a805f79a0ba268b9ac522374519e8c95e21c99e80dbc27f8d7dc87ac078a9c8c8353cde526211fd DIST shorewall-docs-html-5.1.11.2.tar.bz2 4281096 BLAKE2B 467d5fc2dd5d2dc6a8064b86439160f4f227b6903e5d84e9824a9e3a2504eec11b2957d39536dfe4edba426b439837c5dccb584ff061e61a7409f377a8599b4e SHA512 807c996c6c7a58a5f13d687025055ba4c5a3c94bff9e227e8fe8da71a909cd428bce163faac59e3d2463f9884f7f46a48c1f661daeec94f9a8c97aa0bd092cbb DIST shorewall-docs-html-5.1.12.1.tar.bz2 4281459 BLAKE2B 4696dcf2ebe6a3a2c9078b4081393b040481f6769ecff381512a40d97d0ba52042b3e6f3c74361917b2623a4ecaae1c76409ef4f543eb6feaab2077f96250cb5 SHA512 96f6015c9ad4a42432143f5e2411d051bc55004c6479d53b6d8b071052f309aa30df858ac2452fe1d80f2e0071d05c2fa6eee12a70065726f9e775cc2f909575 +DIST shorewall-docs-html-5.1.12.2.tar.bz2 4281009 BLAKE2B 6b16fd7556e7985b95a9c7cbf3c2dc9e9bb6988989569558f09dc7210b14f4624a9d4d75682325a3e4427c9d7fde8c5285dbe0673259122c8b7a806e08f85bb2 SHA512 1460a06fccda7e32a0ebb9f7ce0628c7a50abed37d48148222aa587b87ece249f8e3722c6628590f3d47d3b5ec25e7d2cfc246b42777e15e8a11565dbdbec070 DIST shorewall-init-5.1.11.2.tar.bz2 40214 BLAKE2B e793d272b80e849ad85e0f54e88d7b0817356c35f44669a478ba30ba8d0f4f274e44d5cfb84468896d8aa743126cbdd4bce35b10f3d952c3377294344f95b562 SHA512 5ff9d85c8412cbe6ba9d0124cd3711febef14980c428ca2a4974cd82217ddf28f7dd4a8ca35900c4a59a0c47a407d45da2bedff7b0c92770c11c9761a390e417 DIST shorewall-init-5.1.12.1.tar.bz2 41044 BLAKE2B e38a1f085e74720949ebca053c175fce405699120684b1165a00e5e357cef0b288dc9f0cfa7001795cd626226aed60f286e9939e537e5eaef0bf908f96db2c9a SHA512 e3394c5ca5edbe09941b9ef26e68a606673b13a3a3bf97e3d74a2f7c78cae50611a7f429ec322d3bf105b4b52fbef184cd286eb557af65515f0a6178e3431266 +DIST shorewall-init-5.1.12.2.tar.bz2 41371 BLAKE2B 1ab0101c7d456aa21031d8aceab978e6cb98a5a14a30cb75fa46bef97ac0222418f94079433bb09e9d908eb44e9cd13a5a2bb42983054d4c09a96fe23fd83bd5 SHA512 ef6d3283023117f7c990d75f0569b06edb72568e7c6a848f9d77ef812951c54322771360bc2004fd6d74d0d9f3e8fc91b0b4ddeda6232e91173c5ca5b13d686e DIST shorewall-lite-5.1.11.2.tar.bz2 45821 BLAKE2B a51f745a111a2aa8c824f625bcdb779c019555d8e68323dec21d20c96054241cb69b74c25664ef7e51737bae959a567c24cc5b8ab771ee5a613bd889af20e870 SHA512 75dd0e7612f5e5903bdd1a54a152ac98fb277e464a856b4ef7cbb5f5d9d67eb19de29dcc994f4b0cb3b60af68e47c0a8e19d7e33e72a8a34d71992dc043bd88f DIST shorewall-lite-5.1.12.1.tar.bz2 46683 BLAKE2B d8429721ce76bb6b73d8f49bd2ec75c484cd48e732b17c49923a40cb23647a6f2de84d0d8ed798ae2ea89d5ec0cc9a1c367a13175224320f7868298481261ad0 SHA512 37146a1d9bb82b6de69f46b727fb2fa66a0933e13799008716b74d882d28607329795911e9843e0bdf5e5324954c8a7fe14a0e4995184ee38d69ab9c3408deed +DIST shorewall-lite-5.1.12.2.tar.bz2 47045 BLAKE2B 09d8881848fab61501e7bb5b993fb0dd2b58fc7323aa741bf6847e40c9ffdfaa0dca965785a8f7c18405b434fd0cea15c434b46f42988027bd99c881996e42ae SHA512 e9a2596430b89e6356ec211d6eb94d2815041c269603274f5c102249a0ec1b24d5d3787dbdc876045a0ba41af76afa514f13e6e199358e045ab4ecb4d2b5e2f5 DIST shorewall6-5.1.11.2.tar.bz2 195491 BLAKE2B fd9d05e9b30037fead69add2ca62e0fbbfc2481212485f3f67935c2a062f5fa97378c74e88093b81b218445e4068014f5dedead3370a7ad2424a4ccdd1ad175c SHA512 5488679f2e10bb9ff8b5d66276b068d7acc111256d06f3e1c46863948edc9b5734c3289720c5b3e444f7f9eb25fc3603f676d02df50929802f0e1d582e23f997 DIST shorewall6-5.1.12.1.tar.bz2 196607 BLAKE2B 35d29ccd73184b6905fffa60d209b4bd91cfe05bee73f7205f24ac178f78f74a2b847342c9f27435279fc2bfd7e5e840842d6c1333245f0a04b811d1fc2a94a5 SHA512 bd982de71d53cb1f669c293c825295a2eebe70f52b98bd0a172b13b119d5daa17a14ce9c79a97a41dbf740d4864bf5ee22b40c2bb22401bffb7a84fb911d88cc +DIST shorewall6-5.1.12.2.tar.bz2 197371 BLAKE2B 3a171bc819e8d4cd757c843222168f8b5b5749baf064d53a42d4d2f8dfcc75e9d8782b5fc31a4a2d520bdc332164197c5c893de47e5abdad6a036ba06db2d1bf SHA512 fe99cd78cd96a8ad78b46ea9c41858c915eee33dea993054ac6ddfe6ab50d2e90fa7af4c9d1e8efdd8153b5ff37f9c8fc831447a5997e819c82f8497a24a1d52 DIST shorewall6-lite-5.1.11.2.tar.bz2 45581 BLAKE2B 760b29fb864a942f15bba5a88cd2933ed6791533ed2492c1985567253c2cd8f02c4931552c0b8ad35599099de70bca2d0f5b2219b98298ec9541ba3f16bac035 SHA512 d5db740f4dbe86ae31d44123de0f0244bf8caa880e9f29cb19590a9a2abcc1b17ef5ba0cd0b40c5bf843415857d988cacb079a4aae7016148be1f71afd8433de DIST shorewall6-lite-5.1.12.1.tar.bz2 46365 BLAKE2B eb3fdaabdc11d5d2694964d69ae452e52557eff6539a1eb0de3bf607252f52515d285c858b0a75b1ff35ef02c62031ab9c510517e9e5aaeb5f6b860b50156ce3 SHA512 1992cfbc2ca4c9e4b004e10c1b0bf73157da2cdf2fe03ecc8ad9a33e941d7881565c00bd68abec6e8711c58d8df03b0dc1c413639ef7015661fb4ef79151a78e +DIST shorewall6-lite-5.1.12.2.tar.bz2 46746 BLAKE2B e38af0dff71fb3fc00ca7d7b5ba034650016060be3202f6284ff1ca82070eeb5e0e5cb448230b4e8614bdf0ddd71d28c3d0b022d30d6ed0ea0446c85e07cb0b3 SHA512 133409bf4dc004e4eb80c28e6e035331232dddd87b6fd512077947fcb05f10390360cb3f1918d441ed268f20f09c3bfd0a7952f9252cd8e39de9c6d617f2399d diff --git a/net-firewall/shorewall/shorewall-5.1.12.2.ebuild b/net-firewall/shorewall/shorewall-5.1.12.2.ebuild new file mode 100644 index 000000000000..d073bcb9296f --- /dev/null +++ b/net-firewall/shorewall/shorewall-5.1.12.2.ebuild @@ -0,0 +1,456 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +inherit linux-info prefix systemd versionator + +DESCRIPTION='A high-level tool for configuring Netfilter' +HOMEPAGE="http://www.shorewall.net/" +LICENSE="GPL-2" +SLOT="0" +IUSE="doc +init +ipv4 ipv6 lite4 lite6 selinux" + +MY_PV=${PV/_rc/-RC} +MY_PV=${MY_PV/_beta/-Beta} +MY_P=${PN}-${MY_PV} + +MY_MAJOR_RELEASE_NUMBER=$(get_version_component_range 1-2) +MY_MAJORMINOR_RELEASE_NUMBER=$(get_version_component_range 1-3) + +# shorewall +MY_PN_IPV4=Shorewall +MY_P_IPV4=${MY_PN_IPV4/#S/s}-${MY_PV} + +# shorewall6 +MY_PN_IPV6=Shorewall6 +MY_P_IPV6=${MY_PN_IPV6/#S/s}-${MY_PV} + +# shorewall-lite +MY_PN_LITE4=Shorewall-lite +MY_P_LITE4=${MY_PN_LITE4/#S/s}-${MY_PV} + +# shorewall6-lite +MY_PN_LITE6=Shorewall6-lite +MY_P_LITE6=${MY_PN_LITE6/#S/s}-${MY_PV} + +# shorewall-init +MY_PN_INIT=Shorewall-init +MY_P_INIT=${MY_PN_INIT/#S/s}-${MY_PV} + +# shorewall-core +MY_PN_CORE=Shorewall-core +MY_P_CORE=${MY_PN_CORE/#S/s}-${MY_PV} + +# shorewall-docs-html +MY_PN_DOCS=Shorewall-docs-html +MY_P_DOCS=${MY_PN_DOCS/#S/s}-${MY_PV} + +# Upstream URL schema: +# Beta: $MIRROR/pub/shorewall/development/4.6/shorewall-4.6.4-Beta2/shorewall-4.6.4-Beta2.tar.bz2 +# RC: $MIRROR/pub/shorewall/development/4.6/shorewall-4.6.4-RC1/shorewall-4.6.4-RC1.tar.bz2 +# Release: $MIRROR/pub/shorewall/4.6/shorewall-4.6.3/shorewall-4.6.3.3.tar.bz2 + +MY_URL_PREFIX= +MY_URL_SUFFIX= +if [[ ${MY_PV} = *-Beta* ]] || [[ ${MY_PV} = *-RC* ]]; then + MY_URL_PREFIX='development/' + + _tmp_last_index=$(($(get_last_version_component_index ${MY_PV})+1)) + _tmp_suffix=$(get_version_component_range ${_tmp_last_index} ${MY_PV}) + if [[ ${_tmp_suffix} = *Beta* ]] || [[ ${_tmp_suffix} = *RC* ]]; then + MY_URL_SUFFIX="-${_tmp_suffix}" + fi + + # Cleaning up temporary variables + unset _tmp_last_index + unset _tmp_suffix +else + KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86" +fi + +SRC_URI=" + http://www.shorewall.net/pub/shorewall/${MY_URL_PREFIX}${MY_MAJOR_RELEASE_NUMBER}/shorewall-${MY_MAJORMINOR_RELEASE_NUMBER}${MY_URL_SUFFIX}/shorewall-core-${MY_PV}.tar.bz2 + ipv4? ( http://www.shorewall.net/pub/shorewall/${MY_URL_PREFIX}${MY_MAJOR_RELEASE_NUMBER}/shorewall-${MY_MAJORMINOR_RELEASE_NUMBER}${MY_URL_SUFFIX}/shorewall-${MY_PV}.tar.bz2 ) + ipv6? ( http://www.shorewall.net/pub/shorewall/${MY_URL_PREFIX}${MY_MAJOR_RELEASE_NUMBER}/shorewall-${MY_MAJORMINOR_RELEASE_NUMBER}${MY_URL_SUFFIX}/shorewall6-${MY_PV}.tar.bz2 ) + lite4? ( http://www.shorewall.net/pub/shorewall/${MY_URL_PREFIX}${MY_MAJOR_RELEASE_NUMBER}/shorewall-${MY_MAJORMINOR_RELEASE_NUMBER}${MY_URL_SUFFIX}/shorewall-lite-${MY_PV}.tar.bz2 ) + lite6? ( http://www.shorewall.net/pub/shorewall/${MY_URL_PREFIX}${MY_MAJOR_RELEASE_NUMBER}/shorewall-${MY_MAJORMINOR_RELEASE_NUMBER}${MY_URL_SUFFIX}/shorewall6-lite-${MY_PV}.tar.bz2 ) + init? ( http://www.shorewall.net/pub/shorewall/${MY_URL_PREFIX}${MY_MAJOR_RELEASE_NUMBER}/shorewall-${MY_MAJORMINOR_RELEASE_NUMBER}${MY_URL_SUFFIX}/shorewall-init-${MY_PV}.tar.bz2 ) + doc? ( http://www.shorewall.net/pub/shorewall/${MY_URL_PREFIX}${MY_MAJOR_RELEASE_NUMBER}/shorewall-${MY_MAJORMINOR_RELEASE_NUMBER}${MY_URL_SUFFIX}/${MY_P_DOCS}.tar.bz2 ) +" + +# - Shorewall6 requires Shorewall +# - Installing Shorewall-init or just the documentation doesn't make any sense, +# that's why we force the user to select at least one "real" Shorewall product +# +# See http://shorewall.net/download.htm#Which +REQUIRED_USE=" + ipv6? ( ipv4 ) + || ( ipv4 lite4 lite6 ) +" + +# No build dependencies! Just plain shell scripts... +DEPEND="" + +RDEPEND=" + >=net-firewall/iptables-1.4.20 + >=sys-apps/iproute2-3.8.0[-minimal] + >=sys-devel/bc-1.06.95 + ipv4? ( + >=dev-lang/perl-5.16 + virtual/perl-Digest-SHA + ) + ipv6? ( + >=dev-perl/Socket6-0.230.0 + >=net-firewall/iptables-1.4.20[ipv6] + >=sys-apps/iproute2-3.8.0[ipv6] + ) + lite6? ( + >=net-firewall/iptables-1.4.20[ipv6] + >=sys-apps/iproute2-3.8.0[ipv6] + ) + init? ( >=sys-apps/coreutils-8.20 ) + selinux? ( >=sec-policy/selinux-shorewall-2.20161023-r3 ) + !net-firewall/shorewall-core + !net-firewall/shorewall6 + !net-firewall/shorewall-lite + !net-firewall/shorewall6-lite + !net-firewall/shorewall-init + !<sys-apps/systemd-214 +" + +S=${WORKDIR} + +pkg_pretend() { + local CONFIG_CHECK="~NF_CONNTRACK" + + local WARNING_CONNTRACK="Without NF_CONNTRACK support, you will be unable" + local WARNING_CONNTRACK+=" to run any shorewall-based firewall on the local system." + + if use ipv4 || use lite4; then + CONFIG_CHECK="${CONFIG_CHECK} ~NF_CONNTRACK_IPV4" + + local WARNING_CONNTRACK_IPV4="Without NF_CONNTRACK_IPV4 support, you will" + local WARNING_CONNTRACK_IPV4+=" be unable to run any shorewall-based IPv4 firewall on the local system." + fi + + if use ipv6 || use lite6; then + CONFIG_CHECK="${CONFIG_CHECK} ~NF_CONNTRACK_IPV6" + + local WARNING_CONNTRACK_IPV6="Without NF_CONNTRACK_IPV6 support, you will" + local WARNING_CONNTRACK_IPV6+=" be unable to run any shorewall-based IPv6 firewall on the local system." + fi + + check_extra_config +} + +pkg_setup() { + if [[ -n "${DIGEST}" ]]; then + einfo "Unsetting environment variable \"DIGEST\" to prevent conflicts with package's \"install.sh\" script ..." + unset DIGEST + fi +} + +src_prepare() { + # We are moving each unpacked source from MY_P_* to MY_PN_*. + # This allows us to use patches from upstream and keeps epatch_user working + + einfo "Preparing shorewallrc ..." + cp "${FILESDIR}"/shorewallrc-r1 "${S}"/shorewallrc.gentoo || die "Copying shorewallrc failed" + eprefixify "${S}"/shorewallrc.gentoo + + # shorewall-core + mv "${S}"/${MY_P_CORE} "${S}"/${MY_PN_CORE} || die "Failed to move '${S}/${MY_P_CORE}' to '${S}/${MY_PN_CORE}'" + ebegin "Applying Gentoo-specific changes to ${MY_P_CORE} ..." + ln -s ../shorewallrc.gentoo ${MY_PN_CORE}/shorewallrc.gentoo || die "Failed to symlink shorewallrc.gentoo" + eend 0 + + # shorewall + if use ipv4; then + mv "${S}"/${MY_P_IPV4} "${S}"/${MY_PN_IPV4} || die "Failed to move '${S}/${MY_P_IPV4}' to '${S}/${MY_PN_IPV4}'" + ebegin "Applying Gentoo-specific changes to ${MY_P_IPV4}" + ln -s ../shorewallrc.gentoo ${MY_PN_IPV4}/shorewallrc.gentoo || die "Failed to symlink shorewallrc.gentoo" + cp "${FILESDIR}"/shorewall.confd-r1 "${S}"/${MY_PN_IPV4}/default.gentoo || die "Copying shorewall.confd-r1 failed" + cp "${FILESDIR}"/shorewall.initd-r2 "${S}"/${MY_PN_IPV4}/init.gentoo.sh || die "Copying shorewall.initd-r2 failed" + cp "${FILESDIR}"/shorewall.systemd "${S}"/${MY_PN_IPV4}/gentoo.service || die "Copying shorewall.systemd failed" + eend 0 + fi + + # shorewall6 + if use ipv6; then + mv "${S}"/${MY_P_IPV6} "${S}"/${MY_PN_IPV6} || die "Failed to move '${S}/${MY_P_IPV6}' to '${S}/${MY_PN_IPV6}'" + ebegin "Applying Gentoo-specific changes to ${MY_P_IPV6}" + ln -s ../shorewallrc.gentoo ${MY_PN_IPV6}/shorewallrc.gentoo || die "Failed to symlink shorewallrc.gentoo" + cp "${FILESDIR}"/shorewall.confd-r1 "${S}"/${MY_PN_IPV6}/default.gentoo || die "Copying shorewall.confd-r1 failed" + cp "${FILESDIR}"/shorewall.initd-r2 "${S}"/${MY_PN_IPV6}/init.gentoo.sh || die "Copying shorewall.initd-r2 failed" + cp "${FILESDIR}"/shorewall6.systemd "${S}"/${MY_PN_IPV6}/gentoo.service || die "Copying shorewall6.systemd failed" + eend 0 + fi + + # shorewall-lite + if use lite4; then + mv "${S}"/${MY_P_LITE4} "${S}"/${MY_PN_LITE4} || die "Failed to move '${S}/${MY_P_LITE4}' to '${S}/${MY_PN_LITE4}'" + ebegin "Applying Gentoo-specific changes to ${MY_P_LITE4}" + ln -s ../shorewallrc.gentoo ${MY_PN_LITE4}/shorewallrc.gentoo || die "Failed to symlink shorewallrc.gentoo" + cp "${FILESDIR}"/shorewall-lite.confd-r1 "${S}"/${MY_PN_LITE4}/default.gentoo || die "Copying shorewall-lite.confd-r1 failed" + cp "${FILESDIR}"/shorewall-lite.initd-r2 "${S}"/${MY_PN_LITE4}/init.gentoo.sh || die "Copying shorewall-lite.initd-r2 failed" + cp "${FILESDIR}"/shorewall-lite.systemd "${S}"/${MY_PN_LITE4}/gentoo.service || die "Copying shorewall-lite.systemd failed" + eend 0 + fi + + # shorewall6-lite + if use lite6; then + mv "${S}"/${MY_P_LITE6} "${S}"/${MY_PN_LITE6} || die "Failed to move '${S}/${MY_P_LITE6}' to '${S}/${MY_PN_LITE6}'" + ebegin "Applying Gentoo-specific changes to ${MY_P_LITE6}" + ln -s ../shorewallrc.gentoo ${MY_PN_LITE6}/shorewallrc.gentoo || die "Failed to symlink shorewallrc.gentoo" + cp "${FILESDIR}"/shorewall-lite.confd-r1 "${S}"/${MY_PN_LITE6}/default.gentoo || die "Copying shorewall-lite.confd-r1 failed" + cp "${FILESDIR}"/shorewall-lite.initd-r2 "${S}"/${MY_PN_LITE6}/init.gentoo.sh || die "Copying shorewall-lite.initd-r2 failed" + cp "${FILESDIR}"/shorewall6-lite.systemd "${S}"/${MY_PN_LITE6}/gentoo.service || die "Copying shorewall6-lite.systemd failed" + eend 0 + fi + + # shorewall-init + if use init; then + mv "${S}"/${MY_P_INIT} "${S}"/${MY_PN_INIT} || die "Failed to move '${S}/${MY_P_INIT}' to '${S}/${MY_PN_INIT}'" + ebegin "Applying Gentoo-specific changes to ${MY_P_INIT}" + ln -s ../shorewallrc.gentoo ${MY_PN_INIT}/shorewallrc.gentoo || die "Failed to symlink shorewallrc.gentoo" + cp "${FILESDIR}"/shorewall-init.confd "${S}"/${MY_PN_INIT}/default.gentoo || die "Copying shorewall-init.confd failed" + cp "${FILESDIR}"/shorewall-init.initd "${S}"/${MY_PN_INIT}/init.gentoo.sh || die "Copying shorewall-init.initd failed" + cp "${FILESDIR}"/shorewall-init.systemd "${S}"/${MY_PN_INIT}/gentoo.service || die "Copying shorewall-init.systemd failed" + cp "${FILESDIR}"/shorewall-init.readme "${S}"/${MY_PN_INIT}/shorewall-init.README.Gentoo.txt || die "Copying shorewall-init.systemd failed" + eend 0 + + eprefixify "${S}"/${MY_PN_INIT}/init.gentoo.sh + + cd "${S}"/${MY_PN_INIT} || die + eapply -p2 "${FILESDIR}"/shorewall-init-01_remove-ipset-functionality-r1.patch + cd "${S}" || die + fi + + # shorewall-docs-html + if use doc; then + mv "${S}"/${MY_P_DOCS} "${S}"/${MY_PN_DOCS} || die "Failed to move '${S}/${MY_P_DOCS}' to '${S}/${MY_PN_DOCS}'" + fi + + eapply_user +} + +src_configure() { + :; +} + +src_compile() { + :; +} + +src_install() { + # shorewall-core + einfo "Installing ${MY_P_CORE} ..." + DESTDIR="${D%/}" ${MY_PN_CORE}/install.sh shorewallrc.gentoo || die "${MY_PN_CORE}/install.sh failed" + dodoc "${S}"/${MY_PN_CORE}/changelog.txt "${S}"/${MY_PN_CORE}/releasenotes.txt + + # shorewall + if use ipv4; then + einfo "Installing ${MY_P_IPV4} ..." + DESTDIR="${D%/}" ${MY_PN_IPV4}/install.sh shorewallrc.gentoo || die "${MY_PN_IPV4}/install.sh failed" + keepdir /var/lib/shorewall + + if use doc; then + dodoc -r "${S}"/${MY_PN_IPV4}/Samples + fi + fi + + # shorewall6 + if use ipv6; then + einfo "Installing ${MY_P_IPV6} ..." + DESTDIR="${D%/}" ${MY_PN_IPV6}/install.sh shorewallrc.gentoo || die "${MY_PN_IPV6}/install.sh failed" + keepdir /var/lib/shorewall6 + + if use doc; then + dodoc -r "${S}"/${MY_PN_IPV6}/Samples6 + fi + fi + + # shorewall-lite + if use lite4; then + einfo "Installing ${MY_P_LITE4} ..." + DESTDIR="${D%/}" ${MY_PN_LITE4}/install.sh shorewallrc.gentoo || die "${MY_PN_LITE4}/install.sh failed" + keepdir /var/lib/shorewall-lite + fi + + # shorewall6-lite + if use lite6; then + einfo "Installing ${MY_P_LITE6} ..." + DESTDIR="${D%/}" ${MY_PN_LITE6}/install.sh shorewallrc.gentoo || die "${MY_PN_LITE6}/install.sh failed" + keepdir /var/lib/shorewall6-lite + fi + + # shorewall-init + if use init; then + einfo "Installing ${MY_P_INIT} ..." + DESTDIR="${D%/}" ${MY_PN_INIT}/install.sh shorewallrc.gentoo || die "${MY_PN_INIT}/install.sh failed" + dodoc "${S}"/${MY_PN_INIT}/shorewall-init.README.Gentoo.txt + + if [[ -f "${D}etc/logrotate.d/shorewall-init" ]]; then + # On Gentoo, shorewall-init will not create shorewall-ifupdown.log, + # so we don't need a logrotate configuration file for shorewall-init + einfo "Removing unused \"${D}etc/logrotate.d/shorewall-init\" ..." + rm -rf "${D}"etc/logrotate.d/shorewall-init || die "Removing \"${D}etc/logrotate.d/shorewall-init\" failed" + fi + + if [[ -d "${D}etc/NetworkManager" ]]; then + # On Gentoo, we don't support NetworkManager + # so we don't need this folder at all + einfo "Removing unused \"${D}etc/NetworkManager\" ..." + rm -rf "${D}"etc/NetworkManager || die "Removing \"${D}etc/NetworkManager\" failed" + fi + + if [[ -f "${D}usr/share/shorewall-init/ifupdown" ]]; then + # This script isn't supported on Gentoo + rm -rf "${D}"usr/share/shorewall-init/ifupdown || die "Removing \"${D}usr/share/shorewall-init/ifupdown\" failed" + fi + fi + + if use doc; then + einfo "Installing ${MY_P_DOCS} ..." + docinto html && dodoc -r "${S}"/${MY_PN_DOCS}/* + fi +} + +pkg_postinst() { + if [[ -z "${REPLACING_VERSIONS}" ]]; then + # This is a new installation + + # Show first steps for shorewall/shorewall6 + local _PRODUCTS="" + if use ipv4; then + _PRODUCTS="shorewall" + + if use ipv6; then + _PRODUCTS="${_PRODUCTS}/shorewall6" + fi + fi + + if [[ -n "${_PRODUCTS}" ]]; then + elog "Before you can use ${_PRODUCTS}, you need to edit its configuration in:" + elog "" + elog " /etc/shorewall/shorewall.conf" + + if use ipv6; then + elog " /etc/shorewall6/shorewall6.conf" + fi + + elog "" + elog "To activate your shorewall-based firewall on system start, please add ${_PRODUCTS} to your default runlevel:" + elog "" + elog " # rc-update add shorewall default" + + if use ipv6; then + elog " # rc-update add shorewall6 default" + fi + fi + + # Show first steps for shorewall-lite/shorewall6-lite + _PRODUCTS="" + if use lite4; then + _PRODUCTS="shorewall-lite" + fi + + if use lite6; then + if [[ -z "${_PRODUCTS}" ]]; then + _PRODUCTS="shorewall6-lite" + else + _PRODUCTS="${_PRODUCTS}/shorewall6-lite" + fi + fi + + if [[ -n "${_PRODUCTS}" ]]; then + if use ipv4; then + elog "" + fi + + elog "Before you can use ${_PRODUCTS}, you need to provide a configuration, which you can" + elog "create using ${CATEGORY}/shorewall (with \"ipv4\" and or \"ipv6\" USE flag)." + elog "" + elog "To read more about ${_PRODUCTS}, please visit" + elog " http://shorewall.net/CompiledPrograms.html" + elog "" + elog "To activate your shorewall-lite-based firewall on system start, please add ${PRODUCTS} to your default runlevel:" + elog "" + + if use lite4; then + elog " # rc-update add shorewall-lite default" + fi + + if use lite6; then + elog " # rc-update add shorewall6-lite default" + fi + fi + + if use init; then + elog "" + elog "To secure your system on boot, please add shorewall-init to your boot runlevel:" + elog "" + elog " # rc-update add shorewall-init boot" + elog "" + elog "and review \$PRODUCTS in" + elog "" + elog " /etc/conf.d/shorewall-init" + fi + + fi + + local v + for v in ${REPLACING_VERSIONS}; do + if ! version_is_at_least ${MY_MAJOR_RELEASE_NUMBER} ${v}; then + # This is an upgrade + + elog "You are upgrading from a previous major version. It is highly recommended that you read" + elog "" + elog " - /usr/share/doc/shorewall*/releasenotes.tx*" + elog " - http://shorewall.net/Shorewall-5.html#idp51151872" + + if use ipv4; then + elog "" + elog "You can auto-migrate your configuration using" + elog "" + elog " # shorewall update -A" + + if use ipv6; then + elog " # shorewall6 update -A" + fi + + elog "" + elog "*after* you have merged the changed files using one of the configuration" + elog "files update tools of your choice (dispatch-conf, etc-update...)." + + elog "" + elog "But if you are not familiar with the \"shorewall[6] update\" command," + elog "please read the shorewall[6] man page first." + fi + + # Show this elog only once + break + fi + done + + if ! use init; then + elog "" + elog "Consider emerging ${CATEGORY}/${PN} with USE flag \"init\" to secure your system on boot" + elog "before your shorewall-based firewall is ready to start." + elog "" + elog "To read more about shorewall-init, please visit" + elog " http://www.shorewall.net/Shorewall-init.html" + fi + + if ! has_version "net-firewall/conntrack-tools"; then + elog "" + elog "Your Shorewall firewall can utilize \"conntrack\" from the \"net-firewall/conntrack-tools\"" + elog "package. if you want to use this feature, you need to install \"net-firewall/conntrack-tools\"!" + fi + + if ! has_version "dev-perl/Devel-NYTProf"; then + elog "" + elog "If you want to profile your Shorewall firewall you need to install \"dev-perl/Devel-NYTProf\"!" + fi +} |