You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
anaconda/SOURCES/0011-Add-MSVSphere-identifi...

498 lines
24 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

From c330f35f646f1b13cdeb052b815c927cfd050b7d Mon Sep 17 00:00:00 2001
From: Eugene Zamriy <evgeniy.zamriy@softline.com>
Date: Thu, 18 May 2023 11:38:45 +0300
Subject: [PATCH 11/11] Add MSVSphere identification support
---
data/liveinst/gnome/fedora-welcome.desktop | 4 +-
data/liveinst/gnome/fedora-welcome.js | 2 +-
po/ru.po | 136 +++++++++++++-----
pyanaconda/product.py | 30 +++-
.../ui/gui/spokes/installation_progress.py | 8 +-
.../ui/gui/spokes/lib/storage_dialogs.py | 4 +-
pyanaconda/ui/gui/spokes/welcome.py | 15 +-
pyanaconda/vnc.py | 27 +++-
8 files changed, 173 insertions(+), 53 deletions(-)
diff --git a/data/liveinst/gnome/fedora-welcome.desktop b/data/liveinst/gnome/fedora-welcome.desktop
index 90f5678..abbbff3 100644
--- a/data/liveinst/gnome/fedora-welcome.desktop
+++ b/data/liveinst/gnome/fedora-welcome.desktop
@@ -1,6 +1,6 @@
[Desktop Entry]
-Name=Welcome to MSVSphere
-Name[ru]=Добро пожаловать в МСВСфера
+Name=Welcome to MSVSphere ARM
+Name[ru]=Добро пожаловать в МСВСфера АРМ
Exec=/usr/share/anaconda/gnome/fedora-welcome
Terminal=false
Type=Application
diff --git a/data/liveinst/gnome/fedora-welcome.js b/data/liveinst/gnome/fedora-welcome.js
index 4c0a66a..120d718 100755
--- a/data/liveinst/gnome/fedora-welcome.js
+++ b/data/liveinst/gnome/fedora-welcome.js
@@ -62,7 +62,7 @@ const WelcomeWindow = new Lang.Class({
default_width: 600,
default_height: 550,
skip_taskbar_hint: true,
- title: _("Welcome to MSVSphere"),
+ title: _("Welcome to MSVSphere ARM"),
window_position: Gtk.WindowPosition.CENTER });
this.window.connect('key-press-event', Lang.bind(this,
function(w, event) {
diff --git a/po/ru.po b/po/ru.po
index c478f3f..914b54c 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -375,7 +375,22 @@ msgid ""
"Would you like to ignore this and continue with installation?"
msgstr ""
-#: pyanaconda/product.py:69
+#: pyanaconda/product.py:83
+#, python-format
+msgid "MSVSphere %(productVersion)s Server INSTALLATION"
+msgstr "УСТАНОВКА МСВСфера %(productVersion)s Сервер"
+
+#: pyanaconda/product.py:85
+#, python-format
+msgid "MSVSphere %(productVersion)s ARM INSTALLATION"
+msgstr "УСТАНОВКА МСВСфера %(productVersion)s АРМ"
+
+#: pyanaconda/product.py:87
+#, python-format
+msgid "MSVSphere %(productVersion)s OS INSTALLATION"
+msgstr "УСТАНОВКА МСВСфера %(productVersion)s ОС"
+
+#: pyanaconda/product.py:89
#, python-format
msgid "%(productName)s %(productVersion)s INSTALLATION"
msgstr "УСТАНОВКА %(productName)s %(productVersion)s"
@@ -1152,7 +1167,7 @@ msgstr ""
#: pyanaconda/ui/gui/__init__.py:365 widgets/src/BaseWindow.c:151
msgid "Help!"
-msgstr "Помогите!"
+msgstr "Справка"
#: pyanaconda/ui/gui/__init__.py:854
#: pyanaconda/ui/gui/spokes/lib/detailederror.py:58
@@ -1182,7 +1197,7 @@ msgid ""
"\"\">Click for details.</a>"
msgstr ""
"Предупреждение: в процессоре включена одновременная многопоточность (SMT). "
-"<a href=\"\">Нжмите для получения дополнительной информации.</a>"
+"<a href=\"\">Нажмите для получения дополнительной информации.</a>"
#: pyanaconda/ui/gui/hubs/summary.py:103
msgid ""
@@ -1424,7 +1439,22 @@ msgctxt "GUI|Custom Partitioning|Reset Dialog"
msgid "_Preserve current selections"
msgstr "О_ставить текущий выбор"
-#: pyanaconda/ui/gui/spokes/welcome.py:274
+#: pyanaconda/ui/gui/spokes/welcome.py:278
+#, python-format
+msgid "WELCOME TO MSVSphere %(version)s Server"
+msgstr "ДОБРО ПОЖАЛОВАТЬ В МСВСфера %(version)s Сервер"
+
+#: pyanaconda/ui/gui/spokes/welcome.py:280
+#, python-format
+msgid "WELCOME TO MSVSphere %(version)s ARM"
+msgstr "ДОБРО ПОЖАЛОВАТЬ В МСВСфера %(version)s АРМ"
+
+#: pyanaconda/ui/gui/spokes/welcome.py:282
+#, python-format
+msgid "WELCOME TO MSVSphere %(version)s OS"
+msgstr "ДОБРО ПОЖАЛОВАТЬ В МСВСфера %(version)s ОС"
+
+#: pyanaconda/ui/gui/spokes/welcome.py:284
#, python-format
msgid "WELCOME TO %(name)s %(version)s."
msgstr "ДОБРО ПОЖАЛОВАТЬ В %(name)s %(version)s."
@@ -1944,7 +1974,7 @@ msgid ""
"You haven't created any mount points for your %(product)s %(version)s "
"installation yet. You can:"
msgstr ""
-"Вы еще не создали точки монтирования для установки %(product)s %(version)s. "
+"Вы еще не создали точки монтирования для установки МСВСфера %(version)s ОС. "
"Вы можете:"
#: pyanaconda/ui/gui/spokes/lib/accordion.py:479
@@ -2024,7 +2054,7 @@ msgid ""
"of available space, including <b>%(software)s</b> for software and <b>"
"%(swap)s</b> for swap space."
msgstr ""
-"Для установки <b>%(product)s</b> требуется <b>%(total)s</b>, в том числе <b>"
+"Для установки <b>МСВСфера ОС</b> требуется <b>%(total)s</b>, в том числе <b>"
"%(software)s</b> для программ и <b>%(swap)s</b> для подкачки."
#: pyanaconda/ui/gui/spokes/lib/storage_dialogs.py:81
@@ -2035,7 +2065,7 @@ msgid ""
"%(software)s</b> for software and <b>%(swap)s</b> for swap space."
msgstr ""
"Для <a href=\"\" title=\"%(tooltip)s\">программного обеспечения <b>"
-"%(product)s</b></a> требуется <b>%(total)s</b> пространства, в том числе <b>"
+"МСВСфера ОС</b></a> требуется <b>%(total)s</b> пространства, в том числе <b>"
"%(software)s</b> для программ и <b>%(swap)s</b> для подкачки."
#: pyanaconda/ui/gui/spokes/lib/storage_dialogs.py:132
@@ -2046,11 +2076,11 @@ msgstr "%s На выбранных дисках доступно:"
#: pyanaconda/ui/gui/spokes/lib/storage_dialogs.py:142
#, python-format
msgid ""
-"<b>You don't have enough space available to install %s</b>. You can shrink "
+"<b>You don't have enough space available to install %(name)s</b>. You can shrink "
"or remove existing partitions via our guided reclaim space tool, or you can "
"adjust your partitions on your own in the custom partitioning interface."
msgstr ""
-"<b>Недостаточно места для установки %s</b>. Можно уменьшить или удалить "
+"<b>Недостаточно места для установки МСВСфера ОС</b>. Можно уменьшить или удалить "
"существующие разделы с помощью помощника или самостоятельно выбрать размеры "
"разделов в окне настройки разделов."
@@ -2060,7 +2090,7 @@ msgid ""
" You don't have enough space available to install <b>%(product)s</b>, even "
"if you used all of the free space available on the selected disks."
msgstr ""
-" Недостаточно места для установки <b>%(product)s</b>, даже если "
+" Недостаточно места для установки <b>МСВСфера ОС</b>, даже если "
"использовать все свободное место на выбранных дисках."
#: pyanaconda/ui/gui/spokes/lib/storage_dialogs.py:178
@@ -2071,10 +2101,10 @@ msgid ""
"could add more disks for additional space, modify your software selection to "
"install a smaller version of <b>%(productName)s</b>, or quit the installer."
msgstr ""
-"<b>Недостаточно места для установки %(productName)s</b>, даже если "
+"<b>Недостаточно места для установки МСВСфера ОС</b>, даже если "
"использовать всё свободное место на выбранных дисках. Можно добавить ещё "
"диски, чтобы получить дополнительное место, изменить выбор программного "
-"обеспечения, чтобы установить меньший вариант <b>%(productName)s</b>, или "
+"обеспечения, чтобы установить меньший вариант <b>МСВСфера ОС</b>, или "
"покинуть программу установки."
#: pyanaconda/ui/gui/spokes/lib/detailederror.py:48
@@ -2272,20 +2302,20 @@ msgstr "_Завершить установку"
#: pyanaconda/ui/gui/spokes/installation_progress.py:158
#, python-format
msgid ""
-"%s is now successfully installed and ready for you to use!\n"
+"%(name)s is now successfully installed and ready for you to use!\n"
"Go ahead and reboot your system to start using it!"
msgstr ""
-"%s успешно установлена и готова к использованию!\n"
-"Давайте, перезагружайте систему и начинайте использовать ее!"
+"МСВСфера ОС установлена и готова к работе.\n"
+"Необходимо перезагрузить систему чтобы приступить к использованию."
#: pyanaconda/ui/gui/spokes/installation_progress.py:163
#, python-format
msgid ""
-"%s is now successfully installed and ready for you to use!\n"
+"%(name)s is now successfully installed and ready for you to use!\n"
"Go ahead and quit the application to start using it!"
msgstr ""
-"%s успешно установлено и готово к использованию!\n"
-"Выйдите из приложения и начните использовать его!"
+"МСВСфера ОС установлена и готова к работе.\n"
+"Необходимо выйти из приложения чтобы приступить к использованию."
#: pyanaconda/ui/gui/spokes/software_selection.py:66
msgctxt "GUI|Spoke"
@@ -2448,7 +2478,7 @@ msgid ""
"you'll be able to view their details here."
msgstr ""
"Здесь будет показана информация о созданных точках монтирования для "
-"установки %(name)s %(version)s."
+"установки МСВСфера %(version)s ОС."
#: pyanaconda/ui/gui/spokes/custom_storage.py:615
#: pyanaconda/ui/gui/spokes/advstorage/nvdimm.glade:178
@@ -2868,7 +2898,7 @@ msgid ""
"recommended for a normal %(productName)s install."
msgstr ""
"Размер раздела %(mount)s меньше %(size)s, что меньше рекомендованного "
-"размера для обычной установки %(productName)s."
+"размера для обычной установки МСВСфера ОС."
#: pyanaconda/modules/storage/checker/utils.py:131
#, python-format
@@ -3548,7 +3578,7 @@ msgstr "Не удалось продолжить установку."
#: pyanaconda/modules/storage/partitioning/interactive/utils.py:213
#, python-brace-format
msgid "New {name} {version} Installation"
-msgstr "Новая установка {name} {version}"
+msgstr "Новая установка МСВСфера {version} ОС"
#: pyanaconda/modules/storage/partitioning/interactive/utils.py:275
msgid "Cannot set label on file system."
@@ -3959,13 +3989,13 @@ msgstr ""
#: pyanaconda/core/constants.py:159
msgid ""
-"This hardware (or a combination thereof) is not supported by Red Hat. For "
-"more information on supported hardware, please refer to http://www.redhat."
-"com/hardware."
+"This hardware (or a combination thereof) is not supported by MSVSphere. "
+"For more information on supported hardware, please refer to "
+"https://msvsphere.ru."
msgstr ""
-"Это аппаратное обеспечение (или их комбинация) не поддерживается Red Hat. "
-"Для получения дополнительной информации о поддерживаемом оборудовании см. "
-"http://www.redhat.com/hardware."
+"Это аппаратное обеспечение (или их комбинация) не поддерживается "
+"МСВСфера ОС. Для получения дополнительной информации о поддерживаемом "
+"оборудовании см. https://msvsphere.ru."
#: pyanaconda/core/constants.py:165
msgid ""
@@ -4303,12 +4333,42 @@ msgstr "не настроено"
msgid "Full name cannot contain colon characters"
msgstr "Полное имя не может содержать двоеточий"
-#: pyanaconda/vnc.py:79
+#: pyanaconda/vnc.py:81
+#, python-format
+msgid "MSVSphere %(productVersion)s Server installation"
+msgstr "Установка МСВСфера %(productVersion)s Сервер"
+
+#: pyanaconda/vnc.py:83
+#, python-format
+msgid "MSVSphere %(productVersion)s ARM installation"
+msgstr "Установка МСВСфера %(productVersion)s АРМ"
+
+#: pyanaconda/vnc.py:85
+#, python-format
+msgid "MSVSphere %(productVersion)s OS installation"
+msgstr "Установка МСВСфера %(productVersion)s ОС"
+
+#: pyanaconda/vnc.py:87
#, python-format
msgid "%(productName)s %(productVersion)s installation"
msgstr "Установка %(productName)s %(productVersion)s"
-#: pyanaconda/vnc.py:148
+#: pyanaconda/vnc.py:159
+#, python-format
+msgid "MSVSphere %(productVersion)s Server installation on host %(name)s"
+msgstr "Установка МСВСфера %(productVersion)s Сервер на %(name)s"
+
+#: pyanaconda/vnc.py:162
+#, python-format
+msgid "MSVSphere %(productVersion)s ARM installation on host %(name)s"
+msgstr "Установка МСВСфера %(productVersion)s АРМ на %(name)s"
+
+#: pyanaconda/vnc.py:165
+#, python-format
+msgid "MSVSphere %(productVersion)s OS installation on host %(name)s"
+msgstr "Установка МСВСфера %(productVersion)s ОС на %(name)s"
+
+#: pyanaconda/vnc.py:168
#, python-format
msgid "%(productName)s %(productVersion)s installation on host %(name)s"
msgstr "Установка %(productName)s %(productVersion)s на %(name)s"
@@ -7556,22 +7616,22 @@ msgstr "Установить Live CD на жёсткий диск"
#: data/liveinst/gnome/fedora-welcome.desktop:3
#: data/liveinst/gnome/fedora-welcome.js:65
-msgid "Welcome to Fedora"
-msgstr "Добро пожаловать в Fedora"
+msgid "Welcome to MSVSphere ARM"
+msgstr "Добро пожаловать в МСВСфера АРМ"
#: data/liveinst/gnome/fedora-welcome.js:94
-msgid "Try Fedora"
-msgstr "Попробуйте Fedora"
+msgid "Try MSVSphere"
+msgstr "Попробовать в режиме Live"
#: data/liveinst/gnome/fedora-welcome.js:110
msgid ""
-"You are currently running Fedora from live media.\n"
-"You can install Fedora now, or choose \"Install to Hard Drive\" in the "
+"You are currently running MSVSphere from live media.\n"
+"You can install MSVSphere now, or choose \"Install to Hard Drive\" in the "
"Activities Overview at any later time."
msgstr ""
-"Fedora запущена с установочного диска.\n"
-"Вы можете установить Fedora сейчас или в любое время выбрать «Установить на "
-"жесткий диск» в меню «Обзор»."
+"МСВСфера АРМ запущена с установочного диска.\n"
+"Вы можете установить операционную систему сейчас или в любое время выбрать "
+"«Установить на жесткий диск» в меню «Обзор»."
#: data/liveinst/gnome/fedora-welcome.js:130
msgid ""
diff --git a/pyanaconda/product.py b/pyanaconda/product.py
index 9dbfe1f..34118d0 100644
--- a/pyanaconda/product.py
+++ b/pyanaconda/product.py
@@ -19,6 +19,7 @@
import configparser
import os
+import re
from pyanaconda.core.i18n import _
@@ -64,9 +65,36 @@ def trim_product_version_for_ui(version):
productVersion = trim_product_version_for_ui(productVersion)
+if productName.startswith("MSVSphere"):
+ productBase = "MSVSphere"
+ if productName == "MSVSphere Server" or \
+ (productName == "MSVSphere" and productVariant == "Minimal"):
+ productFlavor = "Server"
+ elif productName == "MSVSphere" and productVariant == "BaseOS":
+ productFlavor = "OS"
+ elif productName == "MSVSphere":
+ os_release = open("/etc/os-release", "r")
+ for line in os_release:
+ match = re.match("PRETTY_NAME=.*\((.*?)\)", line)
+ if match:
+ productFlavor = match.group(1)
+ else:
+ productFlavor = "OS"
+else:
+ productBase = productName
+ productFlavor = None
+
def distributionText():
- return _("%(productName)s %(productVersion)s INSTALLATION") % {
+ if productBase == "MSVSphere" and productFlavor == "Server":
+ distro_text = _("MSVSphere %(productVersion)s Server INSTALLATION")
+ elif productBase == "MSVSphere" and productFlavor == "ARM":
+ distro_text = _("MSVSphere %(productVersion)s ARM INSTALLATION")
+ elif productBase == "MSVSphere" and productFlavor == "OS":
+ distro_text = _("MSVSphere %(productVersion)s OS INSTALLATION")
+ else:
+ distro_text = _("%(productName)s %(productVersion)s INSTALLATION")
+ return distro_text % {
"productName": productName.upper(),
"productVersion": productVersion.upper()
}
diff --git a/pyanaconda/ui/gui/spokes/installation_progress.py b/pyanaconda/ui/gui/spokes/installation_progress.py
index c2dfbaf..de1fe76 100644
--- a/pyanaconda/ui/gui/spokes/installation_progress.py
+++ b/pyanaconda/ui/gui/spokes/installation_progress.py
@@ -155,14 +155,14 @@ class ProgressSpoke(StandaloneSpoke):
# Set the reboot label.
if conf.target.is_hardware:
continue_text = _(
- "%s is now successfully installed and ready for you to use!\n"
+ "%(name)s is now successfully installed and ready for you to use!\n"
"Go ahead and reboot your system to start using it!"
- ) % productName
+ ) % {"name": productName}
else:
continue_text = _(
- "%s is now successfully installed and ready for you to use!\n"
+ "%(name)s is now successfully installed and ready for you to use!\n"
"Go ahead and quit the application to start using it!"
- ) % productName
+ ) % {"name": productName}
label = self.builder.get_object("rebootLabel")
label.set_text(continue_text)
diff --git a/pyanaconda/ui/gui/spokes/lib/storage_dialogs.py b/pyanaconda/ui/gui/spokes/lib/storage_dialogs.py
index 2f8338b..e330641 100644
--- a/pyanaconda/ui/gui/spokes/lib/storage_dialogs.py
+++ b/pyanaconda/ui/gui/spokes/lib/storage_dialogs.py
@@ -140,10 +140,10 @@ class NeedSpaceDialog(InstallOptionsDialogBase):
self._set_free_space_labels(disk_free, fs_free)
label_text = _("<b>You don't have enough space available to install "
- "%s</b>. You can shrink or remove existing partitions "
+ "%(name)s</b>. You can shrink or remove existing partitions "
"via our guided reclaim space tool, or you can adjust your "
"partitions on your own in the custom partitioning "
- "interface.") % escape_markup(productName)
+ "interface.") % {"name": escape_markup(productName)}
self.builder.get_object("need_space_options_label").set_markup(label_text)
self._add_modify_watcher(label)
diff --git a/pyanaconda/ui/gui/spokes/welcome.py b/pyanaconda/ui/gui/spokes/welcome.py
index 2d8f6b2..4e1fd87 100644
--- a/pyanaconda/ui/gui/spokes/welcome.py
+++ b/pyanaconda/ui/gui/spokes/welcome.py
@@ -34,7 +34,10 @@ from pyanaconda.ui.gui.spokes.lib.lang_locale_handler import LangLocaleHandler
from pyanaconda.ui.gui.spokes.lib.unsupported_hardware import UnsupportedHardwareDialog
from pyanaconda import localization
-from pyanaconda.product import distributionText, isFinal, productName, productVersion
+from pyanaconda.product import (
+ distributionText, isFinal, productName, productVersion, productBase,
+ productFlavor
+)
from pyanaconda import flags
from pyanaconda import geoloc
from pyanaconda.core.i18n import _, C_
@@ -271,7 +274,15 @@ class WelcomeLanguageSpoke(StandaloneSpoke, LangLocaleHandler):
# substituted.
welcomeLabel = self.builder.get_object("welcomeLabel")
- welcomeLabel.set_text(_("WELCOME TO %(name)s %(version)s.") %
+ if productBase == "MSVSphere" and productFlavor == "Server":
+ welcome_text = _("WELCOME TO MSVSphere %(version)s Server")
+ elif productBase == "MSVSphere" and productFlavor == "ARM":
+ welcome_text = _("WELCOME TO MSVSphere %(version)s ARM")
+ elif productBase == "MSVSphere" and productFlavor == "OS":
+ welcome_text = _("WELCOME TO MSVSphere %(version)s OS")
+ else:
+ welcome_text = _("WELCOME TO %(name)s %(version)s")
+ welcomeLabel.set_text(welcome_text %
{"name" : productName.upper(), "version" : productVersion}) # pylint: disable=no-member
# Retranslate the language (filtering) entry's placeholder text
diff --git a/pyanaconda/vnc.py b/pyanaconda/vnc.py
index 5fadcde..c53249f 100644
--- a/pyanaconda/vnc.py
+++ b/pyanaconda/vnc.py
@@ -76,7 +76,16 @@ class VncServer(object):
self.anaconda = None
self.log = get_stdout_logger()
- self.desktop = _("%(productName)s %(productVersion)s installation")\
+ is_sphere = product.productBase == "MSVSphere"
+ if is_sphere and product.productFlavor == "Server":
+ desktop_text = _("MSVSphere %(productVersion)s Server installation")
+ elif is_sphere and product.productFlavor == "ARM":
+ desktop_text = _("MSVSphere %(productVersion)s ARM installation")
+ elif is_sphere and product.productFlavor == "OS":
+ desktop_text = _("MSVSphere %(productVersion)s OS installation")
+ else:
+ desktop_text = _("%(productName)s %(productVersion)s installation")
+ self.desktop = desktop_text \
% {'productName': product.productName,
'productVersion': product.productVersion}
@@ -145,8 +154,20 @@ class VncServer(object):
# figure out product info
if host:
- self.desktop = _("%(productName)s %(productVersion)s installation "
- "on host %(name)s") \
+ is_sphere = product.productBase == "MSVSphere"
+ if is_sphere and product.productFlavor == "Server":
+ desktop_text = _("MSVSphere %(productVersion)s Server "
+ "installation on host %(name)s")
+ elif is_sphere and product.productFlavor == "ARM":
+ desktop_text = _("MSVSphere %(productVersion)s ARM "
+ "installation on host %(name)s")
+ elif is_sphere and product.productFlavor == "OS":
+ desktop_text = _("MSVSphere %(productVersion)s OS "
+ "installation on host %(name)s")
+ else:
+ desktop_text = _("%(productName)s %(productVersion)s "
+ "installation on host %(name)s")
+ self.desktop = desktop_text \
% {'productName': product.productName,
'productVersion': product.productVersion,
'name': host}
--
2.41.0