diff --git a/Cargo.lock b/Cargo.lock index 0012725..1ff606b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1652,7 +1652,7 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "lesavka_client" -version = "0.22.41" +version = "0.22.42" dependencies = [ "anyhow", "async-stream", @@ -1686,7 +1686,7 @@ dependencies = [ [[package]] name = "lesavka_common" -version = "0.22.41" +version = "0.22.42" dependencies = [ "anyhow", "base64", @@ -1698,7 +1698,7 @@ dependencies = [ [[package]] name = "lesavka_server" -version = "0.22.41" +version = "0.22.42" dependencies = [ "anyhow", "base64", diff --git a/client/Cargo.toml b/client/Cargo.toml index 99d0488..09accde 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -4,7 +4,7 @@ path = "src/main.rs" [package] name = "lesavka_client" -version = "0.22.41" +version = "0.22.42" edition = "2024" [dependencies] diff --git a/common/Cargo.toml b/common/Cargo.toml index de99522..e19fa3a 100644 --- a/common/Cargo.toml +++ b/common/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lesavka_common" -version = "0.22.41" +version = "0.22.42" edition = "2024" build = "build.rs" diff --git a/scripts/install/server.sh b/scripts/install/server.sh index 0f79430..e014d3e 100755 --- a/scripts/install/server.sh +++ b/scripts/install/server.sh @@ -1884,11 +1884,12 @@ if [[ "$HOST_GADGET_PROTECTED" == "1" ]] \ CAN_TOUCH_UVC_SERVICE=0 fi if [[ "$CAN_TOUCH_UVC_SERVICE" != "1" ]] && systemctl is-active --quiet lesavka-uvc; then - if [[ "${LESAVKA_INSTALL_PRESERVE_UVC_HELPER:-0}" == "1" ]]; then - echo "✅ lesavka-uvc already active; preserving it during attached-gadget version update." - else + if [[ "${LESAVKA_INSTALL_RESTART_UVC_HELPER:-0}" == "1" ]]; then restart_lesavka_uvc_helper_only - echo "✅ lesavka-uvc helper restarted in-place; lesavka-core and the attached USB gadget were preserved." + echo "✅ lesavka-uvc helper restarted in-place by explicit request; lesavka-core and the attached USB gadget were preserved." + else + echo "✅ lesavka-uvc already active; preserving it during attached-gadget version update." + echo " Set LESAVKA_INSTALL_RESTART_UVC_HELPER=1 only during a local maintenance window if the helper binary must be refreshed without cycling lesavka-core." fi elif [[ "$CAN_TOUCH_UVC_SERVICE" != "1" ]]; then echo "⚠️ lesavka-uvc is inactive, but the host/gadget is protected; not starting it during a version-only install." >&2 diff --git a/server/Cargo.toml b/server/Cargo.toml index 7f3cd27..e0be19a 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -10,7 +10,7 @@ bench = false [package] name = "lesavka_server" -version = "0.22.41" +version = "0.22.42" edition = "2024" autobins = false diff --git a/tests/installer/scripts/install/server_install_script_contract.rs b/tests/installer/scripts/install/server_install_script_contract.rs index 8191a0e..6d608ce 100644 --- a/tests/installer/scripts/install/server_install_script_contract.rs +++ b/tests/installer/scripts/install/server_install_script_contract.rs @@ -484,16 +484,16 @@ fn server_install_pins_hdmi_camera_and_display_defaults() { assert!( SERVER_INSTALL.contains("CAN_TOUCH_UVC_SERVICE=0") && SERVER_INSTALL.contains("preserving it during attached-gadget version update") - && SERVER_INSTALL.contains("LESAVKA_INSTALL_PRESERVE_UVC_HELPER") + && SERVER_INSTALL.contains("LESAVKA_INSTALL_RESTART_UVC_HELPER") && SERVER_INSTALL.contains("not starting it during a version-only install"), - "ordinary attached-gadget version updates should keep an operator escape hatch for preserving the UVC helper" + "ordinary attached-gadget version updates should preserve the UVC helper unless an operator explicitly opts into helper refresh" ); assert!( SERVER_INSTALL.contains("restart_lesavka_uvc_helper_only") && SERVER_INSTALL.contains("systemctl restart lesavka-uvc") && SERVER_INSTALL - .contains("lesavka-uvc helper restarted in-place; lesavka-core and the attached USB gadget were preserved"), - "version updates must refresh the UVC helper binary without cycling lesavka-core or rebuilding the gadget" + .contains("lesavka-uvc helper restarted in-place by explicit request; lesavka-core and the attached USB gadget were preserved"), + "the optional helper refresh must be explicit and must not cycle lesavka-core or rebuild the gadget" ); assert!( SERVER_INSTALL.contains("sudo systemctl start lesavka-uvc"),