mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-11-10 04:12:08 +08:00
The deb and rpm packages never refreshed an installed Service, and the previous package's prerm/%preun uninstalls it unconditionally. When the Service unit existed before the upgrade, the new postinst/%post now reinstalls it with its group and restores disabled, enabled-runtime, masked-runtime and stopped states. First installs and explicit removals never add a Service. rpm runs the new %post before the old %preun. %post records the transaction process (pid and start time) in /run, and /usr/bin/clash-verge-service-uninstall becomes a wrapper that skips only that %preun call and otherwise runs the real uninstaller, now under /usr/lib/clash-verge-rev. deb has no such ordering: an upgrade from a released version still loses the Service, and later deb upgrades reinstall it in place only once the prerm upgrade guard from #8240 ships. The scripts exit 0, because a failing postinst or %post cannot restore the Service. On failure they write /run/clash-verge-service-upgrade instead; package script output never reaches the GUI. At startup the app offers a reinstall if the Service is not ready and warns if its previous state was not restored. Both notices replay when a window subscribes, and the marker is acknowledged only after both are taken. In-app updates stop a Service-run core and hold the core lifecycle until the package manager exits, including after the 30-second startup timeout. Refs #8515 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
42 lines
1.5 KiB
JSON
42 lines
1.5 KiB
JSON
{
|
|
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
|
|
"identifier": "io.github.clash-verge-rev.clash-verge-rev",
|
|
"bundle": {
|
|
"targets": ["deb", "rpm"],
|
|
"linux": {
|
|
"deb": {
|
|
"depends": ["openssl", "libayatana-appindicator3-1"],
|
|
"desktopTemplate": "./packages/linux/clash-verge.desktop",
|
|
"provides": ["clash-verge"],
|
|
"conflicts": ["clash-verge"],
|
|
"replaces": ["clash-verge"],
|
|
"postInstallScript": "./packages/linux/post-install.sh",
|
|
"preRemoveScript": "./packages/linux/pre-remove.sh",
|
|
"files": {
|
|
"/usr/lib/clash-verge-rev/clash-verge-service-uninstall": "./sidecar/clash-verge-service-uninstall-bin"
|
|
}
|
|
},
|
|
"rpm": {
|
|
"depends": ["openssl", "libayatana-appindicator-gtk3"],
|
|
"recommends": ["policycoreutils", "policycoreutils-python-utils"],
|
|
"desktopTemplate": "./packages/linux/clash-verge.desktop",
|
|
"provides": ["clash-verge"],
|
|
"conflicts": ["clash-verge"],
|
|
"obsoletes": ["clash-verge"],
|
|
"postInstallScript": "./packages/linux/post-install-rpm.sh",
|
|
"preRemoveScript": "./packages/linux/pre-remove.sh",
|
|
"files": {
|
|
"/usr/lib/clash-verge-rev/clash-verge-service-uninstall": "./sidecar/clash-verge-service-uninstall-bin"
|
|
}
|
|
}
|
|
},
|
|
"externalBin": [
|
|
"./sidecar/clash-verge-service",
|
|
"./sidecar/clash-verge-service-install",
|
|
"./sidecar/clash-verge-service-uninstall",
|
|
"./sidecar/verge-mihomo",
|
|
"./sidecar/verge-mihomo-alpha"
|
|
]
|
|
}
|
|
}
|