[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re:pkgsrc/x11/xf86-input-mouse-1.8.1 が wsmouse(4) 認識せず
modular-xorg-server のほうが 1.12.4 に上がって、そっちが
wscons に OpenBSD しかサポートしてないからだと思います。
/usr/pkg/include/xorg/xorg-server.h
に
#define WSCONS_SUPPORT 1
がないですよね。
手元では、以下のような変更を org-server のほうに適用して
NetBSD 5.2 で wmmouse のほうからは使えるようになっています。
たぶん、キーボードレイアウトとかも wskbd や wsmouse から
取得して自動的に設定されるのが本来の動きだと思うのですが、
とりあえず compile が通るだけしたので、その辺がまだです。
(2013Q2まで間に合うかなぁ)
--- configure.orig 2012-08-27 05:11:53.000000000 +0000
+++ configure
@@ -24309,7 +24309,7 @@ fi
if test "x$CONFIG_WSCONS" = xauto; then
case $host_os in
- *openbsd*)
+ *openbsd*|*netbsd*)
CONFIG_WSCONS=yes;
;;
*)
--- config/wscons.c.orig 2012-08-19 15:45:54.000000000 +0000
+++ config/wscons.c
@@ -25,6 +25,8 @@
#include <dix-config.h>
#endif
+#include <sys/time.h>
+#include <fcntl.h>
#include <dev/wscons/wsconsio.h>
#include <dev/wscons/wsksymdef.h>
@@ -41,6 +43,7 @@
#define WSCONS_KBD_DEVICE "/dev/wskbd"
#define WSCONS_MOUSE_PREFIX "/dev/wsmouse"
+#ifdef __OpenBSD__
#define KB_OVRENC \
{ KB_UK, "gb" }, \
{ KB_SV, "se" }, \
@@ -48,13 +51,18 @@
{ KB_SF, "ch" }, \
{ KB_LA, "latam" }, \
{ KB_CF, "ca" }
+#endif
struct nameint {
int val;
char *name;
} kbdenc[] = {
+#ifdef __OpenBSD__
KB_OVRENC,
KB_ENCTAB,
+#else /* __NetBSD__ */
+ KB_ENCTAB
+#endif
{0}
};
@@ -62,10 +70,14 @@ struct nameint kbdvar[] = {
{KB_NODEAD | KB_SG, "de_nodeadkeys"},
{KB_NODEAD | KB_SF, "fr_nodeadkeys"},
{KB_SF, "fr"},
+#ifdef KB_CF
{KB_DVORAK | KB_CF, "fr-dvorak"},
+#endif
{KB_DVORAK | KB_FR, "bepo"},
{KB_DVORAK, "dvorak"},
+#ifdef KB_CF
{KB_CF, "fr-legacy"},
+#endif
{KB_NODEAD, "nodeadkeys"},
{0}
};
@@ -220,7 +232,11 @@ wscons_add_pointers(void)
for (i = 0; i < 4; i++) {
snprintf(devname, sizeof(devname), "%s%d", WSCONS_MOUSE_PREFIX, i);
LogMessageVerb(X_INFO, 10, "wsmouse: checking %s\n", devname);
+#ifdef __OpenBSD__
fd = open_device(devnamem O_RDWR | O_NONBLOCK | O_EXCL);
+#else
+ fd = open(devname, O_RDWR | O_NONBLOCK | O_EXCL);
+#endif
if (fd == -1) {
LogMessageVerb(X_WARNING, 10, "%s: %s\n", devname, strerror(errno));
continue;
@@ -233,9 +249,11 @@ wscons_add_pointers(void)
}
close(fd);
switch (wsmouse_type) {
+#ifdef WSMOUSE_TYPE_SYNAPTICS
case WSMOUSE_TYPE_SYNAPTICS:
wscons_add_pointer(devname, "synaptics", ATTR_TOUCHPAD);
break;
+#endif
case WSMOUSE_TYPE_TPANEL:
wscons_add_pointer(devname, "ws", ATTR_TOUCHSCREEN);
break;
--
お役に立てない(^^;
OBATA Akio / obata@lins.jp
せかいは ひろがる ちきゅーは まわる。