pentoo-overlay/net-vpn/udp2raw-tunnel/udp2raw-tunnel-99999999.ebuild
2025-01-06 10:56:50 +08:00

78 lines
2 KiB
Bash

# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit fcaps flag-o-matic toolchain-funcs
DESCRIPTION="A tunnel which turns UDP traffic into encrypted FakeTCP/UDP/ICMP traffic"
HOMEPAGE="https://github.com/wangyu-/udp2raw-tunnel"
if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/wangyu-/udp2raw-tunnel"
else
SRC_URI="https://github.com/wangyu-/udp2raw-tunnel/archive/${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~arm ~x86"
fi
LICENSE="MIT"
SLOT="0"
IUSE="cpu_flags_x86_aes doc iptables"
DEPEND=""
RDEPEND="${DEPEND}
iptables? ( net-firewall/iptables )"
src_prepare() {
# Disable optimisation flags and remove prefixes of exec files
sed -e 's/ -O[0-3a-z]*//' \
-e 's/\${NAME}_[a-zA-Z0-9\$@]*/\${NAME}/' \
-e 's/ -static//' \
-e "s/\${cc_[a-zA-Z0-9_]*}/$(tc-getCXX)/" \
-i makefile || die 'sed failed!'
default
}
src_compile() {
append-cxxflags -Wa,--noexecstack
emake OPT="${CXXFLAGS}" \
$(use cpu_flags_x86_aes && use amd64 && echo amd64_hw_aes) \
$(use arm && echo arm_asm_aes) \
$(use x86 && echo x86_asm_aes)
}
src_install() {
local exec_name=${PN%-tunnel}
insinto "/etc/${exec_name}"
fowners root:nobody "/etc/${exec_name}"
fperms 750 "/etc/${exec_name}"
doins example.conf
newinitd "${FILESDIR}"/udp2raw-daemon$(use iptables && echo '.iptables').initd udp2raw-daemon
newconfd "${FILESDIR}"/udp2raw-daemon.confd udp2raw-daemon
insinto "/etc/logrotate.d"
newins "${FILESDIR}"/udp2raw-daemon.logrotated udp2raw-daemon
dobin $exec_name
doman "${FILESDIR}"/man/udp2raw.1
dodoc -r \
$(use doc && echo 'images doc/*') \
README.md example.conf Dockerfile
}
pkg_postinst() {
fcaps cap_net_raw+ep /usr/bin/${PN%-tunnel}
if ! use cpu_flags_x86_aes && use amd64; then
ewarn "Please add CPU_FLAGS_X86=\"aes\" to /etc/portage/make.conf"
ewarn "if your CPU support the AES instruction. Just run:"
ewarn " ~# emerge -uDN @world"
fi
elog "\nSee documentation: https://github.com/wangyu-/udp2raw-tunnel#getting-started\n"
}