Merge branch 'calamares' of https://github.com/calamares/calamares into development
This commit is contained in:
commit
72320bf754
43
CHANGES-3.3
43
CHANGES-3.3
@ -7,14 +7,51 @@ contributors are listed. Note that Calamares does not have a historical
|
||||
changelog -- this log starts with version 3.3.0. See CHANGES-3.2 for
|
||||
the history of the 3.2 series (2018-05 - 2022-08).
|
||||
|
||||
# 3.3.7 (unreleased)
|
||||
# 3.3.8 (unreleased)
|
||||
|
||||
This release contains contributions from (alphabetically by first name):
|
||||
- Nobody, yet
|
||||
- nobody yet!
|
||||
|
||||
## Core ##
|
||||
- nothing yet!
|
||||
|
||||
## Modules ##
|
||||
- nothing yet!
|
||||
|
||||
|
||||
# 3.3.7 (2024-06-20)
|
||||
|
||||
This release contains contributions from (alphabetically by first name):
|
||||
- Adriaan de Groot
|
||||
- Eugene San
|
||||
- Evan James
|
||||
- Ivan Borzenkov
|
||||
- Sohrab Behdani
|
||||
- Vincent Penvern
|
||||
- Vladislav Nepogodin
|
||||
|
||||
## Core ##
|
||||
- Updated clang-formatting
|
||||
- Some C++20 future-proofing (thanks Vladislav)
|
||||
- CommandList (used by *contextualprocess* and *shellprocess*) now supports
|
||||
globalstorage keys as substitutable variables.
|
||||
|
||||
## Modules ##
|
||||
- *contextualprocess* see *shellprocess*.
|
||||
- *fstab* module does not add an encryption keyfile if it does
|
||||
not exist. (thanks Eugene)
|
||||
- *initcpiocfg* has some new configuration settings to more carefully
|
||||
adjust hooks for initcpio.
|
||||
- *keyboard* module handles Persian (fa) layout better. (thanks Sohrab)
|
||||
- *keyboard* module handles other non-ascii layout better. (thanks Ivan)
|
||||
- *partition* module did not filter out invalid fstab entries;
|
||||
they were not written, either, so no net change.
|
||||
- *partition* module now has a configurable default check-state
|
||||
for the encryption checkbox. (thanks Vincent)
|
||||
- *shellprocess* commands now support globalstorage variables, which
|
||||
are written as `${gs[key]}`, where `key` is a dotted string that
|
||||
selects the globalstorage key to use (like in *contextualprocess*
|
||||
variable-selectors) and `${gs[` and `]}` are literal characters.
|
||||
|
||||
|
||||
# 3.3.6 (2024-04-16)
|
||||
@ -22,7 +59,7 @@ This release contains contributions from (alphabetically by first name):
|
||||
This release contains contributions from (alphabetically by first name):
|
||||
- Adriaan de Groot
|
||||
- Anke Boersma
|
||||
- Eugene Sam
|
||||
- Eugene San
|
||||
- Evan James
|
||||
- Harald Sitter
|
||||
- Mike Stemle
|
||||
|
@ -47,7 +47,7 @@
|
||||
|
||||
cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
|
||||
|
||||
set(CALAMARES_VERSION 3.3.7)
|
||||
set(CALAMARES_VERSION 3.3.8)
|
||||
set(CALAMARES_RELEASE_MODE OFF) # Set to ON during a release
|
||||
|
||||
if(CMAKE_SCRIPT_MODE_FILE)
|
||||
|
@ -9,6 +9,9 @@
|
||||
# You can pass in directory names, in which case the files
|
||||
# in that directory (NOT below it) are processed.
|
||||
#
|
||||
# If the environment variable CLANG_FORMAT is set to a (full path) and
|
||||
# that path is executable, it will be used if possible.
|
||||
#
|
||||
LANG=C
|
||||
LC_ALL=C
|
||||
LC_NUMERIC=C
|
||||
@ -20,8 +23,17 @@ test -d "$BASEDIR" || { echo "! Could not determine base for $0" ; exit 1 ; }
|
||||
test -d "$TOPDIR" || { echo "! Cound not determine top-level source dir" ; exit 1 ; }
|
||||
test -f "$TOPDIR/.clang-format" || { echo "! No .clang-format support files in $TOPDIR" ; exit 1 ; }
|
||||
|
||||
# Allow specifying CF_VERSIONS outside already
|
||||
CF_VERSIONS="$CF_VERSIONS clang-format15 clang-format-15 clang-format-16 clang-format-16.0.6 clang-format"
|
||||
# Start with CLANG_FORMAT, if it is specified
|
||||
CF_VERSIONS=""
|
||||
if test -n "$CLANG_FORMAT" && test -x "$CLANG_FORMAT" ; then
|
||||
CF_VERSIONS="$CLANG_FORMAT"
|
||||
fi
|
||||
# And a bunch of other potential known versions of clang-format, newest first
|
||||
CF_VERSIONS="$CF_VERSIONS clang-format-17"
|
||||
CF_VERSIONS="$CF_VERSIONS clang-format-16 clang-format-16.0.6 "
|
||||
CF_VERSIONS="$CF_VERSIONS clang-format15 clang-format-15 "
|
||||
# Generic name of clang-format
|
||||
CF_VERSIONS="$CF_VERSIONS clang-format"
|
||||
for _cf in $CF_VERSIONS
|
||||
do
|
||||
# Not an error if this particular clang-format isn't found
|
||||
|
@ -31,7 +31,7 @@
|
||||
<location filename="../src/modules/partition/jobs/AutoMountManagementJob.cpp" line="22"/>
|
||||
<source>Managing auto-mount settings…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>অটো-মাউন্ট ছেটিংছ ব্যৱস্থাপনা কৰা হৈছে...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -158,13 +158,13 @@
|
||||
<message>
|
||||
<location filename="../src/calamares/DebugWindow.ui" line="144"/>
|
||||
<source>Send Session Log</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>চেচন লগ পঠাওক</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/calamares/DebugWindow.cpp" line="164"/>
|
||||
<source>Debug Information</source>
|
||||
<comment>@title</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>ডিবাগ তথ্য</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1166,7 +1166,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</tra
|
||||
<location filename="../src/modules/contextualprocess/ContextualProcessJob.cpp" line="115"/>
|
||||
<source>Performing contextual processes' job…</source>
|
||||
<comment>@status</comment>
|
||||
<translation>Suoritetaan kontekstuaaliset prosessit…</translation>
|
||||
<translation>Suoritetaan prosessit…</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -3627,7 +3627,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="46"/>
|
||||
<source>The installer failed to remove a volume group named '%1'.</source>
|
||||
<translation>Asennusoihjelma ei onnistunut poistamaan taltioryhmää '%1'.</translation>
|
||||
<translation>Asennusoihjelma ei voinut poistaa taltioryhmää "%1".</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -3665,7 +3665,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="163"/>
|
||||
<source>The file-system resize job has an invalid configuration and will not run.</source>
|
||||
<comment>@error</comment>
|
||||
<translation>Tiedostojärjestelmän koon muutto ei kelpaa eikä sitä suoriteta.</translation>
|
||||
<translation>Tiedostojärjestelmän koonmuutostyön määritys on virheellinen, eikä sitä suoriteta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="169"/>
|
||||
@ -3677,25 +3677,25 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="170"/>
|
||||
<source>Calamares cannot start KPMCore for the file system resize job.</source>
|
||||
<comment>@error</comment>
|
||||
<translation>Calamares ei voi käynnistää KPMCorea tiedostojärjestelmän koon muuttamiseksi.</translation>
|
||||
<translation>Calamares ei voi käynnistää KPMCorea tiedostojärjestelmän koonmuutostyölle.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="179"/>
|
||||
<source>Resize failed.</source>
|
||||
<comment>@error</comment>
|
||||
<translation>Koon muuttaminen epäonnistui.</translation>
|
||||
<translation>Kokoa ei voitu muuttaa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="181"/>
|
||||
<source>The filesystem %1 could not be found in this system, and cannot be resized.</source>
|
||||
<comment>@info</comment>
|
||||
<translation>Tiedostojärjestelmää %1 ei löydy tästä järjestelmästä, eikä sen kokoa voi muuttaa.</translation>
|
||||
<translation>Tiedostojärjestelmää %1 ei löydy, eikä sen kokoa voi muuttaa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="182"/>
|
||||
<source>The device %1 could not be found in this system, and cannot be resized.</source>
|
||||
<comment>@info</comment>
|
||||
<translation>Laitetta %1 ei löydy tästä järjestelmästä, eikä sen kokoa voi muuttaa.</translation>
|
||||
<translation>Laitetta %1 ei löydy, eikä sen kokoa voi muuttaa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="189"/>
|
||||
@ -3704,7 +3704,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="231"/>
|
||||
<source>Resize Failed</source>
|
||||
<comment>@error</comment>
|
||||
<translation>Kokomuutos epäonnistui</translation>
|
||||
<translation>Kokoa ei voitu muuttaa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="191"/>
|
||||
@ -3774,7 +3774,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</
|
||||
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="28"/>
|
||||
<source>Resize volume group named %1 from %2 to %3</source>
|
||||
<comment>@title</comment>
|
||||
<translation>Muuta tilavuusryhmän %1 kokoa %2:sta %3:ksi</translation>
|
||||
<translation>Muuta taltioryhmän %1 kokoa %2:sta %3:ksi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="37"/>
|
||||
@ -3791,7 +3791,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="58"/>
|
||||
<source>The installer failed to resize a volume group named '%1'.</source>
|
||||
<translation>Asennusohjelma ei onnistunut muuttamaan taltioryhmän "%1" kokoa.</translation>
|
||||
<translation>Asennusohjelma ei voinut muuttaa taltioryhmän "%1" kokoa.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -4116,7 +4116,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</
|
||||
<location filename="../src/modules/shellprocess/ShellProcessJob.cpp" line="38"/>
|
||||
<source>Running shell processes…</source>
|
||||
<comment>@status</comment>
|
||||
<translation>Suoritetaan shell prosesseja…</translation>
|
||||
<translation>Suoritetaan shell prosessit…</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -4410,12 +4410,12 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="79"/>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="98"/>
|
||||
<source>Select application and system language</source>
|
||||
<translation>Valitse sovelluksen ja järjestelmän kieli</translation>
|
||||
<translation>Valitse sovellusten ja järjestelmän kieli</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="140"/>
|
||||
<source>Open donations website</source>
|
||||
<translation>Avaa lahjoitussivusto</translation>
|
||||
<translation>Avaa lahjoitukset verkkosivu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="143"/>
|
||||
@ -4425,7 +4425,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="153"/>
|
||||
<source>Open help and support website</source>
|
||||
<translation>Avaa ohje- ja tukisivusto</translation>
|
||||
<translation>Avaa ohje- ja tukisivu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="156"/>
|
||||
@ -4435,7 +4435,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="166"/>
|
||||
<source>Open issues and bug-tracking website</source>
|
||||
<translation>Avaa ongelmia käsittelevä verkkosivusto</translation>
|
||||
<translation>Avoimet ongelmat ja virheenseuranta verkkosivu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="169"/>
|
||||
@ -4445,7 +4445,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="179"/>
|
||||
<source>Open release notes website</source>
|
||||
<translation>Avaa julkaisutietojen verkkosivusto</translation>
|
||||
<translation>Avaa julkaisutiedot verkkosivu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="182"/>
|
||||
@ -4526,7 +4526,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</
|
||||
<message>
|
||||
<location filename="../src/modules/zfs/ZfsJob.cpp" line="336"/>
|
||||
<source>Failed to create dataset</source>
|
||||
<translation>Tietojoukon luominen epäonnistui</translation>
|
||||
<translation>Epäonnistui dataset luominen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/zfs/ZfsJob.cpp" line="337"/>
|
||||
@ -4556,7 +4556,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</
|
||||
<location filename="../src/calamares/CalamaresWindow.cpp" line="159"/>
|
||||
<source>Show information about Calamares</source>
|
||||
<comment>@tooltip</comment>
|
||||
<translation>Näytä tietoa Calamaresista</translation>
|
||||
<translation>Calamares tietoja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/calamares/CalamaresWindow.cpp" line="173"/>
|
||||
|
@ -876,7 +876,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<location filename="../src/modules/partition/jobs/ClearMountsJob.cpp" line="372"/>
|
||||
<source>Clearing mounts for partitioning operations on %1…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>מתבצעת מחיקה של נקודות עיגון לטובת פעולות חלוקה למחיצות על %1…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/ClearMountsJob.cpp" line="391"/>
|
||||
@ -1273,7 +1273,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="181"/>
|
||||
<source>Create new %1MiB partition on %3 (%2) with entries %4</source>
|
||||
<comment>@title</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>יצירת מחיצת %1MiB על גבי %3 (%2) עם הרשומות %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="189"/>
|
||||
@ -1708,7 +1708,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="235"/>
|
||||
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>%3</source>
|
||||
<comment>@info</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>הגדרת מחיצת %2 <strong>חדשה</strong> עם נקודת העיגון <strong>%1</strong> %3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="250"/>
|
||||
@ -1726,13 +1726,13 @@ The installer will quit and all changes will be lost.</source>
|
||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="270"/>
|
||||
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong> and features <em>%4</em></source>
|
||||
<comment>@info</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>הקמת מחיצת %3 בשם <strong>%1</strong> עם נקודת העגינה <strong>%2</strong> והיכולות <em>%4</em></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="280"/>
|
||||
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>%4…</source>
|
||||
<comment>@info</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>הקמת מחיצת %3 בשם <strong>%1</strong> עם נקודת העגינה <strong>%2</strong>%4…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="296"/>
|
||||
@ -1815,13 +1815,13 @@ The installer will quit and all changes will be lost.</source>
|
||||
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="39"/>
|
||||
<source>Format partition %1 (file system: %2, size: %3 MiB) on %4</source>
|
||||
<comment>@title</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>לאתחל את המחיצה %1 (מערכת קבצים: %2, גודל: %3 MiB) על גבי %4</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="49"/>
|
||||
<source>Format <strong>%3MiB</strong> partition <strong>%1</strong> with file system <strong>%2</strong></source>
|
||||
<comment>@info</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>אתחול מחיצה בגודל <strong>%3MiB</strong> בנתיב <strong>%1</strong> עם מערכת הקבצים <strong>%2</strong></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="62"/>
|
||||
@ -1833,7 +1833,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="64"/>
|
||||
<source>Formatting partition %1 with file system %2…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>המחיצה %1 מפורמטת עם מערכת הקבצים %2…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="73"/>
|
||||
@ -3259,13 +3259,13 @@ The installer will quit and all changes will be lost.</source>
|
||||
<location filename="../src/modules/partition/PartitionViewStep.cpp" line="178"/>
|
||||
<source>Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3)</source>
|
||||
<comment>@info</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>להתקין את %1 <strong>לצד</strong> מערכת הפעלה אחרת בכונן <strong>%2</strong> (%3)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/PartitionViewStep.cpp" line="187"/>
|
||||
<source><strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1</source>
|
||||
<comment>@info</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation><strong>למחוק</strong> את הכונן <strong>%2</strong> (%3) ולהתקין %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/PartitionViewStep.cpp" line="194"/>
|
||||
@ -3753,13 +3753,13 @@ Output:
|
||||
<location filename="../src/modules/partition/jobs/ResizePartitionJob.cpp" line="45"/>
|
||||
<source>Resize <strong>%2MiB</strong> partition <strong>%1</strong> to <strong>%3MiB</strong></source>
|
||||
<comment>@info</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>שינוי גודל של מחיצה בגודל <strong>%2MiB</strong> בנתיב <strong>%1</strong> לכדי <strong>%3MiB</strong></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/ResizePartitionJob.cpp" line="54"/>
|
||||
<source>Resizing %2MiB partition %1 to %3MiB…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>משתנה הגודל של מחיצה %1 בגודל %2MiB לכדי %3MiB…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/ResizePartitionJob.cpp" line="70"/>
|
||||
@ -3782,7 +3782,7 @@ Output:
|
||||
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="28"/>
|
||||
<source>Resize volume group named %1 from %2 to %3</source>
|
||||
<comment>@title</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>שינוי גודל קבוצת כרכים בשם %1 מ־%2 ל־%3</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="37"/>
|
||||
@ -3913,7 +3913,7 @@ Output:
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="50"/>
|
||||
<source>Set flags on %1MiB %2 partition</source>
|
||||
<comment>@title</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>הגדרת דגלונים על מחיצה מסוג %2 בגודל %1MiB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="54"/>
|
||||
@ -3931,7 +3931,7 @@ Output:
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="71"/>
|
||||
<source>Clear flags on %1MiB <strong>%2</strong> partition</source>
|
||||
<comment>@info</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>להסיר דגלונים ממחיצת <strong>%2</strong> בגודל %1MiB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="75"/>
|
||||
@ -3949,49 +3949,49 @@ Output:
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="88"/>
|
||||
<source>Set flags on %1MiB <strong>%2</strong> partition to <strong>%3</strong></source>
|
||||
<comment>@info</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>הגדרת דגלונים על מחיצת <strong>%2</strong> בגודל %1MiB לכדי <strong>%3</strong></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="94"/>
|
||||
<source>Set flags on new partition to <strong>%1</strong></source>
|
||||
<comment>@info</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>הגדרת הדגלונים <strong>%1</strong> על המחיצה החדשה</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="105"/>
|
||||
<source>Clearing flags on partition <strong>%1</strong>…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>הדגלונים נמחקים מהמחיצה <strong>%1</strong>…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="112"/>
|
||||
<source>Clearing flags on %1MiB <strong>%2</strong> partition…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>דגלונים מוסרים ממחיצת <strong>%2</strong> בגודל %1MiB…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="117"/>
|
||||
<source>Clearing flags on new partition…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>הדגלונים נמחקים מהמחיצה החדשה…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="122"/>
|
||||
<source>Setting flags <strong>%2</strong> on partition <strong>%1</strong>…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>הדגלונים <strong>%2</strong> מוגדרים על המחיצה <strong>%1</strong>…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="130"/>
|
||||
<source>Setting flags <strong>%3</strong> on %1MiB <strong>%2</strong> partition…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>הדגלונים <strong>%3</strong> על מחיצת <strong>%2</strong> בגודל %1MiB…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="136"/>
|
||||
<source>Setting flags <strong>%1</strong> on new partition…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>הדגלונים <strong>%1</strong> מוגדרים על המחיצה החדשה…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="149"/>
|
||||
|
@ -39,7 +39,7 @@
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="60"/>
|
||||
<source>The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode.</source>
|
||||
<translation>Le <strong>ambiente de initio</strong> de iste systema.<br><br>Systemas x86 plus vetere supporta solmente <strong>BIOS</strong>.<br>Systemas moderne usualmente usa <strong>EFI</strong>, ma pote etiam apparer como BIOS si il initia in modo de compatibilitate.</translation>
|
||||
<translation>Le <strong>ambiente de initio</strong> de iste systema.<br><br>Systemas x86 plus vetere supporta solmente <strong>BIOS</strong>.<br>Systemas moderne usualmente usa <strong>EFI</strong>, ma pote anque apparer como BIOS si il initia in modo de compatibilitate.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="70"/>
|
||||
@ -49,7 +49,7 @@
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="82"/>
|
||||
<source>This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own.</source>
|
||||
<translation>Iste systema esseva initiate con un ambiente de initio <strong>BIOS</strong>.<br><br>Pro configurar le initio ab un ambiente BIOS, iste installator debe installar un cargator de initio, como <strong>GRUB</strong>, o al comenciamento de un partition o sur le <strong>registro de initio principal</strong> presso le comenciamento del tabula de partitiones (preferite). Isto es automatic, a minus que tu selige partitionamento manual, in le qual caso tu debe configurar lo tu mesme.</translation>
|
||||
<translation>Iste systema era initiate con un ambiente de initio <strong>BIOS</strong>.<br><br>Pro configurar le initio ab un ambiente BIOS, iste installator debe installar un cargator de initio, como <strong>GRUB</strong>, o al comenciamento de un partition o sur le <strong>registro de initio principal</strong> presso le comenciamento del tabula de partitiones (preferite). Isto es automatic, a minus que tu selige partitionamento manual, in le qual caso tu debe configurar lo tu mesme.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -118,7 +118,7 @@
|
||||
<location filename="../src/calamares/DebugWindow.ui" line="68"/>
|
||||
<location filename="../src/calamares/DebugWindow.ui" line="82"/>
|
||||
<source>none</source>
|
||||
<translation>nulle</translation>
|
||||
<translation>necuno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/calamares/DebugWindow.ui" line="75"/>
|
||||
@ -193,7 +193,7 @@
|
||||
<message>
|
||||
<location filename="../src/libcalamares/JobExample.cpp" line="29"/>
|
||||
<source>Job failed (%1)</source>
|
||||
<translation>Carga fallite (%1)</translation>
|
||||
<translation>Labor fallite (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/JobExample.cpp" line="30"/>
|
||||
@ -214,7 +214,7 @@
|
||||
<message>
|
||||
<location filename="../src/libcalamares/JobExample.cpp" line="17"/>
|
||||
<source>Example job (%1)</source>
|
||||
<translation>Carga de exemplo (%1)</translation>
|
||||
<translation>Labor de exemplo (%1)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -495,7 +495,7 @@ Link copied to clipboard</source>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="344"/>
|
||||
<source>&Install Now</source>
|
||||
<comment>@button</comment>
|
||||
<translation>&Installar nunc</translation>
|
||||
<translation>&Installar ora</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="351"/>
|
||||
@ -580,14 +580,14 @@ Link copied to clipboard</source>
|
||||
<source>Do you really want to cancel the current setup process?
|
||||
The setup program will quit and all changes will be lost.</source>
|
||||
<translation>Vole tu vermente cancellar le processo de configuration actual?
|
||||
Le programma de configuration claudera e tote le cambios essera perdite.</translation>
|
||||
Le programma de configuration claudera e tote le cambiamentos sera perdite.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="519"/>
|
||||
<source>Do you really want to cancel the current install process?
|
||||
The installer will quit and all changes will be lost.</source>
|
||||
<translation>Vole tu vermente cancellar le processo de installation actual?
|
||||
Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
Le installator claudera e tote le cambiamentos sera perdite.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -795,7 +795,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1628"/>
|
||||
<source>No swap</source>
|
||||
<comment>@label</comment>
|
||||
<translation>Nulle intercambio</translation>
|
||||
<translation>Necun intercambio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1637"/>
|
||||
@ -807,7 +807,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1640"/>
|
||||
<source>Swap (no Hibernate)</source>
|
||||
<comment>@label</comment>
|
||||
<translation>Intercambio (nulle hibernation)</translation>
|
||||
<translation>Intercambio (necun hibernation)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1643"/>
|
||||
@ -978,13 +978,13 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<location filename="../src/modules/locale/Config.cpp" line="410"/>
|
||||
<source>The system language will be set to %1.</source>
|
||||
<comment>@info</comment>
|
||||
<translation>Le lingua del systema essera definite a %1.</translation>
|
||||
<translation>Le lingua del systema sera definite a %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/Config.cpp" line="416"/>
|
||||
<source>The numbers and dates locale will be set to %1.</source>
|
||||
<comment>@info</comment>
|
||||
<translation>Le numeros e datas regional essera definite a %1.</translation>
|
||||
<translation>Le numeros e datas regional sera definite a %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/netinstall/Config.cpp" line="53"/>
|
||||
@ -1039,7 +1039,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/packagechooser/Config.cpp" line="247"/>
|
||||
<source>None</source>
|
||||
<translation>Nulle</translation>
|
||||
<translation>Necuno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/summary/Config.cpp" line="35"/>
|
||||
@ -1080,7 +1080,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/users/Config.cpp" line="300"/>
|
||||
<source>Your hostname is too short.</source>
|
||||
<translation>Tu nomine de hospite es troppo breve.</translation>
|
||||
<translation>Tu nomine de hospite es troppo curte.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/Config.cpp" line="304"/>
|
||||
@ -1130,7 +1130,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/Config.cpp" line="80"/>
|
||||
<source>This program will ask you some questions and set up %2 on your computer.</source>
|
||||
<translation>Iste programma te demandara alicun questiones e configurara %2 sur tu computator.</translation>
|
||||
<translation>Iste programma te demandara alcun questiones e configurara %2 sur tu computator.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/Config.cpp" line="264"/>
|
||||
@ -1477,7 +1477,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="78"/>
|
||||
<source><br><br>This partition table type is only advisable on older systems which start from a <strong>BIOS</strong> boot environment. GPT is recommended in most other cases.<br><br><strong>Warning:</strong> the MBR partition table is an obsolete MS-DOS era standard.<br>Only 4 <em>primary</em> partitions may be created, and of those 4, one can be an <em>extended</em> partition, which may in turn contain many <em>logical</em> partitions.</source>
|
||||
<translation><br><br>Iste typo de tabula de partitiones es solmente consiliabile pro systemas plus vetere que initia ab un ambiente de initio <strong>BIOS</strong>. GPT es recommendate in le major parte de altere casos.<br><br><strong>Advertimento:</strong> le tabula de partitiones MBR es un standard obsolete del era MS-DOS. <br>Solmente 4 partitiones <em>primari</em> pote esser create, e de cellos 4, un pote esser un partition <em>extendite</em>, que a su vice pote continer multe partitiones <em>logic</em>.</translation>
|
||||
<translation><br><br>Iste typo de tabula de partitiones es solmente consiliabile pro systemas plus vetere que initia ab un ambiente de initio <strong>BIOS</strong>. GPT es recommendate in le major parte de altere casos.<br><br><strong>Aviso:</strong> le tabula de partitiones MBR es un standard obsolete del era MS-DOS. <br>Solmente 4 partitiones <em>primari</em> pote esser create, e de issos 4, un pote esser un partition <em>extendite</em>, que a su vice pote continer multe partitiones <em>logic</em>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="89"/>
|
||||
@ -1538,7 +1538,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<location filename="../src/modules/dracutlukscfg/DracutLuksCfgJob.cpp" line="138"/>
|
||||
<source>Failed to open %1</source>
|
||||
<comment>@error</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Impossibile aperir %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -1575,7 +1575,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="93"/>
|
||||
<source>Warning: Formatting the partition will erase all existing data.</source>
|
||||
<translation>Advertimento: Formatar le partition radera tote le datos existente.</translation>
|
||||
<translation>Aviso: Formatar le partition radera tote le datos existente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.ui" line="103"/>
|
||||
@ -1746,13 +1746,13 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedPage.ui" line="102"/>
|
||||
<source>&Restart now</source>
|
||||
<translation>&Reinitiar nunc</translation>
|
||||
<translation>&Reinitiar ora</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedPage.cpp" line="75"/>
|
||||
<source><h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system.</source>
|
||||
<comment>@info</comment>
|
||||
<translation><h1>Tote facite.</h1><br/>%1 ha essite configurate in tu computator.<br/>Tu pote nunc initiar usante tu nove systema.</translation>
|
||||
<translation><h1>Tote facite.</h1><br/>%1 ha essite configurate in tu computator.<br/>Tu pote ora initiar usante tu nove systema.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedPage.cpp" line="79"/>
|
||||
@ -1764,7 +1764,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<location filename="../src/modules/finished/FinishedPage.cpp" line="87"/>
|
||||
<source><h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment.</source>
|
||||
<comment>@info</comment>
|
||||
<translation><h1>Tote facite.</h1><br/>%1 ha essite installate in tu computator.<br/>Tu pote nunc reinitiar in tu nove systema, o continuar usante le ambiente in vivo de %2.</translation>
|
||||
<translation><h1>Tote facite.</h1><br/>%1 ha essite installate in tu computator.<br/>Tu pote ora reinitiar in tu nove systema, o continuar usante le ambiente in vivo de %2.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedPage.cpp" line="92"/>
|
||||
@ -2077,7 +2077,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<location filename="../src/modules/locale/LCLocaleDialog.cpp" line="30"/>
|
||||
<source>The system locale setting affects the language and character set for some command line user interface elements.<br/>The current setting is <strong>%1</strong>.</source>
|
||||
<comment>@info</comment>
|
||||
<translation>Le parametros regional del systema affecta le lingua e le collection de characteres pro alicun elementos del interfacie de usator del linea de commando.<br/>Le parametro actual es <strong>%1</strong>.</translation>
|
||||
<translation>Le parametros regional del systema affecta le lingua e le collection de characteres pro alcun elementos del interfacie de usator del linea de commando.<br/>Le parametro actual es <strong>%1</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/LCLocaleDialog.cpp" line="54"/>
|
||||
@ -2107,7 +2107,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/luksopenswaphookcfg/LOSHJob.cpp" line="95"/>
|
||||
<source>No rootMountPoint is set.</source>
|
||||
<translation>Nulle puncto de montage es definite.</translation>
|
||||
<translation>Necun puncto de montage es definite.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/luksopenswaphookcfg/LOSHJob.cpp" line="100"/>
|
||||
@ -2298,7 +2298,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<location filename="../src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp" line="254"/>
|
||||
<location filename="../src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp" line="262"/>
|
||||
<source>No partitions are defined.</source>
|
||||
<translation>Nulle partitiones es definite.</translation>
|
||||
<translation>Necun partitiones es definite.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp" line="297"/>
|
||||
@ -2309,7 +2309,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp" line="298"/>
|
||||
<source>Root partition %1 is LUKS but no passphrase has been set.</source>
|
||||
<translation>Le partition radice %1 es LUKS ma nulle phrase de contrasigno esseva definite.</translation>
|
||||
<translation>Le partition radice %1 es LUKS ma necun phrase de contrasigno era definite.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/luksbootkeyfile/LuksBootKeyFileJob.cpp" line="305"/>
|
||||
@ -2423,7 +2423,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="56"/>
|
||||
<source>Kernel</source>
|
||||
<comment>label for netinstall module, Linux kernel</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Nucleo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="57"/>
|
||||
@ -3135,7 +3135,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="55"/>
|
||||
<source>&Revert All Changes</source>
|
||||
<translation>&Reverter tote le cambiamentos</translation>
|
||||
<translation>&Reverter tote le modificationes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="91"/>
|
||||
@ -3195,7 +3195,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="260"/>
|
||||
<source>The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead.</source>
|
||||
<translation>Le tabula de partitiones sur %1 jam ha %2 partitiones primari, e non pote esser addite alteres. Remove un partition primari e adde un partition extendite, in vice.</translation>
|
||||
<translation>Le tabula de partitiones sur %1 ja ha %2 partitiones primari, e non pote esser addite alteres. Remove un partition primari e adde un partition extendite, in vice.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -3279,7 +3279,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/PartitionViewStep.cpp" line="263"/>
|
||||
<source>No partitions will be changed.</source>
|
||||
<translation>Nulle partitiones essera cambiate.</translation>
|
||||
<translation>Necun partitiones sera modificate.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/PartitionViewStep.cpp" line="303"/>
|
||||
@ -3372,7 +3372,7 @@ Le installator claudera e tote le cambios essera perdite.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/PartitionViewStep.cpp" line="658"/>
|
||||
<source>A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window.</source>
|
||||
<translation>Un partition de initio separate esseva configurate insimul con un partition de radice cryptate, ma le partition de initio non es cryptate.<br/><br/>Il ha problemas de securitate con iste typo de configuration, perque le files importante del systema es mantenite sur un partition non cryptate.<br/>Tu pote continuar si tu vole, ma le disblocar del systema de files occurrera plus tarde durante le initio del systema.<br/>Pro cryptar le partition de initio, retorna e recrea lo, seligente <strong>Cryptar</strong> in le fenestra de creation de partitiones.</translation>
|
||||
<translation>Un partition de initio separate era configurate insimul con un partition de radice cryptate, ma le partition de initio non es cryptate.<br/><br/>Il ha problemas de securitate con iste typo de configuration, perque le files importante del systema es mantenite sur un partition non cryptate.<br/>Tu pote continuar si tu vole, ma le disblocar del systema de files occurrera plus tarde durante le initio del systema.<br/>Pro cryptar le partition de initio, retorna e recrea lo, seligente <strong>Cryptar</strong> in le fenestra de creation de partitiones.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/PartitionViewStep.cpp" line="750"/>
|
||||
@ -3567,7 +3567,7 @@ Output:
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionDialogHelpers.cpp" line="44"/>
|
||||
<source>(no mount point)</source>
|
||||
<translation>(nulle puncto de montage)</translation>
|
||||
<translation>(necun puncto de montage)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionLabelsView.cpp" line="39"/>
|
||||
@ -3661,7 +3661,7 @@ Output:
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="170"/>
|
||||
<source>Calamares cannot start KPMCore for the file system resize job.</source>
|
||||
<comment>@error</comment>
|
||||
<translation>Calamares non pote initiar KPMCore pro le carga de redimensionamento del systema de files.</translation>
|
||||
<translation>Calamares non pote initiar KPMCore pro le labor de redimensionamento del systema de files.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="179"/>
|
||||
@ -3844,37 +3844,37 @@ Output:
|
||||
<location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="368"/>
|
||||
<source>Failed to write keyboard configuration for the virtual console.</source>
|
||||
<comment>@error</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Impossibile scriber le configuration del claviero pro le consola virtual.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="369"/>
|
||||
<source>Failed to write to %1</source>
|
||||
<comment>@error, %1 is virtual console configuration path</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Impossibile scriber a %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="394"/>
|
||||
<source>Failed to write keyboard configuration for X11.</source>
|
||||
<comment>@error</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Impossibile scriber le configuration del claviero pro X11.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="395"/>
|
||||
<source>Failed to write to %1</source>
|
||||
<comment>@error, %1 is keyboard configuration path</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Impossibile scriber a %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="411"/>
|
||||
<source>Failed to write keyboard configuration to existing /etc/default directory.</source>
|
||||
<comment>@error</comment>
|
||||
<translation>Non poteva scriber le configuration del claviero al directorio /etc/default existente.</translation>
|
||||
<translation>Impossibile scriber le configuration del claviero al directorio /etc/default existente.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="412"/>
|
||||
<source>Failed to write to %1</source>
|
||||
<comment>@error, %1 is default keyboard path</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Impossibile scriber a %1</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -4288,7 +4288,7 @@ Output:
|
||||
<message>
|
||||
<location filename="../src/modules/umount/UmountJob.cpp" line="131"/>
|
||||
<source>No rootMountPoint is set.</source>
|
||||
<translation>Nulle puncto de montage es definite.</translation>
|
||||
<translation>Necun puncto de montage es definite.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -4484,7 +4484,7 @@ Output:
|
||||
<message>
|
||||
<location filename="../src/modules/zfs/ZfsJob.cpp" line="162"/>
|
||||
<source>Failed to create zpool on </source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Impossibile crear “zpool” sur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/zfs/ZfsJob.cpp" line="180"/>
|
||||
@ -4494,7 +4494,7 @@ Output:
|
||||
<message>
|
||||
<location filename="../src/modules/zfs/ZfsJob.cpp" line="181"/>
|
||||
<source>No partitions are available for ZFS.</source>
|
||||
<translation>Nulle partitiones es disponibile pro ZFS.</translation>
|
||||
<translation>Necun partitiones es disponibile pro ZFS.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/zfs/ZfsJob.cpp" line="192"/>
|
||||
@ -4505,12 +4505,12 @@ Output:
|
||||
<location filename="../src/modules/zfs/ZfsJob.cpp" line="192"/>
|
||||
<location filename="../src/modules/zfs/ZfsJob.cpp" line="264"/>
|
||||
<source>Failed to create zpool</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Impossibile crear “zpool”</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/zfs/ZfsJob.cpp" line="336"/>
|
||||
<source>Failed to create dataset</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Impossibile crear “dataset”</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/zfs/ZfsJob.cpp" line="337"/>
|
||||
@ -4567,7 +4567,7 @@ Output:
|
||||
<source>%1 has been installed on your computer.<br/>
|
||||
You may now restart into your new system, or continue using the Live environment.</source>
|
||||
<translation>%1 ha essite installate in tu computator.<br/>
|
||||
Tu pote nunc reinitiar in tu nove systema, o continuar usante le ambiente in vivo.</translation>
|
||||
Tu pote ora reinitiar in tu nove systema, o continuar usante le ambiente in vivo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/finishedq/finishedq.qml" line="65"/>
|
||||
@ -4600,7 +4600,7 @@ Output:
|
||||
You may now restart into your new system, or continue using the Live environment.</source>
|
||||
<comment>@info, %1 is the product name</comment>
|
||||
<translation>%1 ha essite installate in tu computator.<br/>
|
||||
Tu pote nunc reinitiar in tu nove systema, o continuar usante le ambiente in vivo.</translation>
|
||||
Tu pote ora reinitiar in tu nove systema, o continuar usante le ambiente in vivo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/finishedq/finishedq-qt6.qml" line="65"/>
|
||||
@ -4636,7 +4636,7 @@ Output:
|
||||
You may now restart your device.</source>
|
||||
<comment>@info, %1 is the product name</comment>
|
||||
<translation>%1 ha essite installate in tu computator.<br/>
|
||||
Tu pote nunc reinitiar tu dispositivo.</translation>
|
||||
Tu pote ora reinitiar tu dispositivo.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/finishedq/finishedq@mobile.qml" line="66"/>
|
||||
@ -4732,7 +4732,7 @@ Output:
|
||||
The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>.</source>
|
||||
<comment>@info</comment>
|
||||
<translation><h3>Linguas</h3> </br>
|
||||
Le parametro regional del systema affecta le lingua e le collection de characteres pro alicun elementos del interfacie de usator del linea de commando. Le parametro actual es <strong>%1</strong>.</translation>
|
||||
Le parametro regional del systema affecta le lingua e le collection de characteres pro alcun elementos del interfacie de usator del linea de commando. Le parametro actual es <strong>%1</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/localeq/localeq.qml" line="213"/>
|
||||
@ -4757,7 +4757,7 @@ Output:
|
||||
The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>.</source>
|
||||
<comment>@info</comment>
|
||||
<translation><h3>Linguas</h3> </br>
|
||||
Le parametro regional del systema affecta le lingua e le collection de characteres pro alicun elementos del interfacie de usator del linea de commando. Le parametro actual es <strong>%1</strong>.</translation>
|
||||
Le parametro regional del systema affecta le lingua e le collection de characteres pro alcun elementos del interfacie de usator del linea de commando. Le parametro actual es <strong>%1</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/localeq/localeq-qt6.qml" line="213"/>
|
||||
@ -5160,7 +5160,7 @@ Output:
|
||||
<source><h3>Welcome to the %1 <quote>%2</quote> installer</h3>
|
||||
<p>This program will ask you some questions and set up %1 on your computer.</p></source>
|
||||
<translation><h3>Benvenite al installator de <quote>%2</quote> pro %1</h3>
|
||||
<p>Iste programma te demandara alicun questiones e configurara %1 sur tu computator.</p></translation>
|
||||
<p>Iste programma te demandara alcun questiones e configurara %1 sur tu computator.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcomeq/welcomeq.qml" line="69"/>
|
||||
@ -5190,7 +5190,7 @@ Output:
|
||||
<source><h3>Welcome to the %1 <quote>%2</quote> installer</h3>
|
||||
<p>This program will ask you some questions and set up %1 on your computer.</p></source>
|
||||
<translation><h3>Benvenite al installator de <quote>%2</quote> pro %1</h3>
|
||||
<p>Iste programma te demandara alicun questiones e configurara %1 sur tu computator.</p></translation>
|
||||
<p>Iste programma te demandara alcun questiones e configurara %1 sur tu computator.</p></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcomeq/welcomeq-qt6.qml" line="69"/>
|
||||
|
@ -963,19 +963,19 @@ The installer will quit and all changes will be lost.</source>
|
||||
<location filename="../src/modules/keyboard/Config.cpp" line="505"/>
|
||||
<source>Keyboard model has been set to %1<br/>.</source>
|
||||
<comment>@label, %1 is keyboard model, as in Apple Magic Keyboard</comment>
|
||||
<translation>キーボードのモデルは %1<br/> に設定されました。</translation>
|
||||
<translation>キーボードのモデルを %1 に設定する。<br/></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/keyboard/Config.cpp" line="512"/>
|
||||
<source>Keyboard layout has been set to %1/%2.</source>
|
||||
<comment>@label, %1 is layout, %2 is layout variant</comment>
|
||||
<translation>キーボードレイアウトは %1/%2 に設定されました。</translation>
|
||||
<translation>キーボードのレイアウトを %1/%2 に設定する。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/Config.cpp" line="373"/>
|
||||
<source>Set timezone to %1/%2</source>
|
||||
<comment>@action</comment>
|
||||
<translation>タイムゾーンを %1/%2 に設定</translation>
|
||||
<translation>タイムゾーンを %1/%2 に設定する</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/locale/Config.cpp" line="410"/>
|
||||
@ -3014,7 +3014,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="472"/>
|
||||
<source>Use the same password for the administrator account.</source>
|
||||
<translation>管理者アカウントと同じパスワードを使用する。</translation>
|
||||
<translation>管理者アカウントにも同じパスワードを使用する。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="495"/>
|
||||
@ -5014,7 +5014,7 @@ Output:
|
||||
<message>
|
||||
<location filename="../src/modules/usersq/usersq.qml" line="305"/>
|
||||
<source>Use the same password for the administrator account.</source>
|
||||
<translation>管理者アカウントと同じパスワードを使用する。</translation>
|
||||
<translation>管理者アカウントにも同じパスワードを使用する。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/usersq/usersq.qml" line="318"/>
|
||||
@ -5147,7 +5147,7 @@ Output:
|
||||
<message>
|
||||
<location filename="../src/modules/usersq/usersq-qt6.qml" line="304"/>
|
||||
<source>Use the same password for the administrator account.</source>
|
||||
<translation>管理者アカウントと同じパスワードを使用する。</translation>
|
||||
<translation>管理者アカウントにも同じパスワードを使用する。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/usersq/usersq-qt6.qml" line="317"/>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1959,13 +1959,13 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="262"/>
|
||||
<source>is checked three times.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>已检测了 3 次。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="265"/>
|
||||
<source>The snark has not been checked three times.</source>
|
||||
<comment>The (some mythological beast) has not been checked three times.</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>snark 没有检查三次。</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -4065,7 +4065,7 @@ Output:
|
||||
<location filename="../src/modules/users/MiscJobs.cpp" line="181"/>
|
||||
<source>Preparing groups…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>正在准备群组…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/MiscJobs.cpp" line="193"/>
|
||||
@ -4085,7 +4085,7 @@ Output:
|
||||
<location filename="../src/modules/users/MiscJobs.cpp" line="34"/>
|
||||
<source>Configuring <pre>sudo</pre> users…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>配置 <pre>sudo</pre> 用户…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/MiscJobs.cpp" line="70"/>
|
||||
@ -4104,7 +4104,7 @@ Output:
|
||||
<location filename="../src/modules/shellprocess/ShellProcessJob.cpp" line="38"/>
|
||||
<source>Running shell processes…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>正在运行 shell 进程…</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -4156,7 +4156,7 @@ Output:
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="106"/>
|
||||
<source>Sending installation feedback…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>正在发送安装反馈…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="124"/>
|
||||
@ -4180,7 +4180,7 @@ Output:
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="198"/>
|
||||
<source>Configuring KDE user feedback…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>配置 KDE 用户反馈…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="220"/>
|
||||
@ -4210,7 +4210,7 @@ Output:
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="141"/>
|
||||
<source>Configuring machine feedback…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>正在配置机器反馈…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="164"/>
|
||||
@ -4282,7 +4282,7 @@ Output:
|
||||
<location filename="../src/modules/umount/UmountJob.cpp" line="39"/>
|
||||
<source>Unmounting file systems…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>正在卸载文件系统…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/umount/UmountJob.cpp" line="123"/>
|
||||
@ -4444,19 +4444,19 @@ Output:
|
||||
<location filename="../src/calamares/DebugWindow.cpp" line="235"/>
|
||||
<source>About %1 Setup</source>
|
||||
<comment>@title</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>关于 %1 安装程序</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/calamares/DebugWindow.cpp" line="236"/>
|
||||
<source>About %1 Installer</source>
|
||||
<comment>@title</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>关于 %1 安装程序</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="212"/>
|
||||
<source>%1 Support</source>
|
||||
<comment>@action</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 的支持信息</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -4483,7 +4483,7 @@ Output:
|
||||
<location filename="../src/modules/zfs/ZfsJob.cpp" line="102"/>
|
||||
<source>Creating ZFS pools and datasets…</source>
|
||||
<comment>@status</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>正在创建 ZFS 池和数据集…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/zfs/ZfsJob.cpp" line="162"/>
|
||||
@ -4737,14 +4737,16 @@ Output:
|
||||
<source><h3>Languages</h3> </br>
|
||||
The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>.</source>
|
||||
<comment>@info</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation><h3>语言</h3></br>
|
||||
系统语言区域设置会影响部份命令行用户界面的语言及字符集。 当前设置是 <strong>%1</strong>。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/localeq/localeq.qml" line="213"/>
|
||||
<source><h3>Locales</h3> </br>
|
||||
The system locale setting affects the numbers and dates format. The current setting is <strong>%1</strong>.</source>
|
||||
<comment>@info</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation><h3>区域</h3></br>
|
||||
系统区域设置会影响数字和日期格式。 当前设置是 <strong>%1</strong>。</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -4761,14 +4763,16 @@ Output:
|
||||
<source><h3>Languages</h3> </br>
|
||||
The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>.</source>
|
||||
<comment>@info</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation><h3>语言</h3></br>
|
||||
系统语言区域设置会影响部份命令行用户界面的语言及字符集。 当前设置是 <strong>%1</strong>。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/localeq/localeq-qt6.qml" line="213"/>
|
||||
<source><h3>Locales</h3> </br>
|
||||
The system locale setting affects the numbers and dates format. The current setting is <strong>%1</strong>.</source>
|
||||
<comment>@info</comment>
|
||||
<translation type="unfinished"/>
|
||||
<translation><h3>区域</h3></br>
|
||||
系统区域设置会影响数字和日期格式。 当前设置是 <strong>%1</strong>。</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-02-12 21:37+0100\n"
|
||||
"POT-Creation-Date: 2024-05-01 00:08+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -22,15 +22,15 @@ msgstr ""
|
||||
msgid "Install bootloader."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/bootloader/main.py:666
|
||||
#: src/modules/bootloader/main.py:671
|
||||
msgid "Failed to install grub, no partitions defined in global storage"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/bootloader/main.py:926
|
||||
#: src/modules/bootloader/main.py:931
|
||||
msgid "Bootloader installation error"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/bootloader/main.py:927
|
||||
#: src/modules/bootloader/main.py:932
|
||||
msgid ""
|
||||
"The bootloader could not be installed. The installation command <pre>{!s}</"
|
||||
"pre> returned error code {!s}."
|
||||
@ -68,17 +68,17 @@ msgstr ""
|
||||
msgid "SLIM config file {!s} does not exist"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:938
|
||||
#: src/modules/displaymanager/main.py:940
|
||||
msgid "No display managers selected for the displaymanager module."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:939
|
||||
#: src/modules/displaymanager/main.py:941
|
||||
msgid ""
|
||||
"The displaymanagers list is empty or undefined in both globalstorage and "
|
||||
"displaymanager.conf."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:1026
|
||||
#: src/modules/displaymanager/main.py:1028
|
||||
msgid "Display manager configuration was incomplete"
|
||||
msgstr ""
|
||||
|
||||
@ -108,29 +108,29 @@ msgstr ""
|
||||
msgid "Writing fstab."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/fstab/main.py:378 src/modules/fstab/main.py:384
|
||||
#: src/modules/fstab/main.py:412 src/modules/initcpiocfg/main.py:256
|
||||
#: src/modules/initcpiocfg/main.py:260 src/modules/initramfscfg/main.py:85
|
||||
#: src/modules/fstab/main.py:382 src/modules/fstab/main.py:388
|
||||
#: src/modules/fstab/main.py:416 src/modules/initcpiocfg/main.py:257
|
||||
#: src/modules/initcpiocfg/main.py:261 src/modules/initramfscfg/main.py:85
|
||||
#: src/modules/initramfscfg/main.py:89 src/modules/localecfg/main.py:140
|
||||
#: src/modules/mount/main.py:334 src/modules/networkcfg/main.py:106
|
||||
#: src/modules/mount/main.py:344 src/modules/networkcfg/main.py:106
|
||||
#: src/modules/openrcdmcryptcfg/main.py:72
|
||||
#: src/modules/openrcdmcryptcfg/main.py:76 src/modules/rawfs/main.py:164
|
||||
msgid "Configuration Error"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/fstab/main.py:379 src/modules/initramfscfg/main.py:86
|
||||
#: src/modules/mount/main.py:335 src/modules/openrcdmcryptcfg/main.py:73
|
||||
#: src/modules/fstab/main.py:383 src/modules/initramfscfg/main.py:86
|
||||
#: src/modules/mount/main.py:345 src/modules/openrcdmcryptcfg/main.py:73
|
||||
#: src/modules/rawfs/main.py:165
|
||||
msgid "No partitions are defined for <pre>{!s}</pre> to use."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/fstab/main.py:385 src/modules/initramfscfg/main.py:90
|
||||
#: src/modules/fstab/main.py:389 src/modules/initramfscfg/main.py:90
|
||||
#: src/modules/localecfg/main.py:141 src/modules/networkcfg/main.py:107
|
||||
#: src/modules/openrcdmcryptcfg/main.py:77
|
||||
msgid "No root mount point is given for <pre>{!s}</pre> to use."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/fstab/main.py:413
|
||||
#: src/modules/fstab/main.py:417
|
||||
msgid "No <pre>{!s}</pre> configuration is given for <pre>{!s}</pre> to use."
|
||||
msgstr ""
|
||||
|
||||
@ -146,11 +146,11 @@ msgstr ""
|
||||
msgid "Configuring mkinitcpio."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/initcpiocfg/main.py:257
|
||||
#: src/modules/initcpiocfg/main.py:258
|
||||
msgid "No partitions are defined for <pre>initcpiocfg</pre>."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/initcpiocfg/main.py:261
|
||||
#: src/modules/initcpiocfg/main.py:262
|
||||
msgid "No root mount point for <pre>initcpiocfg</pre>."
|
||||
msgstr ""
|
||||
|
||||
@ -178,23 +178,23 @@ msgstr ""
|
||||
msgid "Mounting partitions."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/mount/main.py:164 src/modules/mount/main.py:200
|
||||
#: src/modules/mount/main.py:171 src/modules/mount/main.py:207
|
||||
msgid "Internal error mounting zfs datasets"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/mount/main.py:176
|
||||
#: src/modules/mount/main.py:183
|
||||
msgid "Failed to import zpool"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/mount/main.py:192
|
||||
#: src/modules/mount/main.py:199
|
||||
msgid "Failed to unlock zpool"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/mount/main.py:209 src/modules/mount/main.py:214
|
||||
#: src/modules/mount/main.py:216 src/modules/mount/main.py:221
|
||||
msgid "Failed to set zfs mountpoint"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/mount/main.py:370
|
||||
#: src/modules/mount/main.py:383
|
||||
msgid "zfs mounting error"
|
||||
msgstr ""
|
||||
|
||||
@ -230,24 +230,24 @@ msgid_plural "Removing %(num)d packages."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/modules/packages/main.py:740 src/modules/packages/main.py:752
|
||||
#: src/modules/packages/main.py:780
|
||||
#: src/modules/packages/main.py:769 src/modules/packages/main.py:781
|
||||
#: src/modules/packages/main.py:809
|
||||
msgid "Package Manager error"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/packages/main.py:741
|
||||
#: src/modules/packages/main.py:770
|
||||
msgid ""
|
||||
"The package manager could not prepare updates. The command <pre>{!s}</pre> "
|
||||
"returned error code {!s}."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/packages/main.py:753
|
||||
#: src/modules/packages/main.py:782
|
||||
msgid ""
|
||||
"The package manager could not update the system. The command <pre>{!s}</pre> "
|
||||
"returned error code {!s}."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/packages/main.py:781
|
||||
#: src/modules/packages/main.py:810
|
||||
msgid ""
|
||||
"The package manager could not make changes to the installed system. The "
|
||||
"command <pre>{!s}</pre> returned error code {!s}."
|
||||
|
@ -4,7 +4,7 @@
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# xxmn77 <xxmn77@gmail.com>, 2023
|
||||
# Xəyyam Qocayev <xxmn77@gmail.com>, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
@ -13,7 +13,7 @@ msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-02-12 21:37+0100\n"
|
||||
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
|
||||
"Last-Translator: xxmn77 <xxmn77@gmail.com>, 2023\n"
|
||||
"Last-Translator: Xəyyam Qocayev <xxmn77@gmail.com>, 2023\n"
|
||||
"Language-Team: Azerbaijani (https://app.transifex.com/calamares/teams/20061/az/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -4,7 +4,7 @@
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# xxmn77 <xxmn77@gmail.com>, 2023
|
||||
# Xəyyam Qocayev <xxmn77@gmail.com>, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
@ -13,7 +13,7 @@ msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-02-12 21:37+0100\n"
|
||||
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
|
||||
"Last-Translator: xxmn77 <xxmn77@gmail.com>, 2023\n"
|
||||
"Last-Translator: Xəyyam Qocayev <xxmn77@gmail.com>, 2023\n"
|
||||
"Language-Team: Azerbaijani (Azerbaijan) (https://app.transifex.com/calamares/teams/20061/az_AZ/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -6,7 +6,7 @@
|
||||
# Translators:
|
||||
# strel, 2017
|
||||
# Guido Grasso <cuquiman97@gmail.com>, 2018
|
||||
# Adolfo Jayme-Barrientos, 2019
|
||||
# Adolfo Jayme Barrientos, 2019
|
||||
# Miguel Mayol <mitcoes@gmail.com>, 2020
|
||||
# Pier Jose Gotta Perez <piegope@protonmail.com>, 2020
|
||||
# Casper, 2023
|
||||
|
@ -21,7 +21,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: he\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: 2;\n"
|
||||
|
||||
#: src/modules/bootloader/main.py:46
|
||||
msgid "Install bootloader."
|
||||
|
@ -28,7 +28,7 @@ msgstr "Installar cargator de initio."
|
||||
#: src/modules/bootloader/main.py:666
|
||||
msgid "Failed to install grub, no partitions defined in global storage"
|
||||
msgstr ""
|
||||
"Non poteva installar le “grub”, nulle partitiones definite in le "
|
||||
"Impossibile installar le “grub”, necun partitiones definite in le "
|
||||
"immagazinage global."
|
||||
|
||||
#: src/modules/bootloader/main.py:926
|
||||
@ -65,7 +65,7 @@ msgstr "Non pote configurar LightDM"
|
||||
|
||||
#: src/modules/displaymanager/main.py:685
|
||||
msgid "No LightDM greeter installed."
|
||||
msgstr "Nulle systema de benvenita de LightDM installate."
|
||||
msgstr "Necun systema de benvenita de LightDM installate."
|
||||
|
||||
#: src/modules/displaymanager/main.py:716
|
||||
msgid "Cannot write SLIM configuration file"
|
||||
@ -78,7 +78,7 @@ msgstr "Le file de configuration de SLIM {!s} non existe"
|
||||
#: src/modules/displaymanager/main.py:938
|
||||
msgid "No display managers selected for the displaymanager module."
|
||||
msgstr ""
|
||||
"Nulle gestor de visualisation seligite pro le modulo de «displaymanager»."
|
||||
"Necun gestor de visualisation seligite pro le modulo de «displaymanager»."
|
||||
|
||||
#: src/modules/displaymanager/main.py:939
|
||||
msgid ""
|
||||
@ -98,7 +98,7 @@ msgstr "Creation de initramfs con dracut."
|
||||
|
||||
#: src/modules/dracut/main.py:63
|
||||
msgid "Failed to run dracut"
|
||||
msgstr "Non poteva executar dracut"
|
||||
msgstr "Impossibile executar dracut"
|
||||
|
||||
#: src/modules/dracut/main.py:64
|
||||
#, python-brace-format
|
||||
@ -109,7 +109,7 @@ msgstr ""
|
||||
|
||||
#: src/modules/dummypython/main.py:35
|
||||
msgid "Dummy python job."
|
||||
msgstr "Carga ficticie de python."
|
||||
msgstr "Labor ficticie de python."
|
||||
|
||||
#: src/modules/dummypython/main.py:37 src/modules/dummypython/main.py:104
|
||||
#: src/modules/dummypython/main.py:105
|
||||
@ -134,20 +134,20 @@ msgstr "Error de configuration"
|
||||
#: src/modules/mount/main.py:335 src/modules/openrcdmcryptcfg/main.py:73
|
||||
#: src/modules/rawfs/main.py:165
|
||||
msgid "No partitions are defined for <pre>{!s}</pre> to use."
|
||||
msgstr "Nulle partitiones es definite pro esser usate per <pre>{!s}</pre>."
|
||||
msgstr "Necun partitiones es definite pro esser usate per <pre>{!s}</pre>."
|
||||
|
||||
#: src/modules/fstab/main.py:385 src/modules/initramfscfg/main.py:90
|
||||
#: src/modules/localecfg/main.py:141 src/modules/networkcfg/main.py:107
|
||||
#: src/modules/openrcdmcryptcfg/main.py:77
|
||||
msgid "No root mount point is given for <pre>{!s}</pre> to use."
|
||||
msgstr ""
|
||||
"Nulle puncto de montage de radice es date pro esser usate per "
|
||||
"Necun puncto de montage de radice es date pro esser usate per "
|
||||
"<pre>{!s}</pre>."
|
||||
|
||||
#: src/modules/fstab/main.py:413
|
||||
msgid "No <pre>{!s}</pre> configuration is given for <pre>{!s}</pre> to use."
|
||||
msgstr ""
|
||||
"Nulle configuration <pre>{!s}</pre> es date pro esser usate per "
|
||||
"Necun configuration <pre>{!s}</pre> es date pro esser usate per "
|
||||
"<pre>{!s}</pre>."
|
||||
|
||||
#: src/modules/grubcfg/main.py:30
|
||||
@ -164,11 +164,11 @@ msgstr " Configurante “mkinitcpio”."
|
||||
|
||||
#: src/modules/initcpiocfg/main.py:257
|
||||
msgid "No partitions are defined for <pre>initcpiocfg</pre>."
|
||||
msgstr "Nulle partitiones es definite pro <pre>initcpiocfg</pre>."
|
||||
msgstr "Necun partitiones es definite pro <pre>initcpiocfg</pre>."
|
||||
|
||||
#: src/modules/initcpiocfg/main.py:261
|
||||
msgid "No root mount point for <pre>initcpiocfg</pre>."
|
||||
msgstr "Nulle partitiones es definite pro <pre>initcpiocfg</pre>."
|
||||
msgstr "Necun partitiones es definite pro <pre>initcpiocfg</pre>."
|
||||
|
||||
#: src/modules/initramfscfg/main.py:32
|
||||
msgid "Configuring initramfs."
|
||||
@ -184,7 +184,7 @@ msgstr "Creante “initramfs” con “mkinitfs”."
|
||||
|
||||
#: src/modules/mkinitfs/main.py:49
|
||||
msgid "Failed to run mkinitfs on the target"
|
||||
msgstr "Non poteva executar “mkinitfs” sur le scopo"
|
||||
msgstr "Impossibile executar “mkinitfs” sur le scopo"
|
||||
|
||||
#: src/modules/mkinitfs/main.py:50
|
||||
msgid "The exit code was {}"
|
||||
@ -200,15 +200,15 @@ msgstr "Error interne durante le montage de collection de datos de zfs"
|
||||
|
||||
#: src/modules/mount/main.py:176
|
||||
msgid "Failed to import zpool"
|
||||
msgstr "Non poteva importar “zpool”"
|
||||
msgstr "Impossibile importar “zpool”"
|
||||
|
||||
#: src/modules/mount/main.py:192
|
||||
msgid "Failed to unlock zpool"
|
||||
msgstr "Non poteva disblocar “zpool”"
|
||||
msgstr "Impossibile disblocar “zpool”"
|
||||
|
||||
#: src/modules/mount/main.py:209 src/modules/mount/main.py:214
|
||||
msgid "Failed to set zfs mountpoint"
|
||||
msgstr "Non poteva definir le puncto de montage de zfs"
|
||||
msgstr "Impossibile definir le puncto de montage de zfs"
|
||||
|
||||
#: src/modules/mount/main.py:370
|
||||
msgid "zfs mounting error"
|
||||
@ -272,7 +272,7 @@ msgid ""
|
||||
"The package manager could not make changes to the installed system. The "
|
||||
"command <pre>{!s}</pre> returned error code {!s}."
|
||||
msgstr ""
|
||||
"Le gestor de pacchettos non poteva facer le cambiamentos al systema "
|
||||
"Le gestor de pacchettos non poteva facer le modificationes al systema "
|
||||
"installate. Le commando <pre>{!s}</pre> retornava le codice de error {!s}."
|
||||
|
||||
#: src/modules/plymouthcfg/main.py:27
|
||||
@ -378,11 +378,11 @@ msgstr "Initiante a dispacchettar {}"
|
||||
|
||||
#: src/modules/unpackfs/main.py:323 src/modules/unpackfs/main.py:467
|
||||
msgid "Failed to unpack image \"{}\""
|
||||
msgstr "Non poteva dispacchettar le imagina “{}”"
|
||||
msgstr "Impossibile dispacchettar le imagina “{}”"
|
||||
|
||||
#: src/modules/unpackfs/main.py:430
|
||||
msgid "No mount point for root partition"
|
||||
msgstr "Nulle puncto de montage pro le partition radice"
|
||||
msgstr "Necun puncto de montage pro le partition radice"
|
||||
|
||||
#: src/modules/unpackfs/main.py:431
|
||||
msgid "globalstorage does not contain a \"rootMountPoint\" key."
|
||||
@ -409,7 +409,7 @@ msgstr "Il non ha information de configuration."
|
||||
#: src/modules/unpackfs/main.py:456
|
||||
msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel"
|
||||
msgstr ""
|
||||
"Le systema de files para “{}” ({}) non es supportate per tu kernel actual"
|
||||
"Le systema de files para “{}” ({}) non es supportate per tu nucleo actual"
|
||||
|
||||
#: src/modules/unpackfs/main.py:460
|
||||
msgid "The source filesystem \"{}\" does not exist"
|
||||
@ -420,7 +420,7 @@ msgid ""
|
||||
"Failed to find unsquashfs, make sure you have the squashfs-tools package "
|
||||
"installed."
|
||||
msgstr ""
|
||||
"Non poteva trovar “unsquashfs”, assecura te que tu ha le pacchetto "
|
||||
"Impossibile trovar “unsquashfs”, assecura te que tu ha le pacchetto "
|
||||
"“squashfs-tools” installate."
|
||||
|
||||
#: src/modules/unpackfs/main.py:481
|
||||
|
@ -5,7 +5,7 @@
|
||||
#
|
||||
# Translators:
|
||||
# André Marcelo Alvarenga <alvarenga@kde.org>, 2020
|
||||
# Guilherme MS, 2023
|
||||
# Guilherme, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
@ -14,7 +14,7 @@ msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-02-12 21:37+0100\n"
|
||||
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
|
||||
"Last-Translator: Guilherme MS, 2023\n"
|
||||
"Last-Translator: Guilherme, 2023\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/calamares/teams/20061/pt_BR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
@ -4,7 +4,7 @@
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Besnik Bleta <besnik@programeshqip.org>, 2023
|
||||
# Besnik Bleta <besnik@programeshqip.org>, 2024
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
@ -13,7 +13,7 @@ msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-02-12 21:37+0100\n"
|
||||
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
|
||||
"Last-Translator: Besnik Bleta <besnik@programeshqip.org>, 2023\n"
|
||||
"Last-Translator: Besnik Bleta <besnik@programeshqip.org>, 2024\n"
|
||||
"Language-Team: Albanian (https://app.transifex.com/calamares/teams/20061/sq/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -371,7 +371,7 @@ msgstr "Po fillohet të shpaketohet {}"
|
||||
|
||||
#: src/modules/unpackfs/main.py:323 src/modules/unpackfs/main.py:467
|
||||
msgid "Failed to unpack image \"{}\""
|
||||
msgstr "Dështoi shpaketimi i figurës \"{}\""
|
||||
msgstr "Dështoi shpaketimi i figurës “{}”"
|
||||
|
||||
#: src/modules/unpackfs/main.py:430
|
||||
msgid "No mount point for root partition"
|
||||
@ -406,7 +406,7 @@ msgstr ""
|
||||
|
||||
#: src/modules/unpackfs/main.py:460
|
||||
msgid "The source filesystem \"{}\" does not exist"
|
||||
msgstr "Sistemi i kartelave \"{}\" ({}) s’ekziston"
|
||||
msgstr "Sistemi i kartelave “{}” ({}) s’ekziston"
|
||||
|
||||
#: src/modules/unpackfs/main.py:466
|
||||
msgid ""
|
||||
@ -418,7 +418,7 @@ msgstr ""
|
||||
|
||||
#: src/modules/unpackfs/main.py:481
|
||||
msgid "The destination \"{}\" in the target system is not a directory"
|
||||
msgstr "Destinacioni \"{}\" te sistemi i synuar s’është drejtori"
|
||||
msgstr "Vendmbërritja “{}” te sistemi i synuar s’është drejtori"
|
||||
|
||||
#: src/modules/zfshostid/main.py:27
|
||||
msgid "Copying zfs generated hostid."
|
||||
|
@ -562,7 +562,10 @@ main( int argc, char* argv[] )
|
||||
|
||||
Calamares::JobQueue::instance()->enqueue( 100, m->jobs() );
|
||||
|
||||
QObject::connect(Calamares::JobQueue::instance(), &Calamares::JobQueue::finished, [application]() { QTimer::singleShot(std::chrono::seconds(3), application, &QApplication::quit); });
|
||||
QObject::connect( Calamares::JobQueue::instance(),
|
||||
&Calamares::JobQueue::finished,
|
||||
[ application ]()
|
||||
{ QTimer::singleShot( std::chrono::seconds( 3 ), application, &QApplication::quit ); } );
|
||||
QTimer::singleShot( 0, []() { Calamares::JobQueue::instance()->start(); } );
|
||||
|
||||
return application->exec();
|
||||
|
@ -22,15 +22,6 @@ static const char s_footer[]
|
||||
"and the <a href=\"https://app.transifex.com/calamares/calamares/\">Calamares "
|
||||
"translators team</a>." );
|
||||
|
||||
#if 0
|
||||
// Blue Systems sponsored until June 2022
|
||||
static const char s_sponsor[] = QT_TRANSLATE_NOOP( "AboutData",
|
||||
"<a href=\"https://calamares.io/\">Calamares</a> "
|
||||
"development is sponsored by <br/>"
|
||||
"<a href=\"http://www.blue-systems.com/\">Blue Systems</a> - "
|
||||
"Liberating Software." );
|
||||
#endif
|
||||
|
||||
struct Maintainer
|
||||
{
|
||||
unsigned int start;
|
||||
@ -57,14 +48,12 @@ static constexpr const Maintainer maintainers[] = {
|
||||
static QString
|
||||
aboutMaintainers()
|
||||
{
|
||||
return std::accumulate( std::cbegin( maintainers ),
|
||||
std::cend( maintainers ),
|
||||
QString(),
|
||||
[]( QString& s, const Maintainer& m )
|
||||
QStringList s;
|
||||
for ( const auto& m : maintainers )
|
||||
{
|
||||
s += m.text();
|
||||
return s;
|
||||
} );
|
||||
s.append( m.text() );
|
||||
}
|
||||
return s.join( QString() );
|
||||
}
|
||||
|
||||
static QString
|
||||
|
@ -16,7 +16,6 @@
|
||||
#include "compat/Mutex.h"
|
||||
#include "utils/Logger.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QDBusConnection>
|
||||
#include <QDBusMessage>
|
||||
#include <QDBusPendingCall>
|
||||
@ -136,8 +135,7 @@ PowerManagementInterface::inhibitSleep()
|
||||
QStringLiteral( "/org/freedesktop/PowerManagement/Inhibit" ),
|
||||
QStringLiteral( "org.freedesktop.PowerManagement.Inhibit" ),
|
||||
QStringLiteral( "Inhibit" ) );
|
||||
inhibitCall.setArguments(
|
||||
{ { tr( "Calamares" ) }, { tr( "Installation in progress", "@status" ) } } );
|
||||
inhibitCall.setArguments( { { tr( "Calamares" ) }, { tr( "Installation in progress", "@status" ) } } );
|
||||
|
||||
auto asyncReply = sessionBus.asyncCall( inhibitCall );
|
||||
auto* replyWatcher = new QDBusPendingCallWatcher( asyncReply, this );
|
||||
|
23
src/libcalamares/compat/Size.h
Normal file
23
src/libcalamares/compat/Size.h
Normal file
@ -0,0 +1,23 @@
|
||||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2024 Adriaan de Groot <groot@kde.org>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* Calamares is Free Software: see the License-Identifier above.
|
||||
*
|
||||
*
|
||||
*/
|
||||
#ifndef CALAMARES_COMPAT_SIZE_H
|
||||
#define CALAMARES_COMPAT_SIZE_H
|
||||
|
||||
#include <QVariant>
|
||||
|
||||
namespace Calamares
|
||||
{
|
||||
/* Compatibility of size types (e.g. qsizetype, STL sizes, int) between Qt5 and Qt6 */
|
||||
|
||||
using NumberForTr = int;
|
||||
|
||||
}
|
||||
|
||||
#endif
|
@ -11,6 +11,7 @@
|
||||
#include "RequirementsChecker.h"
|
||||
|
||||
#include "compat/Mutex.h"
|
||||
#include "compat/Size.h"
|
||||
#include "modulesystem/Module.h"
|
||||
#include "modulesystem/Requirement.h"
|
||||
#include "modulesystem/RequirementsModel.h"
|
||||
@ -120,7 +121,7 @@ RequirementsChecker::reportProgress()
|
||||
{
|
||||
cDebug() << "Remaining modules:" << remaining << Logger::DebugList( remainingNames );
|
||||
unsigned int posInterval = ( m_progressTimer->interval() < 0 ) ? 1000 : uint( m_progressTimer->interval() );
|
||||
QString waiting = tr( "Waiting for %n module(s)…", "@status", remaining );
|
||||
QString waiting = tr( "Waiting for %n module(s)…", "@status", static_cast<Calamares::NumberForTr>(remaining) );
|
||||
QString elapsed = tr( "(%n second(s))", "@status", m_progressTimeouts * posInterval / 999 );
|
||||
Q_EMIT requirementsProgress( waiting + QString( " " ) + elapsed );
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ RequirementsModel::reCheckList()
|
||||
int
|
||||
RequirementsModel::rowCount( const QModelIndex& ) const
|
||||
{
|
||||
return m_requirements.count();
|
||||
return static_cast< int >( m_requirements.count() ); // TODO 3.4 use qsizetype
|
||||
}
|
||||
|
||||
QVariant
|
||||
|
@ -61,8 +61,8 @@ public:
|
||||
|
||||
|
||||
QVariant data( const QModelIndex& index, int role ) const override;
|
||||
int rowCount( const QModelIndex& ) const override;
|
||||
int count() const { return m_requirements.count(); }
|
||||
int rowCount( const QModelIndex& ) const override; // TODO 3.4 use qsizetype
|
||||
int count() const { return static_cast< int >( m_requirements.count() ); } // TODO 3.4 use qsizetype
|
||||
|
||||
///@brief Debugging tool, describe the checking-state
|
||||
void describe() const;
|
||||
|
@ -110,7 +110,8 @@ PartitionServiceTests::testUnitComparison()
|
||||
}
|
||||
|
||||
/* Operator to make the table in testUnitNormalisation_data easier to write */
|
||||
constexpr qint64 operator""_qi( unsigned long long m )
|
||||
constexpr qint64
|
||||
operator""_qi( unsigned long long m )
|
||||
{
|
||||
return qint64( m );
|
||||
}
|
||||
|
@ -55,6 +55,41 @@ get_variant_stringlist( const QVariantList& l )
|
||||
return retl;
|
||||
}
|
||||
|
||||
/** @brief Inserts the keys from @p map into @p expander as "gs"-keys
|
||||
*
|
||||
* For each key k in @p map, a key with literal `gs[` + prefix + '.' + key +
|
||||
* literal `]` is inserted into the exapander.
|
||||
*/
|
||||
static void
|
||||
expand_tree( Calamares::String::DictionaryExpander& expander, const QString& prefix, const QVariantMap& map )
|
||||
{
|
||||
// With the current prefix, turn a key into gs[prefix.key]
|
||||
auto gs_key = [ &prefix ]( const QString& k ) -> QString
|
||||
{ return QStringLiteral( "gs[" ) + ( prefix.isEmpty() ? QString() : prefix + '.' ) + k + ']'; };
|
||||
|
||||
for ( QVariantMap::const_iterator valueiter = map.cbegin(); valueiter != map.cend(); ++valueiter )
|
||||
{
|
||||
const QString key = valueiter.key();
|
||||
const QVariant value = valueiter.value();
|
||||
|
||||
switch ( Calamares::typeOf( value ) )
|
||||
{
|
||||
case Calamares::MapVariantType:
|
||||
expand_tree( expander, prefix.isEmpty() ? key : ( prefix + '.' + key ), value.toMap() );
|
||||
break;
|
||||
case Calamares::StringVariantType:
|
||||
expander.add( gs_key( key ), value.toString() );
|
||||
break;
|
||||
case Calamares::IntVariantType:
|
||||
expander.add( gs_key( key ), QString::number( value.toInt() ) );
|
||||
break;
|
||||
default:
|
||||
// Silently ignore
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static Calamares::String::DictionaryExpander
|
||||
get_gs_expander( System::RunLocation location )
|
||||
{
|
||||
@ -88,6 +123,11 @@ get_gs_expander( System::RunLocation location )
|
||||
}
|
||||
}
|
||||
|
||||
if ( gs )
|
||||
{
|
||||
expand_tree( expander, QString(), gs->data() );
|
||||
}
|
||||
|
||||
return expander;
|
||||
}
|
||||
|
||||
|
@ -104,6 +104,8 @@ public:
|
||||
/** @brief empty command-list with timeout to apply to entries. */
|
||||
CommandList( bool doChroot = true, std::chrono::seconds timeout = std::chrono::seconds( 10 ) );
|
||||
CommandList( const QVariant& v, bool doChroot = true, std::chrono::seconds timeout = std::chrono::seconds( 10 ) );
|
||||
CommandList( int ) = delete;
|
||||
CommandList( const QVariant&, int ) = delete;
|
||||
|
||||
bool doChroot() const { return m_doChroot; }
|
||||
std::chrono::seconds defaultTimeout() const { return m_timeout; }
|
||||
|
@ -284,7 +284,15 @@ LibCalamaresTests::testCommandExpansion_data()
|
||||
|
||||
QTest::newRow( "empty " ) << QString() << QString();
|
||||
QTest::newRow( "ls " ) << QStringLiteral( "ls" ) << QStringLiteral( "ls" );
|
||||
QTest::newRow( "user " ) << QStringLiteral( "chmod $USER" ) << QStringLiteral( "chmod alice" );
|
||||
QTest::newRow( "$USER " ) << QStringLiteral( "chmod $USER" ) << QStringLiteral( "chmod alice" );
|
||||
QTest::newRow( "${USER}" ) << QStringLiteral( "chmod ${USER}" ) << QStringLiteral( "chmod alice" );
|
||||
QTest::newRow( "gs-user" ) << QStringLiteral( "chmod ${gs[username]}" ) << QStringLiteral( "chmod alice" );
|
||||
QTest::newRow( "gs-* " ) << QStringLiteral(
|
||||
"${gs[username]} has ${gs[branding.bootloader]} ${gs[branding.ducks]} ducks" )
|
||||
<< QStringLiteral( "alice has found 3 ducks" );
|
||||
// QStringList does not expand
|
||||
QTest::newRow( "gs-list" ) << QStringLiteral( "colors ${gs[branding.color]}" )
|
||||
<< QStringLiteral( "colors ${gs[branding.color]}" );
|
||||
}
|
||||
|
||||
void
|
||||
@ -295,6 +303,12 @@ LibCalamaresTests::testCommandExpansion()
|
||||
QVERIFY( gs );
|
||||
gs->insert( QStringLiteral( "username" ), QStringLiteral( "alice" ) );
|
||||
|
||||
QVariantMap m;
|
||||
m.insert( QStringLiteral( "bootloader" ), QStringLiteral( "found" ) );
|
||||
m.insert( QStringLiteral( "ducks" ), 3 );
|
||||
m.insert( QStringLiteral( "color" ), QStringList { "green", "red" } );
|
||||
gs->insert( QStringLiteral( "branding" ), m );
|
||||
|
||||
QFETCH( QString, command );
|
||||
QFETCH( QString, expected );
|
||||
Calamares::CommandLine c( command, std::chrono::seconds( 0 ) );
|
||||
@ -350,8 +364,14 @@ commands:
|
||||
QCOMPARE( m[ "commands" ].toList().count(), 4 );
|
||||
|
||||
{
|
||||
// Take care! The second parameter is a bool, so "3" here means "true"
|
||||
#ifdef THIS_DOES_NOT_COMPILE_AND_THATS_THE_POINT
|
||||
// Take care! The second parameter is a bool, so "3" here would
|
||||
// mean "true", except the int overload is deleted to prevent just that.
|
||||
Calamares::CommandList cmds( m[ "commands" ], 3 );
|
||||
// .. and there's no conversion from std::chrono::duration to bool either.
|
||||
Calamares::CommandList cmds( m[ "commands" ], std::chrono::seconds( 3 ) );
|
||||
#endif
|
||||
Calamares::CommandList cmds( m[ "commands" ], true );
|
||||
QCOMPARE( cmds.defaultTimeout(), std::chrono::seconds( 10 ) );
|
||||
// But the 4 commands are there anyway
|
||||
QCOMPARE( cmds.count(), 4 );
|
||||
|
@ -24,37 +24,43 @@ namespace Units
|
||||
{
|
||||
|
||||
/** User defined literals, 1_KB is 1 KiloByte (= 10^3 bytes) */
|
||||
constexpr qint64 operator""_KB( unsigned long long m )
|
||||
constexpr qint64
|
||||
operator""_KB( unsigned long long m )
|
||||
{
|
||||
return qint64( m ) * 1000;
|
||||
}
|
||||
|
||||
/** User defined literals, 1_KiB is 1 KibiByte (= 2^10 bytes) */
|
||||
constexpr qint64 operator""_KiB( unsigned long long m )
|
||||
constexpr qint64
|
||||
operator""_KiB( unsigned long long m )
|
||||
{
|
||||
return qint64( m ) * 1024;
|
||||
}
|
||||
|
||||
/** User defined literals, 1_MB is 1 MegaByte (= 10^6 bytes) */
|
||||
constexpr qint64 operator""_MB( unsigned long long m )
|
||||
constexpr qint64
|
||||
operator""_MB( unsigned long long m )
|
||||
{
|
||||
return operator""_KB( m ) * 1000;
|
||||
}
|
||||
|
||||
/** User defined literals, 1_MiB is 1 MibiByte (= 2^20 bytes) */
|
||||
constexpr qint64 operator""_MiB( unsigned long long m )
|
||||
constexpr qint64
|
||||
operator""_MiB( unsigned long long m )
|
||||
{
|
||||
return operator""_KiB( m ) * 1024;
|
||||
}
|
||||
|
||||
/** User defined literals, 1_GB is 1 GigaByte (= 10^9 bytes) */
|
||||
constexpr qint64 operator""_GB( unsigned long long m )
|
||||
constexpr qint64
|
||||
operator""_GB( unsigned long long m )
|
||||
{
|
||||
return operator""_MB( m ) * 1000;
|
||||
}
|
||||
|
||||
/** User defined literals, 1_GiB is 1 GibiByte (= 2^30 bytes) */
|
||||
constexpr qint64 operator""_GiB( unsigned long long m )
|
||||
constexpr qint64
|
||||
operator""_GiB( unsigned long long m )
|
||||
{
|
||||
return operator""_MiB( m ) * 1024;
|
||||
}
|
||||
|
@ -73,9 +73,8 @@ ExecutionViewStep::ExecutionViewStep( QObject* parent )
|
||||
{
|
||||
m_widget->setObjectName( "slideshow" );
|
||||
m_progressBar->setObjectName( "exec-progress" );
|
||||
CALAMARES_RETRANSLATE(
|
||||
m_progressBar->setFormat( tr( "%p%", "Progress percentage indicator: %p is where the number 0..100 is placed" ) );
|
||||
);
|
||||
CALAMARES_RETRANSLATE( m_progressBar->setFormat(
|
||||
tr( "%p%", "Progress percentage indicator: %p is where the number 0..100 is placed" ) ); );
|
||||
m_label->setObjectName( "exec-message" );
|
||||
|
||||
QVBoxLayout* layout = new QVBoxLayout( m_widget );
|
||||
|
@ -46,7 +46,8 @@
|
||||
#
|
||||
# The values after a value sub-keys are the same kinds of values
|
||||
# as can be given to the *script* key in the shellprocess module.
|
||||
# See shellprocess.conf for documentation on valid values.
|
||||
# See shellprocess.conf for documentation on valid values and how
|
||||
# variables are expanded in those commands.
|
||||
---
|
||||
dontChroot: false
|
||||
firmwareType:
|
||||
|
@ -378,14 +378,30 @@ class DMgdm(DisplayManager):
|
||||
GDM exists with different executable names, so search
|
||||
for one of them and use it.
|
||||
"""
|
||||
for executable, config in (
|
||||
candidates = (
|
||||
( "gdm", "etc/gdm/custom.conf" ),
|
||||
( "gdm3", "etc/gdm3/daemon.conf" )
|
||||
):
|
||||
( "gdm3", "etc/gdm3/daemon.conf" ),
|
||||
( "gdm3", "etc/gdm3/custom.conf" ),
|
||||
)
|
||||
|
||||
def have_executable(executable : str):
|
||||
bin_path = "{!s}/usr/bin/{!s}".format(self.root_mount_point, executable)
|
||||
sbin_path = "{!s}/usr/sbin/{!s}".format(self.root_mount_point, executable)
|
||||
if os.path.exists(bin_path) or os.path.exists(sbin_path):
|
||||
# Keep the found-executable name around for later
|
||||
return os.path.exists(bin_path) or os.path.exists(sbin_path)
|
||||
|
||||
def have_config(config : str):
|
||||
config_path = "{!s}/{!s}".format(self.root_mount_point, config)
|
||||
return os.path.exists(config_path)
|
||||
|
||||
# Look for an existing configuration file as a hint, then
|
||||
# keep the found-executable name and config around for later.
|
||||
for executable, config in candidates:
|
||||
if have_config(config) and have_executable(executable):
|
||||
self.executable = executable
|
||||
self.config = config
|
||||
return True
|
||||
for executable, config in candidates:
|
||||
if have_executable(executable):
|
||||
self.executable = executable
|
||||
self.config = config
|
||||
return True
|
||||
|
@ -4,7 +4,7 @@
|
||||
# We have tests to load (some) of the DMs specifically, to test their
|
||||
# configuration code. Those tests conventionally live in Python
|
||||
# files here in the tests/ directory. Add them.
|
||||
foreach(_dmname greetd sddm)
|
||||
foreach(_dmname greetd sddm gdm)
|
||||
add_test(
|
||||
NAME configure-displaymanager-${_dmname}
|
||||
COMMAND env PYTHONPATH=.: python3 ${CMAKE_CURRENT_LIST_DIR}/test-dm-${_dmname}.py
|
||||
|
26
src/modules/displaymanager/tests/test-dm-gdm.py
Normal file
26
src/modules/displaymanager/tests/test-dm-gdm.py
Normal file
@ -0,0 +1,26 @@
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Calamares Boilerplate
|
||||
import libcalamares
|
||||
libcalamares.globalstorage = libcalamares.GlobalStorage(None)
|
||||
libcalamares.globalstorage.insert("testing", True)
|
||||
|
||||
# Module prep-work
|
||||
from src.modules.displaymanager import main
|
||||
default_desktop_environment = main.DesktopEnvironment("startplasma-x11", "kde-plasma.desktop")
|
||||
|
||||
import os
|
||||
import tempfile
|
||||
with tempfile.TemporaryDirectory(prefix="calamares-gdm") as tempdir:
|
||||
os.makedirs(tempdir + "/usr/bin")
|
||||
os.makedirs(tempdir + "/etc/gdm3")
|
||||
with open(tempdir + "/usr/bin/gdm3", "w") as f:
|
||||
f.write("#! /bin/sh\n:\n")
|
||||
# Specific DM test
|
||||
d = main.DMgdm(tempdir)
|
||||
assert(d.have_dm())
|
||||
d.set_autologin("d", True, default_desktop_environment)
|
||||
# .. and again (this time checks load/save)
|
||||
d.set_autologin("d", True, default_desktop_environment)
|
||||
d.set_autologin("d", True, default_desktop_environment)
|
@ -139,7 +139,8 @@ Config::doNotify( bool hasFailed, bool sendAnyway )
|
||||
QString message;
|
||||
if ( hasFailed )
|
||||
{
|
||||
title = Calamares::Settings::instance()->isSetupMode() ? tr( "Setup Failed", "@title" ) : tr( "Installation Failed", "@title" );
|
||||
title = Calamares::Settings::instance()->isSetupMode() ? tr( "Setup Failed", "@title" )
|
||||
: tr( "Installation Failed", "@title" );
|
||||
message = Calamares::Settings::instance()->isSetupMode()
|
||||
? tr( "The setup of %1 did not complete successfully.", "@info" )
|
||||
: tr( "The installation of %1 did not complete successfully.", "@info" );
|
||||
@ -148,7 +149,8 @@ Config::doNotify( bool hasFailed, bool sendAnyway )
|
||||
{
|
||||
title = Calamares::Settings::instance()->isSetupMode() ? tr( "Setup Complete", "@title" )
|
||||
: tr( "Installation Complete", "@title" );
|
||||
message = Calamares::Settings::instance()->isSetupMode() ? tr( "The setup of %1 is complete.", "@info" )
|
||||
message = Calamares::Settings::instance()->isSetupMode()
|
||||
? tr( "The setup of %1 is complete.", "@info" )
|
||||
: tr( "The installation of %1 is complete.", "@info" );
|
||||
}
|
||||
|
||||
|
@ -74,26 +74,30 @@ FinishedPage::retranslate()
|
||||
{
|
||||
ui->mainText->setText( tr( "<h1>All done.</h1><br/>"
|
||||
"%1 has been set up on your computer.<br/>"
|
||||
"You may now start using your new system.", "@info" )
|
||||
"You may now start using your new system.",
|
||||
"@info" )
|
||||
.arg( branding->versionedName() ) );
|
||||
ui->restartCheckBox->setToolTip( tr( "<html><head/><body>"
|
||||
"<p>When this box is checked, your system will "
|
||||
"restart immediately when you click on "
|
||||
"<span style=\"font-style:italic;\">Done</span> "
|
||||
"or close the setup program.</p></body></html>", "@tooltip" ) );
|
||||
"or close the setup program.</p></body></html>",
|
||||
"@tooltip" ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->mainText->setText( tr( "<h1>All done.</h1><br/>"
|
||||
"%1 has been installed on your computer.<br/>"
|
||||
"You may now restart into your new system, or continue "
|
||||
"using the %2 Live environment.", "@info" )
|
||||
"using the %2 Live environment.",
|
||||
"@info" )
|
||||
.arg( branding->versionedName(), branding->productName() ) );
|
||||
ui->restartCheckBox->setToolTip( tr( "<html><head/><body>"
|
||||
"<p>When this box is checked, your system will "
|
||||
"restart immediately when you click on "
|
||||
"<span style=\"font-style:italic;\">Done</span> "
|
||||
"or close the installer.</p></body></html>", "@tooltip" ) );
|
||||
"or close the installer.</p></body></html>",
|
||||
"@tooltip" ) );
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -104,7 +108,8 @@ FinishedPage::retranslate()
|
||||
{
|
||||
ui->mainText->setText( tr( "<h1>Setup Failed</h1><br/>"
|
||||
"%1 has not been set up on your computer.<br/>"
|
||||
"The error message was: %2.", "@info, %1 is product name with version" )
|
||||
"The error message was: %2.",
|
||||
"@info, %1 is product name with version" )
|
||||
.arg( branding->versionedName() )
|
||||
.arg( message ) );
|
||||
}
|
||||
@ -112,7 +117,8 @@ FinishedPage::retranslate()
|
||||
{
|
||||
ui->mainText->setText( tr( "<h1>Installation Failed</h1><br/>"
|
||||
"%1 has not been installed on your computer.<br/>"
|
||||
"The error message was: %2.", "@info, %1 is product name with version" )
|
||||
"The error message was: %2.",
|
||||
"@info, %1 is product name with version" )
|
||||
.arg( branding->versionedName() )
|
||||
.arg( message ) );
|
||||
}
|
||||
|
@ -166,7 +166,8 @@ ResizeFSJob::exec()
|
||||
if ( !m_kpmcore )
|
||||
{
|
||||
cWarning() << "Could not load KPMCore backend (2).";
|
||||
return Calamares::JobResult::error( tr( "KPMCore not available", "@error" ),
|
||||
return Calamares::JobResult::error(
|
||||
tr( "KPMCore not available", "@error" ),
|
||||
tr( "Calamares cannot start KPMCore for the file system resize job.", "@error" ) );
|
||||
}
|
||||
m_kpmcore.backend()->initFSSupport(); // Might not be enough, see below
|
||||
@ -178,17 +179,19 @@ ResizeFSJob::exec()
|
||||
return Calamares::JobResult::error(
|
||||
tr( "Resize failed.", "@error" ),
|
||||
!m_fsname.isEmpty()
|
||||
? tr( "The filesystem %1 could not be found in this system, and cannot be resized.", "@info" ).arg( m_fsname )
|
||||
: tr( "The device %1 could not be found in this system, and cannot be resized.", "@info" ).arg( m_devicename ) );
|
||||
? tr( "The filesystem %1 could not be found in this system, and cannot be resized.", "@info" )
|
||||
.arg( m_fsname )
|
||||
: tr( "The device %1 could not be found in this system, and cannot be resized.", "@info" )
|
||||
.arg( m_devicename ) );
|
||||
}
|
||||
|
||||
m.second->fileSystem().init(); // Initialize support for specific FS
|
||||
if ( !ResizeOperation::canGrow( m.second ) )
|
||||
{
|
||||
cDebug() << "canGrow() returned false.";
|
||||
return Calamares::JobResult::error( tr( "Resize Failed", "@error" ),
|
||||
!m_fsname.isEmpty()
|
||||
? tr( "The filesystem %1 cannot be resized.", "@error" ).arg( m_fsname )
|
||||
return Calamares::JobResult::error(
|
||||
tr( "Resize Failed", "@error" ),
|
||||
!m_fsname.isEmpty() ? tr( "The filesystem %1 cannot be resized.", "@error" ).arg( m_fsname )
|
||||
: tr( "The device %1 cannot be resized.", "@error" ).arg( m_devicename ) );
|
||||
}
|
||||
|
||||
@ -198,9 +201,9 @@ ResizeFSJob::exec()
|
||||
|
||||
if ( new_end < 0 )
|
||||
{
|
||||
return Calamares::JobResult::error( tr( "Resize Failed", "@error" ),
|
||||
!m_fsname.isEmpty()
|
||||
? tr( "The filesystem %1 cannot be resized.", "@error" ).arg( m_fsname )
|
||||
return Calamares::JobResult::error(
|
||||
tr( "Resize Failed", "@error" ),
|
||||
!m_fsname.isEmpty() ? tr( "The filesystem %1 cannot be resized.", "@error" ).arg( m_fsname )
|
||||
: tr( "The device %1 cannot be resized.", "@error" ).arg( m_devicename ) );
|
||||
}
|
||||
if ( new_end == 0 )
|
||||
|
@ -151,8 +151,12 @@ class FstabGenerator(object):
|
||||
if not mapper_name or not luks_uuid:
|
||||
return None
|
||||
|
||||
password = "/crypto_keyfile.bin"
|
||||
crypttab_options = self.crypttab_options
|
||||
# Make sure to not use missing keyfile
|
||||
if os.path.isfile(os.path.join(self.root_mount_point, "crypto_keyfile.bin")):
|
||||
password = "/crypto_keyfile.bin"
|
||||
else:
|
||||
password = "none"
|
||||
|
||||
# Set crypttab password for partition to none and remove crypttab options
|
||||
# if root partition was not encrypted
|
||||
|
@ -9,3 +9,30 @@
|
||||
#
|
||||
# Please note that using the systemd hooks result in no access to the emergency recovery shell
|
||||
useSystemdHook: false
|
||||
|
||||
#
|
||||
# Modifications to the standard list of hooks.
|
||||
#
|
||||
# There are three subkeys:
|
||||
# - prepend, which puts hooks at the beginning of the
|
||||
# list of hooks, in the order specified here,
|
||||
# - append, which adds hooks at the end of the list of
|
||||
# hooks, in the order specified here,
|
||||
# - remove, which removes hooks from the list of hooks,
|
||||
# wherever they may be.
|
||||
#
|
||||
# The example configuration here yields bogus, <stuff>, bogus
|
||||
# initially, and then removes that hook again.
|
||||
#
|
||||
hooks:
|
||||
prepend: [ bogus ]
|
||||
append: [ bogus ]
|
||||
remove: [ bogus ]
|
||||
|
||||
#
|
||||
# In some cases, you may want to use a different source
|
||||
# file than /etc/mkinitcpio.conf , e.g. because the live system
|
||||
# does not match the target in a useful way. If unset or
|
||||
# empty, defaults to /etc/mkinitcpio.conf
|
||||
#
|
||||
source: "/etc/mkinitcpio.conf"
|
||||
|
@ -7,5 +7,11 @@ additionalProperties: false
|
||||
type: object
|
||||
properties:
|
||||
useSystemdHook: { type: boolean }
|
||||
|
||||
|
||||
hooks:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
properties:
|
||||
prepend: { type: array, items: string }
|
||||
append: { type: array, items: string }
|
||||
remove: { type: array, items: string }
|
||||
source: { type: string }
|
||||
|
@ -97,7 +97,7 @@ def get_host_initcpio():
|
||||
the lines from that file, or an empty list if it does
|
||||
not exist.
|
||||
"""
|
||||
hostfile = "/etc/mkinitcpio.conf"
|
||||
hostfile = libcalamares.job.configuration.get("source", None) or "/etc/mkinitcpio.conf"
|
||||
try:
|
||||
with open(hostfile, "r") as mkinitcpio_file:
|
||||
mklins = [x.strip() for x in mkinitcpio_file.readlines()]
|
||||
@ -168,6 +168,13 @@ def find_initcpio_features(partitions, root_mount_point):
|
||||
hooks.append("keymap")
|
||||
hooks.append("consolefont")
|
||||
|
||||
hooks_map = libcalamares.job.configuration.get("hooks", None)
|
||||
if not hooks_map:
|
||||
hooks_map = dict()
|
||||
hooks_prepend = hooks_map.get("prepend", None) or []
|
||||
hooks_append = hooks_map.get("append", None) or []
|
||||
hooks_remove = hooks_map.get("remove", None) or []
|
||||
|
||||
modules = []
|
||||
files = []
|
||||
binaries = []
|
||||
@ -247,6 +254,9 @@ def find_initcpio_features(partitions, root_mount_point):
|
||||
else:
|
||||
hooks.append("fsck")
|
||||
|
||||
# Modify according to the keys in the configuration
|
||||
hooks = [h for h in (hooks_prepend + hooks + hooks_append) if h not in hooks_remove]
|
||||
|
||||
return hooks, modules, files, binaries
|
||||
|
||||
|
||||
|
7
src/modules/initcpiocfg/test.yaml
Normal file
7
src/modules/initcpiocfg/test.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
rootMountPoint: /tmp/mount
|
||||
partitions:
|
||||
- fs: ext4
|
||||
mountPoint: "/"
|
||||
|
@ -502,14 +502,16 @@ QString
|
||||
Config::prettyStatus() const
|
||||
{
|
||||
QString status;
|
||||
status += tr( "Keyboard model has been set to %1<br/>.", "@label, %1 is keyboard model, as in Apple Magic Keyboard" )
|
||||
status
|
||||
+= tr( "Keyboard model has been set to %1<br/>.", "@label, %1 is keyboard model, as in Apple Magic Keyboard" )
|
||||
.arg( m_keyboardModelsModel->label( m_keyboardModelsModel->currentIndex() ) );
|
||||
|
||||
QString layout = m_keyboardLayoutsModel->item( m_keyboardLayoutsModel->currentIndex() ).second.description;
|
||||
QString variant = m_keyboardVariantsModel->currentIndex() >= 0
|
||||
? m_keyboardVariantsModel->label( m_keyboardVariantsModel->currentIndex() )
|
||||
: QString( "<default>" );
|
||||
status += tr( "Keyboard layout has been set to %1/%2.", "@label, %1 is layout, %2 is layout variant" ).arg( layout, variant );
|
||||
status += tr( "Keyboard layout has been set to %1/%2.", "@label, %1 is layout, %2 is layout variant" )
|
||||
.arg( layout, variant );
|
||||
|
||||
return status;
|
||||
}
|
||||
|
@ -64,7 +64,9 @@ QString
|
||||
SetKeyboardLayoutJob::prettyName() const
|
||||
{
|
||||
return tr( "Setting keyboard model to %1, layout as %2-%3…", "@status, %1 model, %2 layout, %3 variant" )
|
||||
.arg( m_model ).arg( m_layout ).arg( m_variant );
|
||||
.arg( m_model )
|
||||
.arg( m_layout )
|
||||
.arg( m_variant );
|
||||
}
|
||||
|
||||
|
||||
@ -365,8 +367,10 @@ SetKeyboardLayoutJob::exec()
|
||||
|
||||
if ( !writeVConsoleData( vconsoleConfPath, convertedKeymapPath ) )
|
||||
{
|
||||
return Calamares::JobResult::error( tr( "Failed to write keyboard configuration for the virtual console.", "@error" ),
|
||||
tr( "Failed to write to %1", "@error, %1 is virtual console configuration path" ).arg( vconsoleConfPath ) );
|
||||
return Calamares::JobResult::error(
|
||||
tr( "Failed to write keyboard configuration for the virtual console.", "@error" ),
|
||||
tr( "Failed to write to %1", "@error, %1 is virtual console configuration path" )
|
||||
.arg( vconsoleConfPath ) );
|
||||
}
|
||||
|
||||
// Get the path to the destination's /etc/X11/xorg.conf.d/00-keyboard.conf
|
||||
@ -391,7 +395,8 @@ SetKeyboardLayoutJob::exec()
|
||||
|
||||
if ( !writeX11Data( keyboardConfPath ) )
|
||||
{
|
||||
return Calamares::JobResult::error( tr( "Failed to write keyboard configuration for X11.", "@error" ),
|
||||
return Calamares::JobResult::error(
|
||||
tr( "Failed to write keyboard configuration for X11.", "@error" ),
|
||||
tr( "Failed to write to %1", "@error, %1 is keyboard configuration path" ).arg( keyboardConfPath ) );
|
||||
}
|
||||
}
|
||||
|
@ -45,6 +45,7 @@ KeyboardLayoutTests::testSimpleLayoutLookup_data()
|
||||
QTest::newRow( "turkish default" ) << QString( "tr" ) << QString() << QString() << QString( "trq" );
|
||||
QTest::newRow( "turkish alt-q" ) << QString( "tr" ) << QString() << QString( "alt" ) << QString( "trq" );
|
||||
QTest::newRow( "turkish f" ) << QString( "tr" ) << QString() << QString( "f" ) << QString( "trf" );
|
||||
QTest::newRow( "italian" ) << QString( "it" ) << QString( "pc105" ) << QString() << QString( "it" );
|
||||
}
|
||||
|
||||
|
||||
|
@ -40,6 +40,7 @@ slovene si pc105 - terminate:ctrl_alt_bksp
|
||||
hu101 hu pc105 qwerty terminate:ctrl_alt_bksp
|
||||
jp106 jp jp106 - terminate:ctrl_alt_bksp
|
||||
croat hr pc105 - terminate:ctrl_alt_bksp
|
||||
it it pc105 - terminate:ctrl_alt_bksp
|
||||
it2 it pc105 - terminate:ctrl_alt_bksp
|
||||
hu hu pc105 - terminate:ctrl_alt_bksp
|
||||
sr-latin rs pc105 latin terminate:ctrl_alt_bksp
|
||||
@ -47,7 +48,6 @@ fi fi pc105 - terminate:ctrl_alt_bksp
|
||||
fr_CH ch pc105 fr terminate:ctrl_alt_bksp
|
||||
dk-latin1 dk pc105 - terminate:ctrl_alt_bksp
|
||||
fr fr pc105 - terminate:ctrl_alt_bksp
|
||||
it it pc105 - terminate:ctrl_alt_bksp
|
||||
ua-utf ua,us pc105 - terminate:ctrl_alt_bksp,grp:shifts_toggle,grp_led:scroll
|
||||
fr-latin1 fr pc105 - terminate:ctrl_alt_bksp
|
||||
sg-latin1 ch pc105 de_nodeadkeys terminate:ctrl_alt_bksp
|
||||
|
@ -9,3 +9,43 @@ ua us - ua-utf
|
||||
gr us - gr
|
||||
he us - he
|
||||
ar us - ar
|
||||
ir us - fa
|
||||
|
||||
# This list is from /usr/share/X11/xkb/rules/base, all the non-latin
|
||||
# layouts are collected in $nonlatin . Add us (English) to all of them.
|
||||
af us - af
|
||||
am us - am
|
||||
ara us - ara
|
||||
bd us - bd
|
||||
bg us - bg
|
||||
bt us - bt
|
||||
by us - by
|
||||
eg us - eg
|
||||
et us - et
|
||||
ge us - ge
|
||||
gn us - gn
|
||||
id us - id
|
||||
il us - il
|
||||
in us - in
|
||||
jp us - jp
|
||||
jv us - jv
|
||||
kg us - kg
|
||||
kh us - kh
|
||||
kr us - kr
|
||||
kz us - kz
|
||||
la us - la
|
||||
lk us - lk
|
||||
ma us - ma
|
||||
me us - me
|
||||
mk us - mk
|
||||
mm us - mm
|
||||
mn us - mn
|
||||
mv us - mv
|
||||
my us - my
|
||||
pk us - pk
|
||||
rs us - rs
|
||||
sy us - sy
|
||||
th us - th
|
||||
tj us - tj
|
||||
tz us - tz
|
||||
uz us - uz
|
||||
|
@ -147,9 +147,11 @@ LicensePage::retranslate()
|
||||
if ( !m_allLicensesOptional )
|
||||
{
|
||||
ui->mainText->setText( tr( "This setup procedure will install proprietary "
|
||||
"software that is subject to licensing terms.", "@info" )
|
||||
"software that is subject to licensing terms.",
|
||||
"@info" )
|
||||
+ br + review );
|
||||
QString mustAcceptText( tr( "If you do not agree with the terms, the setup procedure cannot continue.", "@info" ) );
|
||||
QString mustAcceptText(
|
||||
tr( "If you do not agree with the terms, the setup procedure cannot continue.", "@info" ) );
|
||||
ui->acceptCheckBox->setToolTip( mustAcceptText );
|
||||
}
|
||||
else
|
||||
@ -157,10 +159,12 @@ LicensePage::retranslate()
|
||||
ui->mainText->setText( tr( "This setup procedure can install proprietary "
|
||||
"software that is subject to licensing terms "
|
||||
"in order to provide additional features and enhance the user "
|
||||
"experience.", "@info" )
|
||||
"experience.",
|
||||
"@info" )
|
||||
+ br + review );
|
||||
QString okAcceptText( tr( "If you do not agree with the terms, proprietary software will not "
|
||||
"be installed, and open source alternatives will be used instead.", "@info" ) );
|
||||
"be installed, and open source alternatives will be used instead.",
|
||||
"@info" ) );
|
||||
ui->acceptCheckBox->setToolTip( okAcceptText );
|
||||
}
|
||||
ui->retranslateUi( this );
|
||||
|
@ -107,38 +107,44 @@ LicenseWidget::retranslateUi()
|
||||
case LicenseEntry::Type::Driver:
|
||||
//: %1 is an untranslatable product name, example: Creative Audigy driver
|
||||
productDescription = tr( "<strong>%1 driver</strong><br/>"
|
||||
"by %2", "@label, %1 is product name, %2 is product vendor" )
|
||||
"by %2",
|
||||
"@label, %1 is product name, %2 is product vendor" )
|
||||
.arg( m_entry.m_prettyName )
|
||||
.arg( m_entry.m_prettyVendor );
|
||||
break;
|
||||
case LicenseEntry::Type::GpuDriver:
|
||||
//: %1 is usually a vendor name, example: Nvidia graphics driver
|
||||
productDescription = tr( "<strong>%1 graphics driver</strong><br/>"
|
||||
"<font color=\"Grey\">by %2</font>", "@label, %1 is product name, %2 is product vendor" )
|
||||
"<font color=\"Grey\">by %2</font>",
|
||||
"@label, %1 is product name, %2 is product vendor" )
|
||||
.arg( m_entry.m_prettyName )
|
||||
.arg( m_entry.m_prettyVendor );
|
||||
break;
|
||||
case LicenseEntry::Type::BrowserPlugin:
|
||||
productDescription = tr( "<strong>%1 browser plugin</strong><br/>"
|
||||
"<font color=\"Grey\">by %2</font>", "@label, %1 is product name, %2 is product vendor" )
|
||||
"<font color=\"Grey\">by %2</font>",
|
||||
"@label, %1 is product name, %2 is product vendor" )
|
||||
.arg( m_entry.m_prettyName )
|
||||
.arg( m_entry.m_prettyVendor );
|
||||
break;
|
||||
case LicenseEntry::Type::Codec:
|
||||
productDescription = tr( "<strong>%1 codec</strong><br/>"
|
||||
"<font color=\"Grey\">by %2</font>", "@label, %1 is product name, %2 is product vendor" )
|
||||
"<font color=\"Grey\">by %2</font>",
|
||||
"@label, %1 is product name, %2 is product vendor" )
|
||||
.arg( m_entry.m_prettyName )
|
||||
.arg( m_entry.m_prettyVendor );
|
||||
break;
|
||||
case LicenseEntry::Type::Package:
|
||||
productDescription = tr( "<strong>%1 package</strong><br/>"
|
||||
"<font color=\"Grey\">by %2</font>", "@label, %1 is product name, %2 is product vendor" )
|
||||
"<font color=\"Grey\">by %2</font>",
|
||||
"@label, %1 is product name, %2 is product vendor" )
|
||||
.arg( m_entry.m_prettyName )
|
||||
.arg( m_entry.m_prettyVendor );
|
||||
break;
|
||||
case LicenseEntry::Type::Software:
|
||||
productDescription = tr( "<strong>%1</strong><br/>"
|
||||
"<font color=\"Grey\">by %2</font>", "@label, %1 is product name, %2 is product vendor" )
|
||||
"<font color=\"Grey\">by %2</font>",
|
||||
"@label, %1 is product name, %2 is product vendor" )
|
||||
.arg( m_entry.m_prettyName )
|
||||
.arg( m_entry.m_prettyVendor );
|
||||
}
|
||||
@ -183,7 +189,8 @@ LicenseWidget::updateExpandToolTip()
|
||||
{
|
||||
if ( m_entry.isLocal() )
|
||||
{
|
||||
m_viewLicenseButton->setText( m_isExpanded ? tr( "Hide the license text", "@tooltip" ) : tr( "Show the license text", "@tooltip" ) );
|
||||
m_viewLicenseButton->setText( m_isExpanded ? tr( "Hide the license text", "@tooltip" )
|
||||
: tr( "Show the license text", "@tooltip" ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -29,7 +29,8 @@ LCLocaleDialog::LCLocaleDialog( const QString& guessedLCLocale, const QStringLis
|
||||
upperText->setWordWrap( true );
|
||||
upperText->setText( tr( "The system locale setting affects the language and character "
|
||||
"set for some command line user interface elements.<br/>"
|
||||
"The current setting is <strong>%1</strong>.", "@info" )
|
||||
"The current setting is <strong>%1</strong>.",
|
||||
"@info" )
|
||||
.arg( guessedLCLocale ) );
|
||||
mainLayout->addWidget( upperText );
|
||||
setMinimumWidth( upperText->fontMetrics().height() * 24 );
|
||||
|
@ -67,9 +67,10 @@ SetTimezoneJob::exec()
|
||||
int ec = Calamares::System::instance()->targetEnvCall( { "ln", "-s", zoneinfoPath, localtimeSlink } );
|
||||
if ( ec )
|
||||
{
|
||||
return Calamares::JobResult::error(
|
||||
tr( "Cannot set timezone.", "@error" ),
|
||||
tr( "Link creation failed, target: %1; link name: %2", "@info" ).arg( zoneinfoPath ).arg( "/etc/localtime" ) );
|
||||
return Calamares::JobResult::error( tr( "Cannot set timezone.", "@error" ),
|
||||
tr( "Link creation failed, target: %1; link name: %2", "@info" )
|
||||
.arg( zoneinfoPath )
|
||||
.arg( "/etc/localtime" ) );
|
||||
}
|
||||
|
||||
QFile timezoneFile( gs->value( "rootMountPoint" ).toString() + "/etc/timezone" );
|
||||
|
@ -101,10 +101,8 @@ MachineIdJob::exec()
|
||||
QObject::tr( "Directory not found" ),
|
||||
QObject::tr( "Could not create new random file <pre>%1</pre>." ).arg( entropy_file ) );
|
||||
}
|
||||
auto r = createEntropy( m_entropy_copy ? EntropyGeneration::CopyFromHost
|
||||
: EntropyGeneration::New,
|
||||
root,
|
||||
entropy_file );
|
||||
auto r = createEntropy(
|
||||
m_entropy_copy ? EntropyGeneration::CopyFromHost : EntropyGeneration::New, root, entropy_file );
|
||||
if ( !r )
|
||||
{
|
||||
return r;
|
||||
|
@ -55,15 +55,9 @@ static PackageItem
|
||||
fromComponent( AppStream::Pool& pool, AppStream::Component& component )
|
||||
{
|
||||
#if HAVE_APPSTREAM_VERSION == 0
|
||||
auto setActiveLocale = [&component](const QString & locale)
|
||||
{
|
||||
component.setActiveLocale( locale );
|
||||
};
|
||||
auto setActiveLocale = [ &component ]( const QString& locale ) { component.setActiveLocale( locale ); };
|
||||
#else
|
||||
auto setActiveLocale = [&pool](const QString & locale)
|
||||
{
|
||||
pool.setLocale( locale );
|
||||
};
|
||||
auto setActiveLocale = [ &pool ]( const QString& locale ) { pool.setLocale( locale ); };
|
||||
#endif
|
||||
|
||||
QVariantMap map;
|
||||
|
@ -28,9 +28,11 @@
|
||||
#define HAVE_APPSTREAM_HEADERS AppStreamQt
|
||||
#endif
|
||||
|
||||
// clang-format off
|
||||
#include CALAMARES_LT HAVE_APPSTREAM_HEADERS/pool.h CALAMARES_GT
|
||||
#include CALAMARES_LT HAVE_APPSTREAM_HEADERS/image.h CALAMARES_GT
|
||||
#include CALAMARES_LT HAVE_APPSTREAM_HEADERS/screenshot.h CALAMARES_GT
|
||||
// clang-format on
|
||||
|
||||
#undef CALAMARES_LT
|
||||
#undef CALAMARES_GT
|
||||
|
@ -60,6 +60,7 @@ if(KPMcore_FOUND)
|
||||
core/DeviceList.cpp
|
||||
core/DeviceModel.cpp
|
||||
core/KPMHelpers.cpp
|
||||
core/OsproberEntry.cpp
|
||||
core/PartitionActions.cpp
|
||||
core/PartitionCoreModule.cpp
|
||||
core/PartitionInfo.cpp
|
||||
|
@ -444,6 +444,7 @@ Config::setConfigurationMap( const QVariantMap& configurationMap )
|
||||
m_allowZfsEncryption = Calamares::getBool( configurationMap, "allowZfsEncryption", true );
|
||||
|
||||
m_allowManualPartitioning = Calamares::getBool( configurationMap, "allowManualPartitioning", true );
|
||||
m_preCheckEncryption = Calamares::getBool( configurationMap, "preCheckEncryption", false );
|
||||
m_showNotEncryptedBootMessage = Calamares::getBool( configurationMap, "showNotEncryptedBootMessage", true );
|
||||
m_requiredPartitionTableType = Calamares::getStringList( configurationMap, "requiredPartitionTableType" );
|
||||
|
||||
|
@ -35,7 +35,7 @@ class Config : public QObject
|
||||
replaceModeFilesystemChanged )
|
||||
|
||||
Q_PROPERTY( bool allowManualPartitioning READ allowManualPartitioning CONSTANT FINAL )
|
||||
|
||||
Q_PROPERTY( bool preCheckEncryption READ preCheckEncryption CONSTANT FINAL )
|
||||
Q_PROPERTY( bool showNotEncryptedBootMessage READ showNotEncryptedBootMessage CONSTANT FINAL )
|
||||
|
||||
public:
|
||||
@ -148,6 +148,13 @@ public:
|
||||
/// @brief Is manual partitioning allowed (not explicitly disabled in the config file)?
|
||||
bool allowManualPartitioning() const { return m_allowManualPartitioning; }
|
||||
|
||||
/** @brief Pre-check encryption checkbox.
|
||||
*
|
||||
* This is meaningful only if enableLuksAutomatedPartitioning is @c true.
|
||||
* Default value is @c false
|
||||
*/
|
||||
bool preCheckEncryption() const { return m_preCheckEncryption; }
|
||||
|
||||
/// @brief Show "Boot partition not encrypted" warning (not explicitly disabled in the config file)?
|
||||
bool showNotEncryptedBootMessage() const { return m_showNotEncryptedBootMessage; }
|
||||
|
||||
@ -199,6 +206,7 @@ private:
|
||||
QStringList m_requiredPartitionTableType;
|
||||
bool m_allowZfsEncryption = true;
|
||||
bool m_allowManualPartitioning = true;
|
||||
bool m_preCheckEncryption = false;
|
||||
bool m_showNotEncryptedBootMessage = true;
|
||||
};
|
||||
|
||||
|
@ -223,9 +223,15 @@ PartitionViewStep::prettyStatus() const
|
||||
const QList< PartitionCoreModule::SummaryInfo > list = m_core->createSummaryInfo();
|
||||
|
||||
cDebug() << "Summary for Partition" << list.length() << choice;
|
||||
auto joinDiskInfo = [ choice ]( QString& s, const PartitionCoreModule::SummaryInfo& i )
|
||||
{ return s + diskDescription( 1, i, choice ); };
|
||||
const QString diskInfoLabel = std::accumulate( list.begin(), list.end(), QString(), joinDiskInfo );
|
||||
const QString diskInfoLabel = [ &choice, &list ]()
|
||||
{
|
||||
QStringList s;
|
||||
for ( const auto& i : list )
|
||||
{
|
||||
s.append( diskDescription( 1, i, choice ) );
|
||||
}
|
||||
return s.join( QString() );
|
||||
}();
|
||||
const QString jobsLabel = jobDescriptions( jobs() ).join( QStringLiteral( "<br/>" ) );
|
||||
return diskInfoLabel + "<br/>" + jobsLabel;
|
||||
}
|
||||
|
63
src/modules/partition/core/OsproberEntry.cpp
Normal file
63
src/modules/partition/core/OsproberEntry.cpp
Normal file
@ -0,0 +1,63 @@
|
||||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2015-2016 Teo Mrnjavac <teo@kde.org>
|
||||
* SPDX-FileCopyrightText: 2018-2019, 2024 Adriaan de Groot <groot@kde.org>
|
||||
* SPDX-FileCopyrightText: 2019 Collabora Ltd <arnaud.ferraris@collabora.com>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* Calamares is Free Software: see the License-Identifier above.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "OsproberEntry.h"
|
||||
|
||||
|
||||
bool
|
||||
FstabEntry::isValid() const
|
||||
{
|
||||
return !partitionNode.isEmpty() && !mountPoint.isEmpty() && !fsType.isEmpty();
|
||||
}
|
||||
|
||||
FstabEntry
|
||||
FstabEntry::fromEtcFstab( const QString& rawLine )
|
||||
{
|
||||
QString line = rawLine.simplified();
|
||||
if ( line.startsWith( '#' ) )
|
||||
{
|
||||
return FstabEntry { QString(), QString(), QString(), QString(), 0, 0 };
|
||||
}
|
||||
|
||||
QStringList splitLine = line.split( ' ' );
|
||||
if ( splitLine.length() != 6 )
|
||||
{
|
||||
return FstabEntry { QString(), QString(), QString(), QString(), 0, 0 };
|
||||
}
|
||||
|
||||
return FstabEntry {
|
||||
splitLine.at( 0 ), // path, or UUID, or LABEL, etc.
|
||||
splitLine.at( 1 ), // mount point
|
||||
splitLine.at( 2 ), // fs type
|
||||
splitLine.at( 3 ), // options
|
||||
splitLine.at( 4 ).toInt(), //dump
|
||||
splitLine.at( 5 ).toInt() //pass
|
||||
};
|
||||
}
|
||||
|
||||
namespace Calamares
|
||||
{
|
||||
FstabEntryList
|
||||
fromEtcFstabContents( const QStringList& fstabLines )
|
||||
{
|
||||
FstabEntryList fstabEntries;
|
||||
|
||||
for ( const QString& rawLine : fstabLines )
|
||||
{
|
||||
fstabEntries.append( FstabEntry::fromEtcFstab( rawLine ) );
|
||||
}
|
||||
const auto invalidEntries = std::remove_if(
|
||||
fstabEntries.begin(), fstabEntries.end(), []( const FstabEntry& x ) { return !x.isValid(); } );
|
||||
fstabEntries.erase( invalidEntries, fstabEntries.end() );
|
||||
return fstabEntries;
|
||||
}
|
||||
|
||||
} // namespace Calamares
|
@ -32,11 +32,24 @@ struct FstabEntry
|
||||
* If the string isn't valid (e.g. comment-line, or broken
|
||||
* fstab entry) then the entry that is returned is invalid.
|
||||
*/
|
||||
static FstabEntry fromEtcFstab( const QString& ); // implemented in Partutils.cpp
|
||||
static FstabEntry fromEtcFstab( const QString& );
|
||||
};
|
||||
|
||||
typedef QList< FstabEntry > FstabEntryList;
|
||||
|
||||
namespace Calamares
|
||||
{
|
||||
/** @brief Returns valid entries from the lines of a fstab file */
|
||||
FstabEntryList fromEtcFstabContents( const QStringList& fstabLines );
|
||||
|
||||
/** @brief Returns valid entries from the byte-contents of a fstab file */
|
||||
inline FstabEntryList
|
||||
fromEtcFstabContents( const QByteArray& contents )
|
||||
{
|
||||
return fromEtcFstabContents( QString::fromLocal8Bit( contents ).split( '\n' ) );
|
||||
}
|
||||
} // namespace Calamares
|
||||
|
||||
struct OsproberEntry
|
||||
{
|
||||
QString prettyName;
|
||||
|
@ -254,30 +254,25 @@ lookForFstabEntries( const QString& partitionPath )
|
||||
|
||||
if ( fstabFile.open( QIODevice::ReadOnly | QIODevice::Text ) )
|
||||
{
|
||||
const QStringList fstabLines = QString::fromLocal8Bit( fstabFile.readAll() ).split( '\n' );
|
||||
|
||||
for ( const QString& rawLine : fstabLines )
|
||||
{
|
||||
fstabEntries.append( FstabEntry::fromEtcFstab( rawLine ) );
|
||||
}
|
||||
const auto fstabLines = QString::fromLocal8Bit( fstabFile.readAll() ).split( '\n' );
|
||||
fstabFile.close();
|
||||
const int lineCount = fstabEntries.count();
|
||||
std::remove_if(
|
||||
fstabEntries.begin(), fstabEntries.end(), []( const FstabEntry& x ) { return !x.isValid(); } );
|
||||
cDebug() << Logger::SubEntry << "got" << fstabEntries.count() << "fstab entries from" << lineCount
|
||||
|
||||
const auto fstabEntries = Calamares::fromEtcFstabContents( fstabLines );
|
||||
cDebug() << Logger::SubEntry << "got" << fstabEntries.count() << "fstab entries from" << fstabLines.count()
|
||||
<< "lines in" << fstabFile.fileName();
|
||||
return fstabEntries;
|
||||
}
|
||||
else
|
||||
{
|
||||
cWarning() << "Could not read fstab from mounted fs";
|
||||
return {};
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
cWarning() << "Could not mount existing fs";
|
||||
return {};
|
||||
}
|
||||
|
||||
return fstabEntries;
|
||||
}
|
||||
|
||||
static QString
|
||||
@ -641,36 +636,3 @@ canonicalFilesystemName( const QString& fsName, FileSystem::Type* fsType )
|
||||
}
|
||||
|
||||
} // namespace PartUtils
|
||||
|
||||
/* Implementation of methods for FstabEntry, from OsproberEntry.h */
|
||||
|
||||
bool
|
||||
FstabEntry::isValid() const
|
||||
{
|
||||
return !partitionNode.isEmpty() && !mountPoint.isEmpty() && !fsType.isEmpty();
|
||||
}
|
||||
|
||||
FstabEntry
|
||||
FstabEntry::fromEtcFstab( const QString& rawLine )
|
||||
{
|
||||
QString line = rawLine.simplified();
|
||||
if ( line.startsWith( '#' ) )
|
||||
{
|
||||
return FstabEntry { QString(), QString(), QString(), QString(), 0, 0 };
|
||||
}
|
||||
|
||||
QStringList splitLine = line.split( ' ' );
|
||||
if ( splitLine.length() != 6 )
|
||||
{
|
||||
return FstabEntry { QString(), QString(), QString(), QString(), 0, 0 };
|
||||
}
|
||||
|
||||
return FstabEntry {
|
||||
splitLine.at( 0 ), // path, or UUID, or LABEL, etc.
|
||||
splitLine.at( 1 ), // mount point
|
||||
splitLine.at( 2 ), // fs type
|
||||
splitLine.at( 3 ), // options
|
||||
splitLine.at( 4 ).toInt(), //dump
|
||||
splitLine.at( 5 ).toInt() //pass
|
||||
};
|
||||
}
|
||||
|
@ -185,7 +185,6 @@ ChoicePage::init( PartitionCoreModule* core )
|
||||
setModelToComboBox( m_drivesCombo, core->deviceModel() );
|
||||
|
||||
connect( m_drivesCombo, qOverload< int >( &QComboBox::currentIndexChanged ), this, &ChoicePage::applyDeviceChoice );
|
||||
|
||||
connect( m_encryptWidget, &EncryptWidget::stateChanged, this, &ChoicePage::onEncryptWidgetStateChanged );
|
||||
connect( m_reuseHomeCheckBox, &QCheckBox::stateChanged, this, &ChoicePage::onHomeCheckBoxStateChanged );
|
||||
|
||||
@ -468,6 +467,8 @@ ChoicePage::onActionChanged()
|
||||
{
|
||||
m_encryptWidget->setFilesystem( FileSystem::typeForName( m_replaceFsTypesChoiceComboBox->currentText() ) );
|
||||
}
|
||||
|
||||
m_encryptWidget->setEncryptionCheckbox( m_config->preCheckEncryption() );
|
||||
}
|
||||
|
||||
Device* currd = selectedDevice();
|
||||
@ -678,9 +679,13 @@ void
|
||||
ChoicePage::onLeave()
|
||||
{
|
||||
if ( m_config->installChoice() == InstallChoice::Alongside )
|
||||
{
|
||||
if ( m_afterPartitionSplitterWidget->splitPartitionSize() >= 0
|
||||
&& m_afterPartitionSplitterWidget->newPartitionSize() >= 0 )
|
||||
{
|
||||
doAlongsideApply();
|
||||
}
|
||||
}
|
||||
|
||||
if ( m_isEfi
|
||||
&& ( m_config->installChoice() == InstallChoice::Alongside
|
||||
@ -1057,7 +1062,8 @@ ChoicePage::updateActionChoicePreview( InstallChoice choice )
|
||||
Q_UNUSED( path )
|
||||
sizeLabel->setText(
|
||||
tr( "%1 will be shrunk to %2MiB and a new "
|
||||
"%3MiB partition will be created for %4.", "@info, %1 is partition name, %4 is product name" )
|
||||
"%3MiB partition will be created for %4.",
|
||||
"@info, %1 is partition name, %4 is product name" )
|
||||
.arg( m_beforePartitionBarsView->selectionModel()->currentIndex().data().toString() )
|
||||
.arg( Calamares::BytesToMiB( size ) )
|
||||
.arg( Calamares::BytesToMiB( sizeNext ) )
|
||||
@ -1188,14 +1194,16 @@ ChoicePage::setupEfiSystemPartitionSelector()
|
||||
{
|
||||
m_efiLabel->setText( tr( "An EFI system partition cannot be found anywhere "
|
||||
"on this system. Please go back and use manual "
|
||||
"partitioning to set up %1.", "@info, %1 is product name" )
|
||||
"partitioning to set up %1.",
|
||||
"@info, %1 is product name" )
|
||||
.arg( Calamares::Branding::instance()->shortProductName() ) );
|
||||
updateNextEnabled();
|
||||
}
|
||||
else if ( efiSystemPartitions.count() == 1 ) //probably most usual situation
|
||||
{
|
||||
m_efiLabel->setText( tr( "The EFI system partition at %1 will be used for "
|
||||
"starting %2.", "@info, %1 is partition path, %2 is product name" )
|
||||
"starting %2.",
|
||||
"@info, %1 is partition path, %2 is product name" )
|
||||
.arg( efiSystemPartitions.first()->partitionPath() )
|
||||
.arg( Calamares::Branding::instance()->shortProductName() ) );
|
||||
}
|
||||
@ -1505,7 +1513,8 @@ ChoicePage::setupActions()
|
||||
{
|
||||
if ( atLeastOneIsMounted )
|
||||
{
|
||||
m_messageLabel->setText( tr( "This storage device has one of its partitions <strong>mounted</strong>.", "@info" ) );
|
||||
m_messageLabel->setText(
|
||||
tr( "This storage device has one of its partitions <strong>mounted</strong>.", "@info" ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1575,7 +1584,10 @@ ChoicePage::calculateNextEnabled() const
|
||||
}
|
||||
}
|
||||
|
||||
if ( m_config->installChoice() != InstallChoice::Manual && m_encryptWidget->isVisible() )
|
||||
// You can have an invisible encryption checkbox, which is
|
||||
// still checked -- then do the encryption.
|
||||
if ( m_config->installChoice() != InstallChoice::Manual
|
||||
&& ( m_encryptWidget->isVisible() || m_encryptWidget->isEncryptionCheckboxChecked() ) )
|
||||
{
|
||||
switch ( m_encryptWidget->state() )
|
||||
{
|
||||
|
@ -70,6 +70,18 @@ EncryptWidget::EncryptWidget( QWidget* parent )
|
||||
CALAMARES_RETRANSLATE_SLOT( &EncryptWidget::retranslate );
|
||||
}
|
||||
|
||||
bool
|
||||
EncryptWidget::isEncryptionCheckboxChecked()
|
||||
{
|
||||
return m_ui->m_encryptCheckBox->isChecked();
|
||||
}
|
||||
|
||||
void
|
||||
EncryptWidget::setEncryptionCheckbox( bool preCheckEncrypt )
|
||||
{
|
||||
m_ui->m_encryptCheckBox->setChecked( preCheckEncrypt );
|
||||
}
|
||||
|
||||
void
|
||||
EncryptWidget::reset( bool checkVisible )
|
||||
{
|
||||
@ -155,7 +167,8 @@ EncryptWidget::updateState( const bool notify )
|
||||
else if ( m_filesystem == FileSystem::Zfs && p1.length() < ZFS_MIN_LENGTH )
|
||||
{
|
||||
applyPixmap( m_ui->m_iconLabel, Calamares::StatusError );
|
||||
m_ui->m_iconLabel->setToolTip( tr( "Password must be a minimum of %1 characters.", "@tooltip" ).arg( ZFS_MIN_LENGTH ) );
|
||||
m_ui->m_iconLabel->setToolTip(
|
||||
tr( "Password must be a minimum of %1 characters.", "@tooltip" ).arg( ZFS_MIN_LENGTH ) );
|
||||
}
|
||||
else if ( p1 == p2 )
|
||||
{
|
||||
@ -169,17 +182,12 @@ EncryptWidget::updateState( const bool notify )
|
||||
}
|
||||
}
|
||||
|
||||
Encryption newState = state();
|
||||
|
||||
if ( newState != m_state )
|
||||
{
|
||||
m_state = newState;
|
||||
m_state = state();
|
||||
if ( notify )
|
||||
{
|
||||
Q_EMIT stateChanged( m_state );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
EncryptWidget::onPassphraseEdited()
|
||||
|
@ -36,8 +36,10 @@ public:
|
||||
|
||||
explicit EncryptWidget( QWidget* parent = nullptr );
|
||||
|
||||
void setEncryptionCheckbox( bool preCheckEncrypt = false);
|
||||
void reset( bool checkVisible = true );
|
||||
|
||||
bool isEncryptionCheckboxChecked();
|
||||
Encryption state() const;
|
||||
void setText( const QString& text );
|
||||
|
||||
|
@ -65,7 +65,8 @@ ScanningDialog::run( const QFuture< void >& future,
|
||||
void
|
||||
ScanningDialog::run( const QFuture< void >& future, const std::function< void() >& callback, QWidget* parent )
|
||||
{
|
||||
ScanningDialog::run( future, tr( "Scanning storage devices…", "@status" ), tr( "Partitioning…", "@status" ), callback, parent );
|
||||
ScanningDialog::run(
|
||||
future, tr( "Scanning storage devices…", "@status" ), tr( "Partitioning…", "@status" ), callback, parent );
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -170,11 +170,12 @@ initialSwapChoice: none
|
||||
# manual partitioning, this partition table exists already on disk
|
||||
# and it is left unmodified.
|
||||
#
|
||||
# Suggested values: gpt, msdos
|
||||
# If nothing is specified, Calamares defaults to "gpt" if system is
|
||||
# efi or "msdos".
|
||||
# Possible values: gpt, msdos (or other names defined by KPMcore).
|
||||
# Names are case-sensitive.
|
||||
#
|
||||
# If nothing is specified, Calamares defaults to "gpt" if system is
|
||||
# efi or "msdos" otherwise.
|
||||
#
|
||||
# Names are case-sensitive and defined by KPMCore.
|
||||
# defaultPartitionTableType: msdos
|
||||
|
||||
# Requirement for partition table type
|
||||
@ -182,7 +183,8 @@ initialSwapChoice: none
|
||||
# Restrict the installation on disks that match the type of partition
|
||||
# tables that are specified.
|
||||
#
|
||||
# Possible values: msdos, gpt. Names are case-sensitive and defined by KPMCore.
|
||||
# Possible values: msdos, gpt (or other names defined by KPMcore).
|
||||
# Names are case-sensitive.
|
||||
#
|
||||
# If nothing is specified, Calamares defaults to both "msdos" and "gpt".
|
||||
#
|
||||
@ -240,6 +242,11 @@ defaultFileSystemType: "ext4"
|
||||
# If nothing is specified, LUKS is enabled in automated modes.
|
||||
#enableLuksAutomatedPartitioning: true
|
||||
|
||||
# When enableLuksAutomatedPartitioning is true, this option will pre-check
|
||||
# encryption checkbox. This option is only usefull to help people to not forget
|
||||
# to cypher their disk when installing in enterprise (for exemple).
|
||||
#preCheckEncryption: false
|
||||
|
||||
# Partition layout.
|
||||
#
|
||||
# This optional setting specifies a custom partition layout.
|
||||
|
@ -34,6 +34,7 @@ properties:
|
||||
|
||||
luksGeneration: { type: string, enum: [luks1, luks2] } # Also allows "luks" as alias of "luks1"
|
||||
enableLuksAutomatedPartitioning: { type: boolean, default: false }
|
||||
preCheckEncryption: { type: boolean, default: false }
|
||||
|
||||
allowManualPartitioning: { type: boolean, default: true }
|
||||
showNotEncryptedBootMessage: { type: boolean, default: true }
|
||||
|
@ -14,6 +14,12 @@ include_directories(
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
|
||||
set(PartitionModule_basic_SRC
|
||||
${PartitionModule_SOURCE_DIR}/core/OsproberEntry.cpp
|
||||
${PartitionModule_SOURCE_DIR}/core/PartitionInfo.cpp
|
||||
${PartitionModule_SOURCE_DIR}/core/PartUtils.cpp
|
||||
)
|
||||
|
||||
calamares_add_test(
|
||||
partitionjobtest
|
||||
SOURCES
|
||||
@ -40,10 +46,9 @@ calamares_add_test(
|
||||
partitioncreatelayoutstest
|
||||
SOURCES
|
||||
CreateLayoutsTests.cpp
|
||||
${PartitionModule_basic_SRC}
|
||||
${PartitionModule_SOURCE_DIR}/core/KPMHelpers.cpp
|
||||
${PartitionModule_SOURCE_DIR}/core/PartitionInfo.cpp
|
||||
${PartitionModule_SOURCE_DIR}/core/PartitionLayout.cpp
|
||||
${PartitionModule_SOURCE_DIR}/core/PartUtils.cpp
|
||||
${PartitionModule_SOURCE_DIR}/core/DeviceModel.cpp
|
||||
LIBRARIES calamares::kpmcore Calamares::calamaresui
|
||||
DEFINITIONS ${_partition_defs}
|
||||
@ -66,9 +71,8 @@ calamares_add_test(
|
||||
partitionconfigtest
|
||||
SOURCES
|
||||
ConfigTests.cpp
|
||||
${PartitionModule_basic_SRC}
|
||||
${PartitionModule_SOURCE_DIR}/core/DeviceModel.cpp
|
||||
${PartitionModule_SOURCE_DIR}/core/PartitionInfo.cpp
|
||||
${PartitionModule_SOURCE_DIR}/core/PartUtils.cpp
|
||||
${PartitionModule_SOURCE_DIR}/Config.cpp
|
||||
LIBRARIES calamares::kpmcore Calamares::calamaresui
|
||||
DEFINITIONS
|
||||
|
@ -9,6 +9,7 @@
|
||||
|
||||
#include "Config.h"
|
||||
|
||||
#include "core/OsproberEntry.h"
|
||||
#include "core/PartUtils.h"
|
||||
|
||||
#include "GlobalStorage.h"
|
||||
@ -17,6 +18,7 @@
|
||||
#include "utils/System.h"
|
||||
#include "utils/Yaml.h"
|
||||
|
||||
#include <QByteArray>
|
||||
#include <QObject>
|
||||
#include <QtTest/QtTest>
|
||||
|
||||
@ -35,6 +37,9 @@ private Q_SLOTS:
|
||||
void testLegacySize();
|
||||
void testAll();
|
||||
void testWeirdConfig();
|
||||
|
||||
void testNormalFstab();
|
||||
void testWeirdFstab();
|
||||
};
|
||||
|
||||
ConfigTests::ConfigTests() = default;
|
||||
@ -222,6 +227,48 @@ ConfigTests::testWeirdConfig()
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ConfigTests::testNormalFstab()
|
||||
{
|
||||
const auto contents
|
||||
= QByteArrayLiteral( "# A FreeBSD fstab\n"
|
||||
"/dev/nvd0p3 none swap sw 0 0\n" );
|
||||
const auto entries = Calamares::fromEtcFstabContents( contents );
|
||||
for ( const auto& e : entries )
|
||||
{
|
||||
QVERIFY( e.isValid() );
|
||||
}
|
||||
QCOMPARE( entries.count(), 1 );
|
||||
}
|
||||
|
||||
void
|
||||
ConfigTests::testWeirdFstab()
|
||||
{
|
||||
const auto contents
|
||||
= QByteArrayLiteral( "# <file system> <mount point> <type> <options> <dump> <pass>\n"
|
||||
"UUID=dae80d0a-f6c7-46f4-a04a-6761f2cfd9b6 / ext4 defaults,noatime 0 1\n"
|
||||
"UUID=423892d5-a929-41a9-a846-f410cf3fe25b swap swap defaults,noatime 0 2\n"
|
||||
"# another comment\n"
|
||||
"borked 2\n"
|
||||
"ok /dev1 ext4 none 0 0\n"
|
||||
"bogus /dev2 ext4 none no later\n"
|
||||
"# comment\n" );
|
||||
const auto entries = Calamares::fromEtcFstabContents( contents );
|
||||
QCOMPARE( entries.count(), 4 );
|
||||
|
||||
QStringList mountPoints;
|
||||
for ( const auto& e : entries )
|
||||
{
|
||||
mountPoints.append( e.mountPoint );
|
||||
}
|
||||
mountPoints.sort();
|
||||
QCOMPARE( mountPoints,
|
||||
QStringList() << "/"
|
||||
<< "/dev1"
|
||||
<< "/dev2"
|
||||
<< "swap" );
|
||||
}
|
||||
|
||||
|
||||
QTEST_GUILESS_MAIN( ConfigTests )
|
||||
|
||||
|
@ -51,6 +51,11 @@ DevicesTests::testKPMScanDevices()
|
||||
|
||||
cDebug() << "Getting devices via KPMCore";
|
||||
CoreBackend* backend = CoreBackendManager::self()->backend();
|
||||
#ifdef Q_OS_FREEBSD
|
||||
QEXPECT_FAIL( "", "Test backend not expected on FreeBSD", Continue );
|
||||
QVERIFY( backend );
|
||||
return;
|
||||
#endif
|
||||
QVERIFY( backend );
|
||||
auto devices = backend->scanDevices( ScanFlag( ~0 ) ); // These flags try to get "all"
|
||||
cDebug() << Logger::SubEntry << "Done getting devices.";
|
||||
|
@ -126,7 +126,7 @@ class RawFSItem:
|
||||
config["source"], device))
|
||||
self.source = os.path.realpath(config["source"])
|
||||
# If source is a mount point, look for the actual device mounted on it
|
||||
if os.path.ismount(self.source):
|
||||
if os.path.ismount(self.source) and not libcalamares.job.configuration.get("bogus", False):
|
||||
procmounts = open("/proc/mounts", "r")
|
||||
for line in procmounts:
|
||||
if self.source in line.split():
|
||||
@ -146,9 +146,10 @@ def update_global_storage(item, gs):
|
||||
ret = subprocess.run(["blkid", "-s", "UUID", "-o", "value", item.destination],
|
||||
stdout=subprocess.PIPE, stderr=subprocess.STDOUT, text=True)
|
||||
if ret.returncode == 0:
|
||||
uuid = ret.stdout.rstrip()
|
||||
libcalamares.utils.debug("Setting {} UUID to {}".format(item.destination,
|
||||
ret.stdout.rstrip()))
|
||||
gs[gs.index(partition)]["uuid"] = ret.stdout.rstrip()
|
||||
uuid or "<empty>"))
|
||||
gs[gs.index(partition)]["uuid"] = uuid
|
||||
gs[gs.index(partition)]["source"] = item.source
|
||||
|
||||
libcalamares.globalstorage.remove("partitions")
|
||||
|
@ -5,8 +5,10 @@
|
||||
# Special cases for rawfs tests
|
||||
#
|
||||
# - On FreeBSD, /proc/mounts doesn't exist (/proc is only about processes,
|
||||
# and is rarely used). Expect the test to fail.
|
||||
# and is rarely used). The test would fail, except it catches that
|
||||
# kind of error and ends up doing nothing.
|
||||
|
||||
if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
||||
set_tests_properties(load-rawfs-1 PROPERTIES WILL_FAIL TRUE)
|
||||
# set_tests_properties(load-rawfs-1 PROPERTIES WILL_FAIL TRUE)
|
||||
message(STATUS "rawfs tests are useless on FreeBSD")
|
||||
endif()
|
||||
|
@ -16,6 +16,17 @@
|
||||
# of Calamares, set on the welcome page. This may not reflect the
|
||||
# chosen system language from the locale page.
|
||||
#
|
||||
# As a special case, variables of the form `gs[key]` where `key` is
|
||||
# a dotted-keys string and `gs` is literally the letters `g` and `s`,
|
||||
# use **any** value from Global Storage. For example,
|
||||
#
|
||||
# gs[branding.bootloader]
|
||||
#
|
||||
# This variable refers to the GS value stored in `bootloader` in the
|
||||
# `branding` map. Examine the Debug window for information about the
|
||||
# keys stored in GS. Only strings and integers are exposed this way,
|
||||
# lists and other data types do not set any variable this way.
|
||||
#
|
||||
# Variables are written as `${var}`, e.g. `${ROOT}`.
|
||||
# Write `$$` to get a shell-escaped `\$` in the shell command.
|
||||
# It is not possible to get an un-escaped `$` in the shell command
|
||||
|
@ -51,7 +51,6 @@ ActiveDirectoryJob::exec()
|
||||
if ( !m_ip.isEmpty() )
|
||||
{
|
||||
const QString hostsFilePath = Calamares::System::instance()->targetPath( QStringLiteral( "/etc/hosts" ) );
|
||||
;
|
||||
QFile hostsFile( hostsFilePath );
|
||||
if ( hostsFile.open( QIODevice::Append | QIODevice::Text ) )
|
||||
{
|
||||
|
@ -209,7 +209,8 @@ WelcomePage::retranslate()
|
||||
|
||||
ui->mainText->setText( message.arg( Calamares::Branding::instance()->versionedName() ) );
|
||||
ui->retranslateUi( this );
|
||||
ui->supportButton->setText( tr( "%1 Support", "@action" ).arg( Calamares::Branding::instance()->shortProductName() ) );
|
||||
ui->supportButton->setText(
|
||||
tr( "%1 Support", "@action" ).arg( Calamares::Branding::instance()->shortProductName() ) );
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -35,7 +35,7 @@ paintRequirement( QPainter* painter, const QStyleOptionViewItem& option, const Q
|
||||
|
||||
Calamares::ImageType statusImage = Calamares::StatusOk;
|
||||
|
||||
painter->setPen( QColorConstants::Black );
|
||||
painter->setPen( Qt::black );
|
||||
if ( index.data( Calamares::RequirementsModel::Satisfied ).toBool() )
|
||||
{
|
||||
painter->fillRect( textRect, option.palette.window().color() );
|
||||
|
Loading…
Reference in New Issue
Block a user