mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
net-mail/onionrouter: .onion discovery via SRV DNS for postfix
Package-Manager: Portage-3.0.8, Repoman-3.0.2 Signed-off-by: Craig Andrews <candrews@gentoo.org> Closes: https://github.com/gentoo/gentoo/pull/17974 Signed-off-by: Craig Andrews <candrews@gentoo.org>
This commit is contained in:
1
net-mail/onionrouter/Manifest
Normal file
1
net-mail/onionrouter/Manifest
Normal file
@@ -0,0 +1 @@
|
|||||||
|
DIST onionrouter-0.5.2.tar.gz 23497 BLAKE2B f025385323b182350e3481be62bbb9ed037d197d83ee19341f27ec04c391d6e1ee809b5db461437287485496ce139718f774d39de7ebd307ea92d5409220e135 SHA512 9c23a17401c0d56fc8d0b6bc3a0c899d604f6981457643b84040e9cf60626990bbd03fead66bba1c7d5723bd43d95c128bf457380e255f995951970b4788f126
|
||||||
46
net-mail/onionrouter/files/conftest.py
Normal file
46
net-mail/onionrouter/files/conftest.py
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
from __future__ import unicode_literals
|
||||||
|
import pytest
|
||||||
|
import io
|
||||||
|
try:
|
||||||
|
import configparser
|
||||||
|
except ImportError:
|
||||||
|
import ConfigParser as configparser
|
||||||
|
from onionrouter import rerouter, config_handlers
|
||||||
|
|
||||||
|
|
||||||
|
config = """
|
||||||
|
[RESOLVER]
|
||||||
|
resolver_ip: 127.0.0.1
|
||||||
|
resolver_port: 53
|
||||||
|
tcp: True
|
||||||
|
|
||||||
|
[DOMAIN]
|
||||||
|
hostname: myself.net, myself2.net
|
||||||
|
|
||||||
|
[DNS]
|
||||||
|
srv_record: _onion-mx._tcp.
|
||||||
|
|
||||||
|
[REROUTE]
|
||||||
|
onion_transport: smtptor
|
||||||
|
|
||||||
|
[IGNORED]
|
||||||
|
domains: ignore.me, ignore2.me
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope="session", name="dummy_config")
|
||||||
|
def fixture_config():
|
||||||
|
return config
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture(scope="function", name="dummy_onionrouter")
|
||||||
|
def fixture_onionrouter(monkeypatch, dummy_config):
|
||||||
|
monkeypatch.setattr(
|
||||||
|
config_handlers, "get_conffile",
|
||||||
|
lambda *args, **kwargs: rerouter.OnionRouter.ref_config)
|
||||||
|
custom_config = configparser.ConfigParser()
|
||||||
|
custom_config._read(io.StringIO(dummy_config), None)
|
||||||
|
monkeypatch.setattr(config_handlers, "config_reader",
|
||||||
|
lambda *args: custom_config)
|
||||||
|
return rerouter.OnionRouter("nothing?")
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
https://github.com/ehloonion/onionrouter/pull/16
|
||||||
|
|
||||||
|
From 06d5c15d61790c9444641de18b9ff23f1c104207 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Craig Andrews <candrews@integralblue.com>
|
||||||
|
Date: Mon, 19 Oct 2020 12:46:08 -0400
|
||||||
|
Subject: [PATCH] Change the entry point to rerouter
|
||||||
|
|
||||||
|
Aligns the entry point with the changes made in commit 2e8f7be "Rename onionrouter module to rerouter"
|
||||||
|
---
|
||||||
|
setup.py | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index baf6041..e487614 100644
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -40,7 +40,7 @@
|
||||||
|
'onionrouter',
|
||||||
|
],
|
||||||
|
entry_points={
|
||||||
|
- "console_scripts": ['onionrouter = onionrouter.onionrouter:main']
|
||||||
|
+ "console_scripts": ['onionrouter = onionrouter.rerouter:main']
|
||||||
|
},
|
||||||
|
include_package_data=True,
|
||||||
|
install_requires=requirements,
|
||||||
30
net-mail/onionrouter/files/onionrouter-0.5.2-newline.patch
Normal file
30
net-mail/onionrouter/files/onionrouter-0.5.2-newline.patch
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
https://github.com/ehloonion/onionrouter/pull/21
|
||||||
|
|
||||||
|
From 670690f03fd700e2b06892e2231a8e078cfb41b3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Craig Andrews <candrews@integralblue.com>
|
||||||
|
Date: Mon, 19 Oct 2020 15:47:41 -0400
|
||||||
|
Subject: [PATCH] Send a newline when replying to postfix
|
||||||
|
|
||||||
|
Postfix requires all replies to end in a newline.
|
||||||
|
|
||||||
|
Without this change, postfix logs a warning:
|
||||||
|
`warning: read TCP map reply from localhost:23000: text longer than 4096`
|
||||||
|
|
||||||
|
See http://www.postfix.org/tcp_table.5.html
|
||||||
|
---
|
||||||
|
onionrouter/msockets.py | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/onionrouter/msockets.py b/onionrouter/msockets.py
|
||||||
|
index 8769a2e..8c93693 100644
|
||||||
|
--- a/onionrouter/msockets.py
|
||||||
|
+++ b/onionrouter/msockets.py
|
||||||
|
@@ -27,7 +27,7 @@ def resolve(rerouter, conn, resolve_callback=lambda q, a: (q, a)):
|
||||||
|
return
|
||||||
|
except BaseException as err:
|
||||||
|
# todo log
|
||||||
|
- conn.sendall("500 {0}".format(err).encode())
|
||||||
|
+ conn.sendall("500 {0}\n".format(err).encode())
|
||||||
|
|
||||||
|
|
||||||
|
def daemonize_server(rerouter, host, port, resolver=resolve):
|
||||||
42
net-mail/onionrouter/files/onionrouter-0.5.2-python3.patch
Normal file
42
net-mail/onionrouter/files/onionrouter-0.5.2-python3.patch
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
https://github.com/ehloonion/onionrouter/pull/20
|
||||||
|
|
||||||
|
From d059ee499a0ed30239f6c4ee6ea8f144069fbb7d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Craig Andrews <candrews@integralblue.com>
|
||||||
|
Date: Mon, 19 Oct 2020 14:53:46 -0400
|
||||||
|
Subject: [PATCH] Perform bytes to string and vice versa conversions
|
||||||
|
|
||||||
|
Python 3 handles bytes and strings as different types
|
||||||
|
|
||||||
|
Fixes https://github.com/ehloonion/onionrouter/issues/19
|
||||||
|
---
|
||||||
|
onionrouter/msockets.py | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/onionrouter/msockets.py b/onionrouter/msockets.py
|
||||||
|
index 8769a2e..b77d750 100644
|
||||||
|
--- a/onionrouter/msockets.py
|
||||||
|
+++ b/onionrouter/msockets.py
|
||||||
|
@@ -13,7 +13,7 @@ def close_socket(sock):
|
||||||
|
def resolve(rerouter, conn, resolve_callback=lambda q, a: (q, a)):
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
- addr = conn.recv(1024).strip()
|
||||||
|
+ addr = conn.recv(1024).decode().strip()
|
||||||
|
if not addr:
|
||||||
|
# connection ended
|
||||||
|
return
|
||||||
|
@@ -22,12 +22,12 @@ def resolve(rerouter, conn, resolve_callback=lambda q, a: (q, a)):
|
||||||
|
else:
|
||||||
|
result = rerouter.run(addr)
|
||||||
|
resolve_callback(addr, result)
|
||||||
|
- conn.sendall("{0}\n".format(result))
|
||||||
|
+ conn.sendall("{0}\n".format(result).encode())
|
||||||
|
except socket.timeout:
|
||||||
|
return
|
||||||
|
except BaseException as err:
|
||||||
|
# todo log
|
||||||
|
- conn.sendall("500 {0}".format(err))
|
||||||
|
+ conn.sendall("500 {0}".format(err).encode())
|
||||||
|
|
||||||
|
|
||||||
|
def daemonize_server(rerouter, host, port, resolver=resolve):
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
https://github.com/ehloonion/onionrouter/pull/17
|
||||||
|
|
||||||
|
From cdac2f500b24abaf5833266ad740c56df360e602 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Craig Andrews <candrews@integralblue.com>
|
||||||
|
Date: Mon, 19 Oct 2020 12:56:19 -0400
|
||||||
|
Subject: [PATCH] Allow for use of later versions of PyYAML
|
||||||
|
|
||||||
|
commit 5fe349a "Update PyYAML to 4.2b1 due to CVE-2017-18342" set `install_requires` to `PyYAML==4.2b1`. This exact version requirement prohibits the use of later versions of PyYAML.
|
||||||
|
---
|
||||||
|
setup.py | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index baf6041..85e0b81 100644
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -11,7 +11,7 @@
|
||||||
|
|
||||||
|
requirements = [
|
||||||
|
"dnspython",
|
||||||
|
- "PyYAML==4.2b1",
|
||||||
|
+ "PyYAML>=4.2b1",
|
||||||
|
]
|
||||||
|
|
||||||
|
test_requirements = [
|
||||||
25
net-mail/onionrouter/files/onionrouter.service
Normal file
25
net-mail/onionrouter/files/onionrouter.service
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=onionrouter
|
||||||
|
After=network.target tor.service
|
||||||
|
Before=postfix.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/bin/onionrouter
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=10s
|
||||||
|
DynamicUser=true
|
||||||
|
PrivateDevices=true
|
||||||
|
PrivateUsers=true
|
||||||
|
ProtectClock=true
|
||||||
|
ProtectControlGroups=true
|
||||||
|
ProtectHome=true
|
||||||
|
ProtectKernelLogs=true
|
||||||
|
ProtectKernelModules=true
|
||||||
|
ProtectKernelTunables=true
|
||||||
|
ProtectHostname=true
|
||||||
|
RestrictRealtime=true
|
||||||
|
MemoryDenyWriteExecute=true
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
|
|
||||||
8
net-mail/onionrouter/metadata.xml
Normal file
8
net-mail/onionrouter/metadata.xml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
|
||||||
|
<pkgmetadata>
|
||||||
|
<maintainer type="person">
|
||||||
|
<email>candrews@gentoo.org</email>
|
||||||
|
<name>Craig Andrews</name>
|
||||||
|
</maintainer>
|
||||||
|
</pkgmetadata>
|
||||||
54
net-mail/onionrouter/onionrouter-0.5.2.ebuild
Normal file
54
net-mail/onionrouter/onionrouter-0.5.2.ebuild
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
# Copyright 1999-2020 Gentoo Authors
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=7
|
||||||
|
|
||||||
|
PYTHON_COMPAT=( python3_{7,8,9} )
|
||||||
|
DISTUTILS_SINGLE_IMPL=1
|
||||||
|
DISTUTILS_USE_SETUPTOOLS=rdepend
|
||||||
|
|
||||||
|
inherit distutils-r1 systemd
|
||||||
|
|
||||||
|
DESCRIPTION=".onion discovery via SRV DNS lookups for use with postfix"
|
||||||
|
HOMEPAGE="https://pypi.org/project/onionrouter/ https://github.com/ehloonion/onionrouter/"
|
||||||
|
SRC_URI="https://pypi.io/packages/source/${PN::1}/${PN}/${P}.tar.gz"
|
||||||
|
IUSE="test"
|
||||||
|
RESTRICT="!test? ( test )"
|
||||||
|
|
||||||
|
LICENSE="GPL-3+"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="~amd64"
|
||||||
|
|
||||||
|
RDEPEND="$(python_gen_cond_dep '
|
||||||
|
dev-python/dnspython[${PYTHON_USEDEP}]
|
||||||
|
dev-python/pyyaml[${PYTHON_USEDEP}]
|
||||||
|
')"
|
||||||
|
BDEPEND="$(python_gen_cond_dep '
|
||||||
|
test? (
|
||||||
|
dev-python/pytest[${PYTHON_USEDEP}]
|
||||||
|
dev-python/wheel[${PYTHON_USEDEP}]
|
||||||
|
)
|
||||||
|
')"
|
||||||
|
|
||||||
|
PATCHES=(
|
||||||
|
"${FILESDIR}/${P}-entrypoint.patch"
|
||||||
|
"${FILESDIR}/${P}-python3.patch"
|
||||||
|
"${FILESDIR}/${P}-pyyaml-version.patch"
|
||||||
|
"${FILESDIR}/${P}-newline.patch"
|
||||||
|
)
|
||||||
|
|
||||||
|
distutils_enable_tests pytest
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# https://github.com/ehloonion/onionrouter/pull/15
|
||||||
|
cp "${FILESDIR}/conftest.py" "${S}" || die
|
||||||
|
|
||||||
|
distutils-r1_src_prepare
|
||||||
|
}
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
distutils-r1_src_install
|
||||||
|
systemd_dounit "${FILESDIR}/${PN}.service"
|
||||||
|
insinto /etc/onionrouter
|
||||||
|
doins "${S}/onionrouter/configs/onionrouter.ini"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user