Merge branch 'master' of https://github.com/calamares/calamares into development
This commit is contained in:
commit
5f78d49777
@ -49,7 +49,7 @@ option( WITH_KF5Crash "Enable crash reporting with KCrash." ON )
|
||||
set( CALAMARES_ORGANIZATION_NAME "Calamares" )
|
||||
set( CALAMARES_ORGANIZATION_DOMAIN "github.com/calamares" )
|
||||
set( CALAMARES_APPLICATION_NAME "Calamares" )
|
||||
set( CALAMARES_DESCRIPTION_SUMMARY
|
||||
set( CALAMARES_DESCRIPTION_SUMMARY
|
||||
"The distribution-independent installer framework" )
|
||||
|
||||
set( CALAMARES_VERSION_MAJOR 3 )
|
||||
@ -86,17 +86,17 @@ set( _tx_complete da pt_PT ro tr_TR zh_TW zh_CN pt_BR fr hr ca lt id cs_CZ )
|
||||
set( _tx_good sq es pl ja sk it_IT hu ru he de nl bg uk )
|
||||
set( _tx_ok ast is ar sv el es_MX gl en_GB th fi_FI hi eu sr nb
|
||||
sl sr@latin mr es_PR kk kn et be )
|
||||
set( _tx_bad uz lo ur gu fr_CH fa eo )
|
||||
set( _tx_bad uz lo ur gu fr_CH fa eo ko )
|
||||
|
||||
|
||||
### Required versions
|
||||
#
|
||||
# See DEPENDENCIES section below.
|
||||
set( QT_VERSION 5.6.0 )
|
||||
set( QT_VERSION 5.7.0 )
|
||||
set( YAMLCPP_VERSION 0.5.1 )
|
||||
set( ECM_VERSION 5.18 )
|
||||
set( PYTHONLIBS_VERSION 3.3 )
|
||||
set( BOOSTPYTHON_VERSION 1.54.0 )
|
||||
set( BOOSTPYTHON_VERSION 1.55.0 )
|
||||
|
||||
|
||||
### CMAKE SETUP
|
||||
|
@ -38,6 +38,7 @@
|
||||
# RESOURCES resource-file
|
||||
# [NO_INSTALL]
|
||||
# [SHARED_LIB]
|
||||
# [EMERGENCY]
|
||||
# )
|
||||
|
||||
include( CMakeParseArguments )
|
||||
@ -47,7 +48,7 @@ include( CMakeColors )
|
||||
function( calamares_add_plugin )
|
||||
# parse arguments ( name needs to be saved before passing ARGN into the macro )
|
||||
set( NAME ${ARGV0} )
|
||||
set( options NO_INSTALL SHARED_LIB )
|
||||
set( options NO_INSTALL SHARED_LIB EMERGENCY )
|
||||
set( oneValueArgs NAME TYPE EXPORT_MACRO RESOURCES )
|
||||
set( multiValueArgs SOURCES UI LINK_LIBRARIES LINK_PRIVATE_LIBRARIES COMPILE_DEFINITIONS )
|
||||
cmake_parse_arguments( PLUGIN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
|
||||
@ -71,7 +72,7 @@ function( calamares_add_plugin )
|
||||
# message( " ${Green}NO_INSTALL:${ColorReset} ${PLUGIN_NO_INSTALL}" )
|
||||
message( " ${Green}PLUGIN_DESTINATION:${ColorReset} ${PLUGIN_DESTINATION}" )
|
||||
if( PLUGIN_CONFIG_FILES )
|
||||
if ( INSTALL_CONFIG )
|
||||
if ( INSTALL_CONFIG AND NOT PLUGIN_NO_INSTALL )
|
||||
message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${PLUGIN_CONFIG_FILES} => ${PLUGIN_DATA_DESTINATION}" )
|
||||
else()
|
||||
message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${PLUGIN_CONFIG_FILES} => [Skipping installation]" )
|
||||
@ -92,7 +93,7 @@ function( calamares_add_plugin )
|
||||
set( target_type "SHARED" )
|
||||
endif()
|
||||
|
||||
list( APPEND calamares_add_library_args
|
||||
set( calamares_add_library_args
|
||||
"${target}"
|
||||
"EXPORT_MACRO" "${PLUGIN_EXPORT_MACRO}"
|
||||
"TARGET_TYPE" "${target_type}"
|
||||
@ -115,9 +116,14 @@ function( calamares_add_plugin )
|
||||
list( APPEND calamares_add_library_args "COMPILE_DEFINITIONS" ${PLUGIN_COMPILE_DEFINITIONS} )
|
||||
endif()
|
||||
|
||||
list( APPEND calamares_add_library_args "NO_VERSION" )
|
||||
if ( PLUGIN_NO_INSTALL )
|
||||
list( APPEND calamares_add_library_args "NO_INSTALL" )
|
||||
endif()
|
||||
|
||||
list( APPEND calamares_add_library_args "INSTALL_BINDIR" "${PLUGIN_DESTINATION}" )
|
||||
list( APPEND calamares_add_library_args
|
||||
"NO_VERSION"
|
||||
"INSTALL_BINDIR" "${PLUGIN_DESTINATION}"
|
||||
)
|
||||
|
||||
if( PLUGIN_RESOURCES )
|
||||
list( APPEND calamares_add_library_args "RESOURCES" "${PLUGIN_RESOURCES}" )
|
||||
@ -132,16 +138,21 @@ function( calamares_add_plugin )
|
||||
set( _type ${PLUGIN_TYPE} )
|
||||
file( WRITE ${_file} "# AUTO-GENERATED metadata file\n# Syntax is YAML 1.2\n---\n" )
|
||||
file( APPEND ${_file} "type: \"${_type}\"\nname: \"${PLUGIN_NAME}\"\ninterface: \"qtplugin\"\nload: \"lib${target}.so\"\n" )
|
||||
if ( PLUGIN_EMERGENCY )
|
||||
file( APPEND ${_file} "emergency: true\n" )
|
||||
endif()
|
||||
endif()
|
||||
|
||||
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_DESC_FILE}
|
||||
DESTINATION ${PLUGIN_DESTINATION} )
|
||||
if ( NOT PLUGIN_NO_INSTALL )
|
||||
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_DESC_FILE}
|
||||
DESTINATION ${PLUGIN_DESTINATION} )
|
||||
|
||||
if ( INSTALL_CONFIG )
|
||||
foreach( PLUGIN_CONFIG_FILE ${PLUGIN_CONFIG_FILES} )
|
||||
configure_file( ${PLUGIN_CONFIG_FILE} ${PLUGIN_CONFIG_FILE} COPYONLY )
|
||||
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_CONFIG_FILE}
|
||||
DESTINATION ${PLUGIN_DATA_DESTINATION} )
|
||||
endforeach()
|
||||
if ( INSTALL_CONFIG )
|
||||
foreach( PLUGIN_CONFIG_FILE ${PLUGIN_CONFIG_FILES} )
|
||||
configure_file( ${PLUGIN_CONFIG_FILE} ${PLUGIN_CONFIG_FILE} COPYONLY )
|
||||
install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_CONFIG_FILE}
|
||||
DESTINATION ${PLUGIN_DATA_DESTINATION} )
|
||||
endforeach()
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
@ -22,6 +22,40 @@
|
||||
|
||||
include( CMakeParseArguments )
|
||||
|
||||
if( NOT _rcc_version_support_checked )
|
||||
set( _rcc_version_support_checked TRUE )
|
||||
|
||||
# Extract the executable name
|
||||
get_property( _rcc_executable
|
||||
TARGET ${Qt5Core_RCC_EXECUTABLE}
|
||||
PROPERTY IMPORTED_LOCATION
|
||||
)
|
||||
if( NOT _rcc_executable )
|
||||
# Weird, probably now uses Qt5::rcc which is wrong too
|
||||
set( _rcc_executable ${Qt5Core_RCC_EXECUTABLE} )
|
||||
endif()
|
||||
|
||||
# Try an empty RCC file with explicit format-version
|
||||
execute_process(
|
||||
COMMAND echo "<RCC version='1.0'></RCC>"
|
||||
COMMAND ${Qt5Core_RCC_EXECUTABLE} --format-version 1 --list -
|
||||
RESULT_VARIABLE _rcc_version_rv
|
||||
ERROR_VARIABLE _rcc_version_dump
|
||||
)
|
||||
if ( _rcc_version_rv EQUAL 0 )
|
||||
# Supported: force to the reproducible version
|
||||
set( _rcc_version_support --format-version 1 )
|
||||
else()
|
||||
# Older Qt versions (5.7, 5.8) don't support setting the
|
||||
# rcc format-version, so won't be reproducible if they
|
||||
# default to version 2.
|
||||
set( _rcc_version_support "" )
|
||||
endif()
|
||||
unset( _rcc_version_rv )
|
||||
unset( _rcc_version_dump )
|
||||
endif()
|
||||
|
||||
|
||||
# Internal macro for adding the C++ / Qt translations to the
|
||||
# build and install tree. Should be called only once, from
|
||||
# src/calamares/CMakeLists.txt.
|
||||
@ -61,7 +95,7 @@ macro(add_calamares_translations language)
|
||||
add_custom_command(
|
||||
OUTPUT ${trans_outfile}
|
||||
COMMAND "${Qt5Core_RCC_EXECUTABLE}"
|
||||
ARGS ${rcc_options} --format-version 1 -name ${trans_file} -o ${trans_outfile} ${trans_infile}
|
||||
ARGS ${rcc_options} ${_rcc_version_support} -name ${trans_file} -o ${trans_outfile} ${trans_infile}
|
||||
MAIN_DEPENDENCY ${trans_infile}
|
||||
DEPENDS ${QM_FILES}
|
||||
)
|
||||
|
13
README.md
13
README.md
@ -15,11 +15,12 @@
|
||||
Main:
|
||||
* Compiler with C++11 support: GCC >= 4.9.0 or Clang >= 3.5.1
|
||||
* CMake >= 3.2
|
||||
* Qt >= 5.6
|
||||
* Qt >= 5.7
|
||||
* yaml-cpp >= 0.5.1
|
||||
* Python >= 3.3
|
||||
* Boost.Python >= 1.55.0
|
||||
* extra-cmake-modules (recommended; required for some modules)
|
||||
* Python >= 3.3 (required for some modules)
|
||||
* Boost.Python >= 1.55.0 (recommended, or PythonQt; one is required for some modules)
|
||||
* PythonQt (recommended, or Boost.Python; one is required for some modules)
|
||||
* extra-cmake-modules >= 5.18 (recommended; required for some modules)
|
||||
|
||||
Modules:
|
||||
* welcome:
|
||||
@ -38,6 +39,6 @@ Modules:
|
||||
### Building
|
||||
|
||||
See [wiki](https://github.com/calamares/calamares/wiki) for up to date
|
||||
[building](https://github.com/calamares/calamares/wiki/Developer's-Guide)
|
||||
and [deployment](https://github.com/calamares/calamares/wiki/Deployer's-Guide)
|
||||
[building](https://github.com/calamares/calamares/wiki/Develop-Guide)
|
||||
and [deployment](https://github.com/calamares/calamares/wiki/Deploy-Guide)
|
||||
instructions.
|
||||
|
@ -47,9 +47,9 @@ GenericName[es]=Instalador del Sistema
|
||||
Comment[es]=Calamares — Instalador del Sistema
|
||||
Name[es]=Instalar Sistema
|
||||
Icon[et]=calamares
|
||||
GenericName[et]=Süsteemi installija
|
||||
Comment[et]=Calamares — Süsteemi installija
|
||||
Name[et]=Installi süsteem
|
||||
GenericName[et]=Süsteemipaigaldaja
|
||||
Comment[et]=Calamares — süsteemipaigaldaja
|
||||
Name[et]=Paigalda süsteem
|
||||
Name[eu]=Sistema instalatu
|
||||
Name[es_PR]=Instalar el sistema
|
||||
Icon[fr]=calamares
|
||||
@ -156,6 +156,9 @@ Icon[eo]=calamares
|
||||
GenericName[eo]=Sistema Instalilo
|
||||
Comment[eo]=Calamares — Sistema Instalilo
|
||||
Name[eo]=Instali Sistemo
|
||||
Icon[es_MX]=calamares
|
||||
GenericName[es_MX]=Instalador del sistema
|
||||
Comment[es_MX]=Calamares - Instalador del sistema
|
||||
Name[es_MX]=Instalar el Sistema
|
||||
Icon[pt_PT]=calamares
|
||||
GenericName[pt_PT]=Instalador de Sistema
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -9,12 +9,12 @@
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="79"/>
|
||||
<source>This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own.</source>
|
||||
<translation>See süsteem käivitati <strong>EFI</strong> käivituskeskkonnas.<br><br>Et seadistada käivitust EFI keskkonnast, peab see installija paigaldama käivituslaaduri rakenduse, näiteks <strong>GRUB</strong> või <strong>systemd-boot</strong> sinu <strong>EFI süsteemipartitsioonile</strong>. See on automaatne, välja arvatud juhul, kui valid käsitsi partitsioneerimise, sel juhul pead sa selle valima või ise looma.</translation>
|
||||
<translation>See süsteem käivitati <strong>EFI</strong> käivituskeskkonnas.<br><br>Et seadistada käivitust EFI keskkonnast, peab see paigaldaja paigaldama käivituslaaduri rakenduse, näiteks <strong>GRUB</strong> või <strong>systemd-boot</strong> sinu <strong>EFI süsteemipartitsioonile</strong>. See on automaatne, välja arvatud juhul, kui valid käsitsi partitsioneerimise, sel juhul pead sa selle valima või ise looma.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="91"/>
|
||||
<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>See süsteem käivitati <strong>BIOS</strong> käivituskeskkonnas.<br><br>Et seadistada käivitust BIOS keskkonnast, peab see installija paigaldama käivituslaaduri, näiteks <strong>GRUB</strong>, kas mõne partitsiooni algusse või <strong>Master Boot Record</strong>'i paritsioonitabeli alguse lähedale (eelistatud). See on automaatne, välja arvatud juhul, kui valid käsitsi partitsioneerimise, sel juhul pead sa selle ise seadistama.</translation>
|
||||
<translation>See süsteem käivitati <strong>BIOS</strong> käivituskeskkonnas.<br><br>Et seadistada käivitust BIOS keskkonnast, peab see paigaldaja paigaldama käivituslaaduri, näiteks <strong>GRUB</strong>, kas mõne partitsiooni algusse või <strong>Master Boot Record</strong>'i paritsioonitabeli alguse lähedale (eelistatud). See on automaatne, välja arvatud juhul, kui valid käsitsi partitsioneerimise, sel juhul pead sa selle ise seadistama.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -37,7 +37,7 @@
|
||||
<message>
|
||||
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="111"/>
|
||||
<source>Do not install a boot loader</source>
|
||||
<translation>Ära installi käivituslaadurit</translation>
|
||||
<translation>Ära paigalda käivituslaadurit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="125"/>
|
||||
@ -99,7 +99,7 @@
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ExecutionViewStep.cpp" line="78"/>
|
||||
<source>Install</source>
|
||||
<translation>Installi</translation>
|
||||
<translation>Paigalda</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -179,24 +179,24 @@
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="76"/>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="267"/>
|
||||
<source>Cancel installation without changing the system.</source>
|
||||
<translation>Tühista installimine ilma süsteemi muutmata.</translation>
|
||||
<translation>Tühista paigaldamine ilma süsteemi muutmata.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="255"/>
|
||||
<source>&Install</source>
|
||||
<translation>&Installi</translation>
|
||||
<translation>&Paigalda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="303"/>
|
||||
<source>Cancel installation?</source>
|
||||
<translation>Tühista installimine?</translation>
|
||||
<translation>Tühista paigaldamine?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="304"/>
|
||||
<source>Do you really want to cancel the current install process?
|
||||
The installer will quit and all changes will be lost.</source>
|
||||
<translation>Kas sa tõesti soovid tühistada praeguse installiprotsessi?
|
||||
Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<translation>Kas sa tõesti soovid tühistada praeguse paigaldusprotsessi?
|
||||
Paigaldaja sulgub ning kõik muutused kaovad.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="309"/>
|
||||
@ -221,12 +221,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="216"/>
|
||||
<source>The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong></source>
|
||||
<translation>%1 installija on tegemas muudatusi sinu kettale, et installida %2.<br/><strong>Sa ei saa neid muudatusi tagasi võtta.</strong></translation>
|
||||
<translation>%1 paigaldaja on tegemas muudatusi sinu kettale, et paigaldada %2.<br/><strong>Sa ei saa neid muudatusi tagasi võtta.</strong></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="221"/>
|
||||
<source>&Install now</source>
|
||||
<translation>&Installi kohe</translation>
|
||||
<translation>&Paigalda kohe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="222"/>
|
||||
@ -241,7 +241,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="262"/>
|
||||
<source>The installation is complete. Close the installer.</source>
|
||||
<translation>Installimine on lõpetatud. Sulge installija.</translation>
|
||||
<translation>Paigaldamine on lõpetatud. Sulge paigaldaja.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="159"/>
|
||||
@ -251,7 +251,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="160"/>
|
||||
<source>Installation Failed</source>
|
||||
<translation>Installimine ebaõnnestus</translation>
|
||||
<translation>Paigaldamine ebaõnnestus</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -282,7 +282,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/calamares/CalamaresWindow.cpp" line="44"/>
|
||||
<source>%1 Installer</source>
|
||||
<translation>%1 installija</translation>
|
||||
<translation>%1 paigaldaja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/calamares/CalamaresWindow.cpp" line="111"/>
|
||||
@ -295,12 +295,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="96"/>
|
||||
<source>This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a></source>
|
||||
<translation>See arvuti ei rahulda %1 installimiseks vajalikke minimaaltingimusi.<br/>Installimine ei saa jätkuda. <a href="#details">Detailid...</a></translation>
|
||||
<translation>See arvuti ei rahulda %1 paigldamiseks vajalikke minimaaltingimusi.<br/>Paigaldamine ei saa jätkuda. <a href="#details">Detailid...</a></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="113"/>
|
||||
<source>This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled.</source>
|
||||
<translation>See arvuti ei rahulda mõnda %1 installimiseks soovitatud tingimust.<br/>Installimine võib jätkuda, ent mõned funktsioonid võivad olla keelatud.</translation>
|
||||
<translation>See arvuti ei rahulda mõnda %1 paigaldamiseks soovitatud tingimust.<br/>Paigaldamine võib jätkuda, ent mõned funktsioonid võivad olla keelatud.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/CheckerWidget.cpp" line="151"/>
|
||||
@ -371,7 +371,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1040"/>
|
||||
<source><strong>Select a partition to install on</strong></source>
|
||||
<translation><strong>Vali partitsioon, kuhu installida</strong></translation>
|
||||
<translation><strong>Vali partitsioon, kuhu paigaldada</strong></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1096"/>
|
||||
@ -412,7 +412,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1260"/>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1284"/>
|
||||
<source><strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1.</source>
|
||||
<translation><strong>Installi kõrvale</strong><br/>Installija vähendab partitsiooni, et teha ruumi operatsioonisüsteemile %1.</translation>
|
||||
<translation><strong>Paigalda kõrvale</strong><br/>Paigaldaja vähendab partitsiooni, et teha ruumi operatsioonisüsteemile %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1213"/>
|
||||
@ -599,7 +599,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="79"/>
|
||||
<source>The installer failed to create partition on disk '%1'.</source>
|
||||
<translation>Installija ei suutnud luua partitsiooni kettale "%1".</translation>
|
||||
<translation>Paigaldaja ei suutnud luua partitsiooni kettale "%1".</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -650,7 +650,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CreatePartitionTableJob.cpp" line="72"/>
|
||||
<source>The installer failed to create a partition table on %1.</source>
|
||||
<translation>Installija ei suutnud luua partitsioonitabelit kettale %1.</translation>
|
||||
<translation>Paigaldaja ei suutnud luua partitsioonitabelit kettale %1.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -711,7 +711,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/DeletePartitionJob.cpp" line="68"/>
|
||||
<source>The installer failed to delete partition %1.</source>
|
||||
<translation>Installija ei suutnud kustutada partitsiooni %1.</translation>
|
||||
<translation>Paigaldaja ei suutnud kustutada partitsiooni %1.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -719,7 +719,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="150"/>
|
||||
<source>The type of <strong>partition table</strong> on the selected storage device.<br><br>The only way to change the partition table type is to erase and recreate the partition table from scratch, which destroys all data on the storage device.<br>This installer will keep the current partition table unless you explicitly choose otherwise.<br>If unsure, on modern systems GPT is preferred.</source>
|
||||
<translation><strong>Partitsioonitabeli</strong> tüüp valitud mäluseadmel.<br><br>Ainuke viis partitsioonitabelit muuta on see kustutada ja nullist taasluua, mis hävitab kõik andmed mäluseadmel.<br>See installija säilitab praeguse partitsioonitabeli, v.a juhul kui sa ise valid vastupidist.<br>Kui pole kindel, eelista modernsetel süsteemidel GPT-d.</translation>
|
||||
<translation><strong>Partitsioonitabeli</strong> tüüp valitud mäluseadmel.<br><br>Ainuke viis partitsioonitabelit muuta on see kustutada ja nullist taasluua, mis hävitab kõik andmed mäluseadmel.<br>See paigaldaja säilitab praeguse partitsioonitabeli, v.a juhul kui sa ise valid vastupidist.<br>Kui pole kindel, eelista modernsetel süsteemidel GPT-d.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="107"/>
|
||||
@ -734,7 +734,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="121"/>
|
||||
<source>This installer <strong>cannot detect a partition table</strong> on the selected storage device.<br><br>The device either has no partition table, or the partition table is corrupted or of an unknown type.<br>This installer can create a new partition table for you, either automatically, or through the manual partitioning page.</source>
|
||||
<translation>See installija <strong>ei suuda tuvastada partitsioonitabelit</strong>valitud mäluseadmel.<br><br>Seadmel kas pole partitsioonitabelit, see on korrumpeerunud või on tundmatut tüüpi.<br>See installija võib sulle luua uue partitsioonitabeli, kas automaatselt või läbi käsitsi partitsioneerimise lehe. </translation>
|
||||
<translation>See paigaldaja <strong>ei suuda tuvastada partitsioonitabelit</strong>valitud mäluseadmel.<br><br>Seadmel kas pole partitsioonitabelit, see on korrumpeerunud või on tundmatut tüüpi.<br>See paigaldaja võib sulle luua uue partitsioonitabeli, kas automaatselt või läbi käsitsi partitsioneerimise lehe. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="131"/>
|
||||
@ -877,7 +877,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="147"/>
|
||||
<source>Install %1 on <strong>new</strong> %2 system partition.</source>
|
||||
<translation>Installi %1 <strong>uude</strong> %2 süsteemipartitsiooni.</translation>
|
||||
<translation>Paigalda %1 <strong>uude</strong> %2 süsteemipartitsiooni.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="151"/>
|
||||
@ -887,7 +887,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="159"/>
|
||||
<source>Install %2 on %3 system partition <strong>%1</strong>.</source>
|
||||
<translation>Installi %2 %3 süsteemipartitsioonile <strong>%1</strong>.</translation>
|
||||
<translation>Paigalda %2 %3 süsteemipartitsioonile <strong>%1</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="164"/>
|
||||
@ -897,7 +897,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="176"/>
|
||||
<source>Install boot loader on <strong>%1</strong>.</source>
|
||||
<translation>Installi käivituslaadur kohta <strong>%1</strong>.</translation>
|
||||
<translation>Paigalda käivituslaadur kohta <strong>%1</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="186"/>
|
||||
@ -915,7 +915,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedPage.ui" line="95"/>
|
||||
<source><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></source>
|
||||
<translation><html><head/><body><p>Kui see märkeruut on täidetud, taaskäivitab su süsteem automaatselt, kui vajutad <span style=" font-style:italic;">Valmis</span> või sulged installija.</p></body></html></translation>
|
||||
<translation><html><head/><body><p>Kui see märkeruut on täidetud, taaskäivitab su süsteem automaatselt, kui vajutad <span style=" font-style:italic;">Valmis</span> või sulged paigaldaja.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedPage.ui" line="98"/>
|
||||
@ -925,12 +925,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedPage.cpp" line="51"/>
|
||||
<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>
|
||||
<translation><h1>Kõik on valmis.</h1><br/>%1 on installitud sinu arvutisse.<br/>Sa võid nüüd taaskäivitada oma uude süsteemi või jätkata %2 live-keskkonna kasutamist.</translation>
|
||||
<translation><h1>Kõik on valmis.</h1><br/>%1 on paigaldatud sinu arvutisse.<br/>Sa võid nüüd taaskäivitada oma uude süsteemi või jätkata %2 live-keskkonna kasutamist.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedPage.cpp" line="109"/>
|
||||
<source><h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2.</source>
|
||||
<translation><h1>Installimine ebaõnnestus</h1><br/>%1 ei installitud sinu arvutisse.<br/>Veateade oli: %2.</translation>
|
||||
<translation><h1>Paigaldamine ebaõnnestus</h1><br/>%1 ei paigaldatud sinu arvutisse.<br/>Veateade oli: %2.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -943,12 +943,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedViewStep.cpp" line="124"/>
|
||||
<source>Installation Complete</source>
|
||||
<translation>Installimine lõpetatud</translation>
|
||||
<translation>Paigaldus valmis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedViewStep.cpp" line="125"/>
|
||||
<source>The installation of %1 is complete.</source>
|
||||
<translation>%1 installimine on lõpetatud.</translation>
|
||||
<translation>%1 paigaldus on valmis.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -971,7 +971,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/FormatPartitionJob.cpp" line="77"/>
|
||||
<source>The installer failed to format partition %1 on disk '%2'.</source>
|
||||
<translation>Installija ei suutnud vormindada partitsiooni %1 kettal "%2".</translation>
|
||||
<translation>Paigaldaja ei suutnud vormindada partitsiooni %1 kettal "%2".</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -979,12 +979,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/interactiveterminal/InteractiveTerminalPage.cpp" line="53"/>
|
||||
<source>Konsole not installed</source>
|
||||
<translation>Konsole pole installitud</translation>
|
||||
<translation>Konsole pole paigaldatud</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/interactiveterminal/InteractiveTerminalPage.cpp" line="54"/>
|
||||
<source>Please install KDE Konsole and try again!</source>
|
||||
<translation>Palun installi KDE Konsole ja proovi uuesti!</translation>
|
||||
<translation>Palun paigalda KDE Konsole ja proovi uuesti!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/interactiveterminal/InteractiveTerminalPage.cpp" line="116"/>
|
||||
@ -1059,7 +1059,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/license/LicensePage.cpp" line="115"/>
|
||||
<source><h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms.</source>
|
||||
<translation><h1>Litsensileping</h1>See seadistusprotseduur installib omandiõigusega tarkvara, mis vastab litsensitingimustele.</translation>
|
||||
<translation><h1>Litsensileping</h1>See seadistusprotseduur paigaldab omandiõigusega tarkvara, mis vastab litsensitingimustele.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/license/LicensePage.cpp" line="118"/>
|
||||
@ -1069,12 +1069,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/license/LicensePage.cpp" line="124"/>
|
||||
<source><h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience.</source>
|
||||
<translation><h1>Litsensileping</h1>See seadistusprotseduur võib installida omandiõigusega tarkvara, mis vastab litsensitingimustele, et pakkuda lisafunktsioone ja täiendada kasutajakogemust.</translation>
|
||||
<translation><h1>Litsensileping</h1>See seadistusprotseduur võib paigaldada omandiõigusega tarkvara, mis vastab litsensitingimustele, et pakkuda lisafunktsioone ja täiendada kasutajakogemust.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/license/LicensePage.cpp" line="129"/>
|
||||
<source>Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead.</source>
|
||||
<translation>Palun loe läbi allolevad lõppkasutaja litsensilepingud (EULAd).<br/>Kui sa tingimustega ei nõustu, ei installita omandiõigusega tarkvara ning selle asemel kasutatakse avatud lähtekoodiga alternatiive.</translation>
|
||||
<translation>Palun loe läbi allolevad lõppkasutaja litsensilepingud (EULAd).<br/>Kui sa tingimustega ei nõustu, ei paigaldata omandiõigusega tarkvara ning selle asemel kasutatakse avatud lähtekoodiga alternatiive.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/license/LicensePage.cpp" line="159"/>
|
||||
@ -1190,12 +1190,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="86"/>
|
||||
<source>Network Installation. (Disabled: Unable to fetch package lists, check your network connection)</source>
|
||||
<translation>Võrguinstall. (Keelatud: paketinimistute saamine ebaõnnestus, kontrolli oma võrguühendust)</translation>
|
||||
<translation>Võrgupaigaldus. (Keelatud: paketinimistute saamine ebaõnnestus, kontrolli oma võrguühendust)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/netinstall/NetInstallPage.cpp" line="96"/>
|
||||
<source>Network Installation. (Disabled: Received invalid groups data)</source>
|
||||
<translation>Võrguinstall. (Keelatud: vastu võetud sobimatud grupiandmed)</translation>
|
||||
<translation>Võrgupaigaldus. (Keelatud: vastu võetud sobimatud grupiandmed)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -1494,7 +1494,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="200"/>
|
||||
<source><small>If more than one person will use this computer, you can set up multiple accounts after installation.</small></source>
|
||||
<translation><small>Kui rohkem kui üks inimene kasutab seda arvutit, saad sa määrata mitu kontot peale installi.</small></translation>
|
||||
<translation><small>Kui rohkem kui üks inimene kasutab seda arvutit, saad sa pärast paigaldust määrata mitu kontot.</small></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="335"/>
|
||||
@ -1655,7 +1655,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="148"/>
|
||||
<source>Install boot &loader on:</source>
|
||||
<translation>Installi käivituslaadur kohta:</translation>
|
||||
<translation>Paigalda käivituslaadur kohta:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="169"/>
|
||||
@ -1688,12 +1688,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="158"/>
|
||||
<source>Install %1 <strong>alongside</strong> another operating system.</source>
|
||||
<translation>Installi %1 praeguse operatsioonisüsteemi <strong>kõrvale</strong></translation>
|
||||
<translation>Paigalda %1 praeguse operatsioonisüsteemi <strong>kõrvale</strong></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="162"/>
|
||||
<source><strong>Erase</strong> disk and install %1.</source>
|
||||
<translation><strong>Tühjenda</strong> ketas ja installi %1.</translation>
|
||||
<translation><strong>Tühjenda</strong> ketas ja paigalda %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="166"/>
|
||||
@ -1708,12 +1708,12 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="184"/>
|
||||
<source>Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3).</source>
|
||||
<translation>Installi %1 teise operatsioonisüsteemi <strong>kõrvale</strong> kettal <strong>%2</strong> (%3).</translation>
|
||||
<translation>Paigalda %1 teise operatsioonisüsteemi <strong>kõrvale</strong> kettal <strong>%2</strong> (%3).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="190"/>
|
||||
<source><strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1.</source>
|
||||
<translation><strong>Tühjenda</strong> ketas <strong>%2</strong> (%3) ja installi %1.</translation>
|
||||
<translation><strong>Tühjenda</strong> ketas <strong>%2</strong> (%3) ja paigalda %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="196"/>
|
||||
@ -1800,7 +1800,7 @@ Installija sulgub ja kõik muutused kaovad.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/plasmalnf/PlasmaLnfPage.cpp" line="67"/>
|
||||
<source>Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel.</source>
|
||||
<translation>Palun vali KDE Plasma Desktop'ile välimus-ja-tunnetus. Sa võid selle sammu ka vahele jätta ja seadistada välimust-ja-tunnetust siis, kui süsteem on installitud. Välimuse-ja-tunnetuse valikule klõpsates näed selle reaalajas eelvaadet.</translation>
|
||||
<translation>Palun vali KDE Plasma töölauale välimus-ja-tunnetus. Sa võid selle sammu ka vahele jätta ja seadistada välimust-ja-tunnetust siis, kui süsteem on paigaldatud. Välimuse-ja-tunnetuse valikule klõpsates näed selle reaalajas eelvaadet.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -1947,7 +1947,7 @@ Väljund:
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="134"/>
|
||||
<source>Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition.</source>
|
||||
<translation>Vali, kuhu soovid %1 installida.<br/><font color="red">Hoiatus: </font>see kustutab valitud partitsioonilt kõik failid.</translation>
|
||||
<translation>Vali, kuhu soovid %1 paigaldada.<br/><font color="red">Hoiatus: </font>see kustutab valitud partitsioonilt kõik failid.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="160"/>
|
||||
@ -1957,17 +1957,17 @@ Väljund:
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="168"/>
|
||||
<source>%1 cannot be installed on empty space. Please select an existing partition.</source>
|
||||
<translation>%1 ei saa installida tühjale kohale. Palun vali olemasolev partitsioon.</translation>
|
||||
<translation>%1 ei saa paigldada tühjale kohale. Palun vali olemasolev partitsioon.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="178"/>
|
||||
<source>%1 cannot be installed on an extended partition. Please select an existing primary or logical partition.</source>
|
||||
<translation>%1 ei saa installida laiendatud partitsioonile. Palun vali olemasolev põhiline või loogiline partitsioon.</translation>
|
||||
<translation>%1 ei saa paigaldada laiendatud partitsioonile. Palun vali olemasolev põhiline või loogiline partitsioon.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="188"/>
|
||||
<source>%1 cannot be installed on this partition.</source>
|
||||
<translation>%1 ei saa installida sellele partitsioonidel.</translation>
|
||||
<translation>%1 ei saa sellele partitsioonile paigaldada.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="194"/>
|
||||
@ -1999,7 +1999,7 @@ Väljund:
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="278"/>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="302"/>
|
||||
<source><strong>%3</strong><br/><br/>%1 will be installed on %2.<br/><font color="red">Warning: </font>all data on partition %2 will be lost.</source>
|
||||
<translation><strong>%3</strong><br/><br/>%1 installitakse partitsioonile %2.<br/><font color="red">Hoiatus: </font>kõik andmed partitsioonil %2 kaovad.</translation>
|
||||
<translation><strong>%3</strong><br/><br/>%1 paigaldatakse partitsioonile %2.<br/><font color="red">Hoiatus: </font>kõik andmed partitsioonil %2 kaovad.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="270"/>
|
||||
@ -2062,12 +2062,12 @@ Väljund:
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/RequirementsChecker.cpp" line="155"/>
|
||||
<source>The installer is not running with administrator rights.</source>
|
||||
<translation>Installija ei tööta administraatoriõigustega.</translation>
|
||||
<translation>Paigaldaja pole käivitatud administraatoriõigustega.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/RequirementsChecker.cpp" line="163"/>
|
||||
<source>The screen is too small to display the installer.</source>
|
||||
<translation>Ekraan on liiga väike installija kuvamiseks.</translation>
|
||||
<translation>Ekraan on paigaldaja kuvamiseks liiga väike.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2090,7 +2090,7 @@ Väljund:
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/ResizePartitionJob.cpp" line="85"/>
|
||||
<source>The installer failed to resize partition %1 on disk '%2'.</source>
|
||||
<translation>Installijal ebaõnnestus partitsiooni %1 suuruse muutmine kettal "%2".</translation>
|
||||
<translation>Paigaldajal ebaõnnestus partitsiooni %1 suuruse muutmine kettal "%2".</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2246,7 +2246,7 @@ Väljund:
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="140"/>
|
||||
<source>The installer failed to set flags on partition %1.</source>
|
||||
<translation>Installija ei suutnud silte määrata partitsioonile %1.</translation>
|
||||
<translation>Paigaldaja ei suutnud partitsioonile %1 silte määrata.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2352,7 +2352,7 @@ Väljund:
|
||||
<message>
|
||||
<location filename="../src/modules/summary/SummaryPage.cpp" line="49"/>
|
||||
<source>This is an overview of what will happen once you start the install procedure.</source>
|
||||
<translation>See on ülevaade sellest mis juhtub, kui alustad installiprotseduuri.</translation>
|
||||
<translation>See on ülevaade sellest mis juhtub, kui alustad paigaldusprotseduuri.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2368,17 +2368,17 @@ Väljund:
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="43"/>
|
||||
<source>Installation feedback</source>
|
||||
<translation>Installimise tagasiside</translation>
|
||||
<translation>Paigalduse tagasiside</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="53"/>
|
||||
<source>Sending installation feedback.</source>
|
||||
<translation>Saadan installimise tagasisidet.</translation>
|
||||
<translation>Saadan paigalduse tagasisidet.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="88"/>
|
||||
<source>Internal error in install-tracking.</source>
|
||||
<translation>Installi jälitamisel esines sisemine viga.</translation>
|
||||
<translation>Paigaldate jälitamisel esines sisemine viga.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="89"/>
|
||||
@ -2430,7 +2430,7 @@ Väljund:
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/page_trackingstep.ui" line="72"/>
|
||||
<source><html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html></source>
|
||||
<translation><html><head/><body><p>Seda valides <span style=" font-weight:600;">ei saada sa üldse</span> teavet oma installi kohta.</p></body></html></translation>
|
||||
<translation><html><head/><body><p>Seda valides <span style=" font-weight:600;">ei saada sa üldse</span> teavet oma paigalduse kohta.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/page_trackingstep.ui" line="123"/>
|
||||
@ -2454,22 +2454,22 @@ Väljund:
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingPage.cpp" line="44"/>
|
||||
<source>Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area.</source>
|
||||
<translation>Installijälitamine aitab %1-l näha, mitu kasutajat neil on, mis riistvarale nad %1 installivad ja (märkides kaks alumist valikut) saada pidevat teavet eelistatud rakenduste kohta. Et näha, mis infot saadetakse, palun klõpsa abiikooni iga ala kõrval.</translation>
|
||||
<translation>Paigalduse jälitamine aitab %1-l näha, mitu kasutajat neil on, mis riistvarale nad %1 paigaldavad ja (märkides kaks alumist valikut) saada pidevat teavet eelistatud rakenduste kohta. Et näha, mis infot saadetakse, palun klõpsa abiikooni iga ala kõrval.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingPage.cpp" line="45"/>
|
||||
<source>By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes.</source>
|
||||
<translation>Seda valides saadad sa teavet oma installi ja riistvara kohta. See teave <b>saadetakse ainult korra</b>peale installi lõppu.</translation>
|
||||
<translation>Seda valides saadad sa teavet oma paigalduse ja riistvara kohta. See teave <b>saadetakse ainult korra</b>peale paigalduse lõppu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingPage.cpp" line="46"/>
|
||||
<source>By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1.</source>
|
||||
<translation>Seda valides saadad sa %1-le <b>perioodiliselt</b> infot oma installi, riistvara ja rakenduste kohta.</translation>
|
||||
<translation>Seda valides saadad sa %1-le <b>perioodiliselt</b> infot oma paigalduse, riistvara ja rakenduste kohta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingPage.cpp" line="47"/>
|
||||
<source>By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1.</source>
|
||||
<translation>Seda valides saadad sa %1-le <b>regulaarselt</b> infot oma installi, riistvara, rakenduste ja kasutusharjumuste kohta.</translation>
|
||||
<translation>Seda valides saadad sa %1-le <b>regulaarselt</b> infot oma paigalduse, riistvara, rakenduste ja kasutusharjumuste kohta.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2557,17 +2557,17 @@ Väljund:
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="60"/>
|
||||
<source><h1>Welcome to the %1 installer.</h1></source>
|
||||
<translation><h1>Tere tulemast %1 installijasse.</h1></translation>
|
||||
<translation><h1>Tere tulemast %1 paigaldajasse.</h1></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="60"/>
|
||||
<source><h1>Welcome to the Calamares installer for %1.</h1></source>
|
||||
<translation><h1>Tere tulemast Calamares'i installijasse %1 jaoks.</h1></translation>
|
||||
<translation><h1>Tere tulemast Calamares'i paigaldajasse %1 jaoks.</h1></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="73"/>
|
||||
<source>About %1 installer</source>
|
||||
<translation>Teave %1 installija kohta</translation>
|
||||
<translation>Teave %1 paigaldaja kohta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="75"/>
|
||||
|
2587
lang/calamares_ko.ts
Normal file
2587
lang/calamares_ko.ts
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -10,6 +10,7 @@ msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-05-28 04:57-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: guillermo pacheco <guillopacheco@gmail.com>, 2018\n"
|
||||
"Language-Team: Spanish (Mexico) (https://www.transifex.com/calamares/teams/20061/es_MX/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -19,39 +20,39 @@ msgstr ""
|
||||
|
||||
#: src/modules/umount/main.py:40
|
||||
msgid "Unmount file systems."
|
||||
msgstr ""
|
||||
msgstr "Desmontar sistemas de archivo."
|
||||
|
||||
#: src/modules/dummypython/main.py:44
|
||||
msgid "Dummy python job."
|
||||
msgstr ""
|
||||
msgstr "Trabajo python ficticio."
|
||||
|
||||
#: src/modules/dummypython/main.py:97
|
||||
msgid "Dummy python step {}"
|
||||
msgstr ""
|
||||
msgstr "Paso python ficticio {}"
|
||||
|
||||
#: src/modules/machineid/main.py:35
|
||||
msgid "Generate machine-id."
|
||||
msgstr ""
|
||||
msgstr "Generar identificación de la maquina."
|
||||
|
||||
#: src/modules/packages/main.py:61
|
||||
#, python-format
|
||||
msgid "Processing packages (%(count)d / %(total)d)"
|
||||
msgstr ""
|
||||
msgstr "Procesando paquetes (%(count)d/%(total)d)"
|
||||
|
||||
#: src/modules/packages/main.py:63 src/modules/packages/main.py:73
|
||||
msgid "Install packages."
|
||||
msgstr ""
|
||||
msgstr "Instalar paquetes."
|
||||
|
||||
#: src/modules/packages/main.py:66
|
||||
#, python-format
|
||||
msgid "Installing one package."
|
||||
msgid_plural "Installing %(num)d packages."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[0] "Instalando un paquete."
|
||||
msgstr[1] "Instalando%(num)d paquetes."
|
||||
|
||||
#: src/modules/packages/main.py:69
|
||||
#, python-format
|
||||
msgid "Removing one package."
|
||||
msgid_plural "Removing %(num)d packages."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
msgstr[0] "Removiendo un paquete."
|
||||
msgstr[1] "Removiendo %(num)dpaquetes."
|
||||
|
Binary file not shown.
@ -41,18 +41,18 @@ msgstr "Pakkide töötlemine (%(count)d / %(total)d)"
|
||||
|
||||
#: src/modules/packages/main.py:63 src/modules/packages/main.py:73
|
||||
msgid "Install packages."
|
||||
msgstr "Installi pakid."
|
||||
msgstr "Paigalda paketid."
|
||||
|
||||
#: src/modules/packages/main.py:66
|
||||
#, python-format
|
||||
msgid "Installing one package."
|
||||
msgid_plural "Installing %(num)d packages."
|
||||
msgstr[0] "Installin ühe paki."
|
||||
msgstr[1] "Installin %(num)d pakki."
|
||||
msgstr[0] "Paigaldan ühe paketi."
|
||||
msgstr[1] "Paigaldan %(num)d paketti."
|
||||
|
||||
#: src/modules/packages/main.py:69
|
||||
#, python-format
|
||||
msgid "Removing one package."
|
||||
msgid_plural "Removing %(num)d packages."
|
||||
msgstr[0] "Eemaldan ühe paki."
|
||||
msgstr[1] "Eemaldan %(num)d pakki."
|
||||
msgstr[0] "Eemaldan ühe paketi."
|
||||
msgstr[1] "Eemaldan %(num)d paketti."
|
||||
|
BIN
lang/python/ko/LC_MESSAGES/python.mo
Normal file
BIN
lang/python/ko/LC_MESSAGES/python.mo
Normal file
Binary file not shown.
55
lang/python/ko/LC_MESSAGES/python.po
Normal file
55
lang/python/ko/LC_MESSAGES/python.po
Normal file
@ -0,0 +1,55 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-05-28 04:57-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Language-Team: Korean (https://www.transifex.com/calamares/teams/20061/ko/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ko\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: src/modules/umount/main.py:40
|
||||
msgid "Unmount file systems."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dummypython/main.py:44
|
||||
msgid "Dummy python job."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dummypython/main.py:97
|
||||
msgid "Dummy python step {}"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/machineid/main.py:35
|
||||
msgid "Generate machine-id."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/packages/main.py:61
|
||||
#, python-format
|
||||
msgid "Processing packages (%(count)d / %(total)d)"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/packages/main.py:63 src/modules/packages/main.py:73
|
||||
msgid "Install packages."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/packages/main.py:66
|
||||
#, python-format
|
||||
msgid "Installing one package."
|
||||
msgid_plural "Installing %(num)d packages."
|
||||
msgstr[0] ""
|
||||
|
||||
#: src/modules/packages/main.py:69
|
||||
#, python-format
|
||||
msgid "Removing one package."
|
||||
msgid_plural "Removing %(num)d packages."
|
||||
msgstr[0] ""
|
@ -24,9 +24,11 @@ so that it can be run directly from the build directory for testing purposes:
|
||||
|
||||
Since the slideshow can be **any** QML, it is limited only by your designers
|
||||
imagination and your QML experience. For straightforward presentations,
|
||||
see the documentation below. There are more examples in the *calamares-branding*
|
||||
see the documentation below. There are more examples in the [calamares-branding][1]
|
||||
repository.
|
||||
|
||||
[1] https://github.com/calamares/calamares-branding
|
||||
|
||||
## Translations
|
||||
|
||||
QML files in a branding component can be translated. Translations should
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -30,7 +31,7 @@ Presentation
|
||||
repeat: true
|
||||
onTriggered: presentation.goToNextSlide()
|
||||
}
|
||||
|
||||
|
||||
Slide {
|
||||
|
||||
Image {
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -49,10 +50,10 @@ CalamaresApplication::CalamaresApplication( int& argc, char* argv[] )
|
||||
// <org>/<app>/, so we end up with ~/.cache/Calamares/calamares/
|
||||
// which is excessively squidly.
|
||||
//
|
||||
// setOrganizationName( QLatin1String( CALAMARES_ORGANIZATION_NAME ) );
|
||||
setOrganizationDomain( QLatin1String( CALAMARES_ORGANIZATION_DOMAIN ) );
|
||||
setApplicationName( QLatin1String( CALAMARES_APPLICATION_NAME ) );
|
||||
setApplicationVersion( QLatin1String( CALAMARES_VERSION ) );
|
||||
// setOrganizationName( QStringLiteral( CALAMARES_ORGANIZATION_NAME ) );
|
||||
setOrganizationDomain( QStringLiteral( CALAMARES_ORGANIZATION_DOMAIN ) );
|
||||
setApplicationName( QStringLiteral( CALAMARES_APPLICATION_NAME ) );
|
||||
setApplicationVersion( QStringLiteral( CALAMARES_VERSION ) );
|
||||
|
||||
cDebug() << "Calamares version:" << CALAMARES_VERSION;
|
||||
|
||||
@ -335,6 +336,8 @@ CalamaresApplication::initView()
|
||||
|
||||
connect( m_moduleManager, &Calamares::ModuleManager::modulesLoaded,
|
||||
this, &CalamaresApplication::initViewSteps );
|
||||
connect( m_moduleManager, &Calamares::ModuleManager::modulesFailed,
|
||||
this, &CalamaresApplication::initFailed );
|
||||
|
||||
m_moduleManager->loadModules();
|
||||
|
||||
@ -356,6 +359,12 @@ CalamaresApplication::initViewSteps()
|
||||
cDebug() << "STARTUP: Window now visible and ProgressTreeView populated";
|
||||
}
|
||||
|
||||
void
|
||||
CalamaresApplication::initFailed(const QStringList& l)
|
||||
{
|
||||
cError() << "STARTUP: failed modules are" << l;
|
||||
m_mainwindow->show();
|
||||
}
|
||||
|
||||
void
|
||||
CalamaresApplication::initJobQueue()
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -70,6 +71,7 @@ public:
|
||||
private slots:
|
||||
void initView();
|
||||
void initViewSteps();
|
||||
void initFailed( const QStringList& l );
|
||||
|
||||
private:
|
||||
void initQmlPath();
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -66,8 +66,15 @@ public:
|
||||
virtual QString prettyDescription() const;
|
||||
virtual QString prettyStatusMessage() const;
|
||||
virtual JobResult exec() = 0;
|
||||
|
||||
bool isEmergency() const { return m_emergency; }
|
||||
void setEmergency( bool e ) { m_emergency = e; }
|
||||
|
||||
signals:
|
||||
void progress( qreal percent );
|
||||
|
||||
private:
|
||||
bool m_emergency = false;
|
||||
};
|
||||
|
||||
} // namespace Calamares
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -50,22 +51,36 @@ public:
|
||||
|
||||
void run() override
|
||||
{
|
||||
bool anyFailed = false;
|
||||
QString message;
|
||||
QString details;
|
||||
|
||||
m_jobIndex = 0;
|
||||
for( auto job : m_jobs )
|
||||
{
|
||||
if ( anyFailed && !job->isEmergency() )
|
||||
{
|
||||
cDebug() << "Skipping non-emergency job" << job->prettyName();
|
||||
continue;
|
||||
}
|
||||
|
||||
emitProgress();
|
||||
cDebug() << "Starting job" << job->prettyName();
|
||||
cDebug() << "Starting" << ( anyFailed ? "EMERGENCY JOB" : "job" ) << job->prettyName();
|
||||
connect( job.data(), &Job::progress, this, &JobThread::emitProgress );
|
||||
JobResult result = job->exec();
|
||||
if ( !result )
|
||||
if ( !anyFailed && !result )
|
||||
{
|
||||
emitFailed( result.message(), result.details() );
|
||||
emitFinished();
|
||||
return;
|
||||
anyFailed = true;
|
||||
message = result.message();
|
||||
details = result.details();
|
||||
}
|
||||
++m_jobIndex;
|
||||
if ( !anyFailed )
|
||||
++m_jobIndex;
|
||||
}
|
||||
emitProgress();
|
||||
if ( anyFailed )
|
||||
emitFailed( message, details );
|
||||
else
|
||||
emitProgress();
|
||||
emitFinished();
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -30,6 +30,32 @@
|
||||
#include <yaml-cpp/yaml.h>
|
||||
|
||||
|
||||
/** Helper function to grab a QString out of the config, and to warn if not present. */
|
||||
static QString
|
||||
requireString( const YAML::Node& config, const char* key )
|
||||
{
|
||||
if ( config[ key ] )
|
||||
return QString::fromStdString( config[ key ].as< std::string >() );
|
||||
else
|
||||
{
|
||||
cWarning() << "Required settings.conf key" << key << "is missing.";
|
||||
return QString();
|
||||
}
|
||||
}
|
||||
|
||||
/** Helper function to grab a bool out of the config, and to warn if not present. */
|
||||
static bool
|
||||
requireBool( const YAML::Node& config, const char* key, bool d )
|
||||
{
|
||||
if ( config[ key ] )
|
||||
return config[ key ].as< bool >();
|
||||
else
|
||||
{
|
||||
cWarning() << "Required settings.conf key" << key << "is missing.";
|
||||
return d;
|
||||
}
|
||||
}
|
||||
|
||||
namespace Calamares
|
||||
{
|
||||
|
||||
@ -41,7 +67,6 @@ Settings::instance()
|
||||
return s_instance;
|
||||
}
|
||||
|
||||
|
||||
Settings::Settings( const QString& settingsFilePath,
|
||||
bool debugMode,
|
||||
QObject* parent )
|
||||
@ -148,11 +173,9 @@ Settings::Settings( const QString& settingsFilePath,
|
||||
}
|
||||
}
|
||||
|
||||
m_brandingComponentName = QString::fromStdString( config[ "branding" ]
|
||||
.as< std::string >() );
|
||||
m_promptInstall = config[ "prompt-install" ].as< bool >();
|
||||
|
||||
m_doChroot = config[ "dont-chroot" ] ? !config[ "dont-chroot" ].as< bool >() : true;
|
||||
m_brandingComponentName = requireString( config, "branding" );
|
||||
m_promptInstall = requireBool( config, "prompt-install", false );
|
||||
m_doChroot = requireBool( config, "dont-chroot", true );
|
||||
}
|
||||
catch ( YAML::Exception& e )
|
||||
{
|
||||
@ -175,7 +198,7 @@ Settings::modulesSearchPaths() const
|
||||
}
|
||||
|
||||
|
||||
QList<QMap<QString, QString> >
|
||||
Settings::InstanceDescriptionList
|
||||
Settings::customModuleInstances() const
|
||||
{
|
||||
return m_customModuleInstances;
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -43,7 +43,9 @@ public:
|
||||
|
||||
QStringList modulesSearchPaths() const;
|
||||
|
||||
QList< QMap< QString, QString > > customModuleInstances() const;
|
||||
using InstanceDescription = QMap< QString, QString >;
|
||||
using InstanceDescriptionList = QList< InstanceDescription >;
|
||||
InstanceDescriptionList customModuleInstances() const;
|
||||
|
||||
QList< QPair< ModuleAction, QStringList > > modulesSequence() const;
|
||||
|
||||
@ -60,7 +62,7 @@ private:
|
||||
|
||||
QStringList m_modulesSearchPaths;
|
||||
|
||||
QList< QMap< QString, QString > > m_customModuleInstances;
|
||||
InstanceDescriptionList m_customModuleInstances;
|
||||
QList< QPair< ModuleAction, QStringList > > m_modulesSequence;
|
||||
|
||||
QString m_brandingComponentName;
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2013-2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Originally from Tomahawk, portions:
|
||||
* Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
|
||||
@ -33,11 +34,9 @@
|
||||
#include <QStandardPaths>
|
||||
#include <QTranslator>
|
||||
|
||||
|
||||
// stdc++
|
||||
#include <iostream>
|
||||
|
||||
using namespace std;
|
||||
using std::cerr;
|
||||
|
||||
namespace CalamaresUtils
|
||||
{
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2013-2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Originally from Tomahawk, portions:
|
||||
* Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Based on KPluginFactory from KCoreAddons, KDE project
|
||||
* Copyright 2007, Matthias Kretz <kretz@kde.org>
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Based on KPluginFactory from KCoreAddons, KDE project
|
||||
* Copyright 2007, Matthias Kretz <kretz@kde.org>
|
||||
@ -111,7 +111,7 @@ namespace Calamares
|
||||
* T(QObject *parent, const QVariantList &args)
|
||||
* \endcode
|
||||
*
|
||||
* You should typically use CALAMARES_PLUGIN_FACTORY_DEFINITION() in your plugin code to
|
||||
* You should typically use CALAMARES_PLUGIN_FACTORY_DEFINITION() in your plugin code to
|
||||
* create the factory. The pattern is
|
||||
*
|
||||
* \code
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -15,6 +15,7 @@ set( calamaresui_SOURCES
|
||||
utils/qjsonitem.cpp
|
||||
|
||||
viewpages/AbstractPage.cpp
|
||||
viewpages/BlankViewStep.cpp
|
||||
viewpages/ViewStep.cpp
|
||||
|
||||
widgets/ClickableLabel.cpp
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <ExecutionViewStep.h>
|
||||
|
||||
#include "Branding.h"
|
||||
#include "Job.h"
|
||||
#include "JobQueue.h"
|
||||
#include "modulesystem/Module.h"
|
||||
#include "modulesystem/ModuleManager.h"
|
||||
@ -142,7 +143,15 @@ ExecutionViewStep::onActivate()
|
||||
Calamares::Module* module = Calamares::ModuleManager::instance()
|
||||
->moduleInstance( instanceKey );
|
||||
if ( module )
|
||||
queue->enqueue( module->jobs() );
|
||||
{
|
||||
auto jl = module->jobs();
|
||||
if ( module->isEmergency() )
|
||||
{
|
||||
for( auto& j : jl )
|
||||
j->setEmergency( true );
|
||||
}
|
||||
queue->enqueue( jl );
|
||||
}
|
||||
}
|
||||
|
||||
queue->start();
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include "ViewManager.h"
|
||||
|
||||
#include "utils/Logger.h"
|
||||
#include "viewpages/BlankViewStep.h"
|
||||
#include "viewpages/ViewStep.h"
|
||||
#include "ExecutionViewStep.h"
|
||||
#include "JobQueue.h"
|
||||
@ -172,6 +173,27 @@ ViewManager::onInstallationFailed( const QString& message, const QString& detail
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ViewManager::onInitFailed( const QStringList& modules)
|
||||
{
|
||||
QString title( tr( "Calamares Initialization Failed" ) );
|
||||
QString description( tr( "%1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution." ) );
|
||||
QString detailString;
|
||||
|
||||
if ( modules.count() > 0 )
|
||||
{
|
||||
description.append( tr( "<br/>The following modules could not be loaded:" ) );
|
||||
QStringList details;
|
||||
details << QLatin1Literal("<ul>");
|
||||
for( const auto& m : modules )
|
||||
details << QLatin1Literal("<li>") << m << QLatin1Literal("</li>");
|
||||
details << QLatin1Literal("</ul>");
|
||||
detailString = details.join( QString() );
|
||||
}
|
||||
|
||||
insertViewStep( 0, new BlankViewStep( title, description.arg( *Calamares::Branding::ShortProductName ), detailString ) );
|
||||
}
|
||||
|
||||
ViewStepList
|
||||
ViewManager::viewSteps() const
|
||||
{
|
||||
|
@ -117,6 +117,12 @@ public slots:
|
||||
*/
|
||||
void onInstallationFailed( const QString& message, const QString& details );
|
||||
|
||||
/** @brief Replaces the stack with a view step stating that initialization failed.
|
||||
*
|
||||
* @param modules a list of failed modules.
|
||||
*/
|
||||
void onInitFailed( const QStringList& modules );
|
||||
|
||||
signals:
|
||||
void currentStepChanged();
|
||||
void enlarge( QSize enlarge ) const; // See ViewStep::enlarge()
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -52,6 +52,8 @@ name: "foo" #the module name. must be unique and same as the parent di
|
||||
interface: "qtplugin" #can be: qtplugin, python, process, ...
|
||||
*/
|
||||
|
||||
static const char EMERGENCY[] = "emergency";
|
||||
|
||||
namespace Calamares
|
||||
{
|
||||
|
||||
@ -64,7 +66,7 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor,
|
||||
const QString& configFileName,
|
||||
const QString& moduleDirectory )
|
||||
{
|
||||
Module* m = nullptr;
|
||||
std::unique_ptr<Module> m;
|
||||
|
||||
QString typeString = moduleDescriptor.value( "type" ).toString();
|
||||
QString intfString = moduleDescriptor.value( "interface" ).toString();
|
||||
@ -79,12 +81,12 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor,
|
||||
{
|
||||
if ( intfString == "qtplugin" )
|
||||
{
|
||||
m = new ViewModule();
|
||||
m.reset( new ViewModule() );
|
||||
}
|
||||
else if ( intfString == "pythonqt" )
|
||||
{
|
||||
#ifdef WITH_PYTHONQT
|
||||
m = new PythonQtViewModule();
|
||||
m.reset( new PythonQtViewModule() );
|
||||
#else
|
||||
cError() << "PythonQt view modules are not supported in this version of Calamares.";
|
||||
#endif
|
||||
@ -96,16 +98,16 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor,
|
||||
{
|
||||
if ( intfString == "qtplugin" )
|
||||
{
|
||||
m = new CppJobModule();
|
||||
m.reset( new CppJobModule() );
|
||||
}
|
||||
else if ( intfString == "process" )
|
||||
{
|
||||
m = new ProcessJobModule();
|
||||
m.reset( new ProcessJobModule() );
|
||||
}
|
||||
else if ( intfString == "python" )
|
||||
{
|
||||
#ifdef WITH_PYTHON
|
||||
m = new PythonJobModule();
|
||||
m.reset( new PythonJobModule() );
|
||||
#else
|
||||
cError() << "Python modules are not supported in this version of Calamares.";
|
||||
#endif
|
||||
@ -130,7 +132,6 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor,
|
||||
else
|
||||
{
|
||||
cError() << "Bad module directory" << moduleDirectory << "for" << instanceId;
|
||||
delete m;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@ -144,10 +145,9 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor,
|
||||
catch ( YAML::Exception& e )
|
||||
{
|
||||
cError() << "YAML parser error " << e.what();
|
||||
delete m;
|
||||
return nullptr;
|
||||
}
|
||||
return m;
|
||||
return m.release();
|
||||
}
|
||||
|
||||
|
||||
@ -200,6 +200,9 @@ Module::loadConfigurationFile( const QString& configFileName ) //throws YAML::Ex
|
||||
}
|
||||
|
||||
m_configurationMap = CalamaresUtils::yamlMapToVariant( doc ).toMap();
|
||||
m_emergency = m_maybe_emergency
|
||||
&& m_configurationMap.contains( EMERGENCY )
|
||||
&& m_configurationMap[ EMERGENCY ].toBool();
|
||||
return;
|
||||
}
|
||||
else
|
||||
@ -276,13 +279,6 @@ Module::interfaceString() const
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
Module::isLoaded() const
|
||||
{
|
||||
return m_loaded;
|
||||
}
|
||||
|
||||
|
||||
QVariantMap
|
||||
Module::configurationMap()
|
||||
{
|
||||
@ -299,6 +295,11 @@ void
|
||||
Module::initFrom( const QVariantMap& moduleDescriptor )
|
||||
{
|
||||
m_name = moduleDescriptor.value( "name" ).toString();
|
||||
|
||||
if ( moduleDescriptor.contains( EMERGENCY ) )
|
||||
{
|
||||
m_maybe_emergency = moduleDescriptor[ EMERGENCY ].toBool();
|
||||
}
|
||||
}
|
||||
|
||||
} //ns
|
||||
|
@ -147,7 +147,7 @@ public:
|
||||
* @brief isLoaded reports on the loaded status of a module.
|
||||
* @return true if the module's loading phase has finished, otherwise false.
|
||||
*/
|
||||
virtual bool isLoaded() const;
|
||||
bool isLoaded() const { return m_loaded; }
|
||||
|
||||
/**
|
||||
* @brief loadSelf initialized the module.
|
||||
@ -155,6 +155,17 @@ public:
|
||||
*/
|
||||
virtual void loadSelf() = 0;
|
||||
|
||||
/**
|
||||
* @brief Is this an emergency module?
|
||||
*
|
||||
* An emergency module is run even if an error occurs
|
||||
* which would terminate Calamares earlier in the same
|
||||
* *exec* block. Emergency modules in later exec blocks
|
||||
* are not run (in the common case where there is only
|
||||
* one exec block, this doesn't really matter).
|
||||
*/
|
||||
bool isEmergency() const { return m_emergency; }
|
||||
|
||||
/**
|
||||
* @brief jobs returns any jobs exposed by this module.
|
||||
* @return a list of jobs (can be empty).
|
||||
@ -171,11 +182,15 @@ public:
|
||||
protected:
|
||||
explicit Module();
|
||||
virtual void initFrom( const QVariantMap& moduleDescriptor );
|
||||
bool m_loaded;
|
||||
QVariantMap m_configurationMap;
|
||||
|
||||
bool m_loaded = false;
|
||||
bool m_emergency = false; // Based on module and local config
|
||||
bool m_maybe_emergency = false; // Based on the module.desc
|
||||
|
||||
private:
|
||||
void loadConfigurationFile( const QString& configFileName ); //throws YAML::Exception
|
||||
|
||||
QString m_name;
|
||||
QStringList m_requiredModules;
|
||||
QString m_directory;
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -154,12 +155,33 @@ ModuleManager::moduleInstance( const QString& instanceKey )
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Search a list of instance descriptions for one matching @p module and @p id
|
||||
*
|
||||
* @return -1 on failure, otherwise index of the instance that matches.
|
||||
*/
|
||||
static int findCustomInstance( const Settings::InstanceDescriptionList& customInstances,
|
||||
const QString& module,
|
||||
const QString& id )
|
||||
{
|
||||
for ( int i = 0; i < customInstances.count(); ++i )
|
||||
{
|
||||
const auto& thisInstance = customInstances[ i ];
|
||||
if ( thisInstance.value( "module" ) == module &&
|
||||
thisInstance.value( "id" ) == id )
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ModuleManager::loadModules()
|
||||
{
|
||||
QTimer::singleShot( 0, this, [ this ]()
|
||||
{
|
||||
QList< QMap< QString, QString > > customInstances =
|
||||
QStringList failedModules;
|
||||
Settings::InstanceDescriptionList customInstances =
|
||||
Settings::instance()->customModuleInstances();
|
||||
|
||||
const auto modulesSequence = Settings::instance()->modulesSequence();
|
||||
@ -177,10 +199,9 @@ ModuleManager::loadModules()
|
||||
if ( moduleEntrySplit.length() < 1 ||
|
||||
moduleEntrySplit.length() > 2 )
|
||||
{
|
||||
cError() << "Wrong module entry format for module" << moduleEntry << '.';
|
||||
cError() << "Calamares will now quit.";
|
||||
qApp->exit( 1 );
|
||||
return;
|
||||
cError() << "Wrong module entry format for module" << moduleEntry;
|
||||
failedModules.append( moduleEntry );
|
||||
continue;
|
||||
}
|
||||
moduleName = moduleEntrySplit.first();
|
||||
instanceId = moduleEntrySplit.last();
|
||||
@ -191,37 +212,21 @@ ModuleManager::loadModules()
|
||||
{
|
||||
cError() << "Module" << moduleName << "not found in module search paths."
|
||||
<< Logger::DebugList( m_paths );
|
||||
cError() << "Calamares will now quit.";
|
||||
qApp->exit( 1 );
|
||||
return;
|
||||
failedModules.append( moduleName );
|
||||
continue;
|
||||
}
|
||||
|
||||
auto findCustomInstance =
|
||||
[ customInstances ]( const QString& module,
|
||||
const QString& id) -> int
|
||||
{
|
||||
for ( int i = 0; i < customInstances.count(); ++i )
|
||||
{
|
||||
auto thisInstance = customInstances[ i ];
|
||||
if ( thisInstance.value( "module" ) == module &&
|
||||
thisInstance.value( "id" ) == id )
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
};
|
||||
|
||||
if ( moduleName != instanceId ) //means this is a custom instance
|
||||
{
|
||||
if ( findCustomInstance( moduleName, instanceId ) > -1 )
|
||||
if ( int found = findCustomInstance( customInstances, moduleName, instanceId ) > -1 )
|
||||
{
|
||||
configFileName = customInstances[ findCustomInstance( moduleName, instanceId ) ].value( "config" );
|
||||
configFileName = customInstances[ found ].value( "config" );
|
||||
}
|
||||
else //ought to be a custom instance, but cannot find instance entry
|
||||
{
|
||||
cError() << "Custom instance" << moduleEntry << "not found in custom instances section.";
|
||||
cError() << "Calamares will now quit.";
|
||||
qApp->exit( 1 );
|
||||
return;
|
||||
failedModules.append( moduleEntry );
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
@ -241,10 +246,9 @@ ModuleManager::loadModules()
|
||||
m_loadedModulesByInstanceKey.value( instanceKey, nullptr );
|
||||
if ( thisModule && !thisModule->isLoaded() )
|
||||
{
|
||||
cError() << "Module" << instanceKey << "exists but not loaded."
|
||||
<< "\nCalamares will now quit.";
|
||||
qApp->exit( 1 );
|
||||
return;
|
||||
cError() << "Module" << instanceKey << "exists but not loaded.";
|
||||
failedModules.append( instanceKey );
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( thisModule && thisModule->isLoaded() )
|
||||
@ -260,8 +264,8 @@ ModuleManager::loadModules()
|
||||
m_moduleDirectoriesByModuleName.value( moduleName ) );
|
||||
if ( !thisModule )
|
||||
{
|
||||
cWarning() << "Module" << instanceKey << "cannot be created from descriptor.";
|
||||
Q_ASSERT( thisModule );
|
||||
cError() << "Module" << instanceKey << "cannot be created from descriptor" << configFileName;
|
||||
failedModules.append( instanceKey );
|
||||
continue;
|
||||
}
|
||||
// If it's a ViewModule, it also appends the ViewStep to the ViewManager.
|
||||
@ -269,8 +273,8 @@ ModuleManager::loadModules()
|
||||
m_loadedModulesByInstanceKey.insert( instanceKey, thisModule );
|
||||
if ( !thisModule->isLoaded() )
|
||||
{
|
||||
cWarning() << "Module" << moduleName << "loading FAILED";
|
||||
Q_ASSERT( thisModule->isLoaded() );
|
||||
cError() << "Module" << instanceKey << "loading FAILED.";
|
||||
failedModules.append( instanceKey );
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@ -292,7 +296,13 @@ ModuleManager::loadModules()
|
||||
}
|
||||
}
|
||||
}
|
||||
emit modulesLoaded();
|
||||
if ( !failedModules.isEmpty() )
|
||||
{
|
||||
ViewManager::instance()->onInitFailed( failedModules );
|
||||
emit modulesFailed( failedModules );
|
||||
}
|
||||
else
|
||||
emit modulesLoaded();
|
||||
} );
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -82,7 +83,8 @@ public:
|
||||
|
||||
signals:
|
||||
void initDone();
|
||||
void modulesLoaded();
|
||||
void modulesLoaded(); /// All of the modules were loaded successfully
|
||||
void modulesFailed( QStringList ); /// .. or not
|
||||
|
||||
private slots:
|
||||
void doInit();
|
||||
|
@ -1,6 +1,8 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2018, Raul Rodrigo Segura <raurodse@gmail.com>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -95,6 +97,9 @@ PythonQtViewModule::loadSelf()
|
||||
s_utils = new ::Utils( Calamares::JobQueue::instance()->globalStorage() );
|
||||
cala.addObject( "utils", s_utils );
|
||||
|
||||
// Append configuration object, in module PythonQt.calamares
|
||||
cala.addVariable("configuration", m_configurationMap);
|
||||
|
||||
// Basic stdout/stderr handling
|
||||
QObject::connect( PythonQt::self(), &PythonQt::pythonStdOut,
|
||||
[]( const QString& message )
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -52,27 +52,32 @@ ViewModule::loadSelf()
|
||||
PluginFactory* pf = qobject_cast< PluginFactory* >( m_loader->instance() );
|
||||
if ( !pf )
|
||||
{
|
||||
cDebug() << Q_FUNC_INFO << "No factory:" << m_loader->errorString();
|
||||
cWarning() << Q_FUNC_INFO << "No factory:" << m_loader->errorString();
|
||||
return;
|
||||
}
|
||||
|
||||
m_viewStep = pf->create< Calamares::ViewStep >();
|
||||
if ( !m_viewStep )
|
||||
{
|
||||
cDebug() << Q_FUNC_INFO << "create() failed" << m_loader->errorString();
|
||||
cWarning() << Q_FUNC_INFO << "create() failed" << m_loader->errorString();
|
||||
return;
|
||||
}
|
||||
// cDebug() << "ViewModule loading self for instance" << instanceKey()
|
||||
// << "\nViewModule at address" << this
|
||||
// << "\nCalamares::PluginFactory at address" << pf
|
||||
// << "\nViewStep at address" << m_viewStep;
|
||||
}
|
||||
|
||||
// TODO: allow internal view steps to be created here; they would
|
||||
// have to be linked into the main application somehow.
|
||||
|
||||
// If any method created the view step, use it now.
|
||||
if ( m_viewStep )
|
||||
{
|
||||
m_viewStep->setModuleInstanceKey( instanceKey() );
|
||||
m_viewStep->setConfigurationMap( m_configurationMap );
|
||||
ViewManager::instance()->addViewStep( m_viewStep );
|
||||
m_loaded = true;
|
||||
cDebug() << "ViewModule" << instanceKey() << "loading complete.";
|
||||
}
|
||||
else
|
||||
cWarning() << Q_FUNC_INFO << "No view step was created";
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -226,10 +226,20 @@ defaultFont()
|
||||
}
|
||||
|
||||
|
||||
QFont
|
||||
largeFont()
|
||||
{
|
||||
QFont f;
|
||||
f.setPointSize( defaultFontSize() + 4 );
|
||||
return f;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
setDefaultFontSize( int points )
|
||||
{
|
||||
s_defaultFontSize = points;
|
||||
s_defaultFontHeight = 0; // Recalculate on next call to defaultFontHeight()
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -115,6 +115,7 @@ UIDLLEXPORT void setDefaultFontSize( int points );
|
||||
UIDLLEXPORT int defaultFontSize(); // in points
|
||||
UIDLLEXPORT int defaultFontHeight(); // in pixels, DPI-specific
|
||||
UIDLLEXPORT QFont defaultFont();
|
||||
UIDLLEXPORT QFont largeFont();
|
||||
UIDLLEXPORT QSize defaultIconSize();
|
||||
|
||||
/**
|
||||
|
118
src/libcalamaresui/viewpages/BlankViewStep.cpp
Normal file
118
src/libcalamaresui/viewpages/BlankViewStep.cpp
Normal file
@ -0,0 +1,118 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Calamares is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "BlankViewStep.h"
|
||||
|
||||
#include "utils/CalamaresUtilsGui.h"
|
||||
|
||||
#include <QLabel>
|
||||
#include <QVBoxLayout>
|
||||
#include <QWidget>
|
||||
|
||||
namespace Calamares
|
||||
{
|
||||
|
||||
BlankViewStep::BlankViewStep( const QString& title, const QString& description, const QString& details, QObject* parent)
|
||||
: Calamares::ViewStep( parent )
|
||||
, m_widget( new QWidget() )
|
||||
{
|
||||
QBoxLayout* layout = new QVBoxLayout();
|
||||
|
||||
constexpr int const marginWidth = 10;
|
||||
constexpr int const spacingHeight = 10;
|
||||
|
||||
auto* label = new QLabel( title );
|
||||
label->setAlignment( Qt::AlignHCenter );
|
||||
label->setFont( CalamaresUtils::largeFont() );
|
||||
layout->addWidget( label );
|
||||
|
||||
label = new QLabel( description );
|
||||
label->setWordWrap( true );
|
||||
label->setMargin( marginWidth );
|
||||
layout->addSpacing( spacingHeight );
|
||||
layout->addWidget( label );
|
||||
|
||||
if ( !details.isEmpty() )
|
||||
{
|
||||
label = new QLabel( details );
|
||||
label->setMargin( marginWidth );
|
||||
layout->addSpacing( spacingHeight );
|
||||
layout->addWidget( label );
|
||||
}
|
||||
|
||||
layout->addStretch( 1 ); // Push the rest to the top
|
||||
|
||||
m_widget->setLayout( layout );
|
||||
}
|
||||
|
||||
BlankViewStep::~BlankViewStep()
|
||||
{
|
||||
}
|
||||
|
||||
QString
|
||||
BlankViewStep::prettyName() const
|
||||
{
|
||||
return tr( "Blank Page" );
|
||||
}
|
||||
|
||||
void
|
||||
BlankViewStep::back()
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
BlankViewStep::next()
|
||||
{
|
||||
}
|
||||
|
||||
bool
|
||||
BlankViewStep::isBackEnabled() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
BlankViewStep::isNextEnabled() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool
|
||||
BlankViewStep::isAtBeginning() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
BlankViewStep::isAtEnd() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
QWidget*
|
||||
BlankViewStep::widget()
|
||||
{
|
||||
return m_widget;
|
||||
}
|
||||
|
||||
Calamares::JobList
|
||||
BlankViewStep::jobs() const
|
||||
{
|
||||
return JobList();
|
||||
}
|
||||
|
||||
} // namespace
|
65
src/libcalamaresui/viewpages/BlankViewStep.h
Normal file
65
src/libcalamaresui/viewpages/BlankViewStep.h
Normal file
@ -0,0 +1,65 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Calamares is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef BLANKVIEWSTEP_H
|
||||
#define BLANKVIEWSTEP_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
#include <utils/PluginFactory.h>
|
||||
#include <viewpages/ViewStep.h>
|
||||
|
||||
class QWidget;
|
||||
|
||||
namespace Calamares
|
||||
{
|
||||
|
||||
/** @brief A "blank" view step, used for error and status reporting
|
||||
*
|
||||
* This view step never allows navigation (forward or back); it's a trap.
|
||||
* It displays a title and explanation, and optional details.
|
||||
*/
|
||||
class BlankViewStep : public Calamares::ViewStep
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit BlankViewStep( const QString& title, const QString& description, const QString& details = QString(), QObject* parent = nullptr );
|
||||
virtual ~BlankViewStep() override;
|
||||
|
||||
QString prettyName() const override;
|
||||
|
||||
QWidget* widget() override;
|
||||
|
||||
void next() override;
|
||||
void back() override;
|
||||
|
||||
bool isNextEnabled() const override;
|
||||
bool isBackEnabled() const override;
|
||||
|
||||
bool isAtBeginning() const override;
|
||||
bool isAtEnd() const override;
|
||||
|
||||
Calamares::JobList jobs() const override;
|
||||
|
||||
private:
|
||||
QWidget* m_widget;
|
||||
};
|
||||
|
||||
} // namespace
|
||||
#endif // BLANKVIEWSTEP_H
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -6,7 +6,7 @@ set( LIST_SKIPPED_MODULES "" )
|
||||
|
||||
if( BUILD_TESTING )
|
||||
add_executable( test_conf test_conf.cpp )
|
||||
target_link_libraries( test_conf ${YAMLCPP_LIBRARY} )
|
||||
target_link_libraries( test_conf ${YAMLCPP_LIBRARY} Qt5::Core )
|
||||
target_include_directories( test_conf PUBLIC ${YAMLCPP_INCLUDE_DIR} )
|
||||
endif()
|
||||
|
||||
|
@ -43,15 +43,21 @@ module's name, type, interface and possibly other properties. The name
|
||||
of the module as defined in `module.desc` must be the same as the name
|
||||
of the module's directory.
|
||||
|
||||
Module descriptors must have the following keys:
|
||||
Module descriptors **must** have the following keys:
|
||||
- *name* (an identifier; must be the same as the directory name)
|
||||
- *type* ("job" or "view")
|
||||
- *interface* (see below for the different interfaces; generally we
|
||||
refer to the kinds of modules by their interface)
|
||||
|
||||
Module descriptors **may** have the following keys:
|
||||
- *required* **unimplemented** (a list of modules which are required for this module
|
||||
to operate properly)
|
||||
- *emergency* (a boolean value, set to true to mark the module
|
||||
as an emergency module)
|
||||
|
||||
## Module-specific configuration
|
||||
|
||||
A Calamares module *may* read a module configuration file,
|
||||
A Calamares module **may** read a module configuration file,
|
||||
named `<modulename>.conf`. If such a file is present in the
|
||||
module's directory, it is shipped as a *default* configuration file.
|
||||
The module configuration file, if it exists, is a YAML 1.2 document
|
||||
@ -125,3 +131,23 @@ while the module type must be "job" or "jobmodule".
|
||||
The key *command* should have a string as value, which is passed to the
|
||||
shell -- remember to quote it properly.
|
||||
|
||||
## Emergency Modules
|
||||
|
||||
Only C++ modules and job modules may be emergency modules. If, during an
|
||||
*exec* step in the sequence, a module fails, installation as a whole fails
|
||||
and the install is aborted. If there are emergency modules in the **same**
|
||||
exec block, those will be executed before the installation is aborted.
|
||||
Non-emergency modules are not executed.
|
||||
|
||||
If an emergency-module fails while processing emergency-modules for
|
||||
another failed module, that failure is ignored and emergency-module
|
||||
processing continues.
|
||||
|
||||
Use the EMERGENCY keyword in the CMake description of a C++ module
|
||||
to generate a suitable `module.desc`.
|
||||
|
||||
A module that is marked as an emergency module in its module.desc
|
||||
must **also** set the *emergency* key to *true* in its configuration file.
|
||||
If it does not, the module is not considered to be an emergency module
|
||||
after all (this is so that you can have modules that have several
|
||||
instances, only some of which are actually needed for emergencies.
|
||||
|
@ -1,6 +1,9 @@
|
||||
# Bootloader configuration. The bootloader is installed to allow
|
||||
# the system to start (and pick one of the installed operating
|
||||
# systems to run).
|
||||
---
|
||||
# Define which bootloader you want to use for EFI installations
|
||||
# Possible options are 'grub' and 'systemd-boot'.
|
||||
# Possible options are 'grub', 'sb-shim' and 'systemd-boot'.
|
||||
efiBootLoader: "grub"
|
||||
|
||||
# systemd-boot configuration files settings, set kernel and initramfs file names
|
||||
@ -17,9 +20,13 @@ fallbackKernelLine: ", with _manjaro_kernel_ (fallback initramfs)"
|
||||
|
||||
# GRUB 2 binary names and boot directory
|
||||
# Some distributions (e.g. Fedora) use grub2-* (resp. /boot/grub2/) names.
|
||||
# These names are also used when using sb-shim, since that needs some
|
||||
# GRUB functionality (notably grub-probe) to work.
|
||||
#
|
||||
grubInstall: "grub-install"
|
||||
grubMkconfig: "grub-mkconfig"
|
||||
grubCfg: "/boot/grub/grub.cfg"
|
||||
grubProbe: "/usr/sbin/grub2-probe"
|
||||
|
||||
# Optionally set the bootloader ID to use for EFI. This is passed to
|
||||
# grub-install --bootloader-id.
|
||||
@ -29,8 +36,8 @@ grubCfg: "/boot/grub/grub.cfg"
|
||||
#
|
||||
# The ID is also used as a directory name within the EFI environment,
|
||||
# and the bootloader is copied from /boot/efi/EFI/<dirname>/ . When
|
||||
# setting the option here, take care to use only valid directory
|
||||
# names since no sanitizing is done.
|
||||
# setting the option here, keep in mind that the name is sanitized
|
||||
# (problematic characters, see above, are replaced).
|
||||
#
|
||||
# efiBootloaderId: "dirname"
|
||||
|
||||
|
@ -167,6 +167,30 @@ def create_loader(loader_path):
|
||||
loader_file.write(line)
|
||||
|
||||
|
||||
def efi_label():
|
||||
if "efiBootloaderId" in libcalamares.job.configuration:
|
||||
efi_bootloader_id = libcalamares.job.configuration[
|
||||
"efiBootloaderId"]
|
||||
else:
|
||||
branding = libcalamares.globalstorage.value("branding")
|
||||
efi_bootloader_id = branding["bootloaderEntryName"]
|
||||
|
||||
file_name_sanitizer = str.maketrans(" /", "_-")
|
||||
return efi_bootloader_id.translate(file_name_sanitizer)
|
||||
|
||||
|
||||
def efi_word_size():
|
||||
# get bitness of the underlying UEFI
|
||||
try:
|
||||
sysfile = open("/sys/firmware/efi/fw_platform_size", "r")
|
||||
efi_bitness = sysfile.read(2)
|
||||
except Exception:
|
||||
# if the kernel is older than 4.0, the UEFI bitness likely isn't
|
||||
# exposed to the userspace so we assume a 64 bit UEFI here
|
||||
efi_bitness = "64"
|
||||
return efi_bitness
|
||||
|
||||
|
||||
def install_systemd_boot(efi_directory):
|
||||
"""
|
||||
Installs systemd-boot as bootloader for EFI setups.
|
||||
@ -218,22 +242,8 @@ def install_grub(efi_directory, fw_type):
|
||||
if not os.path.isdir(install_efi_directory):
|
||||
os.makedirs(install_efi_directory)
|
||||
|
||||
if "efiBootloaderId" in libcalamares.job.configuration:
|
||||
efi_bootloader_id = libcalamares.job.configuration[
|
||||
"efiBootloaderId"]
|
||||
else:
|
||||
branding = libcalamares.globalstorage.value("branding")
|
||||
distribution = branding["bootloaderEntryName"]
|
||||
file_name_sanitizer = str.maketrans(" /", "_-")
|
||||
efi_bootloader_id = distribution.translate(file_name_sanitizer)
|
||||
# get bitness of the underlying UEFI
|
||||
try:
|
||||
sysfile = open("/sys/firmware/efi/fw_platform_size", "r")
|
||||
efi_bitness = sysfile.read(2)
|
||||
except Exception:
|
||||
# if the kernel is older than 4.0, the UEFI bitness likely isn't
|
||||
# exposed to the userspace so we assume a 64 bit UEFI here
|
||||
efi_bitness = "64"
|
||||
efi_bootloader_id = efi_label()
|
||||
efi_bitness = efi_word_size()
|
||||
|
||||
if efi_bitness == "32":
|
||||
efi_target = "i386-efi"
|
||||
@ -299,6 +309,57 @@ def install_grub(efi_directory, fw_type):
|
||||
"-o", libcalamares.job.configuration["grubCfg"]])
|
||||
|
||||
|
||||
def install_secureboot(efi_directory):
|
||||
"""
|
||||
Installs the secureboot shim in the system by calling efibootmgr.
|
||||
"""
|
||||
efi_bootloader_id = efi_label()
|
||||
|
||||
install_path = libcalamares.globalstorage.value("rootMountPoint")
|
||||
install_efi_directory = install_path + efi_directory
|
||||
|
||||
if efi_word_size() == "64":
|
||||
install_efi_bin = "shim64.efi"
|
||||
else:
|
||||
install_efi_bin = "shim.efi"
|
||||
|
||||
# Copied, roughly, from openSUSE's install script,
|
||||
# and pythonified. *disk* is something like /dev/sda,
|
||||
# while *drive* may return "(disk/dev/sda,gpt1)" ..
|
||||
# we're interested in the numbers in the second part
|
||||
# of that tuple.
|
||||
efi_drive = subprocess.check_output([
|
||||
libcalamares.job.configuration["grubProbe"],
|
||||
"-t", "drive", "--device-map=", install_efi_directory])
|
||||
efi_disk = subprocess.check_output([
|
||||
libcalamares.job.configuration["grubProbe"],
|
||||
"-t", "disk", "--device-map=", install_efi_directory])
|
||||
|
||||
efi_drive_partition = efi_drive.replace("(","").replace(")","").split(",")[1]
|
||||
# Get the first run of digits from the partition
|
||||
efi_partititon_number = None
|
||||
c = 0
|
||||
start = None
|
||||
while c < len(efi_drive_partition):
|
||||
if efi_drive_partition[c].isdigit() and start is None:
|
||||
start = c
|
||||
if not efi_drive_partition[c].isdigit() and start is not None:
|
||||
efi_drive_number = efi_drive_partition[start:c]
|
||||
break
|
||||
c += 1
|
||||
if efi_partititon_number is None:
|
||||
raise ValueError("No partition number found for %s" % install_efi_directory)
|
||||
|
||||
subprocess.call([
|
||||
"/usr/sbin/efibootmgr",
|
||||
"-c",
|
||||
"-w",
|
||||
"-L", efi_bootloader_id,
|
||||
"-d", efi_disk,
|
||||
"-p", efi_partititon_number,
|
||||
"-l", install_efi_directory + "/" + install_efi_bin])
|
||||
|
||||
|
||||
def vfat_correct_case(parent, name):
|
||||
for candidate in os.listdir(parent):
|
||||
if name.lower() == candidate.lower():
|
||||
@ -320,8 +381,14 @@ def prepare_bootloader(fw_type):
|
||||
|
||||
if efi_boot_loader == "systemd-boot" and fw_type == "efi":
|
||||
install_systemd_boot(efi_directory)
|
||||
else:
|
||||
elif efi_boot_loader == "sb-shim" and fw_type == "efi":
|
||||
install_secureboot(efi_directory)
|
||||
elif efi_boot_loader == "grub" or fw_type != "efi":
|
||||
install_grub(efi_directory, fw_type)
|
||||
else:
|
||||
libcalamares.utils.debug( "WARNING: the combination of "
|
||||
"boot-loader '{!s}' and firmware '{!s}' "
|
||||
"is not supported.".format(efi_boot_loader, fw_type) )
|
||||
|
||||
|
||||
def run():
|
||||
|
@ -66,7 +66,7 @@ struct ContextualProcessBinding
|
||||
void append( const QString& value, CalamaresUtils::CommandList* commands )
|
||||
{
|
||||
checks.append( ValueCheck( value, commands ) );
|
||||
if ( value == '*' )
|
||||
if ( value == QString( "*" ) )
|
||||
wildcard = commands;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -17,7 +17,10 @@
|
||||
#
|
||||
# As a special case, the value-check "*" matches any value, but **only**
|
||||
# if no other value-check matches. Use it as an *else* form for value-
|
||||
# checks. Take care to put the asterisk in quotes.
|
||||
# checks. Take care to put the asterisk in quotes. The value-check "*"
|
||||
# **also** matches a literal asterisk as value; a confusing corner case
|
||||
# is checking for an asterisk **and** having a wildcard match with
|
||||
# different commands. This is currently not possible.
|
||||
#
|
||||
# Global configuration variables are not checked in a deterministic
|
||||
# order, so do not rely on commands from one variable-check to
|
||||
|
@ -2,6 +2,7 @@
|
||||
*
|
||||
* Copyright 2014, Teo Mrnjavac <teo@kde.org> (original dummypython code)
|
||||
* Copyright 2016, Kevin Kofler <kevin.kofler@chello.at>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
Binary file not shown.
@ -8,8 +8,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-09-04 08:16-0400\n"
|
||||
"POT-Creation-Date: 2018-05-28 04:57-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: guillermo pacheco <guillopacheco@gmail.com>, 2018\n"
|
||||
"Language-Team: Spanish (Mexico) (https://www.transifex.com/calamares/teams/20061/es_MX/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@ -19,24 +20,24 @@ msgstr ""
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:84
|
||||
msgid "Click me!"
|
||||
msgstr ""
|
||||
msgstr "¡Haz clic en mí!"
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:94
|
||||
msgid "A new QLabel."
|
||||
msgstr ""
|
||||
msgstr "Una nueva QLabel."
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:97
|
||||
msgid "Dummy PythonQt ViewStep"
|
||||
msgstr ""
|
||||
msgstr "Vision del PythonQt ficticio"
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:183
|
||||
msgid "The Dummy PythonQt Job"
|
||||
msgstr ""
|
||||
msgstr "Trabajo del PythonQt ficticio"
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:186
|
||||
msgid "This is the Dummy PythonQt Job. The dummy job says: {}"
|
||||
msgstr ""
|
||||
msgstr "Este es el Trabajo PythonQt ficticio. El trabajo ficticio dice: {}"
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:190
|
||||
msgid "A status message for Dummy PythonQt Job."
|
||||
msgstr ""
|
||||
msgstr "Un mensaje de estado para el trabajo PythonQt ficticio."
|
||||
|
BIN
src/modules/dummypythonqt/lang/ko/LC_MESSAGES/dummypythonqt.mo
Normal file
BIN
src/modules/dummypythonqt/lang/ko/LC_MESSAGES/dummypythonqt.mo
Normal file
Binary file not shown.
@ -0,0 +1,42 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-05-28 04:57-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Language-Team: Korean (https://www.transifex.com/calamares/teams/20061/ko/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ko\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:84
|
||||
msgid "Click me!"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:94
|
||||
msgid "A new QLabel."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:97
|
||||
msgid "Dummy PythonQt ViewStep"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:183
|
||||
msgid "The Dummy PythonQt Job"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:186
|
||||
msgid "This is the Dummy PythonQt Job. The dummy job says: {}"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:190
|
||||
msgid "A status message for Dummy PythonQt Job."
|
||||
msgstr ""
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -7,7 +7,7 @@
|
||||
# Copyright 2015-2017, Teo Mrnjavac <teo@kde.org>
|
||||
# Copyright 2017, Alf Gaida <agaida@siduction.org>
|
||||
# Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
# Copyright 2017, Gabriel Craciunescu <crazy@frugalware.org>
|
||||
# Copyright 2017-2018, Gabriel Craciunescu <crazy@frugalware.org>
|
||||
#
|
||||
# Calamares is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -44,16 +44,21 @@ def modify_grub_default(partitions, root_mount_point, distributor):
|
||||
dracut_bin = libcalamares.utils.target_env_call(
|
||||
["sh", "-c", "which dracut"]
|
||||
)
|
||||
have_dracut = dracut_bin == 0 # Shell exit value 0 means success
|
||||
plymouth_bin = libcalamares.utils.target_env_call(
|
||||
["sh", "-c", "which plymouth"]
|
||||
)
|
||||
|
||||
# Shell exit value 0 means success
|
||||
have_plymouth = plymouth_bin == 0
|
||||
have_dracut = dracut_bin == 0
|
||||
|
||||
use_splash = ""
|
||||
swap_uuid = ""
|
||||
swap_outer_uuid = ""
|
||||
swap_outer_mappername = None
|
||||
|
||||
if libcalamares.globalstorage.contains("hasPlymouth"):
|
||||
if libcalamares.globalstorage.value("hasPlymouth"):
|
||||
use_splash = "splash"
|
||||
if have_plymouth:
|
||||
use_splash = "splash"
|
||||
|
||||
cryptdevice_params = []
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
# Copyright 2014 - 2015, Philip Müller <philm@manjaro.org>
|
||||
# Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||
# Copyright 2017, Alf Gaida <agaida@siduction.org>
|
||||
# Copyright 2017, Gabriel Craciunescu <crazy@frugalware.org>
|
||||
# Copyright 2017-2018, Gabriel Craciunescu <crazy@frugalware.org>
|
||||
#
|
||||
# Calamares is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Portions from the Manjaro Installation Framework
|
||||
* by Roland Singer <roland@manjaro.org>
|
||||
@ -95,8 +95,7 @@ KeyboardPage::KeyboardPage( QWidget* parent )
|
||||
QString model = m_models.value( text, "pc105" );
|
||||
|
||||
// Set Xorg keyboard model
|
||||
QProcess::execute( QLatin1Literal( "setxkbmap" ),
|
||||
QStringList() << "-model" << model );
|
||||
QProcess::execute( "setxkbmap", QStringList{ "-model", model } );
|
||||
} );
|
||||
|
||||
CALAMARES_RETRANSLATE( ui->retranslateUi( this ); )
|
||||
@ -356,11 +355,15 @@ KeyboardPage::onActivate()
|
||||
|
||||
lang.replace( '-', '_' ); // Normalize separators
|
||||
}
|
||||
if ( !lang.isEmpty() && specialCaseMap.contains( lang.toStdString() ) )
|
||||
if ( !lang.isEmpty() )
|
||||
{
|
||||
QLatin1String newLang( specialCaseMap.value( lang.toStdString() ).c_str() );
|
||||
cDebug() << " .. special case language" << lang << '>' << newLang;
|
||||
lang = newLang;
|
||||
std::string lang_s = lang.toStdString();
|
||||
if ( specialCaseMap.contains( lang_s ) )
|
||||
{
|
||||
QString newLang = QString::fromStdString( specialCaseMap.value( lang_s ) );
|
||||
cDebug() << " .. special case language" << lang << "becomes" << newLang;
|
||||
lang = newLang;
|
||||
}
|
||||
}
|
||||
if ( !lang.isEmpty() )
|
||||
{
|
||||
@ -478,9 +481,8 @@ KeyboardPage::onListVariantCurrentItemChanged( QListWidgetItem* current, QListWi
|
||||
connect( &m_setxkbmapTimer, &QTimer::timeout,
|
||||
this, [=]
|
||||
{
|
||||
QProcess::execute( QLatin1Literal( "setxkbmap" ),
|
||||
xkbmap_args( QStringList(), layout, variant ) );
|
||||
cDebug() << "xkbmap selection changed to: " << layout << "-" << variant;
|
||||
QProcess::execute( "setxkbmap", xkbmap_args( QStringList(), layout, variant ) );
|
||||
cDebug() << "xkbmap selection changed to: " << layout << '-' << variant;
|
||||
m_setxkbmapTimer.disconnect( this );
|
||||
} );
|
||||
m_setxkbmapTimer.start( QApplication::keyboardInputInterval() );
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Portions from the Manjaro Installation Framework
|
||||
* by Roland Singer <roland@manjaro.org>
|
||||
|
@ -3,6 +3,7 @@
|
||||
* Copyright 2015, Anke Boersma <demm@kaosx.us>
|
||||
* Copyright 2015, Alexandre Arnt <qtgzmanager@gmail.com>
|
||||
* Copyright 2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -57,7 +58,7 @@ LicensePage::LicensePage(QWidget *parent)
|
||||
CalamaresUtils::defaultFontHeight() * 3,
|
||||
CalamaresUtils::defaultFontHeight(),
|
||||
CalamaresUtils::defaultFontHeight() );
|
||||
|
||||
|
||||
ui->acceptFrame->setFrameStyle( QFrame::NoFrame | QFrame::Plain );
|
||||
ui->acceptFrame->setStyleSheet( "#acceptFrame { border: 1px solid red;"
|
||||
"background-color: #fff6f6;"
|
||||
|
@ -3,6 +3,7 @@
|
||||
* Copyright 2015, Anke Boersma <demm@kaosx.us>
|
||||
* Copyright 2015, Alexandre Arnt <qtgzmanager@gmail.com>
|
||||
* Copyright 2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include <yaml-cpp/yaml.h>
|
||||
|
||||
GeoIPJSON::GeoIPJSON(const QString& attribute)
|
||||
: GeoIP( attribute.isEmpty() ? QLatin1String( "time_zone" ) : attribute )
|
||||
: GeoIP( attribute.isEmpty() ? QStringLiteral( "time_zone" ) : attribute )
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -23,6 +23,10 @@
|
||||
#include "GeoIPXML.h"
|
||||
#endif
|
||||
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QNetworkReply>
|
||||
#include <QNetworkRequest>
|
||||
|
||||
#include <QtTest/QtTest>
|
||||
|
||||
QTEST_GUILESS_MAIN( GeoIPTests )
|
||||
@ -49,15 +53,15 @@ GeoIPTests::testJSON()
|
||||
GeoIPJSON handler;
|
||||
auto tz = handler.processReply( json_data_attribute );
|
||||
|
||||
QCOMPARE( tz.first, QLatin1String( "Europe" ) );
|
||||
QCOMPARE( tz.second, QLatin1String( "Amsterdam" ) );
|
||||
QCOMPARE( tz.first, QStringLiteral( "Europe" ) );
|
||||
QCOMPARE( tz.second, QStringLiteral( "Amsterdam" ) );
|
||||
|
||||
// JSON is quite tolerant
|
||||
tz = handler.processReply( "time_zone: \"Europe/Brussels\"" );
|
||||
QCOMPARE( tz.second, QLatin1String( "Brussels" ) );
|
||||
QCOMPARE( tz.second, QStringLiteral( "Brussels" ) );
|
||||
|
||||
tz = handler.processReply( "time_zone: America/New_York\n" );
|
||||
QCOMPARE( tz.first, QLatin1String( "America" ) );
|
||||
QCOMPARE( tz.first, QStringLiteral( "America" ) );
|
||||
}
|
||||
|
||||
void GeoIPTests::testJSONalt()
|
||||
@ -68,8 +72,8 @@ void GeoIPTests::testJSONalt()
|
||||
QCOMPARE( tz.first, QString() ); // Not found
|
||||
|
||||
tz = handler.processReply( "tarifa: 12\nzona_de_hora: Europe/Madrid" );
|
||||
QCOMPARE( tz.first, QLatin1String( "Europe" ) );
|
||||
QCOMPARE( tz.second, QLatin1String( "Madrid" ) );
|
||||
QCOMPARE( tz.first, QStringLiteral( "Europe" ) );
|
||||
QCOMPARE( tz.second, QStringLiteral( "Madrid" ) );
|
||||
}
|
||||
|
||||
void
|
||||
@ -118,8 +122,8 @@ GeoIPTests::testXML()
|
||||
GeoIPXML handler;
|
||||
auto tz = handler.processReply( xml_data_ubiquity );
|
||||
|
||||
QCOMPARE( tz.first, QLatin1String( "Europe" ) );
|
||||
QCOMPARE( tz.second, QLatin1String( "Amsterdam" ) );
|
||||
QCOMPARE( tz.first, QStringLiteral( "Europe" ) );
|
||||
QCOMPARE( tz.second, QStringLiteral( "Amsterdam" ) );
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -133,8 +137,8 @@ GeoIPTests::testXML2()
|
||||
GeoIPXML handler;
|
||||
auto tz = handler.processReply( data );
|
||||
|
||||
QCOMPARE( tz.first, QLatin1String( "America" ) );
|
||||
QCOMPARE( tz.second, QLatin1String( "North_Dakota/Beulah" ) ); // Without space
|
||||
QCOMPARE( tz.first, QStringLiteral( "America" ) );
|
||||
QCOMPARE( tz.second, QStringLiteral( "North_Dakota/Beulah" ) ); // Without space
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -145,8 +149,8 @@ void GeoIPTests::testXMLalt()
|
||||
GeoIPXML handler( "ZT" );
|
||||
|
||||
auto tz = handler.processReply( "<A><B/><C><ZT>Moon/Dark_side</ZT></C></A>" );
|
||||
QCOMPARE( tz.first, QLatin1String( "Moon" ) );
|
||||
QCOMPARE( tz.second, QLatin1String( "Dark_side" ) );
|
||||
QCOMPARE( tz.first, QStringLiteral( "Moon" ) );
|
||||
QCOMPARE( tz.second, QStringLiteral( "Dark_side" ) );
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -168,26 +172,26 @@ GeoIPTests::testXMLbad()
|
||||
|
||||
void GeoIPTests::testSplitTZ()
|
||||
{
|
||||
auto tz = GeoIP::splitTZString( QLatin1String("Moon/Dark_side") );
|
||||
QCOMPARE( tz.first, QLatin1String("Moon") );
|
||||
QCOMPARE( tz.second, QLatin1String("Dark_side") );
|
||||
auto tz = GeoIP::splitTZString( QStringLiteral("Moon/Dark_side") );
|
||||
QCOMPARE( tz.first, QStringLiteral("Moon") );
|
||||
QCOMPARE( tz.second, QStringLiteral("Dark_side") );
|
||||
|
||||
// Some providers return weirdly escaped data
|
||||
tz = GeoIP::splitTZString( QLatin1String("America\\/NewYork") );
|
||||
QCOMPARE( tz.first, QLatin1String("America") );
|
||||
QCOMPARE( tz.second, QLatin1String("NewYork") ); // That's not actually the zone name
|
||||
tz = GeoIP::splitTZString( QStringLiteral("America\\/NewYork") );
|
||||
QCOMPARE( tz.first, QStringLiteral("America") );
|
||||
QCOMPARE( tz.second, QStringLiteral("NewYork") ); // That's not actually the zone name
|
||||
|
||||
// Check that bogus data fails
|
||||
tz = GeoIP::splitTZString( QString() );
|
||||
QCOMPARE( tz.first, QString() );
|
||||
|
||||
tz = GeoIP::splitTZString( QLatin1String("America.NewYork") );
|
||||
tz = GeoIP::splitTZString( QStringLiteral("America.NewYork") );
|
||||
QCOMPARE( tz.first, QString() );
|
||||
|
||||
// Check that three-level is split properly and space is replaced
|
||||
tz = GeoIP::splitTZString( QLatin1String("America/North Dakota/Beulah") );
|
||||
QCOMPARE( tz.first, QLatin1String("America") );
|
||||
QCOMPARE( tz.second, QLatin1String("North_Dakota/Beulah") );
|
||||
tz = GeoIP::splitTZString( QStringLiteral("America/North Dakota/Beulah") );
|
||||
QCOMPARE( tz.first, QStringLiteral("America") );
|
||||
QCOMPARE( tz.second, QStringLiteral("North_Dakota/Beulah") );
|
||||
}
|
||||
|
||||
|
||||
@ -217,7 +221,7 @@ synchronous_get( const char* urlstring )
|
||||
|
||||
void GeoIPTests::testGet()
|
||||
{
|
||||
if ( !QProcessEnvironment::systemEnvironment().contains( QLatin1String("TEST_HTTP_GET") ) )
|
||||
if ( !QProcessEnvironment::systemEnvironment().contains( QStringLiteral("TEST_HTTP_GET") ) )
|
||||
{
|
||||
qDebug() << "Skipping HTTP GET tests";
|
||||
return;
|
||||
@ -228,8 +232,8 @@ void GeoIPTests::testGet()
|
||||
auto default_tz = default_handler.processReply( synchronous_get( "https://geoip.kde.org/v1/calamares" ) );
|
||||
|
||||
// This is bogus, because the test isn't always run by me
|
||||
// QCOMPARE( default_tz.first, QLatin1String("Europe") );
|
||||
// QCOMPARE( default_tz.second, QLatin1String("Amsterdam") );
|
||||
// QCOMPARE( default_tz.first, QStringLiteral("Europe") );
|
||||
// QCOMPARE( default_tz.second, QStringLiteral("Amsterdam") );
|
||||
QVERIFY( !default_tz.first.isEmpty() );
|
||||
QVERIFY( !default_tz.second.isEmpty() );
|
||||
|
||||
@ -238,12 +242,12 @@ void GeoIPTests::testGet()
|
||||
// services don't agree on the location of where the test is run.
|
||||
CHECK_GET( JSON, QString(), "https://geoip.kde.org/v1/calamares" ) // Check it's consistent
|
||||
CHECK_GET( JSON, QString(), "http://freegeoip.net/json/" ) // Original FreeGeoIP service
|
||||
CHECK_GET( JSON, QLatin1String("timezone"), "https://ipapi.co/json" ) // Different JSON
|
||||
CHECK_GET( JSON, QLatin1String("timezone"), "http://ip-api.com/json" )
|
||||
CHECK_GET( JSON, QStringLiteral("timezone"), "https://ipapi.co/json" ) // Different JSON
|
||||
CHECK_GET( JSON, QStringLiteral("timezone"), "http://ip-api.com/json" )
|
||||
|
||||
CHECK_GET( JSON, QLatin1String("location.time_zone"), "http://geoip.nekudo.com/api/" ) // 2-level JSON
|
||||
CHECK_GET( JSON, QStringLiteral("location.time_zone"), "http://geoip.nekudo.com/api/" ) // 2-level JSON
|
||||
|
||||
CHECK_GET( JSON, QLatin1String("Location.TimeZone"), "https://geoip.kde.org/debug" ) // 2-level JSON
|
||||
CHECK_GET( JSON, QStringLiteral("Location.TimeZone"), "https://geoip.kde.org/debug" ) // 2-level JSON
|
||||
|
||||
#ifdef HAVE_XML
|
||||
CHECK_GET( XML, QString(), "http://geoip.ubuntu.com/lookup" ) // Ubiquity's XML format
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include <QtXml/QDomDocument>
|
||||
|
||||
GeoIPXML::GeoIPXML( const QString& element )
|
||||
: GeoIP( element.isEmpty() ? QLatin1String( "TimeZone" ) : element )
|
||||
: GeoIP( element.isEmpty() ? QStringLiteral( "TimeZone" ) : element )
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -498,7 +498,7 @@ LocalePage::updateGlobalStorage()
|
||||
#ifndef DEBUG_TIMEZONES
|
||||
if ( Calamares::Settings::instance()->doChroot() )
|
||||
{
|
||||
QProcess ::execute( "timedatectl", // depends on systemd
|
||||
QProcess::execute( "timedatectl", // depends on systemd
|
||||
{ "set-timezone",
|
||||
location.region + '/' + location.zone } );
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -38,10 +38,10 @@ int main(int argc, char** argv)
|
||||
}
|
||||
|
||||
GeoIP* handler = nullptr;
|
||||
if ( QLatin1String( "json" ) == argv[1] )
|
||||
if ( QStringLiteral( "json" ) == argv[1] )
|
||||
handler = new GeoIPJSON;
|
||||
#ifdef HAVE_XML
|
||||
else if ( QLatin1String( "xml" ) == argv[1] )
|
||||
else if ( QStringLiteral( "xml" ) == argv[1] )
|
||||
handler = new GeoIPXML;
|
||||
#endif
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Originally from the Manjaro Installation Framework
|
||||
* by Roland Singer <roland@manjaro.org>
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Originally from the Manjaro Installation Framework
|
||||
* by Roland Singer <roland@manjaro.org>
|
||||
|
@ -6,6 +6,7 @@
|
||||
# Copyright 2014, Anke Boersma <demm@kaosx.us>
|
||||
# Copyright 2015, Philip Müller <philm@manjaro.org>
|
||||
# Copyright 2016, Teo Mrnjavac <teo@kde.org>
|
||||
# Copyright 2018, AlmAck <gluca86@gmail.com>
|
||||
#
|
||||
# Calamares is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
|
@ -2,7 +2,7 @@
|
||||
* Copyright 2016, Luca Giambonini <almack@chakraos.org>
|
||||
* Copyright 2016, Lisa Vitolo <shainer@chakraos.org>
|
||||
* Copyright 2017, Kyle Robbertze <krobbertze@gmail.com>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017, Gabriel Craciunescu <crazy@frugalware.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
|
@ -2,7 +2,7 @@
|
||||
* Copyright 2016, Luca Giambonini <almack@chakraos.org>
|
||||
* Copyright 2016, Lisa Vitolo <shainer@chakraos.org>
|
||||
* Copyright 2017, Kyle Robbertze <krobbertze@gmail.com>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -2,7 +2,7 @@
|
||||
* Copyright 2016, Luca Giambonini <almack@chakraos.org>
|
||||
* Copyright 2016, Lisa Vitolo <shainer@chakraos.org>
|
||||
* Copyright 2017, Kyle Robbertze <krobbertze@gmail.com>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright (c) 2017, Kyle Robbertze <kyle@aims.ac.za>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -2,6 +2,7 @@
|
||||
*
|
||||
* Copyright 2014, Aurélien Gâteau <agateau@kde.org>
|
||||
* Copyright 2015-2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -344,23 +344,29 @@ isEfiSystem()
|
||||
bool
|
||||
isEfiBootable( const Partition* candidate )
|
||||
{
|
||||
cDebug() << "Check EFI bootable" << candidate->partitionPath() << candidate->devicePath();
|
||||
cDebug() << " .. flags" << candidate->activeFlags();
|
||||
|
||||
auto flags = PartitionInfo::flags( candidate );
|
||||
|
||||
/* If bit 17 is set, old-style Esp flag, it's OK */
|
||||
if ( flags.testFlag( PartitionTable::FlagEsp ) )
|
||||
return true;
|
||||
|
||||
|
||||
/* Otherwise, if it's a GPT table, Boot (bit 0) is the same as Esp */
|
||||
const PartitionNode* root = candidate;
|
||||
while ( root && !root->isRoot() )
|
||||
{
|
||||
root = root->parent();
|
||||
cDebug() << " .. moved towards root" << (void *)root;
|
||||
}
|
||||
|
||||
// Strange case: no root found, no partition table node?
|
||||
if ( !root )
|
||||
return false;
|
||||
|
||||
const PartitionTable* table = dynamic_cast<const PartitionTable*>( root );
|
||||
cDebug() << " .. partition table" << (void *)table << "type" << ( table ? table->type() : PartitionTable::TableType::unknownTableType );
|
||||
return table && ( table->type() == PartitionTable::TableType::gpt ) &&
|
||||
flags.testFlag( PartitionTable::FlagBoot );
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2015-2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2017, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -2,7 +2,8 @@
|
||||
*
|
||||
* Copyright 2014, Aurélien Gâteau <agateau@kde.org>
|
||||
* Copyright 2014-2015, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2018, Caio Carvalho <caiojcarvalho@gmail.com>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014, Aurélien Gâteau <agateau@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014, Aurélien Gâteau <agateau@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014, Aurélien Gâteau <agateau@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2017, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2017, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014-2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -2,6 +2,9 @@
|
||||
*
|
||||
* Copyright 2014, Aurélien Gâteau <agateau@kde.org>
|
||||
* Copyright 2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2018, Andrius Štikonas <andrius@stikonas.eu>
|
||||
* Copyright 2018, Caio Carvalho <caiojcarvalho@gmail.com>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -2,6 +2,7 @@
|
||||
*
|
||||
* Copyright 2014, Aurélien Gâteau <agateau@kde.org>
|
||||
* Copyright 2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -2,6 +2,7 @@
|
||||
*
|
||||
* Copyright 2014, Aurélien Gâteau <agateau@kde.org>
|
||||
* Copyright 2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Flags handling originally from KDE Partition Manager,
|
||||
* Copyright 2008-2009, Volker Lanz <vl@fidra.de>
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014, Aurélien Gâteau <agateau@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -2,6 +2,8 @@
|
||||
*
|
||||
* Copyright 2014, Aurélien Gâteau <agateau@kde.org>
|
||||
* Copyright 2015-2016, Teo Mrnjavac <teo@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
* Copyright 2018, Andrius Štikonas <andrius@stikonas.eu>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2014, Aurélien Gâteau <agateau@kde.org>
|
||||
* Copyright 2018, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user