diff --git a/CHANGES-3.2 b/CHANGES-3.2 index ffc8e0010..3171a939a 100644 --- a/CHANGES-3.2 +++ b/CHANGES-3.2 @@ -8,15 +8,25 @@ contributors are listed. Note that Calamares does not have a historical changelog -- this log starts with version 3.2.0. The release notes on the website will have to do for older versions. -# 3.2.56 (unreleased) # +# 3.2.56 (2022-04-22) # + +As of this release, Calamares 3.2 development is winding down. The +reason is simple: systems where the backwards-compatibility of Calamares +3.2 is important are becoming increasingly difficult to work with +for **other** reasons. Foremost among these are deprecated versions +of dependencies and tools. Calamares 3.2 branch remains open for +bugfixes and will see a few more releases, but development is now +shifting wholesale to the newer generation. This release contains contributions from (alphabetically by first name): - Victor Fuentes (new contributor! Welcome!) ## Core ## - - No core changes yet + - Changes in git forced some changes on the CI tooling. ## Modules ## + - *locale* showed the wrong timezone for Dhaka, although it configured + the correct one. #1929 - *users* module sets global storage key *fullname* to the full name of the user (e.g. what is entered in the "your full name" box on the users page). #1923 (Thanks Victor) diff --git a/CMakeLists.txt b/CMakeLists.txt index 472c17fb0..87fec664f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,7 +45,7 @@ project( CALAMARES LANGUAGES C CXX ) -set( CALAMARES_VERSION_RC 1 ) # Set to 0 during release cycle, 1 during development +set( CALAMARES_VERSION_RC 0 ) # Set to 0 during release cycle, 1 during development if( CALAMARES_VERSION_RC EQUAL 1 AND CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR ) message( FATAL_ERROR "Do not build development versions in the source-directory." ) endif() diff --git a/lang/calamares_en.ts b/lang/calamares_en.ts index 25da31891..f3d84c625 100644 --- a/lang/calamares_en.ts +++ b/lang/calamares_en.ts @@ -862,52 +862,52 @@ The installer will quit and all changes will be lost. <h1>Welcome to the %1 installer</h1> - + Your username is too long. Your username is too long. - + '%1' is not allowed as username. '%1' is not allowed as username. - + Your username must start with a lowercase letter or underscore. Your username must start with a lowercase letter or underscore. - + Only lowercase letters, numbers, underscore and hyphen are allowed. Only lowercase letters, numbers, underscore and hyphen are allowed. - + Your hostname is too short. Your hostname is too short. - + Your hostname is too long. Your hostname is too long. - + '%1' is not allowed as hostname. '%1' is not allowed as hostname. - + Only letters, numbers, underscore and hyphen are allowed. Only letters, numbers, underscore and hyphen are allowed. - + Your passwords do not match! Your passwords do not match! - + OK! OK! @@ -2487,7 +2487,7 @@ The installer will quit and all changes will be lost. Unknown error - + Password is empty Password is empty @@ -3421,29 +3421,29 @@ Output: SetHostNameJob - + Set hostname %1 Set hostname %1 - + Set hostname <strong>%1</strong>. Set hostname <strong>%1</strong>. - + Setting hostname %1. Setting hostname %1. - - + + Internal Error Internal Error - - + + Cannot write hostname to target system Cannot write hostname to target system @@ -3645,18 +3645,18 @@ Output: SetupGroupsJob - + Preparing groups. Preparing groups. - - + + Could not create groups in target system Could not create groups in target system - + These groups are missing in the target system: %1 These groups are missing in the target system: %1 @@ -3669,12 +3669,12 @@ Output: Configure <pre>sudo</pre> users. - + Cannot chmod sudoers file. Cannot chmod sudoers file. - + Cannot create sudoers file for writing. Cannot create sudoers file for writing. @@ -3877,12 +3877,12 @@ Output: UsersPage - + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> - + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> diff --git a/lang/calamares_ko.ts b/lang/calamares_ko.ts index 34a32d5ef..bf62fd7d7 100644 --- a/lang/calamares_ko.ts +++ b/lang/calamares_ko.ts @@ -338,12 +338,12 @@ Link copied to clipboard Calamares Initialization Failed - 깔라마레스 초기화 실패 + Calamares 초기화에 실패했습니다 %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. - %1 가 설치될 수 없습니다. 깔라마레스가 모든 구성된 모듈을 불러올 수 없었습니다. 이것은 깔라마레스가 배포판에서 사용되는 방식에서 발생한 문제입니다. + %1 가 설치될 수 없습니다. Calamares가 모든 구성된 모듈을 불러올 수 없었습니다. 이것은 Calamares가 배포판에서 사용되는 방식에서 발생한 문제입니다. @@ -1127,7 +1127,7 @@ The installer will quit and all changes will be lost. The installer failed to create partition on disk '%1'. - 디스크 '%1'에 파티션을 생성하지 못했습니다. + 설치 관리자가 디스크 '%1'에 파티션을 생성하지 못했습니다. @@ -1262,7 +1262,7 @@ The installer will quit and all changes will be lost. The installer failed to deactivate a volume group named %1. - %1로 이름 지정된 볼륨 그룹을 비활성화하지 못했습니다. + 설치 관리자가 %1로 이름 지정된 볼륨 그룹을 비활성화하지 못했습니다. @@ -1672,7 +1672,7 @@ The installer will quit and all changes will be lost. has a screen large enough to show the whole installer - 전체 설치 프로그램을 표시할 수 있을 만큼 큰 화면이 있습니다 + 전체 설치 관리자를 표시할 수 있을 만큼 큰 화면이 있습니다 @@ -2835,17 +2835,17 @@ The installer will quit and all changes will be lost. Unsafe partition actions are enabled. - + 안전하지 않은 파티션 작업이 활성화되었습니다. Partitioning is configured to <b>always</b> fail. - + 파티셔닝이 <b>항상</b> 실패하도록 구성되어 있습니다. No partitions will be changed. - + 파티션 없음은 변경될 것입니다. @@ -2905,7 +2905,7 @@ The installer will quit and all changes will be lost. A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>%2</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + GPT 파티션 테이블은 모든 시스템에 가장 적합한 옵션입니다. 이 설치 관리자는 BIOS 시스템에 대한 이러한 설정도 지원합니다.<br/><br/>BIOS에서 GPT 파티션 테이블을 구성하려면(아직 수행하지 않은 경우) 돌아가서 파티션 테이블을 GPT로 설정한 다음 <strong>%2</strong> 플래그가 활성화된 8MB의 포맷되지 않은 파티션을 생성하십시오.<br/><br/>GPT가 있는 BIOS 시스템에서 %1을(를) 시작하려면 포맷되지 않은 8MB 파티션이 필요합니다. @@ -3287,7 +3287,7 @@ Output: Calamares cannot start KPMCore for the file-system resize job. - 깔라마레스는 파일 시스템 크기 조정 작업을 위해 KPMCore를 시작할 수 없습니다. + Calamares는 파일 시스템 크기 조정 작업을 위해 KPMCore를 시작할 수 없습니다. @@ -3791,7 +3791,7 @@ Output: Could not configure machine feedback correctly, Calamares error %1. - 시스템 피드백을 정확하게 설정할 수 없습니다, %1 깔라마레스 오류. + 시스템 피드백을 정확하게 설정할 수 없습니다, Calamares의 %1 오류입니다. @@ -4021,7 +4021,7 @@ Output: <h1>Welcome to the Calamares setup program for %1.</h1> - <h1>%1에 대한 깔라마레스 설정 프로그램에 오신 것을 환영합니다.</h1> + <h1>%1용 Calamares 설정 프로그램에 오신 것을 환영합니다.</h1> @@ -4031,7 +4031,7 @@ Output: <h1>Welcome to the Calamares installer for %1.</h1> - <h1>%1을 위한 깔라마레스 설치 관리자에 오신 것을 환영합니다.</h1> + <h1>%1용 Calamares 설치 관리자에 오신 것을 환영합니다.</h1> @@ -4095,7 +4095,7 @@ Output: No partitions are available for ZFS. - ZFS에 사용할 수 있는 파티션이 없습니다. + 파티션 없음을 ZFS로 사용할 수 있습니다. @@ -4525,7 +4525,7 @@ Output: About - 깔라마레스에 대하여 + Calamares에 대하여 diff --git a/lang/calamares_tr_TR.ts b/lang/calamares_tr_TR.ts index 91c8c718a..b899e02f2 100644 --- a/lang/calamares_tr_TR.ts +++ b/lang/calamares_tr_TR.ts @@ -2850,17 +2850,17 @@ Sistem güç kaynağına bağlı değil. Unsafe partition actions are enabled. - + Güvenli olmayan bölümleme eylemi etkinleştirildi. Partitioning is configured to <b>always</b> fail. - + Bölümleme, <b>her zaman</b> başarısız olacak şekilde yapılandırılmıştır. No partitions will be changed. - + Hiçbir bölüm değiştirilmeyecek. @@ -2920,7 +2920,7 @@ Sistem güç kaynağına bağlı değil. A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>%2</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. - + GPT bölüm tablosu, tüm sistemler için en iyi seçenektir. Bu yükleyici, BIOS sistemleri için de böyle bir kurulumu destekler. <br/><br/>BIOS'ta bir GPT bölüm tablosu yapılandırmak için (önceden yapılmadıysa) geri dönün ve bölüm tablosunu GPT olarak ayarlayın, ardından <strong>%2</strong> bayrağı etkinleştirilmiş.<br/><br/> 8 MB biçimlendirilmemiş bölüm oluşturun .GPT' ile BIOS sisteminde %1 başlatmak için biçimlendirilmemiş 8 MB bir bölüm gereklidir. diff --git a/lang/python.pot b/lang/python.pot index 897a6b4de..2396b14dd 100644 --- a/lang/python.pot +++ b/lang/python.pot @@ -2,426 +2,403 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-03-21 17:21+0100\n" +"POT-Creation-Date: 2022-04-22 11:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" "Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: src/modules/initramfscfg/main.py:32 -msgid "Configuring initramfs." -msgstr "Configuring initramfs." - -#: src/modules/initramfscfg/main.py:85 src/modules/initramfscfg/main.py:89 -#: src/modules/fstab/main.py:361 src/modules/fstab/main.py:367 -#: src/modules/fstab/main.py:394 src/modules/networkcfg/main.py:105 -#: src/modules/initcpiocfg/main.py:235 src/modules/initcpiocfg/main.py:239 -#: src/modules/localecfg/main.py:135 src/modules/mount/main.py:229 -#: src/modules/rawfs/main.py:164 src/modules/openrcdmcryptcfg/main.py:72 -#: src/modules/openrcdmcryptcfg/main.py:76 -msgid "Configuration Error" -msgstr "Configuration Error" - -#: src/modules/initramfscfg/main.py:86 src/modules/fstab/main.py:362 -#: src/modules/initcpiocfg/main.py:236 src/modules/mount/main.py:230 -#: src/modules/rawfs/main.py:165 src/modules/openrcdmcryptcfg/main.py:73 -msgid "No partitions are defined for
{!s}
to use." -msgstr "No partitions are defined for
{!s}
to use." - -#: src/modules/initramfscfg/main.py:90 src/modules/fstab/main.py:368 -#: src/modules/networkcfg/main.py:106 src/modules/initcpiocfg/main.py:240 -#: src/modules/localecfg/main.py:136 src/modules/openrcdmcryptcfg/main.py:77 -msgid "No root mount point is given for
{!s}
to use." -msgstr "No root mount point is given for
{!s}
to use." - #: src/modules/grubcfg/main.py:28 msgid "Configure GRUB." -msgstr "Configure GRUB." - -#: src/modules/bootloader/main.py:43 -msgid "Install bootloader." -msgstr "Install bootloader." - -#: src/modules/bootloader/main.py:614 -msgid "Failed to install grub, no partitions defined in global storage" -msgstr "Failed to install grub, no partitions defined in global storage" - -#: src/modules/bootloader/main.py:782 -msgid "Bootloader installation error" -msgstr "Bootloader installation error" - -#: src/modules/bootloader/main.py:783 -msgid "" -"The bootloader could not be installed. The installation command " -"
{!s}
returned error code {!s}." msgstr "" -"The bootloader could not be installed. The installation command " -"
{!s}
returned error code {!s}." - -#: src/modules/fstab/main.py:29 -msgid "Writing fstab." -msgstr "Writing fstab." - -#: src/modules/fstab/main.py:395 -msgid "No
{!s}
configuration is given for
{!s}
to use." -msgstr "No
{!s}
configuration is given for
{!s}
to use." - -#: src/modules/dracut/main.py:27 -msgid "Creating initramfs with dracut." -msgstr "Creating initramfs with dracut." - -#: src/modules/dracut/main.py:49 -msgid "Failed to run dracut on the target" -msgstr "Failed to run dracut on the target" - -#: src/modules/dracut/main.py:50 src/modules/mkinitfs/main.py:50 -msgid "The exit code was {}" -msgstr "The exit code was {}" - -#: src/modules/displaymanager/main.py:524 -msgid "Cannot write KDM configuration file" -msgstr "Cannot write KDM configuration file" - -#: src/modules/displaymanager/main.py:525 -msgid "KDM config file {!s} does not exist" -msgstr "KDM config file {!s} does not exist" - -#: src/modules/displaymanager/main.py:586 -msgid "Cannot write LXDM configuration file" -msgstr "Cannot write LXDM configuration file" - -#: src/modules/displaymanager/main.py:587 -msgid "LXDM config file {!s} does not exist" -msgstr "LXDM config file {!s} does not exist" - -#: src/modules/displaymanager/main.py:670 -msgid "Cannot write LightDM configuration file" -msgstr "Cannot write LightDM configuration file" - -#: src/modules/displaymanager/main.py:671 -msgid "LightDM config file {!s} does not exist" -msgstr "LightDM config file {!s} does not exist" - -#: src/modules/displaymanager/main.py:745 -msgid "Cannot configure LightDM" -msgstr "Cannot configure LightDM" - -#: src/modules/displaymanager/main.py:746 -msgid "No LightDM greeter installed." -msgstr "No LightDM greeter installed." - -#: src/modules/displaymanager/main.py:777 -msgid "Cannot write SLIM configuration file" -msgstr "Cannot write SLIM configuration file" - -#: src/modules/displaymanager/main.py:778 -msgid "SLIM config file {!s} does not exist" -msgstr "SLIM config file {!s} does not exist" - -#: src/modules/displaymanager/main.py:991 -msgid "No display managers selected for the displaymanager module." -msgstr "No display managers selected for the displaymanager module." - -#: src/modules/displaymanager/main.py:992 -msgid "" -"The displaymanagers list is empty or undefined in both globalstorage and " -"displaymanager.conf." -msgstr "" -"The displaymanagers list is empty or undefined in both globalstorage and " -"displaymanager.conf." - -#: src/modules/displaymanager/main.py:1074 -msgid "Display manager configuration was incomplete" -msgstr "Display manager configuration was incomplete" - -#: src/modules/services-openrc/main.py:29 -msgid "Configure OpenRC services" -msgstr "Configure OpenRC services" - -#: src/modules/services-openrc/main.py:57 -msgid "Cannot add service {name!s} to run-level {level!s}." -msgstr "Cannot add service {name!s} to run-level {level!s}." - -#: src/modules/services-openrc/main.py:59 -msgid "Cannot remove service {name!s} from run-level {level!s}." -msgstr "Cannot remove service {name!s} from run-level {level!s}." - -#: src/modules/services-openrc/main.py:61 -msgid "" -"Unknown service-action {arg!s} for service {name!s} in run-" -"level {level!s}." -msgstr "" -"Unknown service-action {arg!s} for service {name!s} in run-" -"level {level!s}." - -#: src/modules/services-openrc/main.py:93 -#: src/modules/services-systemd/main.py:59 -msgid "Cannot modify service" -msgstr "Cannot modify service" - -#: src/modules/services-openrc/main.py:94 -msgid "" -"rc-update {arg!s} call in chroot returned error code {num!s}." -msgstr "" -"rc-update {arg!s} call in chroot returned error code {num!s}." - -#: src/modules/services-openrc/main.py:101 -msgid "Target runlevel does not exist" -msgstr "Target runlevel does not exist" - -#: src/modules/services-openrc/main.py:102 -msgid "" -"The path for runlevel {level!s} is {path!s}, which does not " -"exist." -msgstr "" -"The path for runlevel {level!s} is {path!s}, which does not " -"exist." - -#: src/modules/services-openrc/main.py:110 -msgid "Target service does not exist" -msgstr "Target service does not exist" - -#: src/modules/services-openrc/main.py:111 -msgid "" -"The path for service {name!s} is {path!s}, which does not " -"exist." -msgstr "" -"The path for service {name!s} is {path!s}, which does not " -"exist." - -#: src/modules/networkcfg/main.py:29 -msgid "Saving network configuration." -msgstr "Saving network configuration." - -#: src/modules/packages/main.py:54 src/modules/packages/main.py:65 -#: src/modules/packages/main.py:75 -msgid "Install packages." -msgstr "Install packages." - -#: src/modules/packages/main.py:63 -#, python-format -msgid "Processing packages (%(count)d / %(total)d)" -msgstr "Processing packages (%(count)d / %(total)d)" - -#: src/modules/packages/main.py:68 -#, python-format -msgid "Installing one package." -msgid_plural "Installing %(num)d packages." -msgstr[0] "Installing one package." -msgstr[1] "Installing %(num)d packages." - -#: src/modules/packages/main.py:71 -#, python-format -msgid "Removing one package." -msgid_plural "Removing %(num)d packages." -msgstr[0] "Removing one package." -msgstr[1] "Removing %(num)d packages." - -#: src/modules/packages/main.py:725 src/modules/packages/main.py:737 -#: src/modules/packages/main.py:765 -msgid "Package Manager error" -msgstr "Package Manager error" - -#: src/modules/packages/main.py:726 -msgid "" -"The package manager could not prepare updates. The command
{!s}
" -"returned error code {!s}." -msgstr "" -"The package manager could not prepare updates. The command
{!s}
" -"returned error code {!s}." - -#: src/modules/packages/main.py:738 -msgid "" -"The package manager could not update the system. The command
{!s}
" -" returned error code {!s}." -msgstr "" -"The package manager could not update the system. The command
{!s}
" -" returned error code {!s}." - -#: src/modules/packages/main.py:766 -msgid "" -"The package manager could not make changes to the installed system. The " -"command
{!s}
returned error code {!s}." -msgstr "" -"The package manager could not make changes to the installed system. The " -"command
{!s}
returned error code {!s}." - -#: src/modules/plymouthcfg/main.py:27 -msgid "Configure Plymouth theme" -msgstr "Configure Plymouth theme" - -#: src/modules/initcpiocfg/main.py:28 -msgid "Configuring mkinitcpio." -msgstr "Configuring mkinitcpio." - -#: src/modules/localecfg/main.py:30 -msgid "Configuring locales." -msgstr "Configuring locales." #: src/modules/mount/main.py:42 msgid "Mounting partitions." -msgstr "Mounting partitions." +msgstr "" #: src/modules/mount/main.py:88 src/modules/mount/main.py:124 msgid "Internal error mounting zfs datasets" -msgstr "Internal error mounting zfs datasets" +msgstr "" #: src/modules/mount/main.py:100 msgid "Failed to import zpool" -msgstr "Failed to import zpool" +msgstr "" #: src/modules/mount/main.py:116 msgid "Failed to unlock zpool" -msgstr "Failed to unlock zpool" +msgstr "" #: src/modules/mount/main.py:133 src/modules/mount/main.py:138 msgid "Failed to set zfs mountpoint" -msgstr "Failed to set zfs mountpoint" +msgstr "" + +#: src/modules/mount/main.py:229 src/modules/initcpiocfg/main.py:235 +#: src/modules/initcpiocfg/main.py:239 src/modules/rawfs/main.py:164 +#: src/modules/initramfscfg/main.py:85 src/modules/initramfscfg/main.py:89 +#: src/modules/openrcdmcryptcfg/main.py:72 +#: src/modules/openrcdmcryptcfg/main.py:76 src/modules/fstab/main.py:361 +#: src/modules/fstab/main.py:367 src/modules/fstab/main.py:394 +#: src/modules/localecfg/main.py:140 src/modules/networkcfg/main.py:105 +msgid "Configuration Error" +msgstr "" + +#: src/modules/mount/main.py:230 src/modules/initcpiocfg/main.py:236 +#: src/modules/rawfs/main.py:165 src/modules/initramfscfg/main.py:86 +#: src/modules/openrcdmcryptcfg/main.py:73 src/modules/fstab/main.py:362 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" #: src/modules/mount/main.py:253 msgid "zfs mounting error" -msgstr "zfs mounting error" - -#: src/modules/rawfs/main.py:26 -msgid "Installing data." -msgstr "Installing data." - -#: src/modules/dummypython/main.py:35 -msgid "Dummy python job." -msgstr "Dummy python job." - -#: src/modules/dummypython/main.py:37 src/modules/dummypython/main.py:93 -#: src/modules/dummypython/main.py:94 -msgid "Dummy python step {}" -msgstr "Dummy python step {}" - -#: src/modules/hwclock/main.py:26 -msgid "Setting hardware clock." -msgstr "Setting hardware clock." - -#: src/modules/openrcdmcryptcfg/main.py:26 -msgid "Configuring OpenRC dmcrypt service." -msgstr "Configuring OpenRC dmcrypt service." +msgstr "" #: src/modules/services-systemd/main.py:26 msgid "Configure systemd services" -msgstr "Configure systemd services" +msgstr "" + +#: src/modules/services-systemd/main.py:59 +#: src/modules/services-openrc/main.py:93 +msgid "Cannot modify service" +msgstr "" #: src/modules/services-systemd/main.py:60 msgid "" "systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" -"systemctl {arg!s} call in chroot returned error code {num!s}." #: src/modules/services-systemd/main.py:63 #: src/modules/services-systemd/main.py:69 msgid "Cannot enable systemd service {name!s}." -msgstr "Cannot enable systemd service {name!s}." +msgstr "" #: src/modules/services-systemd/main.py:65 msgid "Cannot enable systemd target {name!s}." -msgstr "Cannot enable systemd target {name!s}." +msgstr "" #: src/modules/services-systemd/main.py:67 msgid "Cannot enable systemd timer {name!s}." -msgstr "Cannot enable systemd timer {name!s}." +msgstr "" #: src/modules/services-systemd/main.py:71 msgid "Cannot disable systemd target {name!s}." -msgstr "Cannot disable systemd target {name!s}." +msgstr "" #: src/modules/services-systemd/main.py:73 msgid "Cannot mask systemd unit {name!s}." -msgstr "Cannot mask systemd unit {name!s}." +msgstr "" #: src/modules/services-systemd/main.py:75 msgid "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." +"Unknown systemd commands {command!s} and {suffix!s} for unit {name!s}." msgstr "" -"Unknown systemd commands {command!s} and " -"{suffix!s} for unit {name!s}." - -#: src/modules/mkinitfs/main.py:27 -msgid "Creating initramfs with mkinitfs." -msgstr "Creating initramfs with mkinitfs." - -#: src/modules/mkinitfs/main.py:49 -msgid "Failed to run mkinitfs on the target" -msgstr "Failed to run mkinitfs on the target" #: src/modules/unpackfs/main.py:34 msgid "Filling up filesystems." -msgstr "Filling up filesystems." +msgstr "" #: src/modules/unpackfs/main.py:254 msgid "rsync failed with error code {}." -msgstr "rsync failed with error code {}." +msgstr "" #: src/modules/unpackfs/main.py:299 msgid "Unpacking image {}/{}, file {}/{}" -msgstr "Unpacking image {}/{}, file {}/{}" +msgstr "" #: src/modules/unpackfs/main.py:314 msgid "Starting to unpack {}" -msgstr "Starting to unpack {}" +msgstr "" #: src/modules/unpackfs/main.py:323 src/modules/unpackfs/main.py:467 msgid "Failed to unpack image \"{}\"" -msgstr "Failed to unpack image \"{}\"" +msgstr "" #: src/modules/unpackfs/main.py:430 msgid "No mount point for root partition" -msgstr "No mount point for root partition" +msgstr "" #: src/modules/unpackfs/main.py:431 msgid "globalstorage does not contain a \"rootMountPoint\" key." -msgstr "globalstorage does not contain a \"rootMountPoint\" key." +msgstr "" #: src/modules/unpackfs/main.py:434 msgid "Bad mount point for root partition" -msgstr "Bad mount point for root partition" +msgstr "" #: src/modules/unpackfs/main.py:435 msgid "rootMountPoint is \"{}\", which does not exist." -msgstr "rootMountPoint is \"{}\", which does not exist." +msgstr "" #: src/modules/unpackfs/main.py:439 src/modules/unpackfs/main.py:455 #: src/modules/unpackfs/main.py:459 src/modules/unpackfs/main.py:465 #: src/modules/unpackfs/main.py:480 msgid "Bad unpackfs configuration" -msgstr "Bad unpackfs configuration" +msgstr "" #: src/modules/unpackfs/main.py:440 msgid "There is no configuration information." -msgstr "There is no configuration information." +msgstr "" #: src/modules/unpackfs/main.py:456 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" -msgstr "The filesystem for \"{}\" ({}) is not supported by your current kernel" +msgstr "" #: src/modules/unpackfs/main.py:460 msgid "The source filesystem \"{}\" does not exist" -msgstr "The source filesystem \"{}\" does not exist" +msgstr "" #: src/modules/unpackfs/main.py:466 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed." msgstr "" -"Failed to find unsquashfs, make sure you have the squashfs-tools package " -"installed." #: src/modules/unpackfs/main.py:481 msgid "The destination \"{}\" in the target system is not a directory" -msgstr "The destination \"{}\" in the target system is not a directory" +msgstr "" + +#: src/modules/displaymanager/main.py:524 +msgid "Cannot write KDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:525 +msgid "KDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:586 +msgid "Cannot write LXDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:587 +msgid "LXDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:670 +msgid "Cannot write LightDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:671 +msgid "LightDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:745 +msgid "Cannot configure LightDM" +msgstr "" + +#: src/modules/displaymanager/main.py:746 +msgid "No LightDM greeter installed." +msgstr "" + +#: src/modules/displaymanager/main.py:777 +msgid "Cannot write SLIM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:778 +msgid "SLIM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:991 +msgid "No display managers selected for the displaymanager module." +msgstr "" + +#: src/modules/displaymanager/main.py:992 +msgid "" +"The displaymanagers list is empty or undefined in both globalstorage and " +"displaymanager.conf." +msgstr "" + +#: src/modules/displaymanager/main.py:1074 +msgid "Display manager configuration was incomplete" +msgstr "" + +#: src/modules/initcpiocfg/main.py:28 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:240 src/modules/initramfscfg/main.py:90 +#: src/modules/openrcdmcryptcfg/main.py:77 src/modules/fstab/main.py:368 +#: src/modules/localecfg/main.py:141 src/modules/networkcfg/main.py:106 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" + +#: src/modules/rawfs/main.py:26 +msgid "Installing data." +msgstr "" + +#: src/modules/services-openrc/main.py:29 +msgid "Configure OpenRC services" +msgstr "" + +#: src/modules/services-openrc/main.py:57 +msgid "Cannot add service {name!s} to run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:59 +msgid "Cannot remove service {name!s} from run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:61 +msgid "" +"Unknown service-action {arg!s} for service {name!s} in run-" +"level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:94 +msgid "" +"rc-update {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:101 +msgid "Target runlevel does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:102 +msgid "" +"The path for runlevel {level!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/services-openrc/main.py:110 +msgid "Target service does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:111 +msgid "" +"The path for service {name!s} is {path!s}, which does not exist." +msgstr "" + +#: src/modules/plymouthcfg/main.py:27 +msgid "Configure Plymouth theme" +msgstr "" + +#: src/modules/packages/main.py:54 src/modules/packages/main.py:65 +#: src/modules/packages/main.py:75 +msgid "Install packages." +msgstr "" + +#: src/modules/packages/main.py:63 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "" + +#: src/modules/packages/main.py:68 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/packages/main.py:71 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/packages/main.py:725 src/modules/packages/main.py:737 +#: src/modules/packages/main.py:765 +msgid "Package Manager error" +msgstr "" + +#: src/modules/packages/main.py:726 +msgid "" +"The package manager could not prepare updates. The command
{!s}
" +"returned error code {!s}." +msgstr "" + +#: src/modules/packages/main.py:738 +msgid "" +"The package manager could not update the system. The command
{!s}
" +"returned error code {!s}." +msgstr "" + +#: src/modules/packages/main.py:766 +msgid "" +"The package manager could not make changes to the installed system. The " +"command
{!s}
returned error code {!s}." +msgstr "" + +#: src/modules/bootloader/main.py:43 +msgid "Install bootloader." +msgstr "" + +#: src/modules/bootloader/main.py:614 +msgid "Failed to install grub, no partitions defined in global storage" +msgstr "" + +#: src/modules/bootloader/main.py:782 +msgid "Bootloader installation error" +msgstr "" + +#: src/modules/bootloader/main.py:783 +msgid "" +"The bootloader could not be installed. The installation command
{!s} returned error code {!s}."
+msgstr ""
+
+#: src/modules/hwclock/main.py:26
+msgid "Setting hardware clock."
+msgstr ""
+
+#: src/modules/mkinitfs/main.py:27
+msgid "Creating initramfs with mkinitfs."
+msgstr ""
+
+#: src/modules/mkinitfs/main.py:49
+msgid "Failed to run mkinitfs on the target"
+msgstr ""
+
+#: src/modules/mkinitfs/main.py:50 src/modules/dracut/main.py:50
+msgid "The exit code was {}"
+msgstr ""
+
+#: src/modules/dracut/main.py:27
+msgid "Creating initramfs with dracut."
+msgstr ""
+
+#: src/modules/dracut/main.py:49
+msgid "Failed to run dracut on the target"
+msgstr ""
+
+#: src/modules/initramfscfg/main.py:32
+msgid "Configuring initramfs."
+msgstr ""
+
+#: src/modules/openrcdmcryptcfg/main.py:26
+msgid "Configuring OpenRC dmcrypt service."
+msgstr ""
+
+#: src/modules/fstab/main.py:29
+msgid "Writing fstab."
+msgstr ""
+
+#: src/modules/fstab/main.py:395
+msgid "No 
{!s}
configuration is given for
{!s}
to use." +msgstr "" + +#: src/modules/dummypython/main.py:35 +msgid "Dummy python job." +msgstr "" + +#: src/modules/dummypython/main.py:37 src/modules/dummypython/main.py:93 +#: src/modules/dummypython/main.py:94 +msgid "Dummy python step {}" +msgstr "" + +#: src/modules/localecfg/main.py:31 +msgid "Configuring locales." +msgstr "" + +#: src/modules/networkcfg/main.py:29 +msgid "Saving network configuration." +msgstr "" diff --git a/lang/python/ko/LC_MESSAGES/python.po b/lang/python/ko/LC_MESSAGES/python.po index d5bb1fa76..e8e751c9c 100644 --- a/lang/python/ko/LC_MESSAGES/python.po +++ b/lang/python/ko/LC_MESSAGES/python.po @@ -5,7 +5,7 @@ # # Translators: # Ji-Hyeon Gim , 2018 -# Junghee Lee , 2022 +# JungHee Lee , 2022 # #, fuzzy msgid "" @@ -14,7 +14,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-03-21 17:21+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" -"Last-Translator: Junghee Lee , 2022\n" +"Last-Translator: JungHee Lee , 2022\n" "Language-Team: Korean (https://www.transifex.com/calamares/teams/20061/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -58,7 +58,7 @@ msgstr "부트로더 설치." #: src/modules/bootloader/main.py:614 msgid "Failed to install grub, no partitions defined in global storage" -msgstr "grub을 설치하지 못했습니다. 전역 저장소에 파티션이 정의되어 있지 않습니다" +msgstr "grub을 설치하지 못했습니다. 파티션 없음이 전역 저장소에 정의되었습니다" #: src/modules/bootloader/main.py:782 msgid "Bootloader installation error" diff --git a/src/modules/fstab/main.py b/src/modules/fstab/main.py old mode 100644 new mode 100755 index 9bc427b13..1cfb5e660 --- a/src/modules/fstab/main.py +++ b/src/modules/fstab/main.py @@ -158,11 +158,23 @@ class FstabGenerator(object): if not mapper_name or not luks_uuid: return None + password = "/crypto_keyfile.bin" + crypttab_options = self.crypttab_options + + # Set crypttab password for partition to none and remove crypttab options + # on root partition when /boot is unencrypted + if partition["mountPoint"] == "/": + if any([p["mountPoint"] == "/boot" + and "luksMapperName" not in p + for p in self.partitions]): + password = "none" + crypttab_options = "" + return dict( name=mapper_name, device="UUID=" + luks_uuid, - password="/crypto_keyfile.bin", - options=self.crypttab_options, + password=password, + options=crypttab_options, ) def print_crypttab_line(self, dct, file=None): @@ -220,7 +232,7 @@ class FstabGenerator(object): # Some "fs" names need special handling in /etc/fstab, so remap them. filesystem = partition["fs"].lower() filesystem = FS_MAP.get(filesystem, filesystem) - has_luks = "luksMapperName" in partition + luks_mapper_name = partition.get("luksMapperName", None) mount_point = partition["mountPoint"] disk_name = disk_name_for_partition(partition) is_ssd = disk_name in self.ssd_disks @@ -263,13 +275,19 @@ class FstabGenerator(object): if filesystem == "btrfs" and partition.get("subvol",None): options = "subvol={},".format(partition["subvol"]) + options - if has_luks: - device = "/dev/mapper/" + partition["luksMapperName"] + device = None + if luks_mapper_name: + device = "/dev/mapper/" + luks_mapper_name elif partition["uuid"]: device = "UUID=" + partition["uuid"] else: device = partition["device"] + if not device: + # TODO: we get here when the user mounted a previously encrypted partition + # This should be catched early in the process + return None + return dict(device=device, mount_point=mount_point, fs=filesystem, diff --git a/src/modules/locale/images/timezone_5.5.png b/src/modules/locale/images/timezone_5.5.png index 78c972fab..172ad8127 100644 Binary files a/src/modules/locale/images/timezone_5.5.png and b/src/modules/locale/images/timezone_5.5.png differ diff --git a/src/modules/locale/images/timezone_8.0.png b/src/modules/locale/images/timezone_8.0.png index ee5095a26..6db98f18f 100644 Binary files a/src/modules/locale/images/timezone_8.0.png and b/src/modules/locale/images/timezone_8.0.png differ diff --git a/src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp b/src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp old mode 100644 new mode 100755 index 137cb750d..d4a718acf --- a/src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp +++ b/src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp @@ -172,6 +172,22 @@ hasUnencryptedSeparateBoot() return false; } +static bool +hasEncryptedRoot() +{ + const QVariantList partitions = ::partitions(); + for ( const QVariant& partition : partitions ) + { + QVariantMap partitionMap = partition.toMap(); + QString mountPoint = partitionMap.value( QStringLiteral( "mountPoint" ) ).toString(); + if ( QDir::cleanPath( mountPoint ) == QStringLiteral( "/" ) ) + { + return partitionMap.contains( QStringLiteral( "luksMapperName" ) ); + } + } + return false; +} + Calamares::JobResult LuksBootKeyFileJob::exec() { @@ -218,7 +234,8 @@ LuksBootKeyFileJob::exec() } // /boot partition is not encrypted, keyfile must not be used - if ( hasUnencryptedSeparateBoot() ) + // But only if root partition is not encrypted + if ( hasUnencryptedSeparateBoot() && !hasEncryptedRoot() ) { cDebug() << Logger::SubEntry << "/boot partition is not encrypted, skipping keyfile creation."; return Calamares::JobResult::ok(); @@ -241,6 +258,10 @@ LuksBootKeyFileJob::exec() for ( const auto& d : s.devices ) { + // Skip setupLuks for root partition if system has an unencrypted /boot + if ( d.isRoot && hasUnencryptedSeparateBoot() ) + continue; + if ( !setupLuks( d ) ) return Calamares::JobResult::error( tr( "Encrypted rootfs setup error" ),