diff options
-rw-r--r-- | net-proxy/redsocks/files/redsocks.conf | 15 | ||||
-rw-r--r-- | net-proxy/redsocks/files/redsocks.init | 53 | ||||
-rw-r--r-- | net-proxy/redsocks/files/redsocks.service | 15 | ||||
-rw-r--r-- | net-proxy/redsocks/metadata.xml | 15 | ||||
-rw-r--r-- | net-proxy/redsocks/redsocks-0.5.ebuild | 19 | ||||
-rw-r--r-- | net-proxy/redsocks/redsocks-9999.ebuild | 19 |
6 files changed, 128 insertions, 8 deletions
diff --git a/net-proxy/redsocks/files/redsocks.conf b/net-proxy/redsocks/files/redsocks.conf new file mode 100644 index 000000000000..76b2c5f893c4 --- /dev/null +++ b/net-proxy/redsocks/files/redsocks.conf @@ -0,0 +1,15 @@ +# Config file for /etc/init.d/redsocks + +# Path to the redsocks binary (needs to be absolute path). + +#REDSOCKS_BINARY="/usr/sbin/redsocks" + +# Path to the redsocks config (needs to be absolute path). + +#REDSOCKS_CONFIG="/etc/redsocks.conf" + +# Pid file to use (needs to be absolute path). + +#REDSOCKS_PIDFILE="/run/redsocks/redsocks.pid" + +rc_use="logger" diff --git a/net-proxy/redsocks/files/redsocks.init b/net-proxy/redsocks/files/redsocks.init new file mode 100644 index 000000000000..853d9b57a6bb --- /dev/null +++ b/net-proxy/redsocks/files/redsocks.init @@ -0,0 +1,53 @@ +#!/sbin/openrc-run +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +: ${REDSOCKS_BINARY:=/usr/sbin/redsocks} +: ${REDSOCKS_CONFIG:=/etc/redsocks.conf} +: ${REDSOCKS_PIDFILE:=/run/redsocks/redsocks.pid} + +extra_commands="checkconfig" +extra_started_commands="reload" + +depend() { + need localmount + use dns +} + +checkconfig() { + if [ ! -f "${REDSOCKS_CONFIG}" ] ; then + eerror "No ${REDSOCKS_CONFIG} file exists!" + return 1 + fi + + "${REDSOCKS_BINARY}" -t -c ${REDSOCKS_CONFIG} || return 1 +} + +start() { + checkconfig || return 1 + + ebegin "Starting ${SVCNAME}" + start-stop-daemon --start --exec "${REDSOCKS_BINARY}" \ + -p "${REDSOCKS_PIDFILE}" -c ${REDSOCKS_CONFIG} + eend $? +} + +stop() { + if [ "${RC_CMD}" = "restart" ] ; then + checkconfig || return 1 + fi + + ebegin "Stopping ${SVCNAME}" + start-stop-daemon --stop --exec "${REDSOCKS_BINARY}" \ + -p "${REDSOCKS_PIDFILE}" -c "${REDSOCKS_CONFIG}" + eend $? +} + +reload() { + checkconfig || return 1 + + ebegin "Reloading ${SVCNAME}" + start-stop-daemon --signal HUP --exec "${REDSOCKS_BINARY}" \ + -p "${REDSOCKS_PIDFILE}" -c "${REDSOCKS_CONFIG}" + eend $? +} diff --git a/net-proxy/redsocks/files/redsocks.service b/net-proxy/redsocks/files/redsocks.service new file mode 100644 index 000000000000..db0e9d6093e9 --- /dev/null +++ b/net-proxy/redsocks/files/redsocks.service @@ -0,0 +1,15 @@ +[Unit] +Description=Transparent redirector of any TCP connection to proxy using your firewall + +[Service] +Type=forking +PIDFile=/run/redsocks/redsocks.pid +User=redsocks +ExecStartPre=/usr/sbin/redsocks -t -c /etc/redsocks.conf +ExecStart=/usr/sbin/redsocks -c /etc/redsocks.conf \ + -p /run/redsocks/redsocks.pid +ExecStopPost=/bin/rm /run/redsocks/redsocks.pid +Restart=on-abort + +[Install] +WantedBy=multi-user.target diff --git a/net-proxy/redsocks/metadata.xml b/net-proxy/redsocks/metadata.xml index bf35bd06d383..8f0d16e0c220 100644 --- a/net-proxy/redsocks/metadata.xml +++ b/net-proxy/redsocks/metadata.xml @@ -5,6 +5,21 @@ <email>mattst88@gentoo.org</email> <name>Matt Turner</name> </maintainer> + <longdescription lang="en"> + Redirect any TCP connection to a SOCKS or HTTPS proxy server Redsocks + is a daemon running on the local system, that will transparently tunnel + any TCP connection via a remote SOCKS4, SOCKS5 or HTTP proxy server. It + uses the system firewall's redirection facility to intercept TCP + connections, thus the redirection is system-wide, with fine-grained + control, and does not depend on LD_PRELOAD libraries. + + Redsocks supports tunneling TCP connections and UDP packets. It has + authentication support for both, SOCKS and HTTP proxies. + + Also included is a small DNS server returning answers with the + "truncated" flag set for any UDP query, forcing the resolver to use + TCP. + </longdescription> <upstream> <remote-id type="github">darkk/redsocks</remote-id> </upstream> diff --git a/net-proxy/redsocks/redsocks-0.5.ebuild b/net-proxy/redsocks/redsocks-0.5.ebuild index 609aff1f9571..984f5b196d5c 100644 --- a/net-proxy/redsocks/redsocks-0.5.ebuild +++ b/net-proxy/redsocks/redsocks-0.5.ebuild @@ -11,7 +11,7 @@ else EGIT_REPO_URI="git://github.com/darkk/${PN}.git" fi -inherit toolchain-funcs ${GIT_ECLASS} +inherit systemd toolchain-funcs user ${GIT_ECLASS} DESCRIPTION="Transparent redirector of any TCP connection to proxy" HOMEPAGE="http://darkk.net.ru/redsocks/" @@ -25,13 +25,24 @@ RDEPEND="${DEPEND} [[ ${PV} != *9999 ]] && S="${WORKDIR}"/"${PN}"-release-"${PV}" +pkg_setup() { + enewgroup redsocks + enewuser redsocks -1 -1 /run/redsocks redsocks +} + src_compile() { CC="$(tc-getCC)" emake || die "emake failed" } src_install() { - dobin redsocks + dosbin redsocks + doman debian/redsocks.8 use doc && dodoc README doc/* - insinto /etc/redsocks - newins redsocks.conf.example redsocks.conf + insinto /etc + newins debian/redsocks.conf redsocks.conf + + newinitd "${FILESDIR}"/redsocks.init redsocks + newconfd "${FILESDIR}"/redsocks.conf redsocks + + systemd_dounit "${FILESDIR}"/redsocks.service } diff --git a/net-proxy/redsocks/redsocks-9999.ebuild b/net-proxy/redsocks/redsocks-9999.ebuild index 609aff1f9571..984f5b196d5c 100644 --- a/net-proxy/redsocks/redsocks-9999.ebuild +++ b/net-proxy/redsocks/redsocks-9999.ebuild @@ -11,7 +11,7 @@ else EGIT_REPO_URI="git://github.com/darkk/${PN}.git" fi -inherit toolchain-funcs ${GIT_ECLASS} +inherit systemd toolchain-funcs user ${GIT_ECLASS} DESCRIPTION="Transparent redirector of any TCP connection to proxy" HOMEPAGE="http://darkk.net.ru/redsocks/" @@ -25,13 +25,24 @@ RDEPEND="${DEPEND} [[ ${PV} != *9999 ]] && S="${WORKDIR}"/"${PN}"-release-"${PV}" +pkg_setup() { + enewgroup redsocks + enewuser redsocks -1 -1 /run/redsocks redsocks +} + src_compile() { CC="$(tc-getCC)" emake || die "emake failed" } src_install() { - dobin redsocks + dosbin redsocks + doman debian/redsocks.8 use doc && dodoc README doc/* - insinto /etc/redsocks - newins redsocks.conf.example redsocks.conf + insinto /etc + newins debian/redsocks.conf redsocks.conf + + newinitd "${FILESDIR}"/redsocks.init redsocks + newconfd "${FILESDIR}"/redsocks.conf redsocks + + systemd_dounit "${FILESDIR}"/redsocks.service } |