From owner-freebsd-ports-bugs@FreeBSD.ORG Sat Jul 9 21:30:11 2011 Return-Path: Delivered-To: freebsd-ports-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A683F1065673 for ; Sat, 9 Jul 2011 21:30:11 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 80E778FC0A for ; Sat, 9 Jul 2011 21:30:11 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id p69LUB1B066000 for ; Sat, 9 Jul 2011 21:30:11 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id p69LUB24065996; Sat, 9 Jul 2011 21:30:11 GMT (envelope-from gnats) Resent-Date: Sat, 9 Jul 2011 21:30:11 GMT Resent-Message-Id: <201107092130.p69LUB24065996@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-ports-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Olivier Cochard-Labbe Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E5DAD106564A for ; Sat, 9 Jul 2011 21:24:04 +0000 (UTC) (envelope-from nobody@FreeBSD.org) Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22]) by mx1.freebsd.org (Postfix) with ESMTP id D466A8FC1D for ; Sat, 9 Jul 2011 21:24:04 +0000 (UTC) Received: from red.freebsd.org (localhost [127.0.0.1]) by red.freebsd.org (8.14.4/8.14.4) with ESMTP id p69LO4fQ050320 for ; Sat, 9 Jul 2011 21:24:04 GMT (envelope-from nobody@red.freebsd.org) Received: (from nobody@localhost) by red.freebsd.org (8.14.4/8.14.4/Submit) id p69LO4qi050291; Sat, 9 Jul 2011 21:24:04 GMT (envelope-from nobody) Message-Id: <201107092124.p69LO4qi050291@red.freebsd.org> Date: Sat, 9 Jul 2011 21:24:04 GMT From: Olivier Cochard-Labbe To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-3.1 Cc: Subject: ports/158752: [emulators/gns3] Update to release 0.7.4 X-BeenThere: freebsd-ports-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Ports bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Jul 2011 21:30:11 -0000 >Number: 158752 >Category: ports >Synopsis: [emulators/gns3] Update to release 0.7.4 >Confidential: no >Severity: serious >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Sat Jul 09 21:30:11 UTC 2011 >Closed-Date: >Last-Modified: >Originator: Olivier Cochard-Labbe >Release: 8.2 >Organization: >Environment: FreeBSD d630.bsdrp.net 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Thu Feb 17 02:41:51 UTC 2011 root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 >Description: Here is the update from GNS3 0.7.3 to 0.7.4 and a fix to qemu usage with GNS3 (thanks to nox@) ! Before to update this port, emulators/qemu[-devel] need to be updated (UDP tunnel mode and multicast fix): See nox@ for more information about theses updates. Regards, Olivier >How-To-Repeat: >Fix: Patch attached with submission follows: diff -ruN gns3.old/Makefile gns3/Makefile --- gns3.old/Makefile 2011-07-02 11:19:35.000000000 +0200 +++ gns3/Makefile 2011-07-03 23:49:42.000000000 +0200 @@ -2,12 +2,11 @@ # Date created: 24 may 2009 # Whom: Olivier Cochard-Labbe # -# $FreeBSD: ports/emulators/gns3/Makefile,v 1.11 2011/07/01 17:30:40 nox Exp $ +# $FreeBSD$ # PORTNAME= gns3 -PORTVERSION= 0.7.3 -PORTREVISION= 1 +PORTVERSION= 0.7.4 CATEGORIES= emulators MASTER_SITES= SF/gns-3/GNS3/${PORTVERSION} DISTNAME= GNS3-${PORTVERSION}-src @@ -20,14 +19,15 @@ ${PYTHON_SITELIBDIR}/PyQt4/QtNetwork.so:${PORTSDIR}/net/py-qt4-network \ dynamips:${PORTSDIR}/emulators/dynamips-community \ dynagen:${PORTSDIR}/emulators/dynagen \ - qemu>=0.11:${PORTSDIR}/emulators/qemu + qemu:${PORTSDIR}/emulators/qemu -USE_PYTHON= 2.5+ +USE_PYTHON= 2.6+ USE_PYDISTUTILS= yes PYDISTUTILS_PKGNAME= GNS3 MAN1= gns3.1 LICENSE= GPLv2 + post-install: .if !defined(NO_INSTALL_MANPAGES) ${INSTALL_MAN} ${WRKSRC}/docs/man/gns3.1 ${MANPREFIX}/man/man1 @@ -35,4 +35,12 @@ ${INSTALL_SCRIPT} ${WRKSRC}/qemuwrapper/qemuwrapper.py \ ${PREFIX}/bin/qemuwrapper.py @${CAT} ${PKGMESSAGE} -.include + +.include + +QEMU_GNS3!= qemu -help | ${GREP} -q "net udp" >/dev/null 2>&1 && ${ECHO_CMD} 'yes' || true +. if ${QEMU_GNS3} == "" +IGNORE= must be used with a gns3 patched qemu +. endif + +.include diff -ruN gns3.old/distinfo gns3/distinfo --- gns3.old/distinfo 2011-07-02 11:19:35.000000000 +0200 +++ gns3/distinfo 2011-07-02 11:30:43.000000000 +0200 @@ -1,2 +1,2 @@ -SHA256 (GNS3-0.7.3-src.tar.gz) = 352e8a076d83992269ec4a12fb33ab2431f14f968c0facc0571d7e6dd83521de -SIZE (GNS3-0.7.3-src.tar.gz) = 4418850 +SHA256 (GNS3-0.7.4-src.tar.gz) = 77a2c9b251d199a435ba85936349a1f8b1760df14a2594b68f8c1fee36f9588d +SIZE (GNS3-0.7.4-src.tar.gz) = 4512420 diff -ruN gns3.old/files/patch-Page_PreferencesCapture.py gns3/files/patch-Page_PreferencesCapture.py --- gns3.old/files/patch-Page_PreferencesCapture.py 1970-01-01 01:00:00.000000000 +0100 +++ gns3/files/patch-Page_PreferencesCapture.py 2011-07-03 00:52:36.000000000 +0200 @@ -0,0 +1,11 @@ +--- src/GNS3/Ui/ConfigurationPages/Page_PreferencesCapture.py.orig 2011-07-03 00:10:04.000000000 +0200 ++++ src/GNS3/Ui/ConfigurationPages/Page_PreferencesCapture.py 2011-07-03 00:10:29.000000000 +0200 +@@ -52,7 +52,7 @@ + elif sys.platform.startswith('win'): + self.conf.cap_cmd = unicode("C:\Program Files\Wireshark\wireshark.exe %c") + else: +- self.conf.cap_cmd = unicode("/usr/bin/wireshark %c") ++ self.conf.cap_cmd = unicode("/usr/local/bin/wireshark %c") + + if self.conf.workdir == '': + if os.environ.has_key("TEMP"): diff -ruN gns3.old/files/patch-Page_PreferencesDynamips.py gns3/files/patch-Page_PreferencesDynamips.py --- gns3.old/files/patch-Page_PreferencesDynamips.py 1970-01-01 01:00:00.000000000 +0100 +++ gns3/files/patch-Page_PreferencesDynamips.py 2011-07-03 00:52:46.000000000 +0200 @@ -0,0 +1,13 @@ +--- src/GNS3/Ui/ConfigurationPages/Page_PreferencesDynamips.py.orig 2011-07-03 00:11:46.000000000 +0200 ++++ src/GNS3/Ui/ConfigurationPages/Page_PreferencesDynamips.py 2011-07-03 00:32:42.000000000 +0200 +@@ -55,7 +55,9 @@ + # Default path to dynamips executable + if self.conf.path == '' and sys.platform.startswith('win'): + self.conf.path = unicode('dynamips-wxp.exe') +- ++ else: ++ self.conf.path = unicode('/usr/local/bin/dynamips') ++ + # Default path to working directory + if self.conf.workdir == '': + if os.environ.has_key("TEMP"): diff -ruN gns3.old/files/patch-Page_PreferencesQemu.py gns3/files/patch-Page_PreferencesQemu.py --- gns3.old/files/patch-Page_PreferencesQemu.py 1970-01-01 01:00:00.000000000 +0100 +++ gns3/files/patch-Page_PreferencesQemu.py 2011-07-03 00:52:57.000000000 +0200 @@ -0,0 +1,11 @@ +--- src/GNS3/Ui/ConfigurationPages/Page_PreferencesQemu.py.orig 2011-07-03 00:06:36.000000000 +0200 ++++ src/GNS3/Ui/ConfigurationPages/Page_PreferencesQemu.py 2011-07-03 00:07:26.000000000 +0200 +@@ -97,7 +97,7 @@ + if sys.platform.startswith('win'): + self.conf.qemuwrapper_path = unicode('qemuwrapper.exe') + else: +- path = os.getcwd() + '/qemuwrapper/qemuwrapper.py' ++ path = '/usr/local/bin/qemuwrapper.py' + self.conf.qemuwrapper_path = unicode(path, errors='replace') + + # Default path to working directory diff -ruN gns3.old/files/patch-qemuwrapper.py gns3/files/patch-qemuwrapper.py --- gns3.old/files/patch-qemuwrapper.py 1970-01-01 01:00:00.000000000 +0100 +++ gns3/files/patch-qemuwrapper.py 2011-07-09 23:08:15.000000000 +0200 @@ -0,0 +1,52 @@ +--- qemuwrapper/qemuwrapper.py.orig ++++ qemuwrapper/qemuwrapper.py +@@ -45,6 +45,7 @@ import SocketServer + import time + import random + import pemubin ++import ctypes + + + __author__ = 'Thomas Pani and Jeremy Grossmann' +@@ -118,6 +119,33 @@ class xEMUInstance(object): + def unbase_disk(self): + pass + ++ def preexec(self): ++ # FreeBSD preexec_fn hack to unblock signals in child processes ++ # to work around the bug in this PR: ++ # http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/153167 ++ # inspired by: ++ # http://stackoverflow.com/questions/3791398/how-to-stop-python-from-propagating-signals-to-subprocesses ++ ++ # Get the size of the array used to ++ # represent the signal mask ++ SIGSET_NWORDS = 1024 / (8 * ctypes.sizeof(ctypes.c_uint)) ++ ++ # Define the sigset_t structure ++ class SIGSET(ctypes.Structure): ++ _fields_ = [ ++ ('val', ctypes.c_uint * SIGSET_NWORDS) ++ ] ++ ++ # Create a new sigset_t to mask out SIGINT ++ sigs = (ctypes.c_uint * SIGSET_NWORDS)() ++ mask = SIGSET(sigs) ++ ++ SIG_SETMASK = 3 ++ libc = ctypes.CDLL('libc.so') ++ ++ # Unblock all signals ++ libc.sigprocmask(SIG_SETMASK, ctypes.pointer(mask), 0) ++ + def start(self): + command = self._build_command() + +@@ -125,6 +152,7 @@ class xEMUInstance(object): + try: + self.process = subprocess.Popen(command, + stdin=subprocess.PIPE, ++ preexec_fn=self.preexec, + cwd=self.workdir) + except OSError, e: + print >> sys.stderr, "Unable to start instance", self.name, "of", self.__class__ diff -ruN gns3.old/pkg-message gns3/pkg-message --- gns3.old/pkg-message 2011-07-02 11:19:35.000000000 +0200 +++ gns3/pkg-message 2011-07-03 10:37:24.000000000 +0200 @@ -1,6 +1,5 @@ -=============================================================================== +===================================== GNS3 FreeBSD limitations : -There are some limitations with GNS3 under FreeBSD because qemu port isn't -patched for suppporting PIX/ASA and UDP communications with Dynamips. -=============================================================================== +pemu (PIX emulator) is not available +===================================== diff -ruN gns3.old/pkg-plist gns3/pkg-plist --- gns3.old/pkg-plist 2011-07-02 11:19:35.000000000 +0200 +++ gns3/pkg-plist 2011-07-03 01:20:17.000000000 +0200 @@ -94,6 +94,9 @@ %%PYTHON_SITELIBDIR%%/GNS3/HypervisorManager.py %%PYTHON_SITELIBDIR%%/GNS3/HypervisorManager.pyc %%PYTHON_SITELIBDIR%%/GNS3/HypervisorManager.pyo +%%PYTHON_SITELIBDIR%%/GNS3/IDLEPCDialog.py +%%PYTHON_SITELIBDIR%%/GNS3/IDLEPCDialog.pyc +%%PYTHON_SITELIBDIR%%/GNS3/IDLEPCDialog.pyo %%PYTHON_SITELIBDIR%%/GNS3/IOSDialog.py %%PYTHON_SITELIBDIR%%/GNS3/IOSDialog.pyc %%PYTHON_SITELIBDIR%%/GNS3/IOSDialog.pyo @@ -109,6 +112,7 @@ %%PYTHON_SITELIBDIR%%/GNS3/Langs/Lang_es.qm %%PYTHON_SITELIBDIR%%/GNS3/Langs/Lang_fa.qm %%PYTHON_SITELIBDIR%%/GNS3/Langs/Lang_fr.qm +%%PYTHON_SITELIBDIR%%/GNS3/Langs/Lang_gr.qm %%PYTHON_SITELIBDIR%%/GNS3/Langs/Lang_it.qm %%PYTHON_SITELIBDIR%%/GNS3/Langs/Lang_jp.qm %%PYTHON_SITELIBDIR%%/GNS3/Langs/Lang_kr.qm @@ -357,6 +361,9 @@ %%PYTHON_SITELIBDIR%%/GNS3/Ui/Form_About.py %%PYTHON_SITELIBDIR%%/GNS3/Ui/Form_About.pyc %%PYTHON_SITELIBDIR%%/GNS3/Ui/Form_About.pyo +%%PYTHON_SITELIBDIR%%/GNS3/Ui/Form_IDLEPCDialog.py +%%PYTHON_SITELIBDIR%%/GNS3/Ui/Form_IDLEPCDialog.pyc +%%PYTHON_SITELIBDIR%%/GNS3/Ui/Form_IDLEPCDialog.pyo %%PYTHON_SITELIBDIR%%/GNS3/Ui/Form_IOSDialog.py %%PYTHON_SITELIBDIR%%/GNS3/Ui/Form_IOSDialog.pyc %%PYTHON_SITELIBDIR%%/GNS3/Ui/Form_IOSDialog.pyo >Release-Note: >Audit-Trail: >Unformatted: