summaryrefslogtreecommitdiff
path: root/net-misc/gns3-gui
diff options
context:
space:
mode:
Diffstat (limited to 'net-misc/gns3-gui')
-rw-r--r--net-misc/gns3-gui/Manifest7
-rw-r--r--net-misc/gns3-gui/files/gns3-gui-rmraven.patch182
-rw-r--r--net-misc/gns3-gui/gns3-gui-2.1.21.ebuild34
-rw-r--r--net-misc/gns3-gui/gns3-gui-2.2.8.ebuild57
-rw-r--r--net-misc/gns3-gui/metadata.xml10
5 files changed, 247 insertions, 43 deletions
diff --git a/net-misc/gns3-gui/Manifest b/net-misc/gns3-gui/Manifest
index 32e4185de771..151ac11c2543 100644
--- a/net-misc/gns3-gui/Manifest
+++ b/net-misc/gns3-gui/Manifest
@@ -1,3 +1,4 @@
-DIST gns3-gui-2.1.21.tar.gz 4845512 BLAKE2B 93af250719a0aafe8645926552c61d43152e5a5620d42b4d73cd58d597b3280d11935043771f15cf04e5d116f6740d929e04c27b1af6732d65b7c6e36313ed3c SHA512 b9b03c59064214323fe7375256075c56368747c8cd273bea41791b101ea7d6b877443e81dd57f13faf4b4bdc6de558e98648770de4734b1edd1c82911f2fcb9b
-EBUILD gns3-gui-2.1.21.ebuild 911 BLAKE2B 9295057c120516022ed4e9fd03e66eb0eb82c754f6fc4d8da8028a5c180a3765833a65b6814873b5394ad0da6659300a4979cf653269e04af371a762d170cffc SHA512 b74a0ab797c8a2b9959db94d301e0bd06b7b3c12aacf7f4e6d98a41616c5ff194d2e3f203f8517e011c75c61ba8eaf8ad5ea387ec432a687c69a52fdee0a40f2
-MISC metadata.xml 442 BLAKE2B e9b21bbc318820cdb4df0b3d8a4a0b261d4309fa62987123907c0b4cb387dca9afa8bc405cde987c3093aefd393f1867f24c7020e4b9001a373a18bf6e838a46 SHA512 3ab532db9d5d3ff339cbc80f867a48785386292423bc7a47ffc99451da79b1ed64ed7a9444915248e876e6250cc185b866097a5e94caf8a8b6e4a568b3ed4a16
+AUX gns3-gui-rmraven.patch 7920 BLAKE2B d6264938eae55de6754c187f63bbb96707e8e0f68f1aa7153d8101aec5d81e46d3ad145a16f1694b358467c6a4586478c21112126b797e4b76e3ab549636dfdd SHA512 a47c9445caf185624aaec8834ed0884b588b07c34481e09b3f0be3ae5a9643f0a925eefb816d03617c072fe8d239307376715c6028345b6f498a98a41c3bcc51
+DIST gns3-gui-2.2.8.tar.gz 5237129 BLAKE2B ce72219a1d0201f596c20b0988ab81f280889d3eb4717898da5d1a3c52a248e8f1d020d83b900309e623fadb758e67a91baaac9d61d75e72b96f4144ac5101fb SHA512 28b9f6f16506f206f64831160d95687525b6709d9d0d84623763e46c3c9b2e138e3f12844619bbad00491677818a7e28da4f4ea9358d063c3427db16e62775ca
+EBUILD gns3-gui-2.2.8.ebuild 1482 BLAKE2B 2c26d13df5bb66e112a4bab8d20a13db417029682c4cfebf2f736f65b1c61404834c19197c18789f87f2edc81a25d887c8ef07d26edc3df8c027dd5aec5b0e17 SHA512 c65c0214d019ed7c28bc64dfa71326d2edf4bf28f0b59a91bf6b6e3ab1fe1948ff8ea68332aaa6849f53cff4488e507532cb35b23d7aa374447b15c3c05923f8
+MISC metadata.xml 438 BLAKE2B ec1fc3f214034f6e467ed725c2972189fbc3598793d19584e2a84aa3f9fb12f566ee137b5bc1eaf2cd4442e21665a0b7cdfba9aaaf03557db0c1cd6bb3d126c7 SHA512 b58e19104628f98516f3cca55dff685ac66e3c96a51ee17a4ccf976a149bead74ac2eeb20b4f81e5da16a83b30af9bd5998a1e131c52709e576955e07fd85035
diff --git a/net-misc/gns3-gui/files/gns3-gui-rmraven.patch b/net-misc/gns3-gui/files/gns3-gui-rmraven.patch
new file mode 100644
index 000000000000..9a8be4e62495
--- /dev/null
+++ b/net-misc/gns3-gui/files/gns3-gui-rmraven.patch
@@ -0,0 +1,182 @@
+From 2ea1946c0f83672f5289edcce207a8d2de03cc43 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
+
+---
+ gns3/crash_report.py | 111 +++++++++++++++++++++++++------------------
+ requirements.txt | 2 +-
+ 2 files changed, 66 insertions(+), 47 deletions(-)
+
+diff --git a/gns3/crash_report.py b/gns3/crash_report.py
+index a6a555fd5..dfbb9fc46 100644
+--- a/gns3/crash_report.py
++++ b/gns3/crash_report.py
+@@ -23,12 +23,11 @@
+ import distro
+
+ try:
+- import raven
+- from raven.transport.http import HTTPTransport
+- RAVEN_AVAILABLE = True
++ import sentry_sdk
++ SENTRY_SDK_AVAILABLE = True
+ except ImportError:
+- # raven is not installed with deb package in order to simplify packaging
+- RAVEN_AVAILABLE = False
++ # Sentry SDK is not installed with deb package in order to simplify packaging
++ SENTRY_SDK_AVAILABLE = False
+
+ from .utils.get_resource import get_resource
+ from .version import __version__, __version_info__
+@@ -69,49 +68,50 @@ def __init__(self):
+ sentry_uncaught = logging.getLogger('sentry.errors.uncaught')
+ sentry_uncaught.disabled = True
+
+- def captureException(self, exception, value, tb):
+- from .local_server import LocalServer
+- from .local_config import LocalConfig
+- from .controller import Controller
+- from .compute_manager import ComputeManager
+-
+- local_server = LocalServer.instance().localServerSettings()
+- if local_server["report_errors"]:
+- if not RAVEN_AVAILABLE:
+- return
+-
+- if os.path.exists(LocalConfig.instance().runAsRootPath()):
+- log.warning("User has run application as root. Crash reports are disabled.")
+- sys.exit(1)
+- return
++ 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))
+
+- if os.path.exists(".git"):
+- log.warning("A .git directory exist crash report is turn off for developers. Instant exit")
+- sys.exit(1)
+- return
++ sentry_sdk.init(dsn=CrashReport.DSN,
++ release=__version__,
++ ca_certs=cacert)
+
+- if hasattr(exception, "fingerprint"):
+- client = raven.Client(CrashReport.DSN, release=__version__, fingerprint=['{{ default }}', exception.fingerprint], transport=HTTPTransport)
+- else:
+- client = raven.Client(CrashReport.DSN, release=__version__, transport=HTTPTransport)
+- context = {
++ 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()),
++
++ }
++
++ self._add_qt_information(tags)
++
++ 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]),
+ "python:bit": struct.calcsize("P") * 8,
+ "python:encoding": sys.getdefaultencoding(),
+- "python:frozen": "{}".format(hasattr(sys, "frozen")),
++ "python:frozen": "{}".format(hasattr(sys, "frozen"))
+ }
+
+ # extra controller and compute information
+- extra_context = {"controller:version": Controller.instance().version(),
+- "controller:host": Controller.instance().host(),
+- "controller:connected": Controller.instance().connected()}
++ from .controller import Controller
++ from .compute_manager import ComputeManager
++ extra_context["controller:version"] = Controller.instance().version()
++ extra_context["controller:host"] = Controller.instance().host()
++ extra_context["controller:connected"] = Controller.instance().connected()
++
+ for index, compute in enumerate(ComputeManager.instance().computes()):
+ extra_context["compute{}:id".format(index)] = compute.id()
+ extra_context["compute{}:name".format(index)] = compute.name(),
+@@ -120,27 +120,46 @@ def captureException(self, exception, value, tb):
+ extra_context["compute{}:platform".format(index)] = compute.capabilities().get("platform")
+ extra_context["compute{}:version".format(index)] = compute.capabilities().get("version")
+
+- context = self._add_qt_information(context)
+- client.tags_context(context)
+- client.extra_context(extra_context)
++ with sentry_sdk.configure_scope() as scope:
++ for key, value in extra_context.items():
++ scope.set_extra(key, value)
++
++ def captureException(self, exception, value, tb):
++ from .local_server import LocalServer
++ from .local_config import LocalConfig
++
++ local_server = LocalServer.instance().localServerSettings()
++ if local_server["report_errors"]:
++ if not SENTRY_SDK_AVAILABLE:
++ return
++
++ if os.path.exists(LocalConfig.instance().runAsRootPath()):
++ log.warning("User is running application as root. Crash reports disabled.")
++ sys.exit(1)
++ return
++
++ if os.path.exists(".git"):
++ log.warning("A .git directory exists, crash reporting is turned off for developers.")
++ sys.exit(1)
++ return
++
+ try:
+- report = client.captureException((exception, value, tb))
++ sentry_sdk.capture_exception((exception, value, tb))
++ 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.debug("Crash report sent with event ID: {}".format(client.get_ident(report)))
+
+- def _add_qt_information(self, context):
++ def _add_qt_information(self, tags):
++
+ try:
+ from .qt import QtCore
+ from .qt import sip
+ except ImportError:
+- return context
+- context["psutil:version"] = psutil.__version__
+- context["pyqt:version"] = QtCore.PYQT_VERSION_STR
+- context["qt:version"] = QtCore.QT_VERSION_STR
+- context["sip:version"] = sip.SIP_VERSION_STR
+- return context
++ return tags
++ tags["pyqt:version"] = QtCore.PYQT_VERSION_STR
++ tags["qt:version"] = QtCore.QT_VERSION_STR
++ tags["sip:version"] = sip.SIP_VERSION_STR
++ return tags
+
+ @classmethod
+ def instance(cls):
+diff --git a/requirements.txt b/requirements.txt
+index 99e803f1b..abd6cc7c9 100644
+--- a/requirements.txt
++++ b/requirements.txt
+@@ -1,5 +1,5 @@
+ jsonschema==3.2.0; python_version >= '3.8' # pyup: ignore
+ jsonschema==2.6.0; python_version < '3.8' # pyup: ignore
+-raven>=5.23.0
++sentry-sdk>=0.14.4
+ psutil==5.6.6
+ distro>=1.3.0
diff --git a/net-misc/gns3-gui/gns3-gui-2.1.21.ebuild b/net-misc/gns3-gui/gns3-gui-2.1.21.ebuild
deleted file mode 100644
index 941d10b41d49..000000000000
--- a/net-misc/gns3-gui/gns3-gui-2.1.21.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_6 )
-
-inherit distutils-r1 desktop
-
-DESCRIPTION="Graphical Network Simulator"
-HOMEPAGE="http://www.gns3.net/"
-SRC_URI="https://github.com/GNS3/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="GPL-3+"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-#net-misc/gns3-server version should always match gns3-gui version
-
-RDEPEND="
- >=dev-python/jsonschema-2.6.0[${PYTHON_USEDEP}]
- >=dev-python/raven-5.23.0[${PYTHON_USEDEP}]
- >=dev-python/psutil-2.2.1[${PYTHON_USEDEP}]
- ~net-misc/gns3-server-${PV}[${PYTHON_USEDEP}]
- dev-python/PyQt5[gui,network,svg,websockets,widgets,${PYTHON_USEDEP}]
-"
-DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
-
-python_install_all() {
- distutils-r1_python_install_all
-
- doicon "resources/images/gns3.ico"
- make_desktop_entry "gns3" "GNS3" "gns3.ico" "Utility"
-}
diff --git a/net-misc/gns3-gui/gns3-gui-2.2.8.ebuild b/net-misc/gns3-gui/gns3-gui-2.2.8.ebuild
new file mode 100644
index 000000000000..5494cff0bb34
--- /dev/null
+++ b/net-misc/gns3-gui/gns3-gui-2.2.8.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7,8} )
+
+inherit distutils-r1 desktop xdg
+
+DESCRIPTION="Graphical Network Simulator"
+HOMEPAGE="https://www.gns3.net/"
+SRC_URI="https://github.com/GNS3/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+#net-misc/gns3-server version should always match gns3-gui version
+RDEPEND="
+ >=dev-python/distro-1.3.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.6.0[${PYTHON_USEDEP}]
+ >=dev-python/sentry-sdk-0.14.4[${PYTHON_USEDEP}]
+ ~net-misc/gns3-server-${PV}[${PYTHON_USEDEP}]
+ dev-python/PyQt5[gui,network,svg,websockets,widgets,${PYTHON_USEDEP}]
+"
+
+DISTUTILS_USE_SETUPTOOLS=bdepend
+
+PATCHES=( "${FILESDIR}/gns3-gui-rmraven.patch" )
+
+src_prepare() {
+ default
+ # newer psutils is fine
+ sed -i -e '/psutil==5.6.6/d' requirements.txt || die "fixing requirements failed"
+ eapply_user
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ doicon "resources/images/gns3.ico"
+ make_desktop_entry "gns3" "GNS3" "gns3.ico" "Utility"
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+ xdg_mimeinfo_database_update
+ xdg_icon_cache_update
+}
diff --git a/net-misc/gns3-gui/metadata.xml b/net-misc/gns3-gui/metadata.xml
index 019d76c33613..09439c8762b5 100644
--- a/net-misc/gns3-gui/metadata.xml
+++ b/net-misc/gns3-gui/metadata.xml
@@ -2,14 +2,12 @@
<!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>
+ <remote-id type="github">GNS3/gns3-server</remote-id>
+ <bugs-to>https://github.com/GNS3/gns3-server/issues</bugs-to>
</upstream>
</pkgmetadata>