aboutsummaryrefslogtreecommitdiffstats
path: root/sysutils
diff options
context:
space:
mode:
authoritetcu <itetcu@FreeBSD.org>2006-06-07 02:06:50 +0800
committeritetcu <itetcu@FreeBSD.org>2006-06-07 02:06:50 +0800
commit3ad290ea8978f64757aee2d8279b9a448073df68 (patch)
tree9c02e0d23c7b2788bfffcb3e1ec3390829a09ed2 /sysutils
parent9a2aa0f3303b71a125e8ca2922eeafc26d5b6a28 (diff)
downloadfreebsd-ports-gnome-3ad290ea8978f64757aee2d8279b9a448073df68.tar.gz
freebsd-ports-gnome-3ad290ea8978f64757aee2d8279b9a448073df68.tar.zst
freebsd-ports-gnome-3ad290ea8978f64757aee2d8279b9a448073df68.zip
This is the port of scanbuttond, an utility to monitor the various buttons
found on many modern scanners which are intended to trigger certain actions like copying, faxing or mailing the scanned document. This daemon queries the scanner button state several times per second via libusb and if it detects that a button is pressed it runs a shell script with the button number as an argument. The supported scanner backends currently are: epson, niash, plustek, snapscan Author: Bernhard Stiftner <root84@users.sourceforge.net> WWW: http://scanbuttond.sourceforge.net/ PR: ports/95386 Submitted by: Daniel Thiele Approvel by: lawrance (mentor, implicit)
Diffstat (limited to 'sysutils')
-rw-r--r--sysutils/Makefile1
-rw-r--r--sysutils/scanbuttond/Makefile39
-rw-r--r--sysutils/scanbuttond/distinfo3
-rw-r--r--sysutils/scanbuttond/files/patch-lib-loader.c11
-rw-r--r--sysutils/scanbuttond/files/patch-scanbuttond.c35
-rw-r--r--sysutils/scanbuttond/files/patch-scripts-initscanner.sh9
-rw-r--r--sysutils/scanbuttond/files/pkg-message.in37
-rw-r--r--sysutils/scanbuttond/pkg-descr12
-rw-r--r--sysutils/scanbuttond/pkg-plist29
9 files changed, 176 insertions, 0 deletions
diff --git a/sysutils/Makefile b/sysutils/Makefile
index 200759335c37..787f22e7d4f7 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -498,6 +498,7 @@
SUBDIR += sb16config
SUBDIR += sbniconfig
SUBDIR += scan_ffs
+ SUBDIR += scanbuttond
SUBDIR += screen
SUBDIR += sdd
SUBDIR += sec
diff --git a/sysutils/scanbuttond/Makefile b/sysutils/scanbuttond/Makefile
new file mode 100644
index 000000000000..02dc44f2eb73
--- /dev/null
+++ b/sysutils/scanbuttond/Makefile
@@ -0,0 +1,39 @@
+# New ports collection makefile for: scanbuttond
+# Date created: 31 March 2006
+# Whom: Daniel Thiele
+#
+# $FreeBSD$
+#
+
+PORTNAME= scanbuttond
+PORTVERSION= 0.2.3
+CATEGORIES= sysutils
+MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
+MASTER_SITE_SUBDIR= ${PORTNAME}
+
+MAINTAINER= dthiele@gmx.net
+COMMENT= A daemon to monitor and configure modern scanner's buttons
+
+LIB_DEPENDS= usb-0.1.8:${PORTSDIR}/devel/libusb
+
+GNU_CONFIGURE= yes
+CONFIGURE_ENV= CFLAGS="-I${LOCALBASE}/include" \
+ LDFLAGS="-L${LOCALBASE}/lib"
+CONFIGURE_TARGET= --build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
+INSTALLS_SHLIB= yes
+
+SUB_FILES+= pkg-message
+
+.include <bsd.port.pre.mk>
+
+.if ${OSVERSION} < 500000
+BROKEN= does not build
+.endif
+
+pre-configure:
+ @${FIND} ${WRKSRC} -name Makefile.in | ${XARGS} \
+ ${REINPLACE_CMD} -e 's|-ldl||g'
+post-install:
+ @${CAT} ${PKGMESSAGE}
+
+.include <bsd.port.post.mk>
diff --git a/sysutils/scanbuttond/distinfo b/sysutils/scanbuttond/distinfo
new file mode 100644
index 000000000000..e339eaf49b2e
--- /dev/null
+++ b/sysutils/scanbuttond/distinfo
@@ -0,0 +1,3 @@
+MD5 (scanbuttond-0.2.3.tar.gz) = 548e6451b398bd95d14f008b4d39ca79
+SHA256 (scanbuttond-0.2.3.tar.gz) = 93b060a363fef069548a49cb151da53ac6071dc0569f9a07d68751a28dffebee
+SIZE (scanbuttond-0.2.3.tar.gz) = 333743
diff --git a/sysutils/scanbuttond/files/patch-lib-loader.c b/sysutils/scanbuttond/files/patch-lib-loader.c
new file mode 100644
index 000000000000..f9d9c50db6b8
--- /dev/null
+++ b/sysutils/scanbuttond/files/patch-lib-loader.c
@@ -0,0 +1,11 @@
+--- lib/loader.c.orig Wed Feb 15 18:00:12 2006
++++ lib/loader.c Fri Mar 31 10:35:41 2006
+@@ -27,7 +27,7 @@
+
+ backend_t* load_backend(const char* filename)
+ {
+- char* error;
++ const char* error;
+ void* dll_handle = dlopen(filename, RTLD_NOW|RTLD_LOCAL);
+ if (!dll_handle) {
+ syslog(LOG_ERR, "loader: failed to load \"%s\". Error message: \"%s\"",
diff --git a/sysutils/scanbuttond/files/patch-scanbuttond.c b/sysutils/scanbuttond/files/patch-scanbuttond.c
new file mode 100644
index 000000000000..a405affbb82a
--- /dev/null
+++ b/sysutils/scanbuttond/files/patch-scanbuttond.c
@@ -0,0 +1,35 @@
+--- scanbuttond.c.orig Fri Feb 17 00:23:53 2006
++++ scanbuttond.c Thu Apr 6 00:52:29 2006
+@@ -223,8 +223,15 @@
+ exit(EXIT_FAILURE);
+ }
+
++ openlog(NULL, 0, LOG_DAEMON);
++
+ // daemonize
+ if (daemonize) {
++ if (daemon(0, 0) != 0) {
++ syslog(LOG_ERR, "daemon() failed.");
++ }
++ }
++/*
+ pid = fork();
+ if (pid < 0) {
+ printf("Can't fork!\n");
+@@ -259,6 +266,7 @@
+ close(STDOUT_FILENO);
+ close(STDERR_FILENO);
+ }
++*/
+
+ // setup the environment
+ char* oldpath = getenv("PATH");
+@@ -292,7 +300,7 @@
+ signal(SIGHUP, &sighandler);
+ signal(SIGINT, &sighandler);
+ signal(SIGSEGV, &sighandler);
+- signal(SIGCLD, SIG_IGN);
++ signal(SIGCHLD, SIG_IGN);
+
+ syslog(LOG_INFO, "scanbuttond started");
+
diff --git a/sysutils/scanbuttond/files/patch-scripts-initscanner.sh b/sysutils/scanbuttond/files/patch-scripts-initscanner.sh
new file mode 100644
index 000000000000..95a283aa366e
--- /dev/null
+++ b/sysutils/scanbuttond/files/patch-scripts-initscanner.sh
@@ -0,0 +1,9 @@
+--- scripts/initscanner.sh.orig Sat Jun 4 12:37:24 2005
++++ scripts/initscanner.sh Fri Mar 31 01:46:29 2006
+@@ -9,5 +9,5 @@
+ # Example:
+ # scanimage -n
+ # or
+-# sane-find-scanners
++# sane-find-scanner > /dev/null 2> /dev/null
+
diff --git a/sysutils/scanbuttond/files/pkg-message.in b/sysutils/scanbuttond/files/pkg-message.in
new file mode 100644
index 000000000000..74e09a789b9b
--- /dev/null
+++ b/sysutils/scanbuttond/files/pkg-message.in
@@ -0,0 +1,37 @@
+-------------------------------------------------------------------------------
+scanbuttond has been installed, but is not quite ready to be used yet.
+
+To make scanbuttond actually do something you have to edit
+%%PREFIX%%/etc/scanbuttond/buttonpressed.sh and change it to your needs.
+
+If you are having trouble getting your scanner detected try uncommenting one
+of the following lines in %%PREFIX%%/etc/scanbuttond/initscanner.sh:
+
+scanimage -n
+or
+sane-find-scanner > /dev/null 2> /dev/null
+
+If your scanner is connected via a hot-plug capable technology (e.g. USB)
+you can conveniently enable scanbuttond every time you attach you scanner by
+using devd. In order to do so you may add the following lines to your
+/etc/devd.conf and restart devd after you are done.
+(Make sure to replace device-name, vendor, product and back-end name to
+something that matches your environment)
+
+attach 20 {
+ device-name "ugen[0-9]+";
+ match "vendor" "0x04a9";
+ match "product" "0x220e";
+ action "%%PREFIX%%/bin/scanbuttond \
+ -s %%PREFIX%%/etc/scanbuttond/buttonpressed.sh \
+ -S %%PREFIX%%/etc/scanbuttond/initscanner.sh \
+ -b %%PREFIX%%/lib/libscanbtnd-backend_plustek.so";
+};
+
+detach 20 {
+ device-name "ugen[0-9]+";
+ match "vendor" "0x04a9";
+ match "product" "0x220e";
+ action "/usr/bin/killall scanbuttond";
+};
+-------------------------------------------------------------------------------
diff --git a/sysutils/scanbuttond/pkg-descr b/sysutils/scanbuttond/pkg-descr
new file mode 100644
index 000000000000..0680721d019f
--- /dev/null
+++ b/sysutils/scanbuttond/pkg-descr
@@ -0,0 +1,12 @@
+This is the port of scanbuttond, an utility to monitor the various buttons
+found on many modern scanners which are intended to trigger certain actions
+like copying, faxing or mailing the scanned document.
+This daemon queries the scanner button state several times per second via
+libusb and if it detects that a button is pressed it runs a shell script with
+the button number as an argument.
+
+The supported scanner backends currently are: epson, niash, plustek, snapscan
+
+
+Author: Bernhard Stiftner <root84@users.sourceforge.net>
+WWW: http://scanbuttond.sourceforge.net/
diff --git a/sysutils/scanbuttond/pkg-plist b/sysutils/scanbuttond/pkg-plist
new file mode 100644
index 000000000000..e252aec61cde
--- /dev/null
+++ b/sysutils/scanbuttond/pkg-plist
@@ -0,0 +1,29 @@
+bin/scanbuttond
+etc/scanbuttond/buttonpressed.sh
+etc/scanbuttond/initscanner.sh
+etc/scanbuttond/meta.conf
+lib/libscanbtnd-backend_epson.la
+lib/libscanbtnd-backend_epson.so
+lib/libscanbtnd-backend_epson.so.1
+lib/libscanbtnd-backend_meta.la
+lib/libscanbtnd-backend_meta.so
+lib/libscanbtnd-backend_meta.so.1
+lib/libscanbtnd-backend_mustek.la
+lib/libscanbtnd-backend_mustek.so
+lib/libscanbtnd-backend_mustek.so.1
+lib/libscanbtnd-backend_niash.la
+lib/libscanbtnd-backend_niash.so
+lib/libscanbtnd-backend_niash.so.1
+lib/libscanbtnd-backend_plustek.la
+lib/libscanbtnd-backend_plustek.so
+lib/libscanbtnd-backend_plustek.so.1
+lib/libscanbtnd-backend_plustek_umax.la
+lib/libscanbtnd-backend_plustek_umax.so
+lib/libscanbtnd-backend_plustek_umax.so.1
+lib/libscanbtnd-backend_snapscan.la
+lib/libscanbtnd-backend_snapscan.so
+lib/libscanbtnd-backend_snapscan.so.1
+lib/libscanbtnd-interface_usb.la
+lib/libscanbtnd-interface_usb.so
+lib/libscanbtnd-interface_usb.so.1
+@dirrm etc/scanbuttond