Translates installation image bootloader to Russian

Also adds a font with cp866 encoding support.
i9 changed/i9/lorax-templates-msvsphere-9.0-37.el9.1
Eugene Zamriy 1 year ago
parent 3624b3a129
commit ad3b544dfa
Signed by: ezamriy
GPG Key ID: 7EBF95C7DCFA496C

@ -1 +1,2 @@
b570dd409ac7d937f64784c2acaa838fde18d9ff SOURCES/lorax-templates-rhel-9.0-37.tar.gz
c72e58401cbac2fee8ca654043bdf1bdf8f40021 SOURCES/cp866-8x16.psf

@ -1,8 +1,11 @@
From 2c401f191bdba15ad46c34e245378dddd76e872e Mon Sep 17 00:00:00 2001
From dd7b1dd0d76705edd95a1268ecd41b7fdbe2a38a Mon Sep 17 00:00:00 2001
From: Eugene Zamriy <eugene@zamriy.info>
Date: Thu, 6 Apr 2023 23:34:20 +0300
Subject: [PATCH] Remove RHEL specific packages
Subject: [PATCH 1/3] Remove RHEL specific packages
---
80-rhel/runtime-install.tmpl | 2 --
1 file changed, 2 deletions(-)
diff --git a/80-rhel/runtime-install.tmpl b/80-rhel/runtime-install.tmpl
index ac3fe06..1189a49 100644
@ -25,5 +28,5 @@ index ac3fe06..1189a49 100644
## extra tools not required by anaconda
--
2.39.2
2.40.1

@ -1,7 +1,7 @@
From be582be6919ba0e49447f466f868d671ad1ea1dd Mon Sep 17 00:00:00 2001
From 8dc671f22d6ace3263426d1c9066a61856e27961 Mon Sep 17 00:00:00 2001
From: Eugene Zamriy <eugene@zamriy.info>
Date: Sun, 16 Apr 2023 23:17:19 +0300
Subject: [PATCH 2/2] Disable oscap-anaconda-addon install
Subject: [PATCH 2/3] Disable oscap-anaconda-addon install
---
80-rhel/runtime-install.tmpl | 3 ++-
@ -22,5 +22,5 @@ index 1189a49..cd6feea 100644
## FIXME Pull in device-mapper-multipath
## This *should* be pulled in by libblockdev-plugins-all and libblockdev-mpath but it is not
--
2.39.2
2.40.1

@ -0,0 +1,248 @@
From 8836e2a52e01cbc24c990ba79418fb297165466e Mon Sep 17 00:00:00 2001
From: Eugene Zamriy <evgeniy.zamriy@softline.com>
Date: Wed, 26 Jul 2023 23:51:00 +0300
Subject: [PATCH 3/3] Translate installation image bootloader to Russian
---
80-rhel/config_files/x86/grub2-efi.cfg | 15 ++++++----
80-rhel/config_files/x86/isolinux.cfg | 41 +++++++++++++++-----------
80-rhel/efi.tmpl | 11 +++++++
80-rhel/x86.tmpl | 19 +++++++++++-
4 files changed, 62 insertions(+), 24 deletions(-)
diff --git a/80-rhel/config_files/x86/grub2-efi.cfg b/80-rhel/config_files/x86/grub2-efi.cfg
index 5fc47de..dfd827f 100644
--- a/80-rhel/config_files/x86/grub2-efi.cfg
+++ b/80-rhel/config_files/x86/grub2-efi.cfg
@@ -9,7 +9,12 @@ function load_video {
}
load_video
+insmod gfxterm
+set gfxmode=auto
set gfxpayload=keep
+set lang=ru_RU
+terminal_output gfxterm
+loadfont unicode
insmod gzio
insmod part_gpt
insmod ext2
@@ -20,20 +25,20 @@ set timeout=60
search --no-floppy --set=root -l '@ISOLABEL@'
### BEGIN /etc/grub.d/10_linux ###
-menuentry 'Install @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
+menuentry 'Установить @PRODUCT@ @VERSION@@FLAVOR@' --class fedora --class gnu-linux --class gnu --class os {
linuxefi @KERNELPATH@ @ROOT@ quiet
initrdefi @INITRDPATH@
}
-menuentry 'Test this media & install @PRODUCT@ @VERSION@' --class fedora --class gnu-linux --class gnu --class os {
+menuentry 'Проверить установочный носитель и установить @PRODUCT@ @VERSION@@FLAVOR@' --class fedora --class gnu-linux --class gnu --class os {
linuxefi @KERNELPATH@ @ROOT@ rd.live.check quiet
initrdefi @INITRDPATH@
}
-submenu 'Troubleshooting -->' {
- menuentry 'Install @PRODUCT@ @VERSION@ in text mode' --class fedora --class gnu-linux --class gnu --class os {
+submenu 'Устранение неполадок -->' {
+ menuentry 'Установить @PRODUCT@ @VERSION@@FLAVOR@ используя текстовый установщик' --class fedora --class gnu-linux --class gnu --class os {
linuxefi @KERNELPATH@ @ROOT@ inst.text quiet
initrdefi @INITRDPATH@
}
- menuentry 'Rescue a @PRODUCT@ system' --class fedora --class gnu-linux --class gnu --class os {
+ menuentry 'Восстановление установленной системы @PRODUCT@' --class fedora --class gnu-linux --class gnu --class os {
linuxefi @KERNELPATH@ @ROOT@ inst.rescue quiet
initrdefi @INITRDPATH@
}
diff --git a/80-rhel/config_files/x86/isolinux.cfg b/80-rhel/config_files/x86/isolinux.cfg
index 01bf0cd..0cad3c2 100644
--- a/80-rhel/config_files/x86/isolinux.cfg
+++ b/80-rhel/config_files/x86/isolinux.cfg
@@ -1,6 +1,8 @@
default vesamenu.c32
timeout 600
+font cp866-8x16.psf
+
display boot.msg
# Clear the screen when exiting the menu, instead of leaving the menu displayed.
@@ -8,7 +10,7 @@ display boot.msg
# the menu itself for as long as the screen remains in graphics mode.
menu clear
menu background splash.png
-menu title @PRODUCT@ @VERSION@
+menu title @PRODUCT@ @VERSION@@FLAVOR@
menu vshift 8
menu rows 18
menu margin 8
@@ -53,18 +55,18 @@ menu color cmdline 0 #ffffffff #00000000 none
# Do not display the actual menu unless the user presses a key. All that is displayed is a timeout message.
-menu tabmsg Press Tab for full configuration options on menu items.
+menu tabmsg Нажмите [Tab] для просмотра конфигурации выбранного пункта меню.
menu separator # insert an empty line
menu separator # insert an empty line
label linux
- menu label ^Install @PRODUCT@ @VERSION@
+ menu label ^1. Установить @PRODUCT@ @VERSION@@FLAVOR@
kernel vmlinuz
append initrd=initrd.img @ROOT@ quiet
label check
- menu label Test this ^media & install @PRODUCT@ @VERSION@
+ menu label ^2. Проверить установочный носитель и установить @PRODUCT@ @VERSION@@FLAVOR@
menu default
kernel vmlinuz
append initrd=initrd.img @ROOT@ rd.live.check quiet
@@ -72,49 +74,52 @@ label check
menu separator # insert an empty line
# utilities submenu
-menu begin ^Troubleshooting
- menu title Troubleshooting
+menu begin Устранение неполадок
+ menu title Устранение неполадок
+ menu label ^3. Устранение неполадок
label text
menu indent count 5
- menu label Install @PRODUCT@ @VERSION@ using ^text mode
+ menu label ^1. Установить @PRODUCT@ @VERSION@@FLAVOR@ используя текстовый установщик
text help
- Try this option out if you're having trouble installing
- @PRODUCT@ @VERSION@.
+ Попробуйте этот режим если у вас возникают проблемы с
+ установкой @PRODUCT@ @VERSION@@FLAVOR@.
endtext
kernel vmlinuz
append initrd=initrd.img @ROOT@ inst.text quiet
label rescue
menu indent count 5
- menu label ^Rescue a @PRODUCT@ system
+ menu label ^2. Восстановление установленной системы @PRODUCT@
text help
- If the system will not boot, this lets you access files
- and edit config files to try to get it booting again.
+ Если система не загружается, данный режим позволит вам
+ получить доступ к файловой системе и отредактировать
+ конфигурационные файлы чтобы восстановить функцию
+ загрузки системы.
endtext
kernel vmlinuz
append initrd=initrd.img @ROOT@ inst.rescue quiet
label memtest
- menu label Run a ^memory test
+ menu label ^3. Запустить тест оперативной памяти
text help
- If your system is having issues, a problem with your
- system's memory may be the cause. Use this utility to
- see if the memory is working correctly.
+ Проблемы со стабильностью операционной системы могут
+ быть вызваны неисправностью оперативной памяти. Эта
+ утилита позволяет проверить корректность работы ОЗУ.
endtext
kernel memtest
menu separator # insert an empty line
label local
- menu label Boot from ^local drive
+ menu label ^4. Загрузка с локального диска
localboot 0xffff
menu separator # insert an empty line
menu separator # insert an empty line
label returntomain
- menu label Return to ^main menu
+ menu label ^0. Вернуться в главное меню
menu exit
menu end
diff --git a/80-rhel/efi.tmpl b/80-rhel/efi.tmpl
index bb1aa4f..9a32a61 100644
--- a/80-rhel/efi.tmpl
+++ b/80-rhel/efi.tmpl
@@ -7,6 +7,7 @@ APPLE_EFI_DISKNAME=inroot+"/usr/share/pixmaps/bootloader/fedora-media.vol"
mkdir ${EFIBOOTDIR}
mkdir ${EFIBOOTDIR}/fonts/
+mkdir ${EFIBOOTDIR}/locale/
%if efiarch64:
install boot/efi/EFI/*/shim${efiarch64|lower}.efi ${EFIBOOTDIR}/BOOT${efiarch64}.EFI
install boot/efi/EFI/*/mm${efiarch64|lower}.efi ${EFIBOOTDIR}/
@@ -18,6 +19,7 @@ install boot/efi/EFI/*/mm${efiarch32|lower}.efi ${EFIBOOTDIR}/
install boot/efi/EFI/*/gcd${efiarch32|lower}.efi ${EFIBOOTDIR}/grub${efiarch32|lower}.efi
%endif
install boot/grub2/fonts/unicode.pf2 ${EFIBOOTDIR}/fonts/
+install /usr/share/locale/ru/LC_MESSAGES/grub.mo ${EFIBOOTDIR}/locale/ru.mo
## actually make the EFI images
${make_efiboot("images/efiboot.img")}
@@ -39,7 +41,16 @@ ${make_efiboot("images/efiboot.img")}
copy ${KERNELDIR}/initrd.img ${EFIBOOTDIR}
%endif
install ${configdir}/grub2-efi.cfg ${eficonf}
+ %if product.variant == 'Server':
+ replace @FLAVOR@ ' Сервер' ${eficonf}
+ %else:
+ replace @FLAVOR@ '' ${eficonf}
+ %endif
+ %if product.name == 'MSVSphere':
+ replace @PRODUCT@ 'МСВСфера' ${eficonf}
+ %else:
replace @PRODUCT@ '${product.name}' ${eficonf}
+ %endif
replace @VERSION@ ${product.version} ${eficonf}
replace @KERNELNAME@ vmlinuz ${eficonf}
replace @KERNELPATH@ /${kdir}/vmlinuz ${eficonf}
diff --git a/80-rhel/x86.tmpl b/80-rhel/x86.tmpl
index 3d9d0a4..a254999 100644
--- a/80-rhel/x86.tmpl
+++ b/80-rhel/x86.tmpl
@@ -23,6 +23,12 @@ if os.stat(joinpaths(inroot, runtime_img)).st_size >= 4*1024**3:
isoargs = "-iso-level 3"
else:
isoargs = ""
+
+# define an MSVSphere-specific image flavor constant
+if product.variant == 'Server':
+ FLAVOR=' Сервер'
+else:
+ FLAVOR=''
%>
mkdir images
@@ -41,12 +47,23 @@ install ${configdir}/boot.msg ${BOOTDIR}
install ${configdir}/grub.conf ${BOOTDIR}
install usr/share/anaconda/boot/syslinux-splash.png ${BOOTDIR}/splash.png
install boot/memtest* ${BOOTDIR}/memtest
+## add a console font with Russian (cp866) encoding support
+install ${configdir}/cp866-8x16.psf ${BOOTDIR}
## configure bootloader
replace @VERSION@ ${product.version} ${BOOTDIR}/grub.conf ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg
-replace @PRODUCT@ '${product.name}' ${BOOTDIR}/grub.conf ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg
+%if product.name == 'MSVSphere':
+replace @PRODUCT@ 'МСВСфера' ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg
+%else:
+replace @PRODUCT@ '${product.name}' ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg
+%endif
+replace @PRODUCT@ '${product.name}' ${BOOTDIR}/grub.conf
+replace @FLAVOR@ '${FLAVOR}' ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg
replace @ROOT@ 'inst.stage2=hd:LABEL=${isolabel|udev}' ${BOOTDIR}/isolinux.cfg
+## convert BIOS bootloader configs to cp866 encoding
+iconv 'cp866' ${BOOTDIR}/isolinux.cfg ${BOOTDIR}/*.msg
+
## install kernels
mkdir ${KERNELDIR}
%for kernel in kernels:
--
2.40.1

@ -1,19 +1,22 @@
Name: lorax-templates-msvsphere
Version: 9.0
Release: 37%{?dist}
Release: 37%{?dist}.1
Summary: MSVSphere 9 build templates for lorax and livemedia-creator
License: GPLv2+
URL: https://github.com/weldr/lorax
BuildArch: noarch
Source0: lorax-templates-rhel-9.0-37.tar.gz
Source1: cp866-8x16.psf
# MSVSphere patches
Patch1001: 0001-Remove-RHEL-specific-packages.patch
Patch1002: 0002-Disable-oscap-anaconda-addon-install.patch
Patch1003: 0003-Translate-installation-image-bootloader-to-Russian.patch
# Required for the template branding support
Requires: lorax >= 34.9.1
# Required for Russian localization
Requires: lorax >= 34.9.23-1.el9.inferit.1
# Where are these supposed to end up?
%define templatedir %{_datadir}/lorax/templates.d/70-msvsphere
@ -26,6 +29,7 @@ placed in %{templatedir}
%setup -n lorax-templates-rhel-%{version}
%patch1001 -p1
%patch1002 -p1
%patch1003 -p1
%build
# nothing to build
@ -34,12 +38,17 @@ placed in %{templatedir}
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/%{templatedir}
cp -a 80-rhel/* $RPM_BUILD_ROOT/%{templatedir}
install -m 0644 %{SOURCE1} $RPM_BUILD_ROOT/%{templatedir}/config_files/x86/
%files
%dir %{templatedir}
%{templatedir}/*
%changelog
* Wed Jul 26 2023 Eugene Zamriy <ezamriy@msvsphere.ru> - 9.0-37.1
- Translated BIOS and EFI installation image bootloaders to Russian
- Added bootloader font with cp866 encoding support
* Sat Jul 01 2023 Eugene Zamriy <ezamriy@msvsphere.ru> - 9.0-37
- Package renamed to lorax-templates-msvsphere
- Removed RHEL-specific packages from templates

Loading…
Cancel
Save