Compare commits

..
2 Commits
Author SHA1 Message Date
Felitendo e42fb4f61c Make the reported version follow the version actually being built
VERSION is now overridable, so the PKGBUILD passes $pkgver into make and the
two can no longer disagree. v1.0.1 shipped a Makefile that still said 1.0.0, so
'cachy-auto-update --version' reported the wrong release.
2026-08-08 14:45:07 +02:00
Felitendo 459cbbf8e7 Fix locale handling, menu re-entry and empty-checkupdates logging
- The runner now forces LC_ALL=C itself instead of relying on the unit's
  Environment=. pacman failures are classified by matching its output, so a
  run started by hand on a German system was misclassifying every failure.
- 'Update now' in the menu exec'd the runner, which terminated the menu.
- Log a distinct message when checkupdates is unavailable, instead of
  claiming zero pending packages before a full upgrade.
2026-08-08 02:35:34 +02:00
4 changed files with 21 additions and 2 deletions

No files matched your search

+4 -1
View File
@@ -5,7 +5,10 @@
# targets degrade to a no-op when msgfmt/scdoc are missing, so the tree stays # targets degrade to a no-op when msgfmt/scdoc are missing, so the tree stays
# usable for development without the build dependencies installed. # usable for development without the build dependencies installed.
VERSION := 1.0.0 # Overridable so a packager can pass the version it is actually building
# (`make VERSION=$pkgver`). The literal below is the fallback for builds
# straight from a checkout, and is what a release tag has to carry.
VERSION ?= 1.0.2
PREFIX ?= /usr PREFIX ?= /usr
DESTDIR ?= DESTDIR ?=
+3 -1
View File
@@ -170,7 +170,9 @@ cau_do_status() {
cau_do_run() { cau_do_run() {
cau_need_root cau_need_root
exec "$CAU_LIBEXECDIR/cachy-auto-update-run" "$@" # Not exec'd: this is also called from the menu, which has to survive the
# run and redraw afterwards.
"$CAU_LIBEXECDIR/cachy-auto-update-run" "$@"
} }
cau_do_log() { cau_do_log() {
+7
View File
@@ -40,6 +40,13 @@ if [[ $EUID -ne 0 ]]; then
exit 2 exit 2
fi fi
# Force a neutral locale here rather than relying on the unit's Environment=,
# so a run started by hand behaves exactly like one started by the timer.
# pacman failures are classified by matching its output, and on a German system
# that output is German. Text aimed at a person does not come through here - a
# notification is rendered in the recipient's own locale by cau_msg_in.
export LC_ALL=C LANGUAGE=
# Re-exec under an inhibitor so a suspend or shutdown cannot land in the middle # Re-exec under an inhibitor so a suspend or shutdown cannot land in the middle
# of a pacman transaction and leave the database half-written. Done before # of a pacman transaction and leave the database half-written. Done before
# anything else so the whole pass is covered, including the lock. # anything else so the whole pass is covered, including the lock.
+7
View File
@@ -76,9 +76,16 @@ cau_pacman_update() {
return 0 return 0
fi fi
if [[ -n $CAU_PACMAN_PENDING ]]; then
CAU_PACMAN_COUNT="$(grep -c . <<< "$CAU_PACMAN_PENDING")" CAU_PACMAN_COUNT="$(grep -c . <<< "$CAU_PACMAN_PENDING")"
[[ $CAU_PACMAN_COUNT =~ ^[0-9]+$ ]] || CAU_PACMAN_COUNT=0 [[ $CAU_PACMAN_COUNT =~ ^[0-9]+$ ]] || CAU_PACMAN_COUNT=0
cau_info "Updating $CAU_PACMAN_COUNT repository package(s)" cau_info "Updating $CAU_PACMAN_COUNT repository package(s)"
else
# checkupdates is unavailable, so the list is unknown and pacman is
# asked to work it out itself.
CAU_PACMAN_COUNT=0
cau_info "Running a full system upgrade (pending list unavailable)"
fi
mapfile -t flags < <(cau_pacman_flags) mapfile -t flags < <(cau_pacman_flags)
log="$(mktemp)" || return 1 log="$(mktemp)" || return 1