From 30c80adbe13aa524e717d6ca15971fc7e1ce762e Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 20 Apr 2022 01:04:19 +1000 Subject: [PATCH] Fixes to Automatic UDEV generation + Removing blank vid & pids entries to avoid `invalid value` warnings + Changing incorrect syntax from `ATTR` to `ATTRS` + Adding `Release` build check to .pro to work around code syntax highlighting issue in QTcreator --- OpenRGB.pro | 34 ++++++++++++++++++---------------- scripts/build-udev-rules.sh | 10 ++++++++-- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/OpenRGB.pro b/OpenRGB.pro index 98ba75b2..13f0b95d 100644 --- a/OpenRGB.pro +++ b/OpenRGB.pro @@ -1357,22 +1357,24 @@ unix:!macx { # ie. QMAKE_EXTRA_TARGETS += udev_rules # # PRE_TARGETDEPS += udev_rules # #-------------------------------------------------------------------------------------------# - udev_rules.CONFIG = no_check_exist - udev_rules.target = 60-openrgb.rules - udev_rules.path = $$PREFIX/lib/udev/rules.d/ - - exists($$udev_rules.target) { - message($$udev_rules.target " - UDEV rules file exists. Removing from build") - udev_rules.files = $$udev_rules.target - } else { - message($$udev_rules.target " - UDEV rules file missing. Adding script to build") - #-------------------------------------------------------------------------------------------# - # This is a compiler config flag to save the preproccessed .ii & .s # - # files so as to automatically process the UDEV rules and the Supported Devices # - #-------------------------------------------------------------------------------------------# - QMAKE_CXXFLAGS+=-save-temps - udev_rules.extra = $$PWD/scripts/build-udev-rules.sh $$PWD $$GIT_COMMIT_ID - udev_rules.files = $$OUT_PWD/60-openrgb.rules + CONFIG(release, debug|release) { + udev_rules.CONFIG = no_check_exist + udev_rules.target = 60-openrgb.rules + udev_rules.path = $$PREFIX/lib/udev/rules.d/ + + exists($$udev_rules.target) { + message($$udev_rules.target " - UDEV rules file exists. Removing from build") + udev_rules.files = $$udev_rules.target + } else { + message($$udev_rules.target " - UDEV rules file missing. Adding script to build") + #-------------------------------------------------------------------------------------------# + # This is a compiler config flag to save the preproccessed .ii & .s # + # files so as to automatically process the UDEV rules and the Supported Devices # + #-------------------------------------------------------------------------------------------# + QMAKE_CXXFLAGS+=-save-temps + udev_rules.extra = $$PWD/scripts/build-udev-rules.sh $$PWD $$GIT_COMMIT_ID + udev_rules.files = $$OUT_PWD/60-openrgb.rules + } } #-------------------------------------------------------------------------------------------# diff --git a/scripts/build-udev-rules.sh b/scripts/build-udev-rules.sh index 463ce03b..b22a5dab 100755 --- a/scripts/build-udev-rules.sh +++ b/scripts/build-udev-rules.sh @@ -78,8 +78,14 @@ do pid=${pid/0x/} device_name=${device_name//[^[:alnum:][:blank:]]/} - udev_line=$(printf 'SUBSYSTEMS=="%s|hidraw", ATTR{idVendor}=="%s", ATTR{idProduct}=="%s", TAG+="uaccess", TAG+="%s"\n' ${type,,} ${vid,,} ${pid,,} ${device_name// /_}) - echo -e "$udev_line" >>"$UDEV_FILE" + udev_line=$(printf 'SUBSYSTEMS=="%s|hidraw", ATTRS{idVendor}=="%s", ATTRS{idProduct}=="%s", TAG+="uaccess", TAG+="%s"\n' ${type,,} ${vid,,} ${pid,,} ${device_name// /_}) + + #Check to ensure that the vid and pid are not blank + if [[ $vid = "" || $pid = "" ]]; then + echo -e "Blank VID or PID Skipping: ${udev_line}" + else + echo -e "$udev_line" >>"$UDEV_FILE" + fi done <<< "$text" done <<< "$detectors" fi