MSVSphere support and debranding

i9-beta changed/i9-beta/anaconda-34.25.3.8-1.el9.inferit
Sergey Cherevko 1 year ago
parent 1821235986
commit b0f7b7831d
Signed by: scherevko
GPG Key ID: D87CBBC16D2E4A72

@ -0,0 +1,27 @@
From a79b7a9a0119268617621b78737722269fd5d1f1 Mon Sep 17 00:00:00 2001
From: Eugene Zamriy <eugene@zamriy.info>
Date: Fri, 14 Apr 2023 12:53:14 +0300
Subject: [PATCH 01/13] Disable subscription
---
pyanaconda/ui/gui/spokes/subscription.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/pyanaconda/ui/gui/spokes/subscription.py b/pyanaconda/ui/gui/spokes/subscription.py
index 4d03689..3b0e6c0 100644
--- a/pyanaconda/ui/gui/spokes/subscription.py
+++ b/pyanaconda/ui/gui/spokes/subscription.py
@@ -551,6 +551,10 @@ class SubscriptionSpoke(NormalSpoke):
# also set the spoke warning banner
self.show_warning_message(error_message)
+ @property
+ def showable(self):
+ return False
+
def initialize(self):
NormalSpoke.initialize(self)
self.initialize_start()
--
2.41.0

@ -0,0 +1,25 @@
From e1441025f22f25c41e1ed2d72ff48cad198c2adb Mon Sep 17 00:00:00 2001
From: Eugene Zamriy <eugene@zamriy.info>
Date: Fri, 14 Apr 2023 12:54:58 +0300
Subject: [PATCH 02/13] Hide CDN source button
---
pyanaconda/ui/gui/spokes/installation_source.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/pyanaconda/ui/gui/spokes/installation_source.py b/pyanaconda/ui/gui/spokes/installation_source.py
index c467bd3..398ac11 100644
--- a/pyanaconda/ui/gui/spokes/installation_source.py
+++ b/pyanaconda/ui/gui/spokes/installation_source.py
@@ -798,6 +798,8 @@ class SourceSpoke(NormalSpoke, GUISpokeInputCheckHandler, SourceSwitchHandler):
self._network_button = self.builder.get_object("networkRadioButton")
self._network_box = self.builder.get_object("networkBox")
+ really_hide(self._cdn_button)
+
self._url_entry = self.builder.get_object("urlEntry")
self._protocol_combo_box = self.builder.get_object("protocolComboBox")
self._iso_chooser_button = self.builder.get_object("isoChooserButton")
--
2.41.0

@ -0,0 +1,29 @@
From fc94554299be1657536d4ed3d18e09673fee8713 Mon Sep 17 00:00:00 2001
From: Eugene Zamriy <eugene@zamriy.info>
Date: Fri, 14 Apr 2023 12:56:19 +0300
Subject: [PATCH 03/13] Set MSVSphere installer colors
---
data/anaconda-gtk.css | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/data/anaconda-gtk.css b/data/anaconda-gtk.css
index 516df62..ef6d79d 100644
--- a/data/anaconda-gtk.css
+++ b/data/anaconda-gtk.css
@@ -92,10 +92,11 @@ infobar.error box {
@define-color redhat #2d2d2d;
@define-color fedora #2f4265;
+@define-color msvsphere #343434;
/* theme colors/images */
-@define-color product_bg_color @fedora;
+@define-color product_bg_color @msvsphere;
/* logo and sidebar classes */
--
2.41.0

@ -0,0 +1,27 @@
From ac96b00ea3b3fe15c841e9cb08ad61d124228a87 Mon Sep 17 00:00:00 2001
From: Eugene Zamriy <evgeniy.zamriy@softline.com>
Date: Fri, 28 Jul 2023 23:47:23 +0300
Subject: [PATCH 04/13] Add Minimal and Server repository support
---
pyanaconda/core/constants.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/pyanaconda/core/constants.py b/pyanaconda/core/constants.py
index df360a0..21c410a 100644
--- a/pyanaconda/core/constants.py
+++ b/pyanaconda/core/constants.py
@@ -58,7 +58,9 @@ DEFAULT_REPOS = [productName.split('-')[0].lower(),
"fedora-modular-server",
"rawhide",
"BaseOS", # Used by RHEL
- "baseos"] # Used by CentOS Stream
+ "baseos", # Used by CentOS Stream
+ "Server", # Used by MSVSphere
+ "Minimal"] # Used by MSVSphere
DBUS_ANACONDA_SESSION_ADDRESS = "DBUS_ANACONDA_SESSION_BUS_ADDRESS"
--
2.41.0

@ -0,0 +1,55 @@
From 2bb2cb74d40b692cd694e43e7e94883beef6d7d3 Mon Sep 17 00:00:00 2001
From: Sergey Cherevko <s.cherevko@msvsphere-os.ru>
Date: Wed, 4 Oct 2023 17:34:35 +0300
Subject: [PATCH 05/13] Set default timezone to Europe/Moscow
---
pyanaconda/modules/timezone/installation.py | 4 ++--
pyanaconda/modules/timezone/timezone.py | 2 +-
pyanaconda/ui/gui/spokes/datetime_spoke.py | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/pyanaconda/modules/timezone/installation.py b/pyanaconda/modules/timezone/installation.py
index d6dfd7b..984646d 100644
--- a/pyanaconda/modules/timezone/installation.py
+++ b/pyanaconda/modules/timezone/installation.py
@@ -63,8 +63,8 @@ class ConfigureTimezoneTask(Task):
if not is_valid_timezone(self._timezone):
# this should never happen, but for pity's sake
log.warning("Timezone %s set in kickstart is not valid, "
- "falling back to default (America/New_York).", self._timezone)
- self._timezone = "America/New_York"
+ "falling back to default (Europe/Moscow).", self._timezone)
+ self._timezone = "Europe/Moscow"
def _make_timezone_symlink(self):
"""Create the symlink that actually defines timezone."""
diff --git a/pyanaconda/modules/timezone/timezone.py b/pyanaconda/modules/timezone/timezone.py
index ac5318c..42e0cfe 100644
--- a/pyanaconda/modules/timezone/timezone.py
+++ b/pyanaconda/modules/timezone/timezone.py
@@ -46,7 +46,7 @@ class TimezoneService(KickstartService):
def __init__(self):
super().__init__()
self.timezone_changed = Signal()
- self._timezone = "America/New_York"
+ self._timezone = "Europe/Moscow"
self._priority = TIMEZONE_PRIORITY_DEFAULT
self.geolocation_result_changed = Signal()
diff --git a/pyanaconda/ui/gui/spokes/datetime_spoke.py b/pyanaconda/ui/gui/spokes/datetime_spoke.py
index c99f451..bd6839d 100644
--- a/pyanaconda/ui/gui/spokes/datetime_spoke.py
+++ b/pyanaconda/ui/gui/spokes/datetime_spoke.py
@@ -69,7 +69,7 @@ SERVER_WORKING = 3
SERVER_USE = 4
SERVER_OBJECT = 5
-DEFAULT_TZ = "America/New_York"
+DEFAULT_TZ = "Europe/Moscow"
SPLIT_NUMBER_SUFFIX_RE = re.compile(r'([^0-9]*)([-+])([0-9]+)')
--
2.41.0

@ -0,0 +1,40 @@
From 805711f02da4a60a78fbf3731a089ea0db005c9d Mon Sep 17 00:00:00 2001
From: Eugene Zamriy <eugene@zamriy.info>
Date: Fri, 14 Apr 2023 14:59:53 +0300
Subject: [PATCH 06/13] Add MSVSphere product config
---
data/product.d/msvsphere.conf | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 data/product.d/msvsphere.conf
diff --git a/data/product.d/msvsphere.conf b/data/product.d/msvsphere.conf
new file mode 100644
index 0000000..baaf497
--- /dev/null
+++ b/data/product.d/msvsphere.conf
@@ -0,0 +1,21 @@
+# Anaconda configuration file for MSVSphere.
+
+[Product]
+product_name = MSVSphere
+
+[Base Product]
+product_name = Red Hat Enterprise Linux
+
+[Anaconda]
+forbidden_modules =
+ org.fedoraproject.Anaconda.Modules.Subscription
+
+[Bootloader]
+efi_dir = msvsphere
+
+[Payload]
+enable_closest_mirror = True
+default_source = CLOSEST_MIRROR
+
+[License]
+eula = /usr/share/sphere-release/EULA
--
2.41.0

@ -0,0 +1,25 @@
From 8408a70c71e4cf41e09871d01a81ef25fcab0d33 Mon Sep 17 00:00:00 2001
From: Eugene Zamriy <eugene@zamriy.info>
Date: Fri, 14 Apr 2023 18:00:57 +0300
Subject: [PATCH 07/13] Set Russian language as default
---
pyanaconda/core/constants.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pyanaconda/core/constants.py b/pyanaconda/core/constants.py
index 21c410a..10b93c7 100644
--- a/pyanaconda/core/constants.py
+++ b/pyanaconda/core/constants.py
@@ -72,7 +72,7 @@ ANACONDA_CONFIG_DIR = "/etc/anaconda/"
ANACONDA_CONFIG_TMP = "/run/anaconda/anaconda.conf"
# NOTE: this should be LANG_TERRITORY.CODESET, e.g. en_US.UTF-8
-DEFAULT_LANG = "en_US.UTF-8"
+DEFAULT_LANG = "ru_RU.UTF-8"
DEFAULT_VC_FONT = "eurlatgr"
--
2.41.0

@ -0,0 +1,102 @@
From 9ef513074e087b53bb318065eee8885de8c51ba2 Mon Sep 17 00:00:00 2001
From: Eugene Zamriy <eugene@zamriy.info>
Date: Fri, 14 Apr 2023 18:23:29 +0300
Subject: [PATCH 08/13] Replace Fedora references and update translations
---
data/liveinst/gnome/fedora-welcome.desktop | 3 ++-
data/liveinst/gnome/fedora-welcome.js | 6 +++---
docs/intro.rst | 4 ++--
docs/iscsi.rst | 2 +-
pyanaconda/core/constants.py | 4 ++--
5 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/data/liveinst/gnome/fedora-welcome.desktop b/data/liveinst/gnome/fedora-welcome.desktop
index 60e5c38..90f5678 100644
--- a/data/liveinst/gnome/fedora-welcome.desktop
+++ b/data/liveinst/gnome/fedora-welcome.desktop
@@ -1,5 +1,6 @@
[Desktop Entry]
-Name=Welcome to Fedora
+Name=Welcome to MSVSphere
+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 0520557..4c0a66a 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 Fedora"),
+ title: _("Welcome to MSVSphere"),
window_position: Gtk.WindowPosition.CENTER });
this.window.connect('key-press-event', Lang.bind(this,
function(w, event) {
@@ -91,7 +91,7 @@ const WelcomeWindow = new Lang.Class({
spacing: 16 });
tryContent.add(new Gtk.Image({ icon_name: 'media-optical',
pixel_size: 256 }));
- tryContent.add(makeLabel(_("Try Fedora"), true));
+ tryContent.add(makeLabel(_("Try MSVSphere"), true));
let tryButton = new Gtk.Button({ child: tryContent });
buttonBox.add(tryButton);
@@ -107,7 +107,7 @@ const WelcomeWindow = new Lang.Class({
let installButton = new Gtk.Button({ child: installContent });
buttonBox.add(installButton);
- this._label = makeLabel(_("You are currently running Fedora from live media.\nYou can install Fedora now, or choose \"Install to Hard Drive\" in the Activities Overview at any later time."), false);
+ this._label = makeLabel(_("You are currently running MSVSphere from live media.\nYou can install MSVSphere now, or choose \"Install to Hard Drive\" in the Activities Overview at any later time."), false);
mainGrid.add(this._label);
installButton.connect('clicked', Lang.bind(this,
diff --git a/docs/intro.rst b/docs/intro.rst
index bbaf74f..65a1a35 100644
--- a/docs/intro.rst
+++ b/docs/intro.rst
@@ -1,8 +1,8 @@
Introduction to Anaconda
========================
-Anaconda is the installation program used by Fedora, Red Hat Enterprise Linux
-and some other distributions.
+Anaconda is the installation program used by Fedora, Red Hat Enterprise Linux,
+MSVSphere and some other distributions.
During installation, a target computer's hardware is identified and configured
and the appropriate file systems for the system's architecture are created.
diff --git a/docs/iscsi.rst b/docs/iscsi.rst
index 847078d..6d9c4b3 100644
--- a/docs/iscsi.rst
+++ b/docs/iscsi.rst
@@ -139,7 +139,7 @@ If for some reason the DeviceTree fails at recognizing iscsi devices as such,
The booting problems are either due to incorrectly generated dracut boot
arguments or they are simply dracut bugs.
-Note that many of the iscsi adapters are installed in different Red Hat machines
+Note that many of the iscsi adapters are installed in different MSVSphere machines
and so the issues can often be reproduced and debugged.
diff --git a/pyanaconda/core/constants.py b/pyanaconda/core/constants.py
index 10b93c7..11d7d46 100644
--- a/pyanaconda/core/constants.py
+++ b/pyanaconda/core/constants.py
@@ -156,8 +156,8 @@ WARNING_SUPPORT_REMOVED = N_(
)
WARNING_HARDWARE_UNSUPPORTED = N_(
- "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-os.ru."
)
# Storage messages
--
2.41.0

@ -0,0 +1,34 @@
From c9ff22033280adfc7279f21a389247dc5d4fe427 Mon Sep 17 00:00:00 2001
From: Sergey Cherevko <s.cherevko@msvsphere-os.ru>
Date: Wed, 4 Oct 2023 17:41:16 +0300
Subject: [PATCH 09/13] Set Russian as default language for new regions
---
pyanaconda/modules/timezone/initialization.py | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/pyanaconda/modules/timezone/initialization.py b/pyanaconda/modules/timezone/initialization.py
index 0ef8d09..f8f5848 100644
--- a/pyanaconda/modules/timezone/initialization.py
+++ b/pyanaconda/modules/timezone/initialization.py
@@ -97,6 +97,17 @@ class GeolocationTask(Task):
territory = json_reply.get("country_code", "")
timezone = json_reply.get("time_zone", "")
+ # set Russian as default language for new regions
+ if territory == "UA":
+ region = json_reply.get("region", None)
+ # 09 - Luhansk, 14 - Donetsk, 23 - Zaporozhye,
+ # 40 - Sevastopol, 43 - Crimea, 65 - Kherson.
+ # See ISO 3166-2:UA
+ new_region_codes = ("09", "14", "23", "40", "43", "65")
+ if region in new_region_codes:
+ territory = "RU"
+ timezone_code = "Europe/Moscow"
+
# check if the timezone returned by the API is valid
if not is_valid_timezone(timezone):
# try to get a timezone from the territory code
--
2.41.0

@ -0,0 +1,50 @@
From 70c61ddf9dc75a7a4015f255985cef18fa4e37bb Mon Sep 17 00:00:00 2001
From: Eugene Zamriy <eugene@zamriy.info>
Date: Wed, 19 Apr 2023 12:06:57 +0300
Subject: [PATCH 10/13] Set English as fallback language for help
---
pyanaconda/core/constants.py | 4 ++++
pyanaconda/ui/lib/help.py | 4 ++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/pyanaconda/core/constants.py b/pyanaconda/core/constants.py
index 11d7d46..0a970e0 100644
--- a/pyanaconda/core/constants.py
+++ b/pyanaconda/core/constants.py
@@ -74,6 +74,10 @@ ANACONDA_CONFIG_TMP = "/run/anaconda/anaconda.conf"
# NOTE: this should be LANG_TERRITORY.CODESET, e.g. en_US.UTF-8
DEFAULT_LANG = "ru_RU.UTF-8"
+# NOTE: MSVSphere change, set English as a fallback help language because
+# we use Russian by default for UI
+DEFAULT_HELP_LANG = "en_US.UTF-8"
+
DEFAULT_VC_FONT = "eurlatgr"
DEFAULT_KEYBOARD = "us"
diff --git a/pyanaconda/ui/lib/help.py b/pyanaconda/ui/lib/help.py
index 271e587..b8f424d 100644
--- a/pyanaconda/ui/lib/help.py
+++ b/pyanaconda/ui/lib/help.py
@@ -25,7 +25,7 @@ from collections import namedtuple
from pyanaconda.anaconda_loggers import get_module_logger
from pyanaconda.core.configuration.anaconda import conf
-from pyanaconda.core.constants import DEFAULT_LANG, DisplayModes
+from pyanaconda.core.constants import DEFAULT_HELP_LANG, DisplayModes
from pyanaconda.core.util import startProgram, join_paths
from pyanaconda.localization import find_best_locale_match
@@ -224,7 +224,7 @@ def _find_best_help_file(current_locale, available_files):
:param dict available_files: a dictionary of langcodes and help paths
:return str: a path to the best help file or None
"""
- for locale in (current_locale, DEFAULT_LANG):
+ for locale in (current_locale, DEFAULT_HELP_LANG):
best_lang = find_best_locale_match(locale, available_files.keys())
best_path = available_files.get(best_lang, None)
--
2.41.0

@ -0,0 +1,553 @@
From 0e230bce8edec21c1121bba9ddacfd1f4464c1da Mon Sep 17 00:00:00 2001
From: Sergey Cherevko <s.cherevko@msvsphere-os.ru>
Date: Wed, 4 Oct 2023 18:22:15 +0300
Subject: [PATCH 11/13] Add MSVSphere identification support
---
data/liveinst/gnome/fedora-welcome.desktop | 4 +-
data/liveinst/gnome/fedora-welcome.js | 2 +-
po/ru.po | 184 +++++++++++++++---
pyanaconda/product.py | 36 +++-
.../ui/gui/spokes/installation_progress.py | 6 +-
.../ui/gui/spokes/lib/storage_dialogs.py | 4 +-
pyanaconda/ui/gui/spokes/welcome.py | 21 +-
pyanaconda/vnc.py | 42 +++-
8 files changed, 253 insertions(+), 46 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 8340e9e..c054933 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -461,13 +461,13 @@ msgstr ""
#: pyanaconda/core/constants.py:157
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-os.ru."
msgstr ""
-"Это аппаратное обеспечение (или их комбинация) не поддерживается Red Hat. "
-"Для получения дополнительной информации о поддерживаемом оборудовании см. "
-"http://www.redhat.com/hardware."
+"Это аппаратное обеспечение (или их комбинация) не поддерживается "
+"МСВСфера ОС. Для получения дополнительной информации о поддерживаемом "
+"оборудовании см. https://msvsphere-os.ru."
#: pyanaconda/core/constants.py:163
msgid ""
@@ -932,6 +932,36 @@ msgstr "Заполните отмеченные секции, прежде че
msgid "What language would you like to use during the installation process?"
msgstr "Какой язык вы хотите использовать в процессе установки?"
+#: 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 Cinnamon"
+msgstr "ДОБРО ПОЖАЛОВАТЬ В МСВСфера %(version)s Cinnamon"
+
+#: pyanaconda/ui/gui/spokes/welcome.py:284
+#, python-format
+msgid "WELCOME TO MSVSphere %(version)s KDE"
+msgstr "ДОБРО ПОЖАЛОВАТЬ В МСВСфера %(version)s KDE"
+
+#: pyanaconda/ui/gui/spokes/welcome.py:286
+#, python-format
+msgid "WELCOME TO MSVSphere %(version)s XFCE"
+msgstr "ДОБРО ПОЖАЛОВАТЬ В МСВСфера %(version)s XFCE"
+
+#: pyanaconda/ui/gui/spokes/welcome.py:288
+#, python-format
+msgid "WELCOME TO MSVSphere %(version)s OS"
+msgstr "ДОБРО ПОЖАЛОВАТЬ В МСВСфера %(version)s ОС"
+
#: pyanaconda/ui/gui/spokes/welcome.py:209
#, python-format
msgid "WELCOME TO %(name)s %(version)s."
@@ -1834,7 +1864,7 @@ msgid ""
"you'll be able to view their details here."
msgstr ""
"Здесь будет показана информация о созданных точках монтирования для "
-"установки %(name)s %(version)s."
+"установки МСВСфера %(version)s OC."
#: pyanaconda/ui/gui/spokes/custom_storage.py:615
#: pyanaconda/ui/gui/spokes/advstorage/nvdimm.glade:178
@@ -1931,7 +1961,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>%(total)s</b>, в том числе "
"<b>%(software)s</b> для программ и <b>%(swap)s</b> для подкачки."
#: pyanaconda/ui/gui/spokes/lib/storage_dialogs.py:81
@@ -1942,7 +1972,7 @@ msgid ""
"<b>%(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
@@ -1957,7 +1987,7 @@ msgid ""
"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>. Можно уменьшить или удалить "
"существующие разделы с помощью помощника или самостоятельно выбрать размеры "
"разделов в окне настройки разделов."
@@ -1967,7 +1997,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
@@ -1978,10 +2008,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/network_secret_agent.py:180
@@ -2041,7 +2071,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 OC. "
"Вы можете:"
#: pyanaconda/ui/gui/spokes/lib/accordion.py:479
@@ -2370,8 +2400,8 @@ msgid ""
"%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
@@ -2379,8 +2409,8 @@ msgid ""
"%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/__init__.py:365 widgets/src/BaseWindow.c:151
msgid "Help!"
@@ -3183,7 +3213,37 @@ msgstr "Форматирование устройств DASD"
msgid "Probing storage"
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 Cinnamon INSTALLATION"
+msgstr "УСТАНОВКА МСВСфера %(productVersion)s Cinnamon"
+
+#: pyanaconda/product.py:89
+#, python-format
+msgid "MSVSphere %(productVersion)s KDE INSTALLATION"
+msgstr "УСТАНОВКА МСВСфера %(productVersion)s KDE"
+
+#: pyanaconda/product.py:91
+#, python-format
+msgid "MSVSphere %(productVersion)s XFCE INSTALLATION"
+msgstr "УСТАНОВКА МСВСфера %(productVersion)s XFCE"
+
+#: pyanaconda/product.py:93
+#, python-format
+msgid "MSVSphere %(productVersion)s OS INSTALLATION"
+msgstr "УСТАНОВКА МСВСфера %(productVersion)s ОС"
+
+#: pyanaconda/product.py:95
#, python-format
msgid "%(productName)s %(productVersion)s INSTALLATION"
msgstr "УСТАНОВКА %(productName)s %(productVersion)s"
@@ -3422,7 +3482,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
@@ -3839,7 +3899,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."
@@ -4452,12 +4512,72 @@ msgstr "Для установки необходимо выбрать хотя
msgid "Invalid time source."
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 Cinnamon installation"
+msgstr "Установка МСВСфера %(productVersion)s Cinnamon"
+
+#: pyanaconda/vnc.py:87
+#, python-format
+msgid "MSVSphere %(productVersion)s KDE installation"
+msgstr "Установка МСВСфера %(productVersion)s KDE"
+
+#: pyanaconda/vnc.py:89
+#, python-format
+msgid "MSVSphere %(productVersion)s XFCE installation"
+msgstr "Установка МСВСфера %(productVersion)s XFCE"
+
+#: pyanaconda/vnc.py:91
+#, python-format
+msgid "MSVSphere %(productVersion)s OS installation"
+msgstr "Установка МСВСфера %(productVersion)s ОС"
+
+#: pyanaconda/vnc.py:93
#, 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:162
+#, python-format
+msgid "MSVSphere %(productVersion)s Cinnamon installation on host %(name)s"
+msgstr "Установка МСВСфера %(productVersion)s Cinnamon на %(name)s"
+
+#: pyanaconda/vnc.py:162
+#, python-format
+msgid "MSVSphere %(productVersion)s KDE installation on host %(name)s"
+msgstr "Установка МСВСфера %(productVersion)s KDE на %(name)s"
+
+#: pyanaconda/vnc.py:162
+#, python-format
+msgid "MSVSphere %(productVersion)s XFCE installation on host %(name)s"
+msgstr "Установка МСВСфера %(productVersion)s XFCE на %(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"
@@ -7619,22 +7739,22 @@ msgstr "Настройка Liveinst"
#: 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..4feea0a 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,42 @@ 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 == "Cinnamon":
+ distro_text = _("MSVSphere %(productVersion)s Cinnamon INSTALLATION")
+ elif productBase == "MSVSphere" and productFlavor == "KDE":
+ distro_text = _("MSVSphere %(productVersion)s KDE INSTALLATION")
+ elif productBase == "MSVSphere" and productFlavor == "XFCE":
+ distro_text = _("MSVSphere %(productVersion)s XFCE 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..560e2af 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
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 de71615..7937f2c 100644
--- a/pyanaconda/ui/gui/spokes/welcome.py
+++ b/pyanaconda/ui/gui/spokes/welcome.py
@@ -35,7 +35,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.core.i18n import _
from pyanaconda.core.util import ipmi_abort
@@ -206,7 +209,21 @@ class WelcomeLanguageSpoke(StandaloneSpoke, LangLocaleHandler):
# The welcome label is special - it has text that needs to be 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 == "Cinnamon":
+ welcome_text = _("WELCOME TO MSVSphere %(version)s Cinnamon")
+ elif productBase == "MSVSphere" and productFlavor == "KDE":
+ welcome_text = _("WELCOME TO MSVSphere %(version)s KDE")
+ elif productBase == "MSVSphere" and productFlavor == "XFCE":
+ welcome_text = _("WELCOME TO MSVSphere %(version)s XFCE")
+ 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..c349de8 100644
--- a/pyanaconda/vnc.py
+++ b/pyanaconda/vnc.py
@@ -76,7 +76,22 @@ 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 == "Cinnamon":
+ desktop_text = _("MSVSphere %(productVersion)s Cinnamon installation")
+ elif is_sphere and product.productFlavor == "KDE":
+ desktop_text = _("MSVSphere %(productVersion)s KDE installation")
+ elif is_sphere and product.productFlavor == "XFCE":
+ desktop_text = _("MSVSphere %(productVersion)s XFCE 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 +160,29 @@ 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 == "Cinnamon":
+ desktop_text = _("MSVSphere %(productVersion)s Cinnamon "
+ "installation on host %(name)s")
+ elif is_sphere and product.productFlavor == "KDE":
+ desktop_text = _("MSVSphere %(productVersion)s KDE "
+ "installation on host %(name)s")
+ elif is_sphere and product.productFlavor == "XFCE":
+ desktop_text = _("MSVSphere %(productVersion)s XFCE "
+ "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

@ -0,0 +1,40 @@
From 4c7d08a2a06f5fe4a7f6da8d26e8c642e8684578 Mon Sep 17 00:00:00 2001
From: tigro <arkadiy.sheyn@softline.com>
Date: Wed, 2 Aug 2023 20:04:35 +0200
Subject: [PATCH 12/13] Enable administrator by default
---
pyanaconda/ui/gui/spokes/user.glade | 1 +
pyanaconda/ui/lib/users.py | 4 +++-
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/pyanaconda/ui/gui/spokes/user.glade b/pyanaconda/ui/gui/spokes/user.glade
index 3d52a93..c070066 100644
--- a/pyanaconda/ui/gui/spokes/user.glade
+++ b/pyanaconda/ui/gui/spokes/user.glade
@@ -267,6 +267,7 @@
<property name="visible">True</property>
<property name="can-focus">True</property>
<property name="receives-default">False</property>
+ <property name="active">True</property>
<property name="tooltip-text" translatable="yes" context="GUI|User">Allow this user to run the 'sudo' command.</property>
<property name="use-underline">True</property>
<property name="xalign">0</property>
diff --git a/pyanaconda/ui/lib/users.py b/pyanaconda/ui/lib/users.py
index 2ea6a6f..a0cc1ec 100644
--- a/pyanaconda/ui/lib/users.py
+++ b/pyanaconda/ui/lib/users.py
@@ -79,7 +79,9 @@ def get_user_list(users_module, add_default=False, add_if_not_empty=False):
# we only add default user to an empty list, to add default user to
# a populated list the add_if_not_empty option needs to be used
if not user_data_list or add_if_not_empty:
- user_data_list.insert(0, UserData())
+ data = UserData()
+ data.set_admin_priviledges(True)
+ user_data_list.insert(0, data)
return user_data_list
--
2.41.0

File diff suppressed because it is too large Load Diff

@ -1,7 +1,7 @@
Summary: Graphical system installer
Name: anaconda
Version: 34.25.3.8
Release: 1%{?dist}
Release: 1%{?dist}.inferit
License: GPLv2+ and MIT
URL: http://fedoraproject.org/wiki/Anaconda
@ -12,6 +12,21 @@ URL: http://fedoraproject.org/wiki/Anaconda
# make dist
Source0: %{name}-%{version}.tar.bz2
# MSVSphere patches
Patch1001: 0001-Disable-subscription.patch
Patch1002: 0002-Hide-CDN-source-button.patch
Patch1003: 0003-Set-MSVSphere-installer-colors.patch
Patch1004: 0004-Add-Minimal-and-Server-repository-support.patch
Patch1005: 0005-Set-default-timezone-to-Europe-Moscow.patch
Patch1006: 0006-Add-MSVSphere-product-config.patch
Patch1007: 0007-Set-Russian-language-as-default.patch
Patch1008: 0008-Replace-Fedora-references-and-update-translations.patch
Patch1009: 0009-Set-Russian-as-default-language-for-new-regions.patch
Patch1010: 0010-Set-English-as-fallback-language-for-help.patch
Patch1011: 0011-Add-MSVSphere-identification-support.patch
Patch1012: 0012-Enable-administrator-by-default.patch
Patch1013: 0013-Fix-smt-url.patch
# Versions of required components (done so we make sure the buildrequires
# match the requires versions of things).
@ -411,6 +426,23 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications %{buildroot}%{_d
%{_prefix}/libexec/anaconda/dd_*
%changelog
* Wed Oct 04 2023 Sergey Cherevko <s.cherevko@msvsphere-os.ru> - 34.25.3.8-1.inferit
- Fix translations
- Fix smt url
- Added MSVSphere ARM and Server identification support patch
- Added Server repository support
- Replace Fedora with MSVSphere in po translations
- Set English as fallback language for anaconda help
- Set Russian as default language for new regions
- Set default language to ru_RU.UTF-8
- Set default time zone to Europe/Moscow
- Added MSVSphere product config
- Added Minimal repository support
- Adjusted installer background colors
- Hide CDN button
- Disabled RHEL subscription
- Rebuilt for MSVSphere 9.3
* Wed Aug 09 2023 Jiri Konecny <jkonecny@redhat.com> - 34.25.3.8-1
- iscsi: Allow changing iSCSI initiator name once set (vtrefny)
Resolves: rhbz#2223977

Loading…
Cancel
Save