From owner-freebsd-ports-bugs@FreeBSD.ORG Sat Jun 20 12:00:17 2009 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 B48541065670 for ; Sat, 20 Jun 2009 12:00:17 +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 7B59D8FC1D for ; Sat, 20 Jun 2009 12:00:17 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.3/8.14.3) with ESMTP id n5KC0HOn078424 for ; Sat, 20 Jun 2009 12:00:17 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.3/8.14.3/Submit) id n5KC0H9P078423; Sat, 20 Jun 2009 12:00:17 GMT (envelope-from gnats) Resent-Date: Sat, 20 Jun 2009 12:00:17 GMT Resent-Message-Id: <200906201200.n5KC0H9P078423@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, Ulrich Spoerlein Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1ED091065670; Sat, 20 Jun 2009 11:53:21 +0000 (UTC) (envelope-from uspoerlein@gmail.com) Received: from acme.spoerlein.net (cl-43.dus-01.de.sixxs.net [IPv6:2a01:198:200:2a::2]) by mx1.freebsd.org (Postfix) with ESMTP id 733E78FC15; Sat, 20 Jun 2009 11:53:20 +0000 (UTC) (envelope-from uspoerlein@gmail.com) Received: from roadrunner.spoerlein.net (e180176007.adsl.alicedsl.de [85.180.176.7]) by acme.spoerlein.net (8.14.3/8.14.3) with ESMTP id n5KBrII8092755 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sat, 20 Jun 2009 13:53:19 +0200 (CEST) (envelope-from uspoerlein@gmail.com) Received: from roadrunner.spoerlein.net (localhost [127.0.0.1]) by roadrunner.spoerlein.net (8.14.3/8.14.3) with ESMTP id n5KBrCfA004588 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 20 Jun 2009 13:53:12 +0200 (CEST) (envelope-from uqs@roadrunner.spoerlein.net) Received: (from uqs@localhost) by roadrunner.spoerlein.net (8.14.3/8.14.3/Submit) id n5KBrBQS004587; Sat, 20 Jun 2009 13:53:11 +0200 (CEST) (envelope-from uqs) Message-Id: <200906201153.n5KBrBQS004587@roadrunner.spoerlein.net> Date: Sat, 20 Jun 2009 13:53:11 +0200 (CEST) From: Ulrich Spoerlein To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: kde@FreeBSD.org Subject: ports/135860: [PATCH] x11/kdebase3: Unbreak on -CURRENT 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, 20 Jun 2009 12:00:18 -0000 >Number: 135860 >Category: ports >Synopsis: [PATCH] x11/kdebase3: Unbreak on -CURRENT >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sat Jun 20 12:00:16 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Ulrich Spoerlein >Release: FreeBSD 7.2-STABLE i386 >Organization: >Environment: >Description: - Port over libusb20 changes from kdebase4 to kdebase3 to make it compile on CURRENT Added file(s): - files/extrapatch-libusb20 Removed file(s): - files/patch-kcontrol-usbview-usbdevices.h Generated with FreeBSD Port Tools 0.77 >How-To-Repeat: >Fix: --- .patch begins here --- Index: Makefile =================================================================== RCS file: /tank/ncvs/ports/x11/kdebase3/Makefile,v retrieving revision 1.213 diff -u -p -u -r1.213 Makefile --- Makefile 9 Mar 2009 17:15:42 -0000 1.213 +++ Makefile 20 Jun 2009 11:51:40 -0000 @@ -60,6 +60,8 @@ OPTIONS= ARTSWRAPPER "Suid wrapper for a .if ${OSVERSION} < 800069 LIB_DEPENDS+= usb-0.1:${PORTSDIR}/devel/libusb +.else +EXTRA_PATCHES+= ${FILESDIR}/extrapatch-libusb20 .endif .if !defined(WITHOUT_ARTSWRAPPER) @@ -71,7 +73,7 @@ RUN_DEPENDS+= htdig:${PORTSDIR}/textproc .endif .if !defined(WITHOUT_HAL) -EXTRA_PATCHES= ${FILESDIR}/extrapatch-kioslave_media_mediamanager-halbackend.cpp \ +EXTRA_PATCHES+= ${FILESDIR}/extrapatch-kioslave_media_mediamanager-halbackend.cpp \ ${FILESDIR}/extrapatch-kioslave_media_mediamanager-halbackend.h LIB_DEPENDS+= dbus-qt-1.1:${PORTSDIR}/devel/dbus-qt3 \ hal.1:${PORTSDIR}/sysutils/hal Index: files/extrapatch-libusb20 =================================================================== RCS file: files/extrapatch-libusb20 diff -N files/extrapatch-libusb20 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/extrapatch-libusb20 20 Jun 2009 11:51:40 -0000 @@ -0,0 +1,166 @@ +--- usbdevices.h.orig 2006-07-22 10:15:22.000000000 +0200 ++++ usbdevices.h 2009-06-20 13:19:42.000000000 +0200 +@@ -17,7 +17,9 @@ + #include + + #ifdef Q_OS_FREEBSD +-#include ++#include ++#include ++#include + #endif + + class USBDB; +@@ -66,7 +68,7 @@ + unsigned int _vendorID, _prodID, _revMajor, _revMinor; + + #ifdef Q_OS_FREEBSD +- void collectData( int fd, int level, usb_device_info &di, int parent ); ++ void collectData(struct libusb20_backend *, struct libusb20_device *); + QStringList _devnodes; + #endif + }; +--- usbdevices.cpp.orig 2009-06-20 13:19:47.000000000 +0200 ++++ usbdevices.cpp 2009-06-20 13:38:34.000000000 +0200 +@@ -318,17 +318,25 @@ + + /* + * FreeBSD support by Markus Brueffer ++ * libusb20 support by Hans Petter Selasky + * + * Basic idea and some code fragments were taken from FreeBSD's usbdevs(8), + * originally developed for NetBSD, so this code should work with no or + * only little modification on NetBSD. + */ + +-void USBDevice::collectData( int fd, int level, usb_device_info &di, int parent) ++void USBDevice::collectData(struct libusb20_backend *pbe, ++ struct libusb20_device *pdev) + { ++ char tempbuf[32]; ++ struct usb_device_info di; ++ ++ if (libusb20_dev_get_info(pdev, &di)) ++ memset(&di, 0, sizeof(di)); ++ + // determine data for this device +- _level = level; +- _parent = parent; ++ _level = 0; ++ _parent = 0; + + _bus = di.udi_bus; + _device = di.udi_addr; +@@ -345,87 +353,49 @@ + _channels = di.udi_nports; + + // determine the speed +-#if __FreeBSD_version > 490102 + switch (di.udi_speed) { + case USB_SPEED_LOW: _speed = 1.5; break; + case USB_SPEED_FULL: _speed = 12.0; break; + case USB_SPEED_HIGH: _speed = 480.0; break; ++ case USB_SPEED_VARIABLE: _speed = 480.0; break; ++ case USB_SPEED_SUPER: _speed = 4800.0; break; ++ default: _speed = 480.0; break; + } +-#else +- _speed = di.udi_lowspeed ? 1.5 : 12.0; +-#endif + + // Get all attached devicenodes +- for ( int i = 0; i < USB_MAX_DEVNAMES; ++i ) +- if ( di.udi_devnames[i][0] ) +- _devnodes << di.udi_devnames[i]; ++ for (int i = 0; i < 32; ++i) { ++ if (libusb20_dev_get_iface_desc(pdev, i, tempbuf, sizeof(tempbuf)) == 0) { ++ _devnodes << tempbuf; ++ } else { ++ break; ++ } ++ } + + // For compatibility, split the revision number + sscanf( di.udi_release, "%x.%x", &_revMajor, &_revMinor ); + +- // Cycle through the attached devices if there are any +- for ( int p = 0; p < di.udi_nports; ++p ) { +- // Get data for device +- struct usb_device_info di2; +- +- di2.udi_addr = di.udi_ports[p]; +- +- if ( di2.udi_addr >= USB_MAX_DEVICES ) +- continue; +- +- if ( ioctl(fd, USB_DEVICEINFO, &di2) == -1 ) +- continue; +- +- // Only add the device if we didn't detect it, yet +- if (!find( di2.udi_bus, di2.udi_addr ) ) +- { +- USBDevice *device = new USBDevice(); +- device->collectData( fd, level + 1, di2, di.udi_addr ); +- } +- } + } + +- +- + bool USBDevice::parse(QString fname) + { +- static bool showErrorMessage = true; +- bool error = false; ++ struct libusb20_backend *pbe; ++ struct libusb20_device *pdev; ++ + _devices.clear(); + +- QFile controller("/dev/usb0"); +- int i = 1; +- while ( controller.exists() ) +- { +- // If the devicenode exists, continue with further inspection +- if ( controller.open(IO_ReadOnly) ) +- { +- for ( int addr = 1; addr < USB_MAX_DEVICES; ++addr ) +- { +- struct usb_device_info di; +- +- di.udi_addr = addr; +- if ( ioctl(controller.handle(), USB_DEVICEINFO, &di) != -1 ) +- { +- if (!find( di.udi_bus, di.udi_addr ) ) +- { +- USBDevice *device = new USBDevice(); +- device->collectData( controller.handle(), 0, di, 0); +- } +- } +- } +- controller.close(); +- } else { +- error = true; +- } +- controller.setName( QString::fromLocal8Bit("/dev/usb%1").arg(i++) ); +- } +- +- if ( showErrorMessage && error ) { +- showErrorMessage = false; +- KMessageBox::error( 0, i18n("Could not open one or more USB controller. Make sure, you have read access to all USB controllers that should be listed here.")); ++ pbe = libusb20_be_alloc_default(); ++ if (pbe == NULL) ++ return (false); ++ ++ pdev = NULL; ++ ++ while ((pdev = libusb20_be_device_foreach(pbe, pdev))) { ++ USBDevice *device = new USBDevice(); ++ device->collectData(pbe, pdev); + } +- ++ ++ libusb20_be_free(pbe); ++ + return true; + } + #endif Index: files/patch-kcontrol-usbview-usbdevices.h =================================================================== RCS file: files/patch-kcontrol-usbview-usbdevices.h diff -N files/patch-kcontrol-usbview-usbdevices.h --- files/patch-kcontrol-usbview-usbdevices.h 16 Mar 2009 19:02:52 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,18 +0,0 @@ -Patch included below. FreeBSD_version is approximate. - ---- kcontrol/usbview/usbdevices.h.orig 2006-07-22 10:15:22.000000000 +0200 -+++ kcontrol/usbview/usbdevices.h 2009-03-15 23:24:38.000000000 +0100 -@@ -17,8 +17,13 @@ - #include - - #ifdef Q_OS_FREEBSD -+#include -+#if __FreeBSD_version >= 800069 -+#include -+#else - #include - #endif -+#endif - - class USBDB; - --- .patch ends here --- >Release-Note: >Audit-Trail: >Unformatted: