FreeBSD Bugzilla – Attachment 97151 Details for
Bug 135860
[PATCH] x11/kdebase3: Unbreak on -CURRENT
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
.patch
.patch (text/plain), 6.49 KB, created by
Ulrich Spoerlein
on 2009-06-20 13:00:16 UTC
(
hide
)
Description:
.patch
Filename:
MIME Type:
Creator:
Ulrich Spoerlein
Created:
2009-06-20 13:00:16 UTC
Size:
6.49 KB
patch
obsolete
>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 <qptrlist.h> >+ >+ #ifdef Q_OS_FREEBSD >+-#include <dev/usb/usb.h> >++#include <libusb20.h> >++#include <dev/usb/usb_ioctl.h> >++#include <dev/usb/usb_revision.h> >+ #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 <markus@brueffer.de> >++ * libusb20 support by Hans Petter Selasky <hselasky@freebsd.org> >+ * >+ * 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 <qptrlist.h> >- >- #ifdef Q_OS_FREEBSD >-+#include <osreldate.h> >-+#if __FreeBSD_version >= 800069 >-+#include <legacy/dev/usb/usb.h> >-+#else >- #include <dev/usb/usb.h> >- #endif >-+#endif >- >- class USBDB; >-
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 135860
: 97151 |
97152