diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2021-01-22 20:28:19 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2021-01-22 20:28:19 +0000 |
commit | abaa75b10f899ada8dd05b23cc03205064394bc6 (patch) | |
tree | eca3dd248b73b92013cba00a0fcc1edf2696e19a /net-misc/gns3-server | |
parent | 24fd814c326e282c4321965c31f341dad77e270d (diff) |
gentoo resync : 22.01.2021
Diffstat (limited to 'net-misc/gns3-server')
-rw-r--r-- | net-misc/gns3-server/Manifest | 3 | ||||
-rw-r--r-- | net-misc/gns3-server/files/gns3-server-rmraven.patch | 194 | ||||
-rw-r--r-- | net-misc/gns3-server/gns3-server-2.2.17.ebuild | 67 |
3 files changed, 69 insertions, 195 deletions
diff --git a/net-misc/gns3-server/Manifest b/net-misc/gns3-server/Manifest index 66749eb9764e..f1e78f21d914 100644 --- a/net-misc/gns3-server/Manifest +++ b/net-misc/gns3-server/Manifest @@ -1,4 +1,5 @@ -AUX gns3-server-rmraven.patch 7946 BLAKE2B 910366f4552ce3984cef20b88d5fb3a6233d02294d4921a068e5175e9b305dc6d60349c9362e6d09a959aa5eef615a1793363e8965e5711f33b15c981a3b192c SHA512 94af9d532ad6c90c23360240ab15f439cbdfbd95c870c76e0f71b5178d8a24058a18be088a98f9e3cc731f186cfb12c5fc501da32b0a514b7d66c98fdc0b58c3 DIST gns3-server-2.2.11.tar.gz 7588877 BLAKE2B 429eb23e44ca0f3f68abba6fa437b80c12fb1e70c02e1c81ce2051a9d9b78f31f6618397dee07e307589c3f9f0ad55a26f22084ffa01b7c42b730bd505979c2e SHA512 6e11c6ae10942bac9f82dc3b5e0bee04c8afbbae8ca6b5d20e42495c15010ba17cddbac83c7c188a565ce8b24ed58ac7c80b4eb5a8f29f2612dce9d0dfa65a07 +DIST gns3-server-2.2.17.tar.gz 8980894 BLAKE2B 0f3698adeb7cf9daede05c0281a2c324bad0952a9e5774e11ebb9af342da020bac8b7acb05a938cd8df5a8934bed6bd2b56ee0187ea28b8356376e1f1396e944 SHA512 233db2e3bb3d6a071ce3ce24b8c86049f2707863f92ca67c4fdfb763bbdc98d3b78a1c2156d2d05548ee10f84394ab333f1c3404723091dc4e7edeb3df5a4a57 EBUILD gns3-server-2.2.11.ebuild 1990 BLAKE2B 985f6510da23c8924af22a73faf0c7764b40c05b37964c21eef33ddf0a4546115ebefff79923ae49ff404e0e37480aec4e9017411f0f573884f4a2f2f756da62 SHA512 a0060db7bd91bc00d0313e2041e038d0999e16e542dd016f78e1b271107ca74d360f09b32d8488b45dfd24ac04c04b08cf86ea6088989ffbcdac1a16efbb9cc6 +EBUILD gns3-server-2.2.17.ebuild 2141 BLAKE2B bdf09970f3219a647417c16be639efc24db650957ecc8d1d33b0a782aa428f1499faa34e9e3147fd1ee0359937da6d0cd8714e849eb29246678e8dd4f306bc43 SHA512 9adc66b53022286421d46f591ef79eefb1b186376a5cee802c41b1a89e770e0ac7972c1b748e570da4dedb42473f6d89d032e698c080ff8f96e7fa3b29775507 MISC metadata.xml 567 BLAKE2B 91ca81f4e547aaf3098d74655d41ba9c340fd642268ac88cf28de6f4b782826d020a7b17cbad9a3dd17f27c573a632a006e23d114b0a049382075b4e71f125f4 SHA512 475a15519d9f8f3a2c8c6aed6ae780895b1f2ead2a659058f609ee1de19cac3e75b37f5f159bc8b6b0ce345ea64fee7d515ad1977fa1072aed73fe0b55c980ee diff --git a/net-misc/gns3-server/files/gns3-server-rmraven.patch b/net-misc/gns3-server/files/gns3-server-rmraven.patch deleted file mode 100644 index 612a16aecaee..000000000000 --- a/net-misc/gns3-server/files/gns3-server-rmraven.patch +++ /dev/null @@ -1,194 +0,0 @@ -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.2.17.ebuild b/net-misc/gns3-server/gns3-server-2.2.17.ebuild new file mode 100644 index 000000000000..b014c21ebf68 --- /dev/null +++ b/net-misc/gns3-server/gns3-server-2.2.17.ebuild @@ -0,0 +1,67 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7,8} ) +DISTUTILS_USE_SETUPTOOLS=rdepend + +inherit distutils-r1 systemd optfeature + +DESCRIPTION="GNS3 server to asynchronously manage emulators" +HOMEPAGE="https://www.gns3.com/ https://github.com/GNS3/gns3-server" +SRC_URI="https://github.com/GNS3/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND=" + >=app-emulation/dynamips-0.2.18 + >=dev-python/aiofiles-0.5.0[${PYTHON_USEDEP}] + >=dev-python/aiohttp-3.6.2[${PYTHON_USEDEP}] + >=dev-python/aiohttp-cors-0.7.0[${PYTHON_USEDEP}] + >=dev-python/async_timeout-3.0.1[${PYTHON_USEDEP}] + >=dev-python/distro-1.3.0[${PYTHON_USEDEP}] + >=dev-python/jinja-2.7.3[${PYTHON_USEDEP}] + >=dev-python/jsonschema-3.2.0[${PYTHON_USEDEP}] + >=dev-python/psutil-5.7.0[${PYTHON_USEDEP}] + >=dev-python/py-cpuinfo-7.0.0[${PYTHON_USEDEP}] + >=dev-python/sentry-sdk-0.14.4[${PYTHON_USEDEP}] + >=net-misc/ubridge-0.9.14 +" + +src_prepare() { + default + + # newer python packages are fine + sed -i -e 's/[<>=].*//' requirements.txt || die "fixing requirements failed" + + # Remove Pre-built busybox binary + rm gns3server/compute/docker/resources/bin/busybox || die + + # Package installs 'tests' package which is forbidden + rm -r tests || die +} + +python_install() { + distutils-r1_python_install + + systemd_dounit init/gns3.service.systemd + + mkdir -p "${D}$(python_get_sitedir)/gns3server/compute/docker/resources/bin" || die + ln -s /bin/busybox "${D}$(python_get_sitedir)/gns3server/compute/docker/resources/bin/busybox" || die +} + +pkg_postinst() { + elog "net-misc/gns3-server has several optional packages that must be merged manually for additional functionality." + elog "" + elog "The following is a list of packages that can be added:" + optfeature "QEMU Support" "app-emulation/qemu" + optfeature "Virtualbox Support" "app-emulation/virtualbox" + optfeature "Docker Support" "app-emulation/docker" + optfeature "Wireshark Support" "net-analyzer/wireshark" + elog "" + elog "The following packages are currently unsupported:" + elog "iouyap and vpcs" +} |