From daa974cff0bef94c71277e703c32b3fd36f1411b Mon Sep 17 00:00:00 2001 From: "Daniel F. Dickinson" Date: Tue, 9 Oct 2018 21:43:33 -0400 Subject: [PATCH] nut: Fix undetected UPS hardware Leading zeroes left in ProductId results in some UPS hardware not being matched by the hotplug script lead to bad permissions and driver not starting. Closes: #6966 Signed-off-by: Daniel F. Dickinson --- net/nut/Makefile | 2 +- net/nut/files/30-libhid-ups.head | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/net/nut/Makefile b/net/nut/Makefile index 6108e2705..199014b2f 100644 --- a/net/nut/Makefile +++ b/net/nut/Makefile @@ -85,7 +85,7 @@ define Package/nut-server/install $(CP) $(PKG_INSTALL_DIR)/etc/hotplug/usb/libhid.usermap $(PKG_BUILD_DIR)/30-libhid-ups.middle $(SED) '/^$$$$/d' \ -e '/^#/d' \ - -E -e 's:^[^ ][^ ]* *0x0003 *0x0{0,3}([^ ][^ ]*) *0x{0,3}*([^ ][^ ]*).*:\1/\2/* | \\:' \ + -E -e 's:^[^ ][^ ]* *0x0003 *0x0{0,3}([^ ][^ ]*) *0x0{0,3}*([^ ][^ ]*).*:\1/\2/* | \\:' \ $(PKG_BUILD_DIR)/30-libhid-ups.middle tail -n+2 $(PKG_BUILD_DIR)/30-libhid-ups.middle >>$(1)/etc/hotplug.d/usb/30-libhid-ups cat ./files/30-libhid-ups.tail >>$(1)/etc/hotplug.d/usb/30-libhid-ups diff --git a/net/nut/files/30-libhid-ups.head b/net/nut/files/30-libhid-ups.head index efcbcf66b..a65094646 100755 --- a/net/nut/files/30-libhid-ups.head +++ b/net/nut/files/30-libhid-ups.head @@ -15,22 +15,23 @@ nut_driver_config() { chown ${runas:-root}:$(id -gn "${runas:-root}") /dev/"$DEVNAME" } - if [ "$(printf "%04x" 0x"$pvendid")" = "$vendorid" ] && \ - [ "$(printf "%04x" 0x"$pprodid")" = "$productid" ]; then - [ "$ACTION" = "add" ] && { - /etc/init.d/nut-server start "$cfg" - } - [ "$ACTION" = "remove" ] && { - /etc/init.d/nut-server stop "$cfg" - } - found=1 - elif [ "$nomatch" = "1" ]; then + if [ "$nomatch" = "1" ]; then [ "$ACTION" = "add" ] && { /etc/init.d/nut-server start "$cfg" } [ "$ACTION" = "remove" ] && { /etc/init.d/nut-server stop "$cfg" } + elif [ "$(printf "%04x" 0x"$pvendid")" = "$vendorid" ] && \ + [ "$(printf "%04x" 0x"$pprodid")" = "$productid" ]; then + [ "$ACTION" = "add" ] && { + /etc/init.d/nut-server start "$cfg" + /etc/init.d/nut-server reload upsd + } + [ "$ACTION" = "remove" ] && { + /etc/init.d/nut-server stop "$cfg" + } + found=1 fi }