aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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