install: require opt-in for live uvc helper refresh
This commit is contained in:
parent
01c4d55926
commit
f9058329bc
6
Cargo.lock
generated
6
Cargo.lock
generated
@ -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",
|
||||
|
||||
@ -4,7 +4,7 @@ path = "src/main.rs"
|
||||
|
||||
[package]
|
||||
name = "lesavka_client"
|
||||
version = "0.22.41"
|
||||
version = "0.22.42"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "lesavka_common"
|
||||
version = "0.22.41"
|
||||
version = "0.22.42"
|
||||
edition = "2024"
|
||||
build = "build.rs"
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -10,7 +10,7 @@ bench = false
|
||||
|
||||
[package]
|
||||
name = "lesavka_server"
|
||||
version = "0.22.41"
|
||||
version = "0.22.42"
|
||||
edition = "2024"
|
||||
autobins = false
|
||||
|
||||
|
||||
@ -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"),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user