Π Π΅Π»ΠΈΠ· Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° для создания установщиков Calamares 3.3.0 с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Qt6

Бпустя ΠΏΡΡ‚ΡŒ с ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΎΠΉ Π»Π΅Ρ‚ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° формирования Π²Π΅Ρ‚ΠΊΠΈ 3.2.x ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ Ρ€Π΅Π»ΠΈΠ· инструмСнтария для построСния инсталляторов Calamares 3.3.0, Π½Π΅ зависящСго ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… дистрибутивов Linux. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ дистрибутивов прСдоставлСно нСсколько дСсятков Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ c Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… возмоТностСй, вострСбованных Π² инсталляторах. Код написан Π½Π° языкС Π‘++, графичСский интСрфСйс основан Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Qt (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ QML), для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ языки C++ ΠΈ Python.

Calamares прСдоставляСт Ρ‚Π°ΠΊΠΈΠ΅ возмоТности, ΠΊΠ°ΠΊ Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΈ автоматичСский Ρ€Π΅ΠΆΠΈΠΌΡ‹ разбиСния дисковых Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², гибкая систСма Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ внСшнСго Π²ΠΈΠ΄Π°, ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, большой Π²Ρ‹Π±ΠΎΡ€ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (ΠΎΡ‚ управлСния Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, Π΄ΠΎ управлСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ). НапримСр, ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для использования NetworkManager, UPower, systemd-boot, GRUB, sgdisk, squashfs-tools ΠΈ rsync. Установка ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΡƒΡ‚Ρ‘ΠΌ Π·Π°ΠΌΠ΅Π½Ρ‹ Ρ€Π°Π·Π΄Π΅Π»Π° — Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ дСлаСтся Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ вмСсто Ρ€Π°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π°, Ρ‡Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для тСстирования Π½ΠΎΠ²Ρ‹Ρ… установок, оставляя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΡˆΠ»ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ.

Для создания собствСнного установщика Π½Π° Π±Π°Π·Π΅ Calamares достаточно Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈΠ»ΠΈ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ собствСнныС, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ установки дистрибутива ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ внСшний Π²ΠΈΠ΄. Для упрощСния ΠΈ ускорСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Calamares ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π° языкС Python. ВсС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ хранятся Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ YAML. Calamares ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ установки дистрибутивов Manjaro, Lubuntu, Asahi, EndeavourOS, wattOS, Rhino, Nitrux, Siduction, Peppermint OS, GeckoLinux, Chakra, NetRunner, KaOS, OpenMandriva ΠΈ KDE neon. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ развиваСтся ΠΏΡ€ΠΈ участии сообщСств KDE, Fedora, Kubuntu ΠΈ Maui.

Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС:

  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° полная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ с Qt 6 ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ KDE Frameworks 6. Для всСх QML-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ прСдоставлСн Π½Π°Π±ΠΎΡ€ совмСстимых с Qt6 Ρ„Π°ΠΉΠ»ΠΎΠ² QML. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сборки с Qt5 ΠΈ KDE Frameworks 5.
  • Π’ интСрфСйсС Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² «packagechooser» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… AppStream 1.0.
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ «keyboard» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° использования настроСк X11 ΠΈΠ»ΠΈ DBus-сСрвиса FreeDesktop locale1. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΎ сохранСниС настроСк раскладки ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ для всСх Π½Π΅-ASCII раскладок.
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ «dracut» появилась ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° настройки ΠΈΠΌΠ΅Π½ΠΈ ядра.
  • Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ «keyboardq» ΠΈ «localeq» ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½ с ComboBox Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Drawer.
  • Π’ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² (ΠΌΠΎΠ΄ΡƒΠ»ΡŒ «partition») Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ LUKS ΠΈ LUKS2. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пропуска установки Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°. ЗадСйствована Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ KPMCore 21.12 (KDE Partition Manager).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ «zfshostid» для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ /etc/hostid для ZFS.
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ «bootloader» Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ для использования Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ядра.
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ «displaymanager» ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° дисплСйного ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° kdm.
  • Π’ ΠΌΠΎΠ΄ΡƒΠ»Π΅ «fstab» ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠ΅ΠΉ /etc/fstab. МногиС настройки пСрСнСсСны Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ «mount».
  • ΠžΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ трСбования ΠΊ ΡΡ‚ΠΈΠ»ΡŽ кодирования — Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ соотвСтствуСт clang-format 15 ΠΈΠ»ΠΈ 16.
  • ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ пространства ΠΈΠΌΡ‘Π½, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для ΠΊΠΎΠ΄Π° Π½Π° C++ (всС Π²Ρ‹Π·ΠΎΠ²Ρ‹ пСрСнСсСны Π² пространство ΠΈΠΌΡ‘Π½ Calamares, ΡƒΠ±Ρ€Π°Π½Ρ‹ привязки ΠΊ пространству ΠΈΠΌΡ‘Π½ CalamaresUtils).
  • Π’ качСствС маски для подстановки вмСсто @{var} задСйствован ${var}.
  • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Boost::Python ΡƒΠ±Ρ€Π°Π½Π° ΠΈΠ· зависимостСй — для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° языкС Python Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ встроСнный Π½Π°Π±ΠΎΡ€ привязок pybind11. Для возвращСния сборки с Boost::Python ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ WITH_PYBIND11=OFF.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru