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 +# Copyright (C) 2017-2019 Luiz Angelo Daros de Luca # # 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 similarity index 100% rename from utils/sane-backends/files/xinet.d_sane-port rename to 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