summaryrefslogtreecommitdiff
path: root/net-misc/gns3-server
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-05-30 11:44:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-05-30 11:44:06 +0100
commitf516638b7fe9592837389826a6152a7e1b251c54 (patch)
tree8bfecb640b7b6403d7a3d662d923eed630033da7 /net-misc/gns3-server
parent1a61119f9f7b057830e2ce0563f913ec86f282ad (diff)
gentoo resync : 30.05.2020
Diffstat (limited to 'net-misc/gns3-server')
-rw-r--r--net-misc/gns3-server/Manifest7
-rw-r--r--net-misc/gns3-server/files/gns3-server-rmraven.patch194
-rw-r--r--net-misc/gns3-server/gns3-server-2.2.8.ebuild (renamed from net-misc/gns3-server/gns3-server-2.1.21.ebuild)36
-rw-r--r--net-misc/gns3-server/metadata.xml8
4 files changed, 224 insertions, 21 deletions
diff --git a/net-misc/gns3-server/Manifest b/net-misc/gns3-server/Manifest
index fdf1dc403e52..19237ad4d3b7 100644
--- a/net-misc/gns3-server/Manifest
+++ b/net-misc/gns3-server/Manifest
@@ -1,3 +1,4 @@
-DIST gns3-server-2.1.21.tar.gz 1713993 BLAKE2B 719306e05fd86b22b7413a60eb6fccc0d16a25cc3a34850344124433d0871bce5e85b195386615c1eaebf083295775de4031eee93c477bb8bd07078b839b2ee1 SHA512 3aeb7609f0fad3cf239a4de24affb124b5bed4a3af78c6a6e287a1b771e206c476849a04cf4ab731ce4923ca072d66928068fec5720bc0eb81d6819ed63f71c8
-EBUILD gns3-server-2.1.21.ebuild 1847 BLAKE2B 5cdb83591ec5de58891ee16042dc62947e5cdcbe510d19ac23b2242a473aa092fbf0897ac5b110d2f553febe263706ed0ef4538265adb744984ccefff21230cf SHA512 e83d1c9a44ca0ea70547809d04e4021c1ec7190ff5e5ddb9c58e1ed1cfe756016a9c82897239ae4e1c01a18a3d0284b5588c6fda62dc7f3297c091fc96c08c3a
-MISC metadata.xml 562 BLAKE2B ceb6caa8dcb6c506ad0834282075e35a399502c1c4f1c6886223c886d1405f93718439332ede39f1c18ecd169a61af862a128af9ddb6453ef3dce176de9835f2 SHA512 e2113aa60bffff0f9499d300dcd39799f4d096eedd9e2b6212573e4c64bd997d7df1c36c4f68e0d40ac900d59dbec79f44ff34289421b2a9179442e0f06f626c
+AUX gns3-server-rmraven.patch 7946 BLAKE2B 910366f4552ce3984cef20b88d5fb3a6233d02294d4921a068e5175e9b305dc6d60349c9362e6d09a959aa5eef615a1793363e8965e5711f33b15c981a3b192c SHA512 94af9d532ad6c90c23360240ab15f439cbdfbd95c870c76e0f71b5178d8a24058a18be088a98f9e3cc731f186cfb12c5fc501da32b0a514b7d66c98fdc0b58c3
+DIST gns3-server-2.2.8.tar.gz 11248484 BLAKE2B 14843a86c0348b92e9c54af5c966f46249f72ef9aa74fc8cda27f3209d00d2e129df98c75f301d8fe2046fb1c04f3e24e163adbead787fed2c1d364c50228902 SHA512 3394d368c986ce8378739bdbc15359c46bdf787a38e18bae9035653dd6dc6683973bf1b7952137189f57fd83074f3d5ea6040f5d7a1d0503f6cf21d2835cd693
+EBUILD gns3-server-2.2.8.ebuild 2387 BLAKE2B 2210e958dc4dca5fcb290e329c1e6f77bb6a426ede1ef6e204be31904e0833c8c56033eb750bc674e36e54b06041da62b0753d8f71534e0e1b1768a4a29a57f6 SHA512 001cbee2614da65679d8e7c45dd007fc864fe346e90d4c7fbeb6061596a759e8439b54b10353f1bc37e9a81d28e2353d6f16e7fa25fba0b7db243563030e744f
+MISC metadata.xml 438 BLAKE2B ec1fc3f214034f6e467ed725c2972189fbc3598793d19584e2a84aa3f9fb12f566ee137b5bc1eaf2cd4442e21665a0b7cdfba9aaaf03557db0c1cd6bb3d126c7 SHA512 b58e19104628f98516f3cca55dff685ac66e3c96a51ee17a4ccf976a149bead74ac2eeb20b4f81e5da16a83b30af9bd5998a1e131c52709e576955e07fd85035
diff --git a/net-misc/gns3-server/files/gns3-server-rmraven.patch b/net-misc/gns3-server/files/gns3-server-rmraven.patch
new file mode 100644
index 000000000000..612a16aecaee
--- /dev/null
+++ b/net-misc/gns3-server/files/gns3-server-rmraven.patch
@@ -0,0 +1,194 @@
+From c63aad8eca00bca2ec48fcb667bbdfd80a22a7ab Mon Sep 17 00:00:00 2001
+From: grossmj <grossmj@gns3.net>
+Date: Tue, 19 May 2020 15:48:53 +0930
+Subject: [PATCH] Replace Raven by Sentry SDK. Fixes
+ https://github.com/GNS3/gns3-server/issues/1758
+
+---
+ gns3server/crash_report.py | 93 ++++++++++++++++++++------------------
+ gns3server/web/route.py | 2 +-
+ requirements.txt | 3 +-
+ 3 files changed, 53 insertions(+), 45 deletions(-)
+
+diff --git a/gns3server/crash_report.py b/gns3server/crash_report.py
+index 87e22a213..7f92d38e6 100644
+--- a/gns3server/crash_report.py
++++ b/gns3server/crash_report.py
+@@ -15,22 +15,21 @@
+ # You should have received a copy of the GNU General Public License
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
+
++try:
++ import sentry_sdk
++ from sentry_sdk.integrations.aiohttp import AioHttpIntegration
++ SENTRY_SDK_AVAILABLE = True
++except ImportError:
++ # Sentry SDK is not installed with deb package in order to simplify packaging
++ SENTRY_SDK_AVAILABLE = False
++
+ import os
+ import sys
+ import struct
+-import aiohttp
+ import platform
+ import locale
+ import distro
+
+-try:
+- import raven
+- from raven.transport.http import HTTPTransport
+- RAVEN_AVAILABLE = True
+-except ImportError:
+- # raven is not installed with deb package in order to simplify packaging
+- RAVEN_AVAILABLE = False
+-
+ from .version import __version__, __version_info__
+ from .config import Config
+ from .utils.get_resource import get_resource
+@@ -59,48 +58,45 @@ class CrashReport:
+ """
+
+ DSN = "https://dbfb677c73304b1286aef33dfbb749c6:93b9a937d4884426a1b15f37536fcd94@o19455.ingest.sentry.io/38482"
+- if hasattr(sys, "frozen"):
+- cacert = get_resource("cacert.pem")
+- if cacert is not None and os.path.isfile(cacert):
+- DSN += "?ca_certs={}".format(cacert)
+- else:
+- log.warning("The SSL certificate bundle file '{}' could not be found".format(cacert))
+ _instance = None
+
+ def __init__(self):
+- self._client = None
+
+- # We don't want sentry making noise if an error is catched when you don't have internet
++ # We don't want sentry making noise if an error is caught when you don't have internet
+ sentry_errors = logging.getLogger('sentry.errors')
+ sentry_errors.disabled = True
+
+ sentry_uncaught = logging.getLogger('sentry.errors.uncaught')
+ sentry_uncaught.disabled = True
+
+- def capture_exception(self, request=None):
+- if not RAVEN_AVAILABLE:
+- return
+- if os.path.exists(".git"):
+- log.warning("A .git directory exist crash report is turn off for developers")
+- return
+- server_config = Config.instance().get_section_config("Server")
+- if server_config.getboolean("report_errors"):
+- if self._client is None:
+- self._client = raven.Client(CrashReport.DSN, release=__version__, raise_send_errors=True, transport=HTTPTransport)
+- if request is not None:
+- self._client.http_context({
+- "method": request.method,
+- "url": request.path,
+- "data": request.json,
+- })
+-
+- context = {
++ if SENTRY_SDK_AVAILABLE:
++ cacert = None
++ if hasattr(sys, "frozen"):
++ cacert_resource = get_resource("cacert.pem")
++ if cacert_resource is not None and os.path.isfile(cacert_resource):
++ cacert = cacert_resource
++ else:
++ log.error("The SSL certificate bundle file '{}' could not be found".format(cacert_resource))
++
++ sentry_sdk.init(dsn=CrashReport.DSN,
++ release=__version__,
++ ca_certs=cacert,
++ integrations=[AioHttpIntegration()])
++
++ tags = {
+ "os:name": platform.system(),
+ "os:release": platform.release(),
+ "os:win_32": " ".join(platform.win32_ver()),
+ "os:mac": "{} {}".format(platform.mac_ver()[0], platform.mac_ver()[2]),
+ "os:linux": " ".join(distro.linux_distribution()),
+- "aiohttp:version": aiohttp.__version__,
++
++ }
++
++ with sentry_sdk.configure_scope() as scope:
++ for key, value in tags.items():
++ scope.set_tag(key, value)
++
++ extra_context = {
+ "python:version": "{}.{}.{}".format(sys.version_info[0],
+ sys.version_info[1],
+ sys.version_info[2]),
+@@ -113,8 +109,8 @@ def capture_exception(self, request=None):
+ # add locale information
+ try:
+ language, encoding = locale.getlocale()
+- context["locale:language"] = language
+- context["locale:encoding"] = encoding
++ extra_context["locale:language"] = language
++ extra_context["locale:encoding"] = encoding
+ except ValueError:
+ pass
+
+@@ -124,17 +120,28 @@ def capture_exception(self, request=None):
+ if os.path.isfile(gns3vm_version):
+ try:
+ with open(gns3vm_version) as fd:
+- context["gns3vm:version"] = fd.readline().strip()
++ extra_context["gns3vm:version"] = fd.readline().strip()
+ except OSError:
+ pass
+
+- self._client.tags_context(context)
++ with sentry_sdk.configure_scope() as scope:
++ for key, value in extra_context.items():
++ scope.set_extra(key, value)
++
++ def capture_exception(self):
++ if not SENTRY_SDK_AVAILABLE:
++ return
++ if os.path.exists(".git"):
++ log.warning(".git directory detected, crash reporting is turned off for developers.")
++ return
++ server_config = Config.instance().get_section_config("Server")
++ if server_config.getboolean("report_errors"):
++
+ try:
+- report = self._client.captureException()
++ sentry_sdk.capture_exception()
++ log.info("Crash report sent with event ID: {}".format(sentry_sdk.last_event_id()))
+ except Exception as e:
+ log.error("Can't send crash report to Sentry: {}".format(e))
+- return
+- log.info("Crash report sent with event ID: {}".format(self._client.get_ident(report)))
+
+ @classmethod
+ def instance(cls):
+diff --git a/gns3server/web/route.py b/gns3server/web/route.py
+index d1275250d..c70dbbc3a 100644
+--- a/gns3server/web/route.py
++++ b/gns3server/web/route.py
+@@ -242,7 +242,7 @@ async def control_schema(request):
+ log.error("Uncaught exception detected: {type}".format(type=type(e)), exc_info=1)
+ response = Response(request=request, route=route)
+ response.set_status(500)
+- CrashReport.instance().capture_exception(request)
++ CrashReport.instance().capture_exception()
+ exc_type, exc_value, exc_tb = sys.exc_info()
+ lines = traceback.format_exception(exc_type, exc_value, exc_tb)
+ if api_version is not None:
+diff --git a/requirements.txt b/requirements.txt
+index 57fbb7938..0af9e0d68 100644
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -4,9 +4,10 @@ jsonschema==2.6.0; python_version < '3.8' # pyup: ignore
+ aiohttp==3.6.2
+ aiohttp-cors==0.7.0
+ aiofiles==0.4.0
++aiocontextvars==0.2.2
+ async_generator>=1.10
+ Jinja2>=2.7.3
+-raven>=5.23.0
++sentry-sdk>=0.14.4
+ psutil==5.6.6
+ async-timeout==3.0.1
+ distro>=1.3.0
diff --git a/net-misc/gns3-server/gns3-server-2.1.21.ebuild b/net-misc/gns3-server/gns3-server-2.2.8.ebuild
index 473d48502085..ed01d69a2653 100644
--- a/net-misc/gns3-server/gns3-server-2.1.21.ebuild
+++ b/net-misc/gns3-server/gns3-server-2.2.8.ebuild
@@ -2,12 +2,12 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PYTHON_COMPAT=( python3_6 )
+PYTHON_COMPAT=( python3_{7,8} )
inherit distutils-r1
DESCRIPTION="GNS3 server to asynchronously manage emulators"
-HOMEPAGE="http://www.gns3.net/"
+HOMEPAGE="https://www.gns3.net/"
SRC_URI="https://github.com/GNS3/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
LICENSE="GPL-3+"
@@ -15,29 +15,41 @@ SLOT="0"
KEYWORDS="~amd64 ~x86"
RDEPEND="
- >=dev-python/aiohttp-2.3.3[${PYTHON_USEDEP}]
- <dev-python/aiohttp-2.4.0[${PYTHON_USEDEP}]
- >=dev-python/aiohttp-cors-0.6.0[${PYTHON_USEDEP}]
- sys-apps/busybox
- <dev-python/async_timeout-3.0.0[${PYTHON_USEDEP}]
>=app-emulation/dynamips-0.2.18
+ >=dev-python/aiofiles-0.4.0[${PYTHON_USEDEP}]
+ >=dev-python/aiohttp-3.6.2[${PYTHON_USEDEP}]
+ >=dev-python/aiohttp-cors-0.7.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/async_generator-1.10[${PYTHON_USEDEP}]
+ >=dev-python/async_timeout-3.0.1[${PYTHON_USEDEP}]
>=dev-python/jinja-2.7.3[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-2.6.0[${PYTHON_USEDEP}]
- dev-python/prompt_toolkit[${PYTHON_USEDEP}]
- >=dev-python/psutil-3.0.0[${PYTHON_USEDEP}]
- >=dev-python/python-zipstream-1.1.4[${PYTHON_USEDEP}]
- >=dev-python/raven-5.23.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '>=dev-python/jsonschema-3.2.0:=[${PYTHON_USEDEP}]' 'python3_8')
+ $(python_gen_cond_dep '<=dev-python/jsonschema-2.6.0:=[${PYTHON_USEDEP}]' 'python3_7')
+ >=dev-python/psutil-5.7.0[${PYTHON_USEDEP}]
+ dev-python/py-cpuinfo[${PYTHON_USEDEP}]
+ >=dev-python/sentry-sdk-0.14.4[${PYTHON_USEDEP}]
+ >=dev-python/yarl-1.4.2[${PYTHON_USEDEP}]
>=net-misc/ubridge-0.9.14
"
DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+PATCHES=( "${FILESDIR}/gns3-server-rmraven.patch" )
+
src_prepare() {
default
+ # newer psutils is fine
+ sed -i -e '/psutil==5.6.6/d' requirements.txt || die "fixing requirements failed"
+
+ # We don't support <py3.7
+ sed -i -e '/aiocontextvars==0.2.2/d' requirements.txt || die "fixing requirements failed"
+ sed -i -e '/yarl==1.3.0/d' requirements.txt || die "fixing requirements failed 2"
+
#Remove Pre-built busybox binary
rm gns3server/compute/docker/resources/bin/busybox || die
+
# Package installs 'tests' package which is forbidden
rm -rf tests || die
+ eapply_user
}
python_install() {
diff --git a/net-misc/gns3-server/metadata.xml b/net-misc/gns3-server/metadata.xml
index e4aa7df0de5a..09439c8762b5 100644
--- a/net-misc/gns3-server/metadata.xml
+++ b/net-misc/gns3-server/metadata.xml
@@ -2,12 +2,8 @@
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>onigino@protonmail.com</email>
- <name>Gino McCarty</name>
- </maintainer>
- <maintainer type="project">
- <email>proxy-maint@gentoo.org</email>
- <name>Proxy Maintainers</name>
+ <email>bman@gentoo.org</email>
+ <name>Aaron Bauman</name>
</maintainer>
<upstream>
<remote-id type="sourceforge">gns-3</remote-id>