aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--utils/sane-backends/Makefile10
-rw-r--r--utils/sane-backends/files/etc/xinetd.d/sane-port (renamed from utils/sane-backends/files/xinet.d_sane-port)0
-rwxr-xr-xutils/sane-backends/files/usr/sbin/saned24
3 files changed, 30 insertions, 4 deletions
diff --git a/utils/sane-backends/Makefile b/utils/sane-backends/Makefile
index f4077c3a1..774428d7f 100644
--- a/utils/sane-backends/Makefile
+++ b/utils/sane-backends/Makefile
@@ -1,6 +1,6 @@
#
# Copyright (C) 2006-2016 OpenWrt.org
-# Copyright (C) 2017-2018 Luiz Angelo Daros de Luca <luizluca@gmail.com>
+# Copyright (C) 2017-2019 Luiz Angelo Daros de Luca <luizluca@gmail.com>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=sane-backends
PKG_VERSION:=1.0.27
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=http://fossies.org/linux/misc \
https://alioth.debian.org/frs/download.php/file/4146/
@@ -193,9 +193,11 @@ define Package/sane-daemon/install
$(INSTALL_DIR) $(1)/etc/sane.d
$(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/sane.d/saned.conf $(1)/etc/sane.d/
$(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin/
+ $(INSTALL_BIN) ./files/usr/sbin/saned $(1)/usr/sbin/saned
+ $(INSTALL_DIR) $(1)/usr/lib/sane/
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/saned $(1)/usr/lib/sane/saned
$(INSTALL_DIR) $(1)/etc/xinetd.d
- $(CP) ./files/xinet.d_sane-port $(1)/etc/xinetd.d/sane-port
+ $(CP) ./files/etc/xinetd.d/sane-port $(1)/etc/xinetd.d/sane-port
endef
define Package/sane-daemon/conffiles
diff --git a/utils/sane-backends/files/xinet.d_sane-port b/utils/sane-backends/files/etc/xinetd.d/sane-port
index 9119973f6..9119973f6 100644
--- a/utils/sane-backends/files/xinet.d_sane-port
+++ b/utils/sane-backends/files/etc/xinetd.d/sane-port
diff --git a/utils/sane-backends/files/usr/sbin/saned b/utils/sane-backends/files/usr/sbin/saned
new file mode 100755
index 000000000..711492633
--- /dev/null
+++ b/utils/sane-backends/files/usr/sbin/saned
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+usblp_driver="/sys/bus/usb/drivers/usblp"
+
+inuse=""
+if [ -e /sys/bus/usb/devices ]; then
+ for usbdev_driver in /sys/bus/usb/devices/*/driver; do
+ [ -e "$usbdev_driver" ] || continue
+ [ "$(readlink -f "$usbdev_driver")" = "$usblp_driver" ] || continue
+ usbdev="${usbdev_driver%/*}"
+ inuse="$inuse ${usbdev##*/}"
+ done
+fi
+
+/usr/lib/sane/saned "$@"
+err=$?
+
+for usbdev in $inuse; do
+ [ -e "/sys/bus/usb/devices/$usbdev/driver" ] && continue
+ logger -t saned "binding device $usbdev back to usblp..."
+ printf '%s' "$usbdev" > "$usblp_driver/bind"
+done
+
+exit $err