aboutsummaryrefslogtreecommitdiffstats
path: root/palm/gnome-pilot
diff options
context:
space:
mode:
authorbland <bland@FreeBSD.org>2005-04-27 12:00:26 +0800
committerbland <bland@FreeBSD.org>2005-04-27 12:00:26 +0800
commit951ca65b5f7b279998eba779cac5425bd9f00f38 (patch)
tree6b24e4f5336f17786b6140a855acba04157b8be9 /palm/gnome-pilot
parentf1ff17b65a2013d61fcdd4e25e2a9fecee07d5fc (diff)
downloadfreebsd-ports-graphics-951ca65b5f7b279998eba779cac5425bd9f00f38.tar.gz
freebsd-ports-graphics-951ca65b5f7b279998eba779cac5425bd9f00f38.tar.zst
freebsd-ports-graphics-951ca65b5f7b279998eba779cac5425bd9f00f38.zip
Add USB devices support for 5.x.
Submitted by: Corey Smith <corsmith@qmail.com>
Diffstat (limited to 'palm/gnome-pilot')
-rw-r--r--palm/gnome-pilot/Makefile2
-rw-r--r--palm/gnome-pilot/files/patch-gpilotd__gpilotd.c87
2 files changed, 88 insertions, 1 deletions
diff --git a/palm/gnome-pilot/Makefile b/palm/gnome-pilot/Makefile
index 7831945094c..3946678249d 100644
--- a/palm/gnome-pilot/Makefile
+++ b/palm/gnome-pilot/Makefile
@@ -7,7 +7,7 @@
PORTNAME= gnomepilot2
PORTVERSION= 2.0.13
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= palm comms gnome
MASTER_SITES= ${MASTER_SITE_GNOME}
MASTER_SITE_SUBDIR= sources/gnome-pilot/2.0
diff --git a/palm/gnome-pilot/files/patch-gpilotd__gpilotd.c b/palm/gnome-pilot/files/patch-gpilotd__gpilotd.c
new file mode 100644
index 00000000000..b856f0a4af6
--- /dev/null
+++ b/palm/gnome-pilot/files/patch-gpilotd__gpilotd.c
@@ -0,0 +1,87 @@
+--- gpilotd/gpilotd.c.orig Thu Sep 2 11:43:47 2004
++++ gpilotd/gpilotd.c Sun Apr 24 15:56:14 2005
+@@ -27,6 +27,8 @@
+ #include "config.h"
+ #endif
+
++#define freebsd
++
+ /* for crypt () */
+ #ifdef USE_XOPEN_SOURCE
+ #ifndef _XOPEN_SOURCE
+@@ -903,7 +905,7 @@
+ }
+
+ fclose (f);
+-
++
+ if (visor_exists) {
+ l = context->devices;
+ while (l) {
+@@ -928,6 +930,49 @@
+ }
+
+ #endif
++#ifdef freebsd
++static gboolean
++visor_devices_timeout (gpointer data)
++{
++ GPilotContext *context = data;
++ GPilotDevice *device;
++ GList *l;
++ int i;
++ gboolean visor_exists = FALSE, visor_net = TRUE;
++
++ g_assert (context != NULL);
++
++ if (context->paused)
++ return FALSE;
++
++ l = context->devices;
++ while (l) {
++ device = l->data;
++
++ struct stat dummy;
++
++ /* Make sure usb device exists */
++ if (stat(device->port, &dummy) == 0) {
++ if (device->type == PILOT_DEVICE_USB_VISOR) {
++ if (!visor_net)
++ device->type = PILOT_DEVICE_SERIAL;
++
++ /* just try to synch. Until I can talk to
++ * the kernel guys this is the best way to
++ * go. */
++ sync_device (device, context);
++ if (!visor_net)
++ device->type = PILOT_DEVICE_USB_VISOR;
++ }
++ }
++ l = l->next;
++
++ }
++
++ return TRUE;
++}
++
++#endif
+ #endif
+
+ void monitor_channel (GPilotDevice *dev,GPilotContext *context)
+@@ -959,16 +1004,12 @@
+ #endif /* WITH_NETWORK */
+ } if (dev->type == PILOT_DEVICE_USB_VISOR) {
+ #ifdef WITH_USB_VISOR
+-#ifdef linux
+ /* We want to watch the /proc/bus/usb/devices file once
+ * per context, and then check all devices each time it is
+ * woken up. */
+ if (visor_timeout_id == -1) {
+ visor_timeout_id = g_timeout_add (2000, visor_devices_timeout, context);
+ }
+-#else /* linux*/
+- g_assert_not_reached ();
+-#endif /* linux */
+ #endif /* WITH_USB_VISOR */
+ dev->device_exists = FALSE;
+ }