Bug 183478 - x11-servers/xorg-server: DEVD backend is broken, here's a fix
Summary: x11-servers/xorg-server: DEVD backend is broken, here's a fix
Status: Closed Overcome By Events
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-x11 (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-10-30 12:10 UTC by Vitaly Magerya
Modified: 2018-01-14 12:46 UTC (History)
6 users (show)

See Also:


Attachments
file.diff (32.29 KB, patch)
2013-10-30 12:10 UTC, Vitaly Magerya
no flags Details | Diff
xorg-server-1.12.4_2--2.hotplug.diff (32.31 KB, patch)
2014-09-14 20:44 UTC, Vitaly Magerya
no flags Details | Diff
xorg-server-1.12.4_2--3.hotplug.diff (32.51 KB, patch)
2014-09-15 16:19 UTC, Vitaly Magerya
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Magerya 2013-10-30 12:10:00 UTC
A month ago an update to MESA and related X11 ports [1] introduced
an experimental devd-based hotplug backend to xorg-server.

Unfortunately that code contains a number of major problems:
1) the code added by xorg-server/files/extra-config_devd.c is
   literally never called; the call to config_devd_init() was
   never added to config_init() (in config/config.c of the
   server); see this mail [2] and PR 182609 [3]
2) files/extra-config_devd.c has a typo: it'll try to load driver
   "kdb" instead of "kbd", see PR 181660
3) if the above problems are fixed, the backend will crash when
   used with xorg-server 1.7.7 inside one of the option-parsing
   routines (I did not pursue a fix for this, so I can't comment
   on how it'll work if the crash is fixed)
4) the backend always sets 'usb_id' attribute to NULL, thus
   preventing 'MatchUSBID' directive in xorg.conf from working
5) the backend incorrectly parses vendor and product name, thus
   making 'MatchVendor' and 'MatchProduct' directives hard to use
6) if devd is restarted when Xorg is running, the backend will
   lose connection to devd, and will not report any new hardware
   attaching or old hardware detaching (see mail at [5] for the
   last three items)

To put it shortly, the current devd backend doesn't work.

To fix all of the above points I've developed a new devd-based
backend, which I propose we use instead. Read a (somewhat)
detailed description of it in the mail at [6].

I'm attaching a patch agains current x11-servers/xorg-server
port (it's the same patch as at [6], only updated to catch up
with the port changes).

[1] http://svnweb.freebsd.org/ports?limit_changes=0&view=revision&revision=328711
[2] http://lists.freebsd.org/pipermail/freebsd-x11/2013-September/013645.html
[3] http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/182609
[4] http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/181660
[5] http://lists.freebsd.org/pipermail/freebsd-x11/2013-September/013626.html
[6] http://lists.freebsd.org/pipermail/freebsd-x11/2013-September/013656.html

Fix: Patch attached with submission follows:
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-10-30 12:10:10 UTC
Responsible Changed
From-To: freebsd-ports-bugs->freebsd-x11

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Henry Hu 2014-09-14 19:45:43 UTC
According to your description, your backend should not suffer from the problem mentioned in
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=175731
?
Comment 3 Vitaly Magerya 2014-09-14 20:41:11 UTC
(In reply to Henry Hu from comment #2)
> According to your description, your backend should not suffer from the
> problem mentioned in
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=175731
> ?

This backend doesn't try to take over individual keyboards, so
since the problem in that bug is not present while in console,
it should not be present in Xorg with this backend.

That being said, it's hard to say without trying.
Comment 4 Vitaly Magerya 2014-09-14 20:44:13 UTC
Created attachment 147331 [details]
xorg-server-1.12.4_2--2.hotplug.diff

BTW, this is the patch I'm currently using. (No functional
changes, just an update to catch up to port changes).
Comment 5 Henry Hu 2014-09-14 21:40:58 UTC
I've tried this patch and it gives me better results than the current hal/devd backend. It does not have the problem in bug 175731. After unplugging one keyboard, other keyboards are still usable.

There is a small problem though: vendor/product information is missing. From xorg log:
// unplug
[ 16484.088] (II) config/devd: received: -ums0
[ 16484.089] (II) config/devd: removing device ums0
[ 16484.089] (II) UnloadModule: "mouse"
[ 16484.104] (II) config/devd: received: -uhid0
// plug
[ 16486.469] (II) config/devd: received: +ums0 driver=mouse flags=pointer usb_id=:      
[ 16486.469] (II) config/devd: ums0: driver=<mouse>
[ 16486.469] (II) config/devd: ums0: flags=<pointer>
[ 16486.469] (II) config/devd: ums0: usb_id=<:>
[ 16486.469] (II) config/devd: adding device ums0
[ 16486.469] (II) Using input driver 'mouse' for 'ums0'
[ 16486.469] (**) ums0: always reports core events
[ 16486.469] (**) Option "Device" "/dev/ums0"
[ 16486.470] (==) ums0: Protocol: "Auto"
[ 16486.470] (**) ums0: always reports core events
[ 16486.470] (==) ums0: Emulate3Buttons, Emulate3Timeout: 50
[ 16486.470] (**) ums0: ZAxisMapping: buttons 4 and 5
[ 16486.470] (**) ums0: Buttons: 5
[ 16486.470] (**) Option "config_info" "devd:ums0"
[ 16486.470] (II) XINPUT: Adding extended input device "ums0" (type: MOUSE, id 8)
[ 16486.470] (**) ums0: (accel) keeping acceleration scheme 1
[ 16486.470] (**) ums0: (accel) acceleration profile 0
[ 16486.470] (**) ums0: (accel) acceleration factor: 2.000
[ 16486.470] (**) ums0: (accel) acceleration threshold: 4
[ 16486.470] (II) ums0: SetupAuto: hw.iftype is 5, hw.model is 0
[ 16486.470] (II) ums0: SetupAuto: protocol is SysMouse
[ 16486.471] (WW) fcntl(28, F_SETOWN): Inappropriate ioctl for device
[ 16486.495] (II) config/devd: received: +uhid0 usb_id=:      
[ 16486.495] (II) config/devd: uhid0: usb_id=<:>
[ 16486.495] (II) config/devd: adding device uhid0
[ 16486.496] (II) No input driver specified, ignoring this device.
[ 16486.496] (II) This device may have been added with another device file.

The reason is that, in xhotplug.conf, it says
    action "/usr/local/etc/rc.d/xhotplug add/usb $device-name $port.$devaddr";
and in xhotplug usbconfig is called with '-d $1' where $1 is $port.$devaddr.
However, usbconfig expects $bus.$devaddr, not $port.$devaddr.
For example, in this case ums0 is at ugen0.3, but xhotplug is called with 2.3,
but if you change it into $bus it still does not work. From debug devd log:

Processing event '+ums0 at bus=0 hubaddr=2 port=2 devaddr=3 interface=1 vendor=0x046d product=0xc52b devclass=0x00 devsubclass=0x00 sernum="" release=0x1201 mode=host intclass=0x03 intsubcla
ss=0x01 intprotocol=0x02  on uhub3'
Pushing table
setting device-name=ums0
setting bus=0
setting hubaddr=2
setting port=2
setting devaddr=3
setting interface=1
setting vendor=0x046d
setting product=0xc52b
setting devclass=0x00
setting devsubclass=0x00
setting sernum=
setting release=0x1201
setting mode=host
setting intclass=0x03
setting intsubclass=0x01
setting intprotocol=0x02
setting bus=uhub3
Processing attach event
Testing device-name=ums0 against ^(joy|psm)[0-9]+$, invert=0
Testing device-name=ums0 against ^(atp|uep|uhid)[0-9]+$, invert=0
Testing device-name=ums0 against ^ums[0-9]+$, invert=0
Executing '/etc/rc.d/moused quietstart ums0'
Executing '/usr/local/etc/rc.d/xhotplug add/usb ums0 2.3'
Popping table

The correct value (bus=0) is silently overridden by bus=uhub3, so it's hard to obtain the usb bus value. It's possible to obtain this value by looking into dmesg but that's too ugly.
Comment 6 Vitaly Magerya 2014-09-14 22:39:43 UTC
Hm. That's strange. On my machine (FreeBSD 10) when I plug in
one of my devices, this is what devd shows:

    +uhid0 at bus=1 hubaddr=1 port=3 devaddr=2 interface=0
    vendor=0x0079 product=0x0011 devclass=0x00 devsubclass=0x00
    sernum="" release=0x0106 mode=host intclass=0x03 intsubclass=0x00
    intprotocol=0x00  on uhub0

... and then:

    # usbconfig -d 3.2
    ugen3.2: <USB Gamepad vendor 0x0079> at usbus3, cfg=0 md=HOST
    spd=LOW (1.5Mbps) pwr=ON (100mA)

... but:

    # usbconfig -d 1.2
    No device match or lack of permissions.

So in this case, "3.2" (i.e. "$port.$devaddr") is the right
address here, "1.2" (i.e. "$originalbus.$devaddr") would not
work.

I'm not quite sure why is this different on your system. What
does your 'usbconfig dump_device_desc' show for 0.3 and 2.3?
Comment 7 Henry Hu 2014-09-14 22:47:55 UTC
> sudo usbconfig -d 2.3 dump_device_desc
No device match or lack of permissions.
> sudo usbconfig -d 0.3 dump_device_desc
ugen0.3: <USB Receiver Logitech> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (98mA)

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0200 
  bDeviceClass = 0x0000 
  bDeviceSubClass = 0x0000 
  bDeviceProtocol = 0x0000 
  bMaxPacketSize0 = 0x0008 
  idVendor = 0x046d 
  idProduct = 0xc52b 
  bcdDevice = 0x1201 
  iManufacturer = 0x0001  <Logitech>
  iProduct = 0x0002  <USB Receiver>
  iSerialNumber = 0x0000  <no string>
  bNumConfigurations = 0x0001 

> usbconfig
ugen0.1: <XHCI root HUB 0x8086> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
ugen1.1: <EHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen2.1: <EHCI root HUB Intel> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.2: <USB2.0 Hub vendor 0x05e3> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (100mA)
ugen1.2: <product 0x0024 vendor 0x8087> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen2.2: <product 0x0024 vendor 0x8087> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.4: <USB Keyboard vendor 0x04d9> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (100mA)
ugen1.3: <product 0x07da vendor 0x8087> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (0mA)
ugen0.5: <PCTV 801e SE YUANRD> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen1.4: <USB2.0 HD UVC WebCam Chicony Electronics Co.,Ltd.> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen0.6: <My Passport 0820 Western Digital> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
ugen0.3: <USB Receiver Logitech> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (98mA)
ugen0.7: <Mass Storage USB> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (200mA)

It seems like that usbus is always correct.
Comment 8 Vitaly Magerya 2014-09-14 23:59:58 UTC
The only explanation I see is that both "$port" and "$bus" are wrong.

I'll try to look into it and/or ping usb@ for a solution in the next few days. Stay tuned for updates.
Comment 9 Vitaly Magerya 2014-09-15 00:04:40 UTC
(In reply to Henry Hu from comment #7)
> It seems like that usbus is always correct.

Right, but $bus seems to be something unrelated.
Interestingly, you can actually find the correct usbus like this:
  
    $ sysctl -n dev.uhid.0.%parent
    uhub0
    $ sysctl -n dev.uhub.0.%parent
    usbus3

If no better solution will turn out, I'll use this.
Comment 10 Vitaly Magerya 2014-09-15 16:19:58 UTC
Created attachment 147351 [details]
xorg-server-1.12.4_2--3.hotplug.diff

OK, try this patch.
Comment 11 Henry Hu 2014-09-18 20:46:18 UTC
I tried the latest patch, and it works well. I got vendor information in the Xorg.0.log, and when I unplug the keyboard, the internal keyboard still works.
Comment 12 commit-hook freebsd_committer freebsd_triage 2014-12-19 23:04:44 UTC
A commit references this bug:

Author: dumbbell
Date: Fri Dec 19 23:04:16 UTC 2014
New revision: 374982
URL: https://svnweb.freebsd.org/changeset/ports/374982

Log:
  x11-servers/xorg-server: Update to 1.14

  The X.Org server has been updated to 1.14. The changes it brings are described
  in a post on the Graphics team blog:
  http://blogs.freebsdish.org/graphics/2014/11/19/xserver-1-14-update-ready/

  The most noticable change is the DEVD input device autodetection backend
  which is enabled by default, replacing the HAL backend. The keyboard
  layout configuration must be migrated from HAL's .fdi files to X.Org
  files. The procedure is explained in the post mentionned above.

  Several ports were removed with this update, mainly because they are not
  compatible with the X.Org server anymore:
      o  nvidia-driver-71
      o  nvidia-driver-96
      o  xf86-input-egalax
      o  xf86-video-newport
      o  xf86-video-tga

  PR:		155696, 181660, 183478 (partially fixed), 188640, 191331
  Differential Revision:	https://reviews.freebsd.org/D1337
  Submitted by:	ak (most of the work on the DEVD backend), dumbbell, kwm,
  		zeising
  Tested by:	Many people on freebsd-x11@ and IRC
  Reviewed by:	kwm, portmgr (antoine)
  Approved by:	kwm, portmgr (antoine)

Changes:
  head/MOVED
  head/Mk/bsd.xorg.mk
  head/UPDATING
  head/emulators/virtualbox-ose-additions/Makefile
  head/net/tigervnc/Makefile
  head/net/tigervnc/files/patch-unix_xserver114.patch
  head/x11/Makefile
  head/x11/nvidia-driver/distinfo
  head/x11/nvidia-driver-173/Makefile
  head/x11/nvidia-driver-71/
  head/x11/nvidia-driver-96/
  head/x11-drivers/Makefile
  head/x11-drivers/xf86-input-acecad/Makefile
  head/x11-drivers/xf86-input-acecad/pkg-plist
  head/x11-drivers/xf86-input-egalax/
  head/x11-drivers/xf86-input-elographics/Makefile
  head/x11-drivers/xf86-input-elographics/distinfo
  head/x11-drivers/xf86-input-elographics/pkg-plist
  head/x11-drivers/xf86-input-fpit/Makefile
  head/x11-drivers/xf86-input-fpit/pkg-plist
  head/x11-drivers/xf86-input-hyperpen/Makefile
  head/x11-drivers/xf86-input-hyperpen/distinfo
  head/x11-drivers/xf86-input-hyperpen/files/extra-patch-src_xf86HyperPen.c
  head/x11-drivers/xf86-input-hyperpen/pkg-plist
  head/x11-drivers/xf86-input-joystick/Makefile
  head/x11-drivers/xf86-input-joystick/distinfo
  head/x11-drivers/xf86-input-joystick/pkg-plist
  head/x11-drivers/xf86-input-keyboard/Makefile
  head/x11-drivers/xf86-input-keyboard/pkg-plist
  head/x11-drivers/xf86-input-mouse/Makefile
  head/x11-drivers/xf86-input-mouse/pkg-plist
  head/x11-drivers/xf86-input-mutouch/Makefile
  head/x11-drivers/xf86-input-mutouch/pkg-plist
  head/x11-drivers/xf86-input-penmount/Makefile
  head/x11-drivers/xf86-input-penmount/distinfo
  head/x11-drivers/xf86-input-penmount/pkg-plist
  head/x11-drivers/xf86-input-synaptics/Makefile
  head/x11-drivers/xf86-input-synaptics/distinfo
  head/x11-drivers/xf86-input-synaptics/files/extra-Makefile.in
  head/x11-drivers/xf86-input-synaptics/pkg-plist
  head/x11-drivers/xf86-input-vmmouse/Makefile
  head/x11-drivers/xf86-input-vmmouse/pkg-plist
  head/x11-drivers/xf86-input-void/Makefile
  head/x11-drivers/xf86-input-void/distinfo
  head/x11-drivers/xf86-input-void/pkg-plist
  head/x11-drivers/xf86-input-wacom/Makefile
  head/x11-drivers/xf86-video-apm/Makefile
  head/x11-drivers/xf86-video-apm/files/
  head/x11-drivers/xf86-video-apm/files/patch-src_apm.h
  head/x11-drivers/xf86-video-apm/pkg-plist
  head/x11-drivers/xf86-video-ark/Makefile
  head/x11-drivers/xf86-video-ark/files/
  head/x11-drivers/xf86-video-ark/files/patch-src_ark__driver.c
  head/x11-drivers/xf86-video-ark/pkg-plist
  head/x11-drivers/xf86-video-ati/Makefile
  head/x11-drivers/xf86-video-ati-ums/Makefile
  head/x11-drivers/xf86-video-ati-ums/files/extra-src__radeon_kms.c
  head/x11-drivers/xf86-video-ati-ums/files/patch-configure
  head/x11-drivers/xf86-video-ati-ums/files/patch-configure.ac
  head/x11-drivers/xf86-video-ati-ums/files/patch-src__radeon_dri2.c
  head/x11-drivers/xf86-video-ati-ums/files/patch-src_radeon__driver.c
  head/x11-drivers/xf86-video-chips/Makefile
  head/x11-drivers/xf86-video-chips/files/patch-src_ct__driver.c
  head/x11-drivers/xf86-video-chips/pkg-plist
  head/x11-drivers/xf86-video-cirrus/Makefile
  head/x11-drivers/xf86-video-cirrus/pkg-plist
  head/x11-drivers/xf86-video-dummy/Makefile
  head/x11-drivers/xf86-video-dummy/pkg-plist
  head/x11-drivers/xf86-video-fbdev/Makefile
  head/x11-drivers/xf86-video-fbdev/pkg-plist
  head/x11-drivers/xf86-video-glint/Makefile
  head/x11-drivers/xf86-video-glint/files/
  head/x11-drivers/xf86-video-glint/files/patch-src_glint__driver.c
  head/x11-drivers/xf86-video-glint/pkg-plist
  head/x11-drivers/xf86-video-i128/Makefile
  head/x11-drivers/xf86-video-i128/files/
  head/x11-drivers/xf86-video-i128/files/patch-src_i128__driver.c
  head/x11-drivers/xf86-video-i128/pkg-plist
  head/x11-drivers/xf86-video-i740/Makefile
  head/x11-drivers/xf86-video-i740/files/
  head/x11-drivers/xf86-video-i740/files/patch-src_i740__driver.c
  head/x11-drivers/xf86-video-i740/pkg-plist
  head/x11-drivers/xf86-video-intel/Makefile
  head/x11-drivers/xf86-video-mach64/Makefile
  head/x11-drivers/xf86-video-mach64/pkg-plist
  head/x11-drivers/xf86-video-mga/Makefile
  head/x11-drivers/xf86-video-mga/pkg-plist
  head/x11-drivers/xf86-video-neomagic/Makefile
  head/x11-drivers/xf86-video-neomagic/pkg-plist
  head/x11-drivers/xf86-video-newport/
  head/x11-drivers/xf86-video-nv/Makefile
  head/x11-drivers/xf86-video-nv/files/patch-src-nv_driver.c
  head/x11-drivers/xf86-video-nv/files/patch-src_g80__driver.c
  head/x11-drivers/xf86-video-nv/files/patch-src_nv__include.h
  head/x11-drivers/xf86-video-nv/files/patch-src_riva__driver.c
  head/x11-drivers/xf86-video-nv/files/patch-src_riva__include.h
  head/x11-drivers/xf86-video-nv/pkg-plist
  head/x11-drivers/xf86-video-openchrome/Makefile
  head/x11-drivers/xf86-video-openchrome/pkg-plist
  head/x11-drivers/xf86-video-r128/Makefile
  head/x11-drivers/xf86-video-r128/pkg-plist
  head/x11-drivers/xf86-video-rendition/Makefile
  head/x11-drivers/xf86-video-rendition/files/
  head/x11-drivers/xf86-video-rendition/files/patch-src_rendition.c
  head/x11-drivers/xf86-video-rendition/files/patch-src_rendition.h
  head/x11-drivers/xf86-video-rendition/pkg-plist
  head/x11-drivers/xf86-video-s3/Makefile
  head/x11-drivers/xf86-video-s3/files/
  head/x11-drivers/xf86-video-s3/files/patch-src_s3__driver.c
  head/x11-drivers/xf86-video-s3/pkg-plist
  head/x11-drivers/xf86-video-s3virge/Makefile
  head/x11-drivers/xf86-video-s3virge/pkg-plist
  head/x11-drivers/xf86-video-savage/Makefile
  head/x11-drivers/xf86-video-savage/pkg-plist
  head/x11-drivers/xf86-video-scfb/Makefile
  head/x11-drivers/xf86-video-scfb/distinfo
  head/x11-drivers/xf86-video-scfb/files/
  head/x11-drivers/xf86-video-scfb/files/patch-src_compat-api.h
  head/x11-drivers/xf86-video-scfb/files/patch-src_scfb__driver.c
  head/x11-drivers/xf86-video-scfb/pkg-plist
  head/x11-drivers/xf86-video-siliconmotion/Makefile
  head/x11-drivers/xf86-video-siliconmotion/files/
  head/x11-drivers/xf86-video-siliconmotion/files/patch-src_smi__driver.c
  head/x11-drivers/xf86-video-siliconmotion/pkg-plist
  head/x11-drivers/xf86-video-sis/Makefile
  head/x11-drivers/xf86-video-sis/files/
  head/x11-drivers/xf86-video-sis/files/patch-src_sis__driver.c
  head/x11-drivers/xf86-video-sis/pkg-plist
  head/x11-drivers/xf86-video-sunffb/Makefile
  head/x11-drivers/xf86-video-sunffb/pkg-plist
  head/x11-drivers/xf86-video-tdfx/Makefile
  head/x11-drivers/xf86-video-tdfx/files/
  head/x11-drivers/xf86-video-tdfx/files/patch-src_tdfx__driver.c
  head/x11-drivers/xf86-video-tdfx/pkg-plist
  head/x11-drivers/xf86-video-tga/
  head/x11-drivers/xf86-video-trident/Makefile
  head/x11-drivers/xf86-video-trident/files/
  head/x11-drivers/xf86-video-trident/files/patch-src_trident__driver.c
  head/x11-drivers/xf86-video-trident/pkg-plist
  head/x11-drivers/xf86-video-tseng/Makefile
  head/x11-drivers/xf86-video-tseng/files/
  head/x11-drivers/xf86-video-tseng/files/patch-src_tseng__driver.c
  head/x11-drivers/xf86-video-tseng/pkg-plist
  head/x11-drivers/xf86-video-vesa/Makefile
  head/x11-drivers/xf86-video-vesa/pkg-plist
  head/x11-drivers/xf86-video-vmware/Makefile
  head/x11-drivers/xf86-video-vmware/pkg-plist
  head/x11-drivers/xf86-video-voodoo/Makefile
  head/x11-drivers/xf86-video-voodoo/pkg-plist
  head/x11-drivers/xorg-drivers/Makefile
  head/x11-drivers/xorg-drivers/pkg-plist
  head/x11-servers/xorg-dmx/pkg-plist
  head/x11-servers/xorg-server/Makefile
  head/x11-servers/xorg-server/distinfo
  head/x11-servers/xorg-server/files/extra-Xext-xace.c
  head/x11-servers/xorg-server/files/extra-Xserver-hw-xfree86-common-xf86Config.c
  head/x11-servers/xorg-server/files/extra-Xserver-os-xprintf.c
  head/x11-servers/xorg-server/files/extra-arch-i386
  head/x11-servers/xorg-server/files/extra-arch-powerpc
  head/x11-servers/xorg-server/files/extra-arch-sparc64
  head/x11-servers/xorg-server/files/extra-clang
  head/x11-servers/xorg-server/files/extra-config_devd.c
  head/x11-servers/xorg-server/files/extra-configure
  head/x11-servers/xorg-server/files/extra-dix_events.c
  head/x11-servers/xorg-server/files/extra-include_eventstr.h
  head/x11-servers/xorg-server/files/extra-new-arch-i386
  head/x11-servers/xorg-server/files/extra-new-arch-powerpc
  head/x11-servers/xorg-server/files/extra-new-arch-sparc64
  head/x11-servers/xorg-server/files/extra-new-bad-impl
  head/x11-servers/xorg-server/files/extra-new-dix_dixfonts.c
  head/x11-servers/xorg-server/files/extra-old-arch-i386
  head/x11-servers/xorg-server/files/extra-old-arch-powerpc
  head/x11-servers/xorg-server/files/extra-old-arch-sparc64
  head/x11-servers/xorg-server/files/extra-old-dix_dixfonts.c
  head/x11-servers/xorg-server/files/extra-os-utils.c
  head/x11-servers/xorg-server/files/patch-CVE-2014-8092-3-4
  head/x11-servers/xorg-server/files/patch-CVE-2014-8095
  head/x11-servers/xorg-server/files/patch-CVE-2014-8098-7-8
  head/x11-servers/xorg-server/files/patch-CVE-2014-8100-1-2
  head/x11-servers/xorg-server/files/patch-Xserver-hw-xfree86-os-support-bsd-i386_video.c
  head/x11-servers/xorg-server/files/patch-config_config-backends.h
  head/x11-servers/xorg-server/files/patch-config_config.c
  head/x11-servers/xorg-server/files/patch-config_devd.c
  head/x11-servers/xorg-server/files/patch-hw_xfree86_common_xf86Config.c
  head/x11-servers/xorg-server/files/patch-hw_xfree86_common_xf86Globals.c
  head/x11-servers/xorg-server/files/patch-hw_xfree86_loader_loadmod.c
  head/x11-servers/xorg-server/files/patch-hw_xfree86_modes_xf86Crtc.c
  head/x11-servers/xorg-server/files/patch-xkb_Makefile.in
  head/x11-servers/xorg-server/files/patch-xorgconf.cpp
  head/x11-servers/xorg-server/pkg-plist
Comment 13 Jean-Sébastien Pédron freebsd_committer freebsd_triage 2014-12-23 23:49:30 UTC
Several problems were fixed in r374982.

The parsing of the USB ID or vendor/product are still missing or broken.
Comment 14 Hans Petter Selasky freebsd_committer freebsd_triage 2015-01-13 11:11:10 UTC
Hi,

Can you have a look here:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=196678

--HPS
Comment 15 Walter Schwarzenfeld 2018-01-10 21:25:02 UTC
patch-config_devd.c is in the port. This is surely overcome by events and surely solved.
Comment 16 Alex Kozlov freebsd_committer freebsd_triage 2018-01-12 22:13:18 UTC
4) the backend always sets 'usb_id' attribute to NULL, thus
   preventing 'MatchUSBID' directive in xorg.conf from working
5) the backend incorrectly parses vendor and product name, thus
   making 'MatchVendor' and 'MatchProduct' directives hard to use
These points are still not addressed.
Comment 17 Niclas Zeising freebsd_committer freebsd_triage 2018-01-12 22:51:16 UTC
(In reply to Alex Kozlov from comment #16)


Can these issues be tracked in a separate PR?

Since you wrote some of the DEVD backend, can you help in fixing this?
Comment 18 Alex Kozlov freebsd_committer freebsd_triage 2018-01-13 20:05:12 UTC
It was mostly FYI post. I think it's alright to close this pr unless OP object.
The 4 point is quite hard to fix, you need libusb and quite complex string parser. The 5 is easier, I'd even partially fixed it along with 196678 in my last patchset. Unfortunately, it's perished in the review limbo.
Comment 19 Vitaly Magerya 2018-01-14 12:46:08 UTC
OP certainly would have objected to closing PRs without fixing the problems, but in this case the remaining two issues -- items 4 and 5 -- should be fixed by the patch from 196678, so it would best for everyone if that patch would be committed instead.

I'm actually very surprised 196678 is not yet committed. The last time I looked at it, I was almost sure the Xorg team will take it in a few months, but 3 years later, and it's still up...