Show the exact build in About, Copy Info, REPORT and --version

Builds from main reported only the release version (2026.36) even when
HEAD was hundreds of commits past the tag. build.rs now also emits
OCS_TAG_DISTANCE, OCS_COMMIT_DATE, OCS_BUILD_METADATA and
OCS_FULL_VERSION: a clean checkout of the release tag stays "2026.36",
anything else becomes "2026.36+194.gef189d77", with ".dirty" appended
for uncommitted changes and only the hash when no tag can be counted
from (shallow clone, tarball). OCS_APP_VERSION is unchanged so the
update check, donation gate, User-Agents and window title keep working.

The About dialog gains Build / Commit date / Profile cards, Copy Info,
the REPORT issue template and recovery reports carry the full version,
and `-V`/`--version` print it instead of Cargo's 2026.36.0. Release
workflows check out full history so release binaries see the tag.

Also fixes the build being marked dirty when there is no repository:
diff-index exits 128 there, not 1.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
PanosandClaude Opus 5 committed 2026-09-12 16:19:40 +03:00
1 parent 58c9fcb748
commit 5f161bb037
31 files changed
+204 -18

No files matched your search

+3
View File
@@ -4621,6 +4621,8 @@ plugins =
.no-releases = لا توجد إصدارات
ui =
.build = البناء
.commit-date = تاريخ الإيداع
.count-steps-available = تتوفر __ocs_arg_count__ خطوات
.label-history = سجل __ocs_arg_label__
.n-vp = __ocs_arg_n__ منفذ عرض
@@ -4720,6 +4722,7 @@ ui =
.quick-select-menu-period-title-case = تحديد سريع...
.reading-file = يجري قراءة الملف…
.redo = إعادة
.release = إصدار
.repeat-last = تكرار __ocs_arg_last__
.replace-all = استبدال الكل
.replace-with = الاستبدال بـ:
+3
View File
@@ -4609,6 +4609,8 @@ plugins =
.no-releases = няма версии
ui =
.build = Компилация
.commit-date = Дата на комита
.count-steps-available = налични __ocs_arg_count__ стъпки
.label-history = история на __ocs_arg_label__
.n-vp = __ocs_arg_n__ VP
@@ -4708,6 +4710,7 @@ ui =
.quick-select-menu-period-title-case = Бърз избор...
.reading-file = Четене на файл…
.redo = Повтори
.release = Издание
.repeat-last = Повтори __ocs_arg_last__
.replace-all = Замени всички
.replace-with = Замени с:
+3
View File
@@ -4606,6 +4606,8 @@ plugins =
.no-releases = žádná vydání
ui =
.build = Sestavení
.commit-date = Datum commitu
.count-steps-available = K dispozici jsou kroky __ocs_arg_count__
.label-history = Historie __ocs_arg_label__
.n-vp = __ocs_arg_n__ VP
@@ -4705,6 +4707,7 @@ ui =
.quick-select-menu-period-title-case = Rychlý výběr...
.reading-file = Čtení souboru…
.redo = Znovu
.release = Vydání
.repeat-last = Opakujte __ocs_arg_last__
.replace-all = Nahradit vše
.replace-with = Nahradit za:
+3
View File
@@ -4607,6 +4607,8 @@ plugins =
.no-releases = Keine Freigaben
ui =
.build = Build
.commit-date = Commit-Datum
.count-steps-available = __ocs_arg_count__ Schritte verfügbar
.label-history = __ocs_arg_label__ Verlauf
.n-vp = __ocs_arg_n__ Ansichtsfenster
@@ -4706,6 +4708,7 @@ ui =
.quick-select-menu-period-title-case = Schnellauswahl…
.reading-file = Lesedatei...
.redo = Wiederholen
.release = Release
.repeat-last = Wiederholen __ocs_arg_last__
.replace-all = Ersetzen Sie alle
.replace-with = Ersetzen Sie durch:
+3
View File
@@ -4609,6 +4609,8 @@ plugins =
.no-releases = καμία έκδοση
ui =
.build = Build
.commit-date = Ημερομηνία commit
.count-steps-available = __ocs_arg_count__ διαθέσιμα βήματα
.label-history = Ιστορικό: __ocs_arg_label__
.n-vp = __ocs_arg_n__ ΘΠ
@@ -4708,6 +4710,7 @@ ui =
.quick-select-menu-period-title-case = Γρήγορη επιλογή...
.reading-file = Ανάγνωση αρχείου…
.redo = Επανάληψη
.release = Έκδοση
.repeat-last = Επανάληψη __ocs_arg_last__
.replace-all = Αντικατάσταση όλων
.replace-with = Αντικατάσταση με:
+3
View File
@@ -4610,6 +4610,8 @@ plugins =
.no-releases = no releases
ui =
.build = Build
.commit-date = Commit date
.count-steps-available = __ocs_arg_count__ steps available
.label-history = __ocs_arg_label__ history
.n-vp = __ocs_arg_n__ VP
@@ -4709,6 +4711,7 @@ ui =
.quick-select-menu-period-title-case = Quick Select...
.reading-file = Reading file…
.redo = Redo
.release = Release
.repeat-last = Repeat __ocs_arg_last__
.replace-all = Replace All
.replace-with = Replace with:
+3
View File
@@ -4609,6 +4609,8 @@ plugins =
.no-releases = sin versiones
ui =
.build = Compilación
.commit-date = Fecha del commit
.count-steps-available = __ocs_arg_count__ pasos disponibles
.label-history = Historial de __ocs_arg_label__
.n-vp = __ocs_arg_n__ VG
@@ -4708,6 +4710,7 @@ ui =
.quick-select-menu-period-title-case = Selección rápida...
.reading-file = Leyendo archivo…
.redo = Rehacer
.release = Versión oficial
.repeat-last = Repetir __ocs_arg_last__
.replace-all = Reemplazar todo
.replace-with = Reemplazar por:
+3
View File
@@ -4608,6 +4608,8 @@ plugins =
.no-releases = ei julkaisuja
ui =
.build = Koontiversio
.commit-date = Commitin päivämäärä
.count-steps-available = __ocs_arg_count__ portaat saatavilla
.label-history = __ocs_arg_label__ historia
.n-vp = __ocs_arg_n__ VP
@@ -4705,6 +4707,7 @@ ui =
.quick-select-menu-period-title-case = Pikavalinta...
.reading-file = Luetaan tiedostoa…
.redo = Toista
.release = Julkaisu
.repeat-last = Toista __ocs_arg_last__
.replace-all = Korvaa kaikki
.replace-with = Korvaa seuraavalla:
+3
View File
@@ -4609,6 +4609,8 @@ plugins =
.no-releases = pas de libération
ui =
.build = Build
.commit-date = Date du commit
.count-steps-available = __ocs_arg_count__ étapes disponibles
.label-history = __ocs_arg_label__ historique
.n-vp = __ocs_arg_n__ fenêtre(s)
@@ -4707,6 +4709,7 @@ ui =
.quick-select-menu-period-title-case = Sélection rapide...
.reading-file = Lecture du fichier...
.redo = Refaire
.release = Version officielle
.repeat-last = Répéter __ocs_arg_last__
.replace-all = Remplacer tout
.replace-with = Remplacer par :
+3
View File
@@ -4597,6 +4597,8 @@ plugins =
.no-releases = कोई विज्ञप्ति नहीं
ui =
.build = बिल्ड
.commit-date = कमिट तिथि
.count-steps-available = __ocs_arg_count__ उपलब्ध चरणों
.label-history = __ocs_arg_label__ इतिहास
.n-vp = __ocs_arg_n__ व्यूपोर्ट
@@ -4696,6 +4698,7 @@ ui =
.quick-select-menu-period-title-case = त्वरित चयन...
.reading-file = फ़ाइल पढ़ना...
.redo = रेडो
.release = रिलीज़
.repeat-last = दोहराएँ __ocs_arg_last__
.replace-all = सबको बदल दें
.replace-with = इसके साथ बदलें:
+3
View File
@@ -4608,6 +4608,8 @@ plugins =
.no-releases = nincs kiadás
ui =
.build = Build
.commit-date = Commit dátuma
.count-steps-available = __ocs_arg_count__ lépcsők állnak rendelkezésre
.label-history = __ocs_arg_label__ története
.n-vp = __ocs_arg_n__ VP
@@ -4707,6 +4709,7 @@ ui =
.quick-select-menu-period-title-case = Gyors kiválasztás...
.reading-file = Fájl olvasása…
.redo = Újra
.release = Kiadás
.repeat-last = Ismételje meg a __ocs_arg_last__
.replace-all = Cserélje ki az összeset
.replace-with = Csere erre:
+3
View File
@@ -4608,6 +4608,8 @@ plugins =
.no-releases = nessuna release
ui =
.build = Build
.commit-date = Data del commit
.count-steps-available = __ocs_arg_count__ gradini disponibili
.label-history = Storia di __ocs_arg_label__
.n-vp = __ocs_arg_n__ VP
@@ -4707,6 +4709,7 @@ ui =
.quick-select-menu-period-title-case = Selezione rapida...
.reading-file = Lettura del file…
.redo = Rifare
.release = Release
.repeat-last = Ripeti __ocs_arg_last__
.replace-all = Sostituisci tutto
.replace-with = Sostituisci con:
+3
View File
@@ -4597,6 +4597,8 @@ plugins =
.no-releases = リリースなし
ui =
.build = ビルド
.commit-date = コミット日
.count-steps-available = __ocs_arg_count__ ステップ利用可能
.label-history = __ocs_arg_label__ の履歴
.n-vp = __ocs_arg_n__ 個の VP
@@ -4696,6 +4698,7 @@ ui =
.quick-select-menu-period-title-case = クイック選択...
.reading-file = ファイルを読み込み中…
.redo = やり直し
.release = リリース
.repeat-last = __ocs_arg_last__ を繰り返し
.replace-all = すべて置換
.replace-with = 置換後:
+3
View File
@@ -4608,6 +4608,8 @@ plugins =
.no-releases = 릴리스 없음
ui =
.build = 빌드
.commit-date = 커밋 날짜
.count-steps-available = __ocs_arg_count__ 단계 사용 가능
.label-history = __ocs_arg_label__ 역사
.n-vp = __ocs_arg_n__ VP
@@ -4707,6 +4709,7 @@ ui =
.quick-select-menu-period-title-case = 빠른 선택...
.reading-file = 파일을 읽는 중…
.redo = 다시 실행
.release = 릴리스
.repeat-last = __ocs_arg_last__ 반복
.replace-all = 모두 바꾸기
.replace-with = 다음으로 교체:
+3
View File
@@ -4607,6 +4607,8 @@ plugins =
.no-releases = geen releases
ui =
.build = Build
.commit-date = Commitdatum
.count-steps-available = __ocs_arg_count__ stappen beschikbaar
.label-history = __ocs_arg_label__ geschiedenis
.n-vp = __ocs_arg_n__ weergavevenster
@@ -4706,6 +4708,7 @@ ui =
.quick-select-menu-period-title-case = Snel selecteren...
.reading-file = Bestand wordt gelezen...
.redo = Opnieuw
.release = Release
.repeat-last = __ocs_arg_last__ herhalen
.replace-all = Alles vervangen
.replace-with = Vervangen door:
+3
View File
@@ -4608,6 +4608,8 @@ plugins =
.no-releases = żadnych wydań
ui =
.build = Kompilacja
.commit-date = Data commita
.count-steps-available = Dostępne stopnie __ocs_arg_count__
.label-history = Historia __ocs_arg_label__
.n-vp = __ocs_arg_n__ VP
@@ -4707,6 +4709,7 @@ ui =
.quick-select-menu-period-title-case = Szybki wybór...
.reading-file = Czytanie pliku…
.redo = Powtórz
.release = Wydanie
.repeat-last = Powtórz __ocs_arg_last__
.replace-all = Zamień wszystko
.replace-with = Zamień na:
+3
View File
@@ -4609,6 +4609,8 @@ plugins =
.no-releases = sem versões
ui =
.build = Build
.commit-date = Data do commit
.count-steps-available = __ocs_arg_count__ etapas disponíveis
.label-history = Histórico de __ocs_arg_label__
.n-vp = __ocs_arg_n__ VG
@@ -4708,6 +4710,7 @@ ui =
.quick-select-menu-period-title-case = Seleção rápida...
.reading-file = Lendo arquivo…
.redo = Refazer
.release = Versão oficial
.repeat-last = Repetir __ocs_arg_last__
.replace-all = Substituir tudo
.replace-with = Substituir por:
+3
View File
@@ -4610,6 +4610,8 @@ plugins =
.no-releases = без релизов
ui =
.build = Сборка
.commit-date = Дата коммита
.count-steps-available = __ocs_arg_count__ доступные шаги
.label-history = __ocs_arg_label__ История
.n-vp = __ocs_arg_n__ вид. экранов
@@ -4709,6 +4711,7 @@ ui =
.quick-select-menu-period-title-case = Быстрый выбор...
.reading-file = Чтение файла...
.redo = Повторить
.release = Релиз
.repeat-last = Повторить __ocs_arg_last__
.replace-all = Заменить все
.replace-with = Заменить на:
+3
View File
@@ -4546,6 +4546,8 @@ plugins =
.no-releases = sürüm yok
ui =
.build = Derleme
.commit-date = Commit tarihi
.count-steps-available = __ocs_arg_count__ adım kullanılabilir
.label-history = __ocs_arg_label__ geçmişi
.n-vp = __ocs_arg_n__ görünüm alanı
@@ -4635,6 +4637,7 @@ ui =
.quick-select-menu-period-title-case = Hızlı Seçim...
.reading-file = Dosya okunuyor…
.redo = Yinele
.release = Sürüm
.repeat-last = __ocs_arg_last__ komutunu yinele
.replace-all = Tümünü Değiştir
.replace-with = Şununla değiştir:
+3
View File
@@ -4592,6 +4592,8 @@ plugins =
.no-releases = 无发布版本
ui =
.build = 构建
.commit-date = 提交日期
.count-steps-available = 可用 __ocs_arg_count__ 步
.label-history = __ocs_arg_label__ 历史
.n-vp = __ocs_arg_n__ 个视口
@@ -4691,6 +4693,7 @@ ui =
.quick-select-menu-period-title-case = 快速选择...
.reading-file = 正在读取文件…
.redo = 重做
.release = 正式版
.repeat-last = 重复 __ocs_arg_last__
.replace-all = 全部替换
.replace-with = 替换为:
+3
View File
@@ -4604,6 +4604,8 @@ plugins =
.no-releases = 無發行版本
ui =
.build = 組建
.commit-date = 提交日期
.count-steps-available = 可用 __ocs_arg_count__ 步
.label-history = __ocs_arg_label__ 歷史
.n-vp = __ocs_arg_n__ 個視口
@@ -4703,6 +4705,7 @@ ui =
.quick-select-menu-period-title-case = 快速選擇...
.reading-file = 正在讀取檔案…
.redo = 重做
.release = 正式版
.repeat-last = 重復 __ocs_arg_last__
.replace-all = 全部替換
.replace-with = 替換為: