core: remove build timestamp from the version info (reproducible builds) (#2182)

* core: remove build timestamp from the version info (reproducible builds)

* remove strings
This commit is contained in:
Evgeny Poberezkin
2023-04-14 13:03:41 +02:00
committed by GitHub
parent e5713087e3
commit 4e01970d69
41 changed files with 6 additions and 110 deletions
@@ -3398,7 +3398,6 @@ class AutoAccept(val acceptIncognito: Boolean, val autoReply: MsgContent?) {
@Serializable
data class CoreVersionInfo(
val version: String,
val buildTimestamp: String,
val simplexmqVersion: String,
val simplexmqCommit: String
)
@@ -23,7 +23,6 @@ fun VersionInfoView(info: CoreVersionInfo) {
Text(String.format(stringResource(R.string.app_version_name), BuildConfig.VERSION_NAME))
Text(String.format(stringResource(R.string.app_version_code), BuildConfig.VERSION_CODE))
Text(String.format(stringResource(R.string.core_version), info.version))
Text(String.format(stringResource(R.string.core_build_timestamp), info.buildTimestamp))
val simplexmqCommit = if (info.simplexmqCommit.length >= 7) info.simplexmqCommit.substring(startIndex = 0, endIndex = 7) else info.simplexmqCommit
Text(String.format(stringResource(R.string.core_simplexmq_version), info.simplexmqVersion, simplexmqCommit))
}
@@ -655,7 +655,6 @@
<string name="app_version_title">Verze aplikace</string>
<string name="app_version_name">Verze aplikace: v%s</string>
<string name="core_version">Verze jádra: v%s</string>
<string name="core_build_timestamp">Jádro sestaveno: %s</string>
<string name="delete_address__question">Smazat adresu\?</string>
<string name="all_your_contacts_will_remain_connected">Všechny vaše kontakty zůstanou připojeny.</string>
<string name="contact_requests">Žádosti o kontakt</string>
@@ -1000,7 +1000,6 @@
<string name="app_version_code">App Build: %s</string>
<string name="app_version_title">App Version</string>
<string name="app_version_name">App Version: v%s</string>
<string name="core_build_timestamp">Core übersetzt am: %s</string>
<string name="core_version">Core Version: v%s</string>
<string name="users_add">Profil hinzufügen</string>
<string name="users_delete_all_chats_deleted">Alle Chats und Nachrichten werden gelöscht! Dies kann nicht rückgängig gemacht werden!</string>
@@ -253,7 +253,6 @@
<string name="database_passphrase_and_export">Base de Datos y
\nContraseña</string>
<string name="contribute">Contribuye</string>
<string name="core_build_timestamp">Core compilado: %s</string>
<string name="core_version">Core versión: v%s</string>
<string name="contact_requests">Solicitud del contacto</string>
<string name="delete_image">Eliminar imagen</string>
@@ -925,7 +925,6 @@
<string name="core_simplexmq_version">simplexmq : v%s (%2s)</string>
<string name="app_version_code">Build de l\'app : %s</string>
<string name="app_version_name">Version de l\'app : v%s</string>
<string name="core_build_timestamp">Cœur compilé le : %s</string>
<string name="core_version">Version du cœur : v%s</string>
<string name="network_option_ping_count">Nombre de PING</string>
<string name="users_delete_all_chats_deleted">Toutes les discussions et tous les messages seront supprimés - il est impossible de revenir en arrière !</string>
@@ -927,7 +927,6 @@
<string name="core_simplexmq_version">simplexmq: v%s (%2s)</string>
<string name="app_version_code">Build dell\'app: %s</string>
<string name="app_version_name">Versione app: v%s</string>
<string name="core_build_timestamp">Core compilato il: %s</string>
<string name="smp_servers_per_user">I server per le nuove connessioni del profilo di chat attuale</string>
<string name="users_add">Aggiungi profilo</string>
<string name="users_delete_question">Eliminare il profilo di chat\?</string>
@@ -540,7 +540,6 @@
<string name="markdown_help">マークダウン (書式編集) ガイド</string>
<string name="smp_servers_enter_manually">サーバを手動で入力</string>
<string name="network_use_onion_hosts_required_desc">接続にオニオンのホストが必要となります。</string>
<string name="core_build_timestamp">コアのビルド@: %s</string>
<string name="create_address">アドレスを作成</string>
<string name="delete_address__question">アドレスを削除しますか?</string>
<string name="display_name__field">表示の名前:</string>
@@ -206,7 +206,6 @@
<string name="delete_contact_all_messages_deleted_cannot_undo_warning">대화 상대와 메시지가 삭제돼요. 삭제 후 되돌릴 수 없어요!</string>
<string name="status_contact_has_e2e_encryption">대화 상대와 종단간 암호화됨</string>
<string name="alert_title_contact_connection_pending">대화 상대와 아직 연결되지 않았어요!</string>
<string name="core_build_timestamp">코어 빌드: %s</string>
<string name="archive_created_on_ts"><xliff:g id="archive_ts">%1$s</xliff:g>에 생성 완료</string>
<string name="create_one_time_link">일회용 초대 링크 생성</string>
<string name="create_secret_group_title">비밀 그룹 생성</string>
@@ -159,7 +159,6 @@
<string name="incorrect_code">Neteisingas saugumo kodas!</string>
<string name="smp_servers_save">Įrašyti serverius</string>
<string name="smp_save_servers_question">Įrašyti serverius\?</string>
<string name="core_build_timestamp">Branduolys sudarytas: %s</string>
<string name="create_address">Sukurti adresą</string>
<string name="delete_address">Ištrinti adresą</string>
<string name="error_saving_user_password">Klaida įrašant naudotojo slaptažodį</string>
@@ -174,7 +174,6 @@
<string name="contribute">Bijdragen</string>
<string name="configure_ICE_servers">ICE servers configureren</string>
<string name="network_session_mode_entity">Verbinding</string>
<string name="core_build_timestamp">Core gebouwd op: %s</string>
<string name="core_version">Core versie: v%s</string>
<string name="callstate_connected">verbonden</string>
<string name="callstate_connecting">Verbinden…</string>
@@ -344,7 +344,6 @@
\n<b>Uwaga</b>: jeśli masz wiele połączeń, zużycie baterii i ruchu może być znacznie wyższe, a niektóre połączenia mogą się nie udać.</string>
<string name="network_session_mode_user">Profil czatu</string>
<string name="network_session_mode_entity">Połączenie</string>
<string name="core_build_timestamp">Kompilacja rdzenia: %s</string>
<string name="core_version">Wersja rdzenia: v%s</string>
<string name="error_saving_ICE_servers">Błąd zapisu serwerów ICE</string>
<string name="enter_one_ICE_server_per_line">Serwery ICE (po jednym na linię)</string>
@@ -664,7 +664,6 @@
<string name="network_use_onion_hosts_required_desc">Os hosts Onion serão necessários para a conexão.</string>
<string name="network_use_onion_hosts_required_desc_in_alert">Os hosts Onion serão necessários para a conexão.</string>
<string name="core_version">Versão principal: v%s</string>
<string name="core_build_timestamp">Núcleo construído em: %s</string>
<string name="read_more_in_github_with_link">Leia mais no nosso<font color="#0088ff"> repositório do GitHub</font>.</string>
<string name="onboarding_notifications_mode_subtitle">Pode ser mudado mais tarde via configurações.</string>
<string name="contact_wants_to_connect_via_call"><xliff:g id="contactName" example="Alice">%1$s</xliff:g> quer se conectar com você via</string>
@@ -1025,7 +1025,6 @@
<string name="network_session_mode_entity_description">Отдельное TCP-соединение (и авторизация SOCKS) будет использоваться <b>для каждого контакта и члена группы</b>.
\n<b>Обратите внимание</b>: если у Вас много контактов, потребление батареи и трафика может быть значительно выше, и некоторые соединения могут не работать.</string>
<string name="network_session_mode_user_description">Отдельное TCP-соединение (и авторизация SOCKS) будет использоваться <b>для каждого профиля чата, который Вы имеете в приложении</b>.</string>
<string name="core_build_timestamp">Ядро скомпилировано: %s</string>
<string name="core_version">Версия ядра: v%s</string>
<string name="users_delete_question">Удалить профиль чата\?</string>
<string name="users_delete_profile_for">Удалить профиль чата для</string>
@@ -363,7 +363,6 @@
<string name="encrypted_audio_call">端到端加密语音通话</string>
<string name="enter_one_ICE_server_per_line">ICE 服务器(每行一个)</string>
<string name="create_address">创建地址</string>
<string name="core_build_timestamp">核心构建于:%s</string>
<string name="core_version">核心版本: v%s</string>
<string name="display_name__field">显示名:</string>
<string name="full_name__field">全名:</string>
@@ -425,7 +425,6 @@
<string name="delete_address">刪除地址</string>
<string name="colored">顏色</string>
<string name="how_to_use_your_servers">如何使用你的伺服器</string>
<string name="core_build_timestamp">核心建立於:%s</string>
<string name="to_connect_via_link_title">使用連結連接</string>
<string name="desktop_scan_QR_code_from_app_via_scan_QR_code">💻 桌面版:於應用程式內掃描一個已存在的二維碼,透過二維碼掃描。</string>
<string name="icon_descr_settings">設定</string>
@@ -556,7 +556,6 @@
<string name="app_version_name">App version: v%s</string>
<string name="app_version_code">App build: %s</string>
<string name="core_version">Core version: v%s</string>
<string name="core_build_timestamp">Core built at: %s</string>
<string name="core_simplexmq_version">simplexmq: v%s (%2s)</string>
<string name="show_dev_options">Show:</string>
<string name="hide_dev_options">Hide:</string>
@@ -18,7 +18,6 @@ struct VersionView: View {
Text("App build: \(appBuild ?? "?")")
if let info = versionInfo {
Text("Core version: v\(info.version)")
Text("Core built at: \(info.buildTimestamp)")
if let v = try? AttributedString(markdown: "simplexmq: v\(info.simplexmqVersion) ([\(info.simplexmqCommit.prefix(7))](https://github.com/simplex-chat/simplexmq/commit/\(info.simplexmqCommit)))") {
Text(v)
}
@@ -947,11 +947,6 @@
<target>Kopírovat</target>
<note>chat item action</note>
</trans-unit>
<trans-unit id="Core built at: %@" xml:space="preserve">
<source>Core built at: %@</source>
<target>Jádro sestavené na: %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Core version: v%@" xml:space="preserve">
<source>Core version: v%@</source>
<target>Verze jádra: v%@</target>
@@ -947,11 +947,6 @@
<target>Kopieren</target>
<note>chat item action</note>
</trans-unit>
<trans-unit id="Core built at: %@" xml:space="preserve">
<source>Core built at: %@</source>
<target>Core übersetzt am: %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Core version: v%@" xml:space="preserve">
<source>Core version: v%@</source>
<target>Core Version: v%@</target>
@@ -955,11 +955,6 @@
<target>Copy</target>
<note>chat item action</note>
</trans-unit>
<trans-unit id="Core built at: %@" xml:space="preserve">
<source>Core built at: %@</source>
<target>Core built at: %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Core version: v%@" xml:space="preserve">
<source>Core version: v%@</source>
<target>Core version: v%@</target>
@@ -955,11 +955,6 @@
<target>Copiar</target>
<note>chat item action</note>
</trans-unit>
<trans-unit id="Core built at: %@" xml:space="preserve">
<source>Core built at: %@</source>
<target>Core compilado en: %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Core version: v%@" xml:space="preserve">
<source>Core version: v%@</source>
<target>Versión Core: v%@</target>
@@ -955,11 +955,6 @@
<target>Copier</target>
<note>chat item action</note>
</trans-unit>
<trans-unit id="Core built at: %@" xml:space="preserve">
<source>Core built at: %@</source>
<target>Cœur compilé le : %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Core version: v%@" xml:space="preserve">
<source>Core version: v%@</source>
<target>Version du cœur : v%@</target>
@@ -955,11 +955,6 @@
<target>Copia</target>
<note>chat item action</note>
</trans-unit>
<trans-unit id="Core built at: %@" xml:space="preserve">
<source>Core built at: %@</source>
<target>Core compilato il: %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Core version: v%@" xml:space="preserve">
<source>Core version: v%@</source>
<target>Versione core: v%@</target>
@@ -955,11 +955,6 @@
<target>Kopiëren</target>
<note>chat item action</note>
</trans-unit>
<trans-unit id="Core built at: %@" xml:space="preserve">
<source>Core built at: %@</source>
<target>Core built at: %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Core version: v%@" xml:space="preserve">
<source>Core version: v%@</source>
<target>Core versie: v% @</target>
@@ -955,11 +955,6 @@
<target>Kopiuj</target>
<note>chat item action</note>
</trans-unit>
<trans-unit id="Core built at: %@" xml:space="preserve">
<source>Core built at: %@</source>
<target>Kompilacja rdzenia: %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Core version: v%@" xml:space="preserve">
<source>Core version: v%@</source>
<target>Wersja rdzenia: v%@</target>
@@ -947,11 +947,6 @@
<target>Скопировать</target>
<note>chat item action</note>
</trans-unit>
<trans-unit id="Core built at: %@" xml:space="preserve">
<source>Core built at: %@</source>
<target>Ядро скомпилировано: %@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Core version: v%@" xml:space="preserve">
<source>Core version: v%@</source>
<target>Версия ядра: v%@</target>
@@ -955,11 +955,6 @@
<target>复制</target>
<note>chat item action</note>
</trans-unit>
<trans-unit id="Core built at: %@" xml:space="preserve">
<source>Core built at: %@</source>
<target>核心构建于:%@</target>
<note>No comment provided by engineer.</note>
</trans-unit>
<trans-unit id="Core version: v%@" xml:space="preserve">
<source>Core version: v%@</source>
<target>核心版本: v%@</target>
-1
View File
@@ -1153,7 +1153,6 @@ public enum NotificationPreviewMode: String, SelectableItem {
public struct CoreVersionInfo: Decodable {
public var version: String
public var buildTimestamp: String
public var simplexmqVersion: String
public var simplexmqCommit: String
}
-3
View File
@@ -656,9 +656,6 @@
/* chat item action */
"Copy" = "Kopírovat";
/* No comment provided by engineer. */
"Core built at: %@" = "Jádro sestavené na: %@";
/* No comment provided by engineer. */
"Core version: v%@" = "Verze jádra: v%@";
-3
View File
@@ -656,9 +656,6 @@
/* chat item action */
"Copy" = "Kopieren";
/* No comment provided by engineer. */
"Core built at: %@" = "Core übersetzt am: %@";
/* No comment provided by engineer. */
"Core version: v%@" = "Core Version: v%@";
-3
View File
@@ -680,9 +680,6 @@
/* chat item action */
"Copy" = "Copiar";
/* No comment provided by engineer. */
"Core built at: %@" = "Core compilado en: %@";
/* No comment provided by engineer. */
"Core version: v%@" = "Versión Core: v%@";
-3
View File
@@ -680,9 +680,6 @@
/* chat item action */
"Copy" = "Copier";
/* No comment provided by engineer. */
"Core built at: %@" = "Cœur compilé le : %@";
/* No comment provided by engineer. */
"Core version: v%@" = "Version du cœur : v%@";
-3
View File
@@ -680,9 +680,6 @@
/* chat item action */
"Copy" = "Copia";
/* No comment provided by engineer. */
"Core built at: %@" = "Core compilato il: %@";
/* No comment provided by engineer. */
"Core version: v%@" = "Versione core: v%@";
-3
View File
@@ -680,9 +680,6 @@
/* chat item action */
"Copy" = "Kopiëren";
/* No comment provided by engineer. */
"Core built at: %@" = "Core built at: %@";
/* No comment provided by engineer. */
"Core version: v%@" = "Core versie: v% @";
-3
View File
@@ -680,9 +680,6 @@
/* chat item action */
"Copy" = "Kopiuj";
/* No comment provided by engineer. */
"Core built at: %@" = "Kompilacja rdzenia: %@";
/* No comment provided by engineer. */
"Core version: v%@" = "Wersja rdzenia: v%@";
-3
View File
@@ -656,9 +656,6 @@
/* chat item action */
"Copy" = "Скопировать";
/* No comment provided by engineer. */
"Core built at: %@" = "Ядро скомпилировано: %@";
/* No comment provided by engineer. */
"Core version: v%@" = "Версия ядра: v%@";
@@ -680,9 +680,6 @@
/* chat item action */
"Copy" = "复制";
/* No comment provided by engineer. */
"Core built at: %@" = "核心构建于:%@";
/* No comment provided by engineer. */
"Core version: v%@" = "核心版本: v%@";
+1 -1
View File
@@ -1467,7 +1467,7 @@ processChatCommand = \case
p {groupPreferences = Just . setGroupPreference' SGFTimedMessages pref $ groupPreferences p}
QuitChat -> liftIO exitSuccess
ShowVersion -> do
let versionInfo = coreVersionInfo $(buildTimestampQ) $(simplexmqCommitQ)
let versionInfo = coreVersionInfo $(simplexmqCommitQ)
chatMigrations <- map upMigration <$> withStore' Migrations.getCurrent
agentMigrations <- withAgent getAgentMigrations
pure $ CRVersionInfo {versionInfo, chatMigrations, agentMigrations}
+3 -11
View File
@@ -33,8 +33,7 @@ import Data.Map.Strict (Map)
import Data.String
import Data.Text (Text)
import Data.Time (ZonedTime)
import Data.Time.Clock (UTCTime, getCurrentTime)
import Data.Time.Format (defaultTimeLocale, formatTime, iso8601DateFormat)
import Data.Time.Clock (UTCTime)
import Data.Version (showVersion)
import GHC.Generics (Generic)
import Language.Haskell.TH (Exp, Q, runIO)
@@ -73,11 +72,6 @@ versionString version = "SimpleX Chat v" <> version
updateStr :: String
updateStr = "To update run: curl -o- https://raw.githubusercontent.com/simplex-chat/simplex-chat/master/install.sh | bash"
buildTimestampQ :: Q Exp
buildTimestampQ = do
s <- formatTime defaultTimeLocale (iso8601DateFormat $ Just "%H:%M:%S") <$> runIO getCurrentTime
[|fromString s|]
simplexmqCommitQ :: Q Exp
simplexmqCommitQ = do
s <- either error B.unpack . A.parseOnly commitHashP <$> runIO (B.readFile "./cabal.project")
@@ -92,11 +86,10 @@ simplexmqCommitQ = do
*> "tag: "
*> A.takeWhile (A.notInClass " \r\n")
coreVersionInfo :: String -> String -> CoreVersionInfo
coreVersionInfo buildTimestamp simplexmqCommit =
coreVersionInfo :: String -> CoreVersionInfo
coreVersionInfo simplexmqCommit =
CoreVersionInfo
{ version = versionNumber,
buildTimestamp,
simplexmqVersion = simplexMQVersion,
simplexmqCommit
}
@@ -724,7 +717,6 @@ data ChatLogLevel = CLLDebug | CLLInfo | CLLWarning | CLLError | CLLImportant
data CoreVersionInfo = CoreVersionInfo
{ version :: String,
buildTimestamp :: String,
simplexmqVersion :: String,
simplexmqCommit :: String
}
+2 -2
View File
@@ -1240,10 +1240,10 @@ instance ToJSON WCallCommand where
toJSON = J.genericToJSON . taggedObjectJSON $ dropPrefix "WCCall"
viewVersionInfo :: ChatLogLevel -> CoreVersionInfo -> [StyledString]
viewVersionInfo logLevel CoreVersionInfo {version, buildTimestamp, simplexmqVersion, simplexmqCommit} =
viewVersionInfo logLevel CoreVersionInfo {version, simplexmqVersion, simplexmqCommit} =
map plain $
if logLevel <= CLLInfo
then [versionString version <> parens buildTimestamp, updateStr, "simplexmq: " <> simplexmqVersion <> parens simplexmqCommit]
then [versionString version, updateStr, "simplexmq: " <> simplexmqVersion <> parens simplexmqCommit]
else [versionString version, updateStr]
where
parens s = " (" <> s <> ")"