fix(updates): установка пересобранных релизов в рамках одного тега
opkg считает пакет уже установленным при равенстве версий, поэтому
пересборка под тем же тегом молча не применялась: задание завершалось
успехом, билд оставался старым. Добавлен --force-reinstall в
pkg_install_files_command (opkg) и в install.sh; apk не тронут, он
всегда пишет переданный файл.
Детект пересборки больше не зависит только от SHA, которого нет в
релизах старше f974e4a0: добавлен отпечаток билда по published_at и
метаданным ipk-ассета, решение вынесено в tachyon_build_differs с
префиксным сравнением SHA разной длины. Отпечаток установленного
билда пишется в state-файл и попадает в extra.
Telegram уведомляет о пересборках: check_notified_updates пропускает
outdated_same_release, дедуп идёт по версии и SHA, текст показывает
короткие SHA вместо пары одинаковых версий.
Кэш проверки обновлений сохраняет current_sha из результата действия
вместо безусловного latest, иначе неудачная установка выглядела как
"актуально".
Фронт пересобран из TS, ручная правка main.js снята. Добавлен
describeSameReleaseBuild с фолбэк-текстом, когда SHA недоступен.
This commit is contained in:
+4
-1
@@ -1776,7 +1776,10 @@ pkg_install_files() {
|
||||
return $rc
|
||||
fi
|
||||
else
|
||||
run_logged_timeout "opkg" 120 opkg install --force-overwrite --force-downgrade "$@"
|
||||
# --force-reinstall: a release tag can be rebuilt, so the .ipk version may
|
||||
# equal the installed one. Without it opkg treats that as "already
|
||||
# installed" and the rebuild is never written.
|
||||
run_logged_timeout "opkg" 120 opkg install --force-overwrite --force-downgrade --force-reinstall "$@"
|
||||
local rc=$?
|
||||
if [ $rc -ne 0 ]; then
|
||||
log_line "FAIL opkg install failed (exit $rc)"
|
||||
|
||||
Reference in New Issue
Block a user