From 1155b6fc3d6668f0abd66ba7b71ff5208a5ca0d3 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 29 Mar 2021 14:14:05 +0200 Subject: [PATCH 01/43] [partition] Improve debug-output a little --- src/modules/partition/gui/ChoicePage.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index f6b49cb2f..ec11f6cc0 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -1402,7 +1402,7 @@ ChoicePage::setupActions() } else { - cDebug() << "Replace button suppressed because none can be replaced."; + cDebug() << "No partitions available for replace-action."; force_uncheck( m_grp, m_replaceButton ); } @@ -1412,7 +1412,7 @@ ChoicePage::setupActions() } else { - cDebug() << "Alongside button suppressed because none can be resized."; + cDebug() << "No partitions available for resize-action."; force_uncheck( m_grp, m_alongsideButton ); } @@ -1422,8 +1422,8 @@ ChoicePage::setupActions() } else { - cDebug() << "Erase button suppressed" - << "mount?" << atLeastOneIsMounted << "raid?" << isInactiveRAID; + cDebug() << "No partitions (" + << "any-mounted?" << atLeastOneIsMounted << "is-raid?" << isInactiveRAID << ") for erase-action."; force_uncheck( m_grp, m_eraseButton ); } From 70bf033dc001fc37e5e46bb2a3236b660aaf1e7b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 29 Mar 2021 14:17:40 +0200 Subject: [PATCH 02/43] [partition] Improve logging readability - The entire queue is one long output, so print them with SubEntry --- src/modules/partition/core/PartitionCoreModule.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index 058c10d18..14f9f70cb 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -659,10 +659,10 @@ PartitionCoreModule::dumpQueue() const cDebug() << "# Queue:"; for ( auto info : m_deviceInfos ) { - cDebug() << "## Device:" << info->device->name(); + cDebug() << Logger::SubEntry << "## Device:" << info->device->name(); for ( const auto& job : info->jobs() ) { - cDebug() << "-" << job->prettyName(); + cDebug() << Logger::SubEntry << "-" << job->prettyName(); } } } From 7b09344a8b7f55c1699caa3ae5bcd516c2b78791 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 29 Mar 2021 14:24:56 +0200 Subject: [PATCH 03/43] [partition] Update next-button You'll need a VM with 2 disks to demonstrate: - Configure Calamares to pick "none" as initial action on the partition page (this is a safe choice), - Enter partition page, - No action is selected, and the next> button is greyed out. - Click erase; notice next> is now available. - Change devices, notice no action is selected, but next> is still available. Clicking on it, though, does nothing. When changing to "no action", update the next-button's availability. --- src/modules/partition/gui/ChoicePage.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index ec11f6cc0..98435021c 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -517,6 +517,7 @@ ChoicePage::applyActionChoice( InstallChoice choice ) break; case InstallChoice::NoChoice: case InstallChoice::Manual: + updateNextEnabled(); break; } updateActionChoicePreview( choice ); From 0446f03613ab1ea1c45a7d6bc4c30ce73ecdb57b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 29 Mar 2021 14:38:39 +0200 Subject: [PATCH 04/43] [partition] Remove overly-chatty debugging from fs-name-lookup --- src/modules/partition/core/PartUtils.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/modules/partition/core/PartUtils.cpp b/src/modules/partition/core/PartUtils.cpp index 065f88d99..9243829cb 100644 --- a/src/modules/partition/core/PartUtils.cpp +++ b/src/modules/partition/core/PartUtils.cpp @@ -481,7 +481,6 @@ findFS( QString fsName, FileSystem::Type* fsType ) FileSystem::Type tmpType = FileSystem::typeForName( fsName, fsLanguage ); if ( tmpType != FileSystem::Unknown ) { - cDebug() << "Found filesystem" << fsName; if ( fsType ) { *fsType = tmpType; @@ -496,7 +495,6 @@ findFS( QString fsName, FileSystem::Type* fsType ) if ( 0 == QString::compare( fsName, FileSystem::nameForType( t, fsLanguage ), Qt::CaseInsensitive ) ) { QString fsRealName = FileSystem::nameForType( t, fsLanguage ); - cDebug() << "Filesystem name" << fsName << "translated to" << fsRealName; if ( fsType ) { *fsType = t; @@ -505,7 +503,7 @@ findFS( QString fsName, FileSystem::Type* fsType ) } } - cDebug() << "Filesystem" << fsName << "not found, using ext4"; + cWarning() << "Filesystem" << fsName << "not found, using ext4"; fsName = QStringLiteral( "ext4" ); // fsType can be used to check whether fsName was a valid filesystem. if ( fsType ) From 785042ccf3789bca4c56dda9336096b646c3c0bc Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 29 Mar 2021 14:41:56 +0200 Subject: [PATCH 05/43] [partition] Improve formatting of logging while loading configuration --- src/modules/partition/gui/PartitionViewStep.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/modules/partition/gui/PartitionViewStep.cpp b/src/modules/partition/gui/PartitionViewStep.cpp index 6755b64c6..c28290924 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -518,6 +518,8 @@ PartitionViewStep::onLeave() void PartitionViewStep::setConfigurationMap( const QVariantMap& configurationMap ) { + Logger::Once o; + m_config->setConfigurationMap( configurationMap ); // Copy the efiSystemPartition setting to the global storage. It is needed not only in @@ -528,7 +530,7 @@ PartitionViewStep::setConfigurationMap( const QVariantMap& configurationMap ) // Set up firmwareType global storage entry. This is used, e.g. by the bootloader module. QString firmwareType( PartUtils::isEfiSystem() ? QStringLiteral( "efi" ) : QStringLiteral( "bios" ) ); - cDebug() << "Setting firmwareType to" << firmwareType; + cDebug() << o << "Setting firmwareType to" << firmwareType; gs->insert( "firmwareType", firmwareType ); // Read and parse key efiSystemPartitionSize @@ -568,7 +570,7 @@ PartitionViewStep::setConfigurationMap( const QVariantMap& configurationMap ) QString fsRealName = PartUtils::findFS( fsName, &fsType ); if ( fsRealName == fsName ) { - cDebug() << "Partition-module setting *defaultFileSystemType*" << fsRealName; + cDebug() << o << "Partition-module setting *defaultFileSystemType*" << fsRealName; } else if ( fsType != FileSystem::Unknown ) { From d4f28e863f3ee5d5ff9cfa6a9d60b1bc3bf72c98 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 29 Mar 2021 15:23:55 +0200 Subject: [PATCH 06/43] [libcalamares] Allow rvalue Once to be used in logging --- src/libcalamares/utils/Logger.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/libcalamares/utils/Logger.h b/src/libcalamares/utils/Logger.h index 7b17754e8..9afc78b22 100644 --- a/src/libcalamares/utils/Logger.h +++ b/src/libcalamares/utils/Logger.h @@ -60,7 +60,7 @@ public: virtual ~CDebug(); friend CDebug& operator<<( CDebug&&, const FuncSuppressor& ); - friend CDebug& operator<<( CDebug&&, Once& ); + friend CDebug& operator<<( CDebug&&, const Once& ); private: QString m_msg; @@ -297,14 +297,14 @@ public: : m( true ) { } - friend CDebug& operator<<( CDebug&&, Once& ); + friend CDebug& operator<<( CDebug&&, const Once& ); private: - bool m = false; + mutable bool m = false; }; inline CDebug& -operator<<( CDebug&& s, Once& o ) +operator<<( CDebug&& s, const Once& o ) { if ( o.m ) { From 1fe337d6ed5d36836062240d49cd05706b30797c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 29 Mar 2021 15:25:57 +0200 Subject: [PATCH 07/43] [partition] Improve logging of device-checking - Avoid lots of function headers between the checks applied to each individual device. --- src/modules/partition/core/PartUtils.cpp | 30 +++++++++++++----------- src/modules/partition/core/PartUtils.h | 13 +++++++--- src/modules/partition/gui/ChoicePage.cpp | 12 ++++++---- 3 files changed, 33 insertions(+), 22 deletions(-) diff --git a/src/modules/partition/core/PartUtils.cpp b/src/modules/partition/core/PartUtils.cpp index 9243829cb..368d04af2 100644 --- a/src/modules/partition/core/PartUtils.cpp +++ b/src/modules/partition/core/PartUtils.cpp @@ -72,15 +72,15 @@ getRequiredStorageGiB( bool& ok ) } bool -canBeReplaced( Partition* candidate ) +canBeReplaced( Partition* candidate, const Logger::Once& o ) { if ( !candidate ) { - cDebug() << "Partition* is NULL"; + cDebug() << o << "Partition* is NULL"; return false; } - cDebug() << "Checking if" << convenienceName( candidate ) << "can be replaced."; + cDebug() << o << "Checking if" << convenienceName( candidate ) << "can be replaced."; if ( candidate->isMounted() ) { cDebug() << Logger::SubEntry << "NO, it is mounted."; @@ -100,7 +100,7 @@ canBeReplaced( Partition* candidate ) if ( availableStorageB > requiredStorageB ) { - cDebug() << "Partition" << convenienceName( candidate ) << "authorized for replace install."; + cDebug() << o << "Partition" << convenienceName( candidate ) << "authorized for replace install."; return true; } else @@ -117,15 +117,15 @@ canBeReplaced( Partition* candidate ) bool -canBeResized( Partition* candidate ) +canBeResized( Partition* candidate, const Logger::Once& o ) { if ( !candidate ) { - cDebug() << "Partition* is NULL"; + cDebug() << o << "Partition* is NULL"; return false; } - cDebug() << "Checking if" << convenienceName( candidate ) << "can be resized."; + cDebug() << o << "Checking if" << convenienceName( candidate ) << "can be resized."; if ( !candidate->fileSystem().supportGrow() || !candidate->fileSystem().supportShrink() ) { cDebug() << Logger::SubEntry << "NO, filesystem" << candidate->fileSystem().name() @@ -177,7 +177,7 @@ canBeResized( Partition* candidate ) if ( availableStorageB > advisedStorageB ) { - cDebug() << "Partition" << convenienceName( candidate ) << "authorized for resize + autopartition install."; + cDebug() << o << "Partition" << convenienceName( candidate ) << "authorized for resize + autopartition install."; return true; } else @@ -196,9 +196,9 @@ canBeResized( Partition* candidate ) bool -canBeResized( DeviceModel* dm, const QString& partitionPath ) +canBeResized( DeviceModel* dm, const QString& partitionPath, const Logger::Once& o ) { - cDebug() << "Checking if" << partitionPath << "can be resized."; + cDebug() << o << "Checking if" << partitionPath << "can be resized."; QString partitionWithOs = partitionPath; if ( partitionWithOs.startsWith( "/dev/" ) ) { @@ -208,7 +208,7 @@ canBeResized( DeviceModel* dm, const QString& partitionPath ) Partition* candidate = CalamaresUtils::Partition::findPartitionByPath( { dev }, partitionWithOs ); if ( candidate ) { - return canBeResized( candidate ); + return canBeResized( candidate, o ); } } cDebug() << Logger::SubEntry << "no Partition* found for" << partitionWithOs; @@ -357,6 +357,8 @@ findPartitionPathForMountPoint( const FstabEntryList& fstab, const QString& moun OsproberEntryList runOsprober( DeviceModel* dm ) { + Logger::Once o; + QString osproberOutput; QProcess osprober; osprober.setProgram( "os-prober" ); @@ -411,18 +413,18 @@ runOsprober( DeviceModel* dm ) QString homePath = findPartitionPathForMountPoint( fstabEntries, "/home" ); osproberEntries.append( - { prettyName, path, file, QString(), canBeResized( dm, path ), lineColumns, fstabEntries, homePath } ); + { prettyName, path, file, QString(), canBeResized( dm, path, o ), lineColumns, fstabEntries, homePath } ); osproberCleanLines.append( line ); } } if ( osproberCleanLines.count() > 0 ) { - cDebug() << "os-prober lines after cleanup:" << Logger::DebugList( osproberCleanLines ); + cDebug() << o << "os-prober lines after cleanup:" << Logger::DebugList( osproberCleanLines ); } else { - cDebug() << "os-prober gave no output."; + cDebug() << o << "os-prober gave no output."; } Calamares::JobQueue::instance()->globalStorage()->insert( "osproberLines", osproberCleanLines ); diff --git a/src/modules/partition/core/PartUtils.h b/src/modules/partition/core/PartUtils.h index f210cc3ab..aec345882 100644 --- a/src/modules/partition/core/PartUtils.h +++ b/src/modules/partition/core/PartUtils.h @@ -24,6 +24,10 @@ class DeviceModel; class Partition; +namespace Logger +{ + class Once; +} namespace PartUtils { @@ -41,26 +45,29 @@ QString convenienceName( const Partition* const candidate ); * @brief canBeReplaced checks whether the given Partition satisfies the criteria * for replacing it with the new OS. * @param candidate the candidate partition to replace. + * @param o applied to debug-logging. * @return true if the criteria are met, otherwise false. */ -bool canBeReplaced( Partition* candidate ); +bool canBeReplaced( Partition* candidate, const Logger::Once& o ); /** * @brief canBeReplaced checks whether the given Partition satisfies the criteria * for resizing (shrinking) it to make room for a new OS. * @param candidate the candidate partition to resize. + * @param o applied to debug-logging. * @return true if the criteria are met, otherwise false. */ -bool canBeResized( Partition* candidate ); +bool canBeResized( Partition* candidate, const Logger::Once& o ); /** * @brief canBeReplaced checks whether the given Partition satisfies the criteria * for resizing (shrinking) it to make room for a new OS. * @param dm the DeviceModel instance. * @param partitionPath the device path of the candidate partition to resize. + * @param o applied to debug-logging. * @return true if the criteria are met, otherwise false. */ -bool canBeResized( DeviceModel* dm, const QString& partitionPath ); +bool canBeResized( DeviceModel* dm, const QString& partitionPath, const Logger::Once& o ); /** * @brief runOsprober executes os-prober, parses the output and writes relevant diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index 98435021c..d6d7a9e3a 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -986,7 +986,7 @@ ChoicePage::updateActionChoicePreview( InstallChoice choice ) SelectionFilter filter = []( const QModelIndex& index ) { return PartUtils::canBeResized( - static_cast< Partition* >( index.data( PartitionModel::PartitionPtrRole ).value< void* >() ) ); + static_cast< Partition* >( index.data( PartitionModel::PartitionPtrRole ).value< void* >() ), Logger::Once() ); }; m_beforePartitionBarsView->setSelectionFilter( filter ); m_beforePartitionLabelsView->setSelectionFilter( filter ); @@ -1075,7 +1075,7 @@ ChoicePage::updateActionChoicePreview( InstallChoice choice ) { SelectionFilter filter = []( const QModelIndex& index ) { return PartUtils::canBeReplaced( - static_cast< Partition* >( index.data( PartitionModel::PartitionPtrRole ).value< void* >() ) ); + static_cast< Partition* >( index.data( PartitionModel::PartitionPtrRole ).value< void* >() ), Logger::Once() ); }; m_beforePartitionBarsView->setSelectionFilter( filter ); m_beforePartitionLabelsView->setSelectionFilter( filter ); @@ -1220,10 +1220,12 @@ operator<<( QDebug& s, PartitionIterator& it ) void ChoicePage::setupActions() { + Logger::Once o; + Device* currentDevice = selectedDevice(); OsproberEntryList osproberEntriesForCurrentDevice = getOsproberEntriesForDevice( currentDevice ); - cDebug() << "Setting up actions for" << currentDevice->deviceNode() << "with" + cDebug() << o << "Setting up actions for" << currentDevice->deviceNode() << "with" << osproberEntriesForCurrentDevice.count() << "entries."; if ( currentDevice->partitionTable() ) @@ -1269,12 +1271,12 @@ ChoicePage::setupActions() for ( auto it = PartitionIterator::begin( currentDevice ); it != PartitionIterator::end( currentDevice ); ++it ) { - if ( PartUtils::canBeResized( *it ) ) + if ( PartUtils::canBeResized( *it, o ) ) { cDebug() << Logger::SubEntry << "contains resizable" << it; atLeastOneCanBeResized = true; } - if ( PartUtils::canBeReplaced( *it ) ) + if ( PartUtils::canBeReplaced( *it, o ) ) { cDebug() << Logger::SubEntry << "contains replaceable" << it; atLeastOneCanBeReplaced = true; From 7a26143fbc3224d7023f748b14727d286831be71 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 29 Mar 2021 15:52:55 +0200 Subject: [PATCH 08/43] [partition] All action-changes should update next --- src/modules/partition/gui/ChoicePage.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index d6d7a9e3a..093f74b39 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -482,8 +482,6 @@ ChoicePage::applyActionChoice( InstallChoice choice ) [] {}, this ); } - updateNextEnabled(); - connect( m_beforePartitionBarsView->selectionModel(), SIGNAL( currentRowChanged( QModelIndex, QModelIndex ) ), this, @@ -507,7 +505,6 @@ ChoicePage::applyActionChoice( InstallChoice choice ) }, this ); } - updateNextEnabled(); connect( m_beforePartitionBarsView->selectionModel(), SIGNAL( currentRowChanged( QModelIndex, QModelIndex ) ), @@ -517,9 +514,9 @@ ChoicePage::applyActionChoice( InstallChoice choice ) break; case InstallChoice::NoChoice: case InstallChoice::Manual: - updateNextEnabled(); break; } + updateNextEnabled(); updateActionChoicePreview( choice ); } From 4912de589384f82e43db52943ec82b6a0063b698 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 9 Apr 2021 13:32:48 +0200 Subject: [PATCH 09/43] [partition] reduce warnings with unsafe-option - Move variables closer to where they are needed - Do the winnowing / selection always, but in unsafe mode return the un-winnowed list of devices - Massage build documentation a little --- src/modules/partition/CMakeLists.txt | 5 +++-- src/modules/partition/core/DeviceList.cpp | 16 +++++++++++----- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/modules/partition/CMakeLists.txt b/src/modules/partition/CMakeLists.txt index 07f1eaf5d..bffb2128c 100644 --- a/src/modules/partition/CMakeLists.txt +++ b/src/modules/partition/CMakeLists.txt @@ -8,8 +8,9 @@ # want to allow unsafe partitioning choices (e.g. doing things to the # current disk). Set DEBUG_PARTITION_UNSAFE to allow that (it turns off # some filtering of devices). If you **do** allow unsafe partitioning, -# it will error out unless you **also** switch **off** DEBUG_PARTITION_LAME, -# at which point you are welcome to shoot yourself in the foot. +# it will error out at runtime unless you **also** switch **off** +# DEBUG_PARTITION_LAME, at which point you are welcome to shoot +# yourself in the foot. option( DEBUG_PARTITION_UNSAFE "Allow unsafe partitioning choices." OFF ) option( DEBUG_PARTITION_LAME "Unsafe partitioning will error out on exec." ON ) diff --git a/src/modules/partition/core/DeviceList.cpp b/src/modules/partition/core/DeviceList.cpp index 2fce62e9d..395b6b484 100644 --- a/src/modules/partition/core/DeviceList.cpp +++ b/src/modules/partition/core/DeviceList.cpp @@ -118,8 +118,6 @@ erase( DeviceList& l, DeviceList::iterator& it ) QList< Device* > getDevices( DeviceType which ) { - bool writableOnly = ( which == DeviceType::WritableOnly ); - CoreBackend* backend = CoreBackendManager::self()->backend(); #if defined( WITH_KPMCORE4API ) DeviceList devices = backend->scanDevices( /* not includeReadOnly, not includeLoopback */ ScanFlag( 0 ) ); @@ -129,14 +127,18 @@ getDevices( DeviceType which ) #ifdef DEBUG_PARTITION_UNSAFE cWarning() << "Allowing unsafe partitioning choices." << devices.count() << "candidates."; + DeviceList unsafeDevices = devices; #ifdef DEBUG_PARTITION_LAME cDebug() << Logger::SubEntry << "it has been lamed, and will fail."; #endif -#else +#endif + cDebug() << "Removing unsuitable devices:" << devices.count() << "candidates."; + bool writableOnly = ( which == DeviceType::WritableOnly ); // Remove the device which contains / from the list for ( DeviceList::iterator it = devices.begin(); it != devices.end(); ) + { if ( !( *it ) ) { cDebug() << Logger::SubEntry << "Skipping nullptr device"; @@ -166,9 +168,13 @@ getDevices( DeviceType which ) { ++it; } -#endif - + } + cDebug() << Logger::SubEntry << "there are" << devices.count() << "devices left."; +#ifdef DEBUG_PARTITION_UNSAFE + return unsafeDevices; +#else return devices; +#endif } } // namespace PartUtils From eee536046b40cad6a14ce6e1aebcf453d1679c97 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 24 Apr 2021 17:40:37 +0200 Subject: [PATCH 10/43] [packagechooser] Sanitize includes - build was broken due to AppStream moving around - unnecessary includes - change name HAVE_XML -> HAVE_APPDATA for meaning --- src/modules/packagechooser/CMakeLists.txt | 2 +- src/modules/packagechooser/Config.cpp | 9 ++++++++- src/modules/packagechooser/PackageChooserViewStep.cpp | 10 ---------- src/modules/packagechooser/Tests.cpp | 2 +- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/modules/packagechooser/CMakeLists.txt b/src/modules/packagechooser/CMakeLists.txt index e6c2c5b1d..f08658037 100644 --- a/src/modules/packagechooser/CMakeLists.txt +++ b/src/modules/packagechooser/CMakeLists.txt @@ -15,7 +15,7 @@ option( WITH_APPDATA "Support appdata: items in PackageChooser (requires QtXml)" if ( WITH_APPDATA ) find_package(Qt5 COMPONENTS Xml) if ( Qt5Xml_FOUND ) - add_definitions( -DHAVE_XML ) + add_definitions( -DHAVE_APPDATA ) list( APPEND _extra_libraries Qt5::Xml ) list( APPEND _extra_src ItemAppData.cpp ) endif() diff --git a/src/modules/packagechooser/Config.cpp b/src/modules/packagechooser/Config.cpp index de5cb0813..106ae4538 100644 --- a/src/modules/packagechooser/Config.cpp +++ b/src/modules/packagechooser/Config.cpp @@ -9,10 +9,17 @@ #include "Config.h" -#ifdef HAVE_XML +#ifdef HAVE_APPDATA #include "ItemAppData.h" #endif +#ifdef HAVE_APPSTREAM +#include "ItemAppStream.h" +#include +#include +#endif + + #include "GlobalStorage.h" #include "JobQueue.h" #include "packages/Globals.h" diff --git a/src/modules/packagechooser/PackageChooserViewStep.cpp b/src/modules/packagechooser/PackageChooserViewStep.cpp index 53912ef36..9057004de 100644 --- a/src/modules/packagechooser/PackageChooserViewStep.cpp +++ b/src/modules/packagechooser/PackageChooserViewStep.cpp @@ -13,16 +13,6 @@ #include "PackageChooserPage.h" #include "PackageModel.h" -#ifdef HAVE_XML -#include "ItemAppData.h" -#endif - -#ifdef HAVE_APPSTREAM -#include "ItemAppStream.h" -#include -#include -#endif - #include "GlobalStorage.h" #include "JobQueue.h" #include "locale/TranslatableConfiguration.h" diff --git a/src/modules/packagechooser/Tests.cpp b/src/modules/packagechooser/Tests.cpp index c303f0488..1365b1452 100644 --- a/src/modules/packagechooser/Tests.cpp +++ b/src/modules/packagechooser/Tests.cpp @@ -9,7 +9,7 @@ #include "Tests.h" -#ifdef HAVE_XML +#ifdef HAVE_APPDATA #include "ItemAppData.h" #endif #ifdef HAVE_APPSTREAM From ffe32091215c63f9ab532fca3d830e830e581c03 Mon Sep 17 00:00:00 2001 From: demmm Date: Tue, 25 May 2021 22:52:10 +0200 Subject: [PATCH 11/43] [localeq], working Offline.qml --- src/modules/localeq/Offline.qml | 34 ++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/modules/localeq/Offline.qml b/src/modules/localeq/Offline.qml index 5a0d4eb3f..892eb97d3 100644 --- a/src/modules/localeq/Offline.qml +++ b/src/modules/localeq/Offline.qml @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * SPDX-FileCopyrightText: 2020 Anke Boersma + * SPDX-FileCopyrightText: 2020-2021 Anke Boersma * SPDX-License-Identifier: GPL-3.0-or-later * * Calamares is Free Software: see the License-Identifier above. @@ -21,6 +21,10 @@ Page { width: 800 //parent.width height: 500 + id: control + property string currentRegion + property string currentZone + StackView { id: stack anchors.fill: parent @@ -34,7 +38,7 @@ Page { anchors.horizontalCenter: parent.horizontalCenter color: Kirigami.Theme.textColor horizontalAlignment: Text.AlignCenter - text: qsTr("Select your preferred Region, or use the default one based on your current location.") + text: qsTr("Select your preferred Region, or use the default settings.") } ListView { @@ -62,18 +66,17 @@ Page { opacity: 0.7 } - // model loads, dozens of variations tried for currentIndex all fail model: config.regionModel - currentIndex: config.currentIndex + currentIndex: -1 delegate: ItemDelegate { - + hoverEnabled: true width: parent.width highlighted: ListView.isCurrentItem Label { - text: name + text: model.name Layout.fillHeight: true Layout.fillWidth: true width: parent.width @@ -89,8 +92,9 @@ Page { onClicked: { - list.model.currentIndex = index - // correct to use config.currentTimezoneName when index is updated? + list.currentIndex = index + control.currentRegion = model.name + config.regionalZonesModel.region = control.currentRegion tztext.text = qsTr("Timezone: %1").arg(config.currentTimezoneName) stack.push(zoneView) } @@ -136,9 +140,8 @@ Page { opacity: 0.7 } - // model loads, dozens of variations tried for currentIndex all fail model: config.regionalZonesModel - currentIndex: config.currentIndex + currentIndex : -1 delegate: ItemDelegate { hoverEnabled: true @@ -147,7 +150,7 @@ Page { Label { - text: name + text: model.name Layout.fillHeight: true Layout.fillWidth: true width: parent.width @@ -163,20 +166,21 @@ Page { onClicked: { - list2.model.currentIndex = index + list2.currentIndex = index list2.positionViewAtIndex(index, ListView.Center) - // correct to use config.currentTimezoneName when index is updated? + control.currentZone = model.name + config.setCurrentLocation(control.currentRegion, control.currentZone) tztext.text = qsTr("Timezone: %1").arg(config.currentTimezoneName) } } } - + Button { Layout.fillWidth: true anchors.verticalCenter: parent.verticalCenter anchors.verticalCenterOffset: -30 - anchors.left: parent.left + anchors.left: parent.left anchors.leftMargin: parent.width / 15 icon.name: "go-previous" text: qsTr("Zones") From 72f97ac163bf24b44cb55c2bfbe1a0f00f00a8a2 Mon Sep 17 00:00:00 2001 From: demmm Date: Wed, 26 May 2021 12:38:08 +0200 Subject: [PATCH 12/43] [localeq] Offline.qml visual improvements --- src/modules/localeq/Offline.qml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/modules/localeq/Offline.qml b/src/modules/localeq/Offline.qml index 892eb97d3..e5e6b31cf 100644 --- a/src/modules/localeq/Offline.qml +++ b/src/modules/localeq/Offline.qml @@ -49,7 +49,7 @@ Page { } width: parent.width / 2 - height: 250 + height: parent.height / 1.5 anchors.centerIn: parent anchors.verticalCenterOffset: -30 focus: true @@ -77,8 +77,8 @@ Page { Label { text: model.name - Layout.fillHeight: true - Layout.fillWidth: true + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter width: parent.width height: 30 color: highlighted ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor @@ -123,7 +123,7 @@ Page { } width: parent.width / 2 - height: 250 + height: parent.height / 1.5 anchors.centerIn: parent anchors.verticalCenterOffset: -30 focus: true @@ -151,8 +151,8 @@ Page { Label { text: model.name - Layout.fillHeight: true - Layout.fillWidth: true + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter width: parent.width height: 30 color: highlighted ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor From 2107efdd752af4839d6033c4e37798aac3ff5a0f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 May 2021 16:11:58 +0200 Subject: [PATCH 13/43] CI: remove Matrix script (it's now a regular action) --- ci/notify.sh | 52 ---------------------------------------------------- 1 file changed, 52 deletions(-) delete mode 100755 ci/notify.sh diff --git a/ci/notify.sh b/ci/notify.sh deleted file mode 100755 index d9a2a4f4b..000000000 --- a/ci/notify.sh +++ /dev/null @@ -1,52 +0,0 @@ -#! /bin/sh -# -# SPDX-FileCopyrightText: 2021 Adriaan de Groot -# SPDX-License-Identifier: BSD-2-Clause -# -### -# -# Sends a notification to wherever the notifications need to be sent. -# -# Called with the following environment (for tokens / secrets): -# MATRIX_ROOM -# MATRIX_TOKEN -# -# Called with the following arguments (in order): -# - "OK" or "FAIL" -# - github.workflow -# - github.repository -# - github.actor -# - github.event.ref -# - commit-message-summary (produced in the workflow) -# - github.event.compare -# - -test -z "$MATRIX_ROOM" && { echo "! No secrets" ; exit 1 ; } -test -z "$MATRIX_TOKEN" && { echo "! No secrets" ; exit 1 ; } - -STATUS="$1" - -WORKFLOW="$2" -REPOSITORY="$3" -ACTOR="$4" -EVENT="$5" -SUMMARY="$6" -COMPARE="$7" - -test "x$STATUS" = "xOK" -o "x$STATUS" = "xFAIL" || { echo "! Invalid status" ; exit 1 ; } - -test -z "$WORKFLOW" && { echo "! No event data" ; exit 1 ; } -test -z "$REPOSITORY" && { echo "! No event data" ; exit 1 ; } -test -z "$ACTOR" && { echo "! No event data" ; exit 1 ; } -test -z "$EVENT" && { echo "! No event data" ; exit 1 ; } -# It's ok for summary or the compare URL to be empty - -url="https://matrix.org/_matrix/client/r0/rooms/%21${MATRIX_ROOM}/send/m.room.message?access_token=${MATRIX_TOKEN}" -message_data=$( -{ - echo "${STATUS} ${WORKFLOW} in ${REPOSITORY} ${ACTOR} on ${EVENT}" - test -n "$SUMMARY" && echo ".. ${SUMMARY}" - test -n "$COMPARE" && echo ".. DIFF ${COMPARE}" -} | jq -Rs '{"msgtype": "m.text", "body":@text}' ) - -curl -s -XPOST -d "$message_data" "$url" > /dev/null From 03b2c8054b3bf1c769efcdaeac88e72a8ac509de Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 May 2021 16:12:17 +0200 Subject: [PATCH 14/43] CI: opensuse doesn't have curl installed by default --- .github/workflows/nightly-opensuse.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nightly-opensuse.yml b/.github/workflows/nightly-opensuse.yml index 59e45500b..88c30d136 100644 --- a/.github/workflows/nightly-opensuse.yml +++ b/.github/workflows/nightly-opensuse.yml @@ -24,7 +24,7 @@ jobs: - name: "prepare env" run: | zypper --non-interactive up - zypper --non-interactive in git-core jq + zypper --non-interactive in git-core jq curl # From deploycala.py zypper --non-interactive in \ "autoconf" \ From 2d8cf6aabf7b1052f4c674e66b8b62c87a49b484 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 26 May 2021 16:36:28 +0200 Subject: [PATCH 15/43] [partition] Fix build against KPMCore3 --- src/modules/partition/gui/PartitionViewStep.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/partition/gui/PartitionViewStep.cpp b/src/modules/partition/gui/PartitionViewStep.cpp index 903b03380..738c5d25d 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -406,6 +406,7 @@ shouldWarnForGPTOnBIOS( const PartitionCoreModule* core ) } auto [ r, device ] = core->bootLoaderModel()->findBootLoader( core->bootLoaderInstallPath() ); + Q_UNUSED(r); if ( device ) { auto* table = device->partitionTable(); @@ -416,7 +417,7 @@ shouldWarnForGPTOnBIOS( const PartitionCoreModule* core ) for ( const auto& partition : qAsConst( table->children() ) ) { using CalamaresUtils::Units::operator""_MiB; - if ( ( partition->activeFlags() & PartitionTable::Flag::BiosGrub ) + if ( ( partition->activeFlags() & KPM_PARTITION_FLAG( BiosGrub ) ) && ( partition->fileSystem().type() == FileSystem::Unformatted ) && ( partition->capacity() >= 8_MiB ) ) { From 1021db053debdd6b8ab5cd9724d9435a455726f1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 28 May 2021 12:55:52 +0200 Subject: [PATCH 16/43] CI: switch to shared Calamares actions entirely --- .github/actions/notify-push/action.yml | 20 -------------------- .github/workflows/issues.yml | 4 ++-- .github/workflows/nightly-debian.yml | 4 ++-- .github/workflows/nightly-neon.yml | 4 ++-- .github/workflows/nightly-opensuse.yml | 4 ++-- .github/workflows/push.yml | 4 ++-- 6 files changed, 10 insertions(+), 30 deletions(-) delete mode 100644 .github/actions/notify-push/action.yml diff --git a/.github/actions/notify-push/action.yml b/.github/actions/notify-push/action.yml deleted file mode 100644 index 80c89ea76..000000000 --- a/.github/actions/notify-push/action.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: 'Notify on Push' -description: 'Notify Matrix room' - -inputs: - room: - description: 'Matrix Room ID' - required: true - token: - description: 'Matrix Token' - required: true - message: - description: 'Message to send' - required: true - -runs: - using: "composite" - steps: - - shell: bash - run: | - curl -s -XPOST -d "$( echo "${{ inputs.message }}" | jq -Rsc '{"msgtype": "m.text", "body":@text}' )" "https://matrix.org/_matrix/client/r0/rooms/%21${{ inputs.room }}/send/m.room.message?access_token=${{ inputs.token }}" > /dev/null diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index a321d40ba..7d1d5a9f0 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -10,14 +10,14 @@ jobs: steps: - name: "notify: new" if: github.event.issue.state == 'open' - uses: ./.github/actions/notify-push + uses: calamares/actions/matrix-notify@v1 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} message: "OPENED ${{ github.event.issue.html_url }} by ${{ github.actor }} ${{ github.event.issue.title }}" - name: "notify: closed" if: github.event.issue.state != 'open' - uses: ./.github/actions/notify-push + uses: calamares/actions/matrix-notify@v1 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} diff --git a/.github/workflows/nightly-debian.yml b/.github/workflows/nightly-debian.yml index 53ff93019..7b56c8f76 100644 --- a/.github/workflows/nightly-debian.yml +++ b/.github/workflows/nightly-debian.yml @@ -84,14 +84,14 @@ jobs: run: make install VERBOSE=1 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} - uses: ./.github/actions/notify-push + uses: calamares/actions/matrix-notify@v1 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.pre_build.outputs.message }}" - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} - uses: ./.github/actions/notify-push + uses: calamares/actions/matrix-notify@v1 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} diff --git a/.github/workflows/nightly-neon.yml b/.github/workflows/nightly-neon.yml index b5c5b8ced..05f23beb8 100644 --- a/.github/workflows/nightly-neon.yml +++ b/.github/workflows/nightly-neon.yml @@ -83,14 +83,14 @@ jobs: retention-days: 3 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} - uses: ./.github/actions/notify-push + uses: calamares/actions/matrix-notify@v1 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.pre_build.outputs.message }}" - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} - uses: ./.github/actions/notify-push + uses: calamares/actions/matrix-notify@v1 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} diff --git a/.github/workflows/nightly-opensuse.yml b/.github/workflows/nightly-opensuse.yml index 88c30d136..24987cc7c 100644 --- a/.github/workflows/nightly-opensuse.yml +++ b/.github/workflows/nightly-opensuse.yml @@ -82,14 +82,14 @@ jobs: run: make install VERBOSE=1 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} - uses: ./.github/actions/notify-push + uses: calamares/actions/matrix-notify@v1 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.pre_build.outputs.message }}" - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} - uses: ./.github/actions/notify-push + uses: calamares/actions/matrix-notify@v1 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index c5f02c625..89fbf91b6 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -79,7 +79,7 @@ jobs: run: make install VERBOSE=1 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} - uses: ./.github/actions/notify-push + uses: calamares/actions/matrix-notify@v1 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} @@ -88,7 +88,7 @@ jobs: .. ${{ steps.pre_build.outputs.message }} - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} - uses: ./.github/actions/notify-push + uses: calamares/actions/matrix-notify@v1 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} From fe78ec494ffa48d3e12a293b2357561849281556 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 28 May 2021 17:04:54 +0200 Subject: [PATCH 17/43] CI: use shared prepare and build steps --- .github/workflows/push.yml | 55 +++++--------------------------------- 1 file changed, 6 insertions(+), 49 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 89fbf91b6..23d4b91e2 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -28,55 +28,12 @@ jobs: options: --tmpfs /build:rw --user 0:0 steps: - name: "prepare env" - run: | - sudo apt-get update - sudo apt-get -y install git-core jq - sudo apt-get -y install \ - build-essential \ - cmake \ - extra-cmake-modules \ - gettext \ - kio-dev \ - libatasmart-dev \ - libboost-python-dev \ - libkf5config-dev \ - libkf5coreaddons-dev \ - libkf5i18n-dev \ - libkf5iconthemes-dev \ - libkf5parts-dev \ - libkf5service-dev \ - libkf5solid-dev \ - libkpmcore-dev \ - libparted-dev \ - libpolkit-qt5-1-dev \ - libqt5svg5-dev \ - libqt5webkit5-dev \ - libyaml-cpp-dev \ - os-prober \ - pkg-config \ - python3-dev \ - qtbase5-dev \ - qtdeclarative5-dev \ - qttools5-dev \ - qttools5-dev-tools + uses: calamares/actions/prepare-neon@v2 - name: "prepare source" uses: actions/checkout@v2 - - name: "prepare build" - id: pre_build - run: | - test -n "$BUILDDIR" || { echo "! \$BUILDDIR not set" ; exit 1 ; } - mkdir -p $BUILDDIR - test -f $SRCDIR/CMakeLists.txt || { echo "! Missing $SRCDIR/CMakeLists.txt" ; exit 1 ; } - echo "::set-output name=message::"`git log -1 --abbrev-commit --pretty=oneline --no-decorate ${{ github.event.head_commit.id }}` - - name: "Calamares: cmake" - working-directory: ${{ env.BUILDDIR }} - run: cmake $CMAKE_ARGS $SRCDIR - - name: "Calamares: make" - working-directory: ${{ env.BUILDDIR }} - run: make -j2 VERBOSE=1 - - name: "Calamares: install" - working-directory: ${{ env.BUILDDIR }} - run: make install VERBOSE=1 + - name: "build" + id: build + uses: calamares/actions/generic-build@v2 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} uses: calamares/actions/matrix-notify@v1 @@ -85,7 +42,7 @@ jobs: room: ${{ secrets.MATRIX_ROOM }} message: | OK ${{ github.workflow }} in ${{ github.repository }} by ${{ github.actor }} on ${{ github.event.ref }} - .. ${{ steps.pre_build.outputs.message }} + .. ${{ steps.build.outputs.git-summary }} - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} uses: calamares/actions/matrix-notify@v1 @@ -94,5 +51,5 @@ jobs: room: ${{ secrets.MATRIX_ROOM }} message: | FAIL ${{ github.workflow }} in ${{ github.repository }} by ${{ github.actor }} on ${{ github.event.ref }} - .. ${{ steps.pre_build.outputs.message }} + .. ${{ steps.build.outputs.git-summary }} .. ${{ github.event.compare }} From 241c1840aa944ef9391e61d193cb6e558d53b922 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 28 May 2021 17:38:30 +0200 Subject: [PATCH 18/43] CI: chase new actions --- .github/workflows/issues.yml | 4 +- .github/workflows/nightly-debian.yml | 70 +++----------------------- .github/workflows/nightly-neon.yml | 61 ++++------------------ .github/workflows/nightly-opensuse.yml | 68 +++---------------------- .github/workflows/push.yml | 4 +- 5 files changed, 29 insertions(+), 178 deletions(-) diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 7d1d5a9f0..b24d192a1 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -10,14 +10,14 @@ jobs: steps: - name: "notify: new" if: github.event.issue.state == 'open' - uses: calamares/actions/matrix-notify@v1 + uses: calamares/actions/matrix-notify@v2 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} message: "OPENED ${{ github.event.issue.html_url }} by ${{ github.actor }} ${{ github.event.issue.title }}" - name: "notify: closed" if: github.event.issue.state != 'open' - uses: calamares/actions/matrix-notify@v1 + uses: calamares/actions/matrix-notify@v2 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} diff --git a/.github/workflows/nightly-debian.yml b/.github/workflows/nightly-debian.yml index 7b56c8f76..02b5fe386 100644 --- a/.github/workflows/nightly-debian.yml +++ b/.github/workflows/nightly-debian.yml @@ -22,77 +22,23 @@ jobs: options: --tmpfs /build:rw --user 0:0 steps: - name: "prepare env" - run: | - apt-get update - apt-get -y install git-core jq - apt-get -y install \ - build-essential \ - cmake \ - extra-cmake-modules \ - gettext \ - kio-dev \ - libatasmart-dev \ - libboost-python-dev \ - libkf5config-dev \ - libkf5coreaddons-dev \ - libkf5i18n-dev \ - libkf5iconthemes-dev \ - libkf5parts-dev \ - libkf5service-dev \ - libkf5solid-dev \ - libparted-dev \ - libpolkit-qt5-1-dev \ - libqt5svg5-dev \ - libqt5webkit5-dev \ - libyaml-cpp-dev \ - os-prober \ - pkg-config \ - python3-dev \ - qtbase5-dev \ - qtdeclarative5-dev \ - qttools5-dev \ - qttools5-dev-tools - # Same name as on KDE neon, different version - apt-get -y install libkpmcore-dev - # Additional dependencies - apt-get -y install \ - libappstreamqt-dev \ - libicu-dev \ - libkf5crash-dev \ - libkf5package-dev \ - libkf5plasma-dev \ - libpwquality-dev \ - libqt5webenginewidgets5 \ - qtwebengine5-dev + uses: calamares/actions/prepare-debian@v2 - name: "prepare source" uses: actions/checkout@v2 - - name: "prepare build" - id: pre_build - run: | - test -n "$BUILDDIR" || { echo "! \$BUILDDIR not set" ; exit 1 ; } - mkdir -p $BUILDDIR - test -f $SRCDIR/CMakeLists.txt || { echo "! Missing $SRCDIR/CMakeLists.txt" ; exit 1 ; } - echo "::set-output name=message::"`git log -1 --abbrev-commit --pretty=oneline --no-decorate ${{ github.event.head_commit.id }}` - - name: "Calamares: cmake" - working-directory: ${{ env.BUILDDIR }} - run: cmake $CMAKE_ARGS $SRCDIR - - name: "Calamares: make" - working-directory: ${{ env.BUILDDIR }} - run: make -j2 VERBOSE=1 - - name: "Calamares: install" - working-directory: ${{ env.BUILDDIR }} - run: make install VERBOSE=1 + - name: "build" + id: build + uses: calamares/actions/generic-build@v2 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v1 + uses: calamares/actions/matrix-notify@v2 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} - message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.pre_build.outputs.message }}" + message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v1 + uses: calamares/actions/matrix-notify@v2 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} - message: "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ steps.pre_build.outputs.message }}" + message: "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" diff --git a/.github/workflows/nightly-neon.yml b/.github/workflows/nightly-neon.yml index 05f23beb8..51a2b3fc6 100644 --- a/.github/workflows/nightly-neon.yml +++ b/.github/workflows/nightly-neon.yml @@ -22,59 +22,16 @@ jobs: options: --tmpfs /build:rw --user 0:0 steps: - name: "prepare env" - run: | - sudo apt-get update - sudo apt-get -y install git-core jq - sudo apt-get -y install \ - build-essential \ - cmake \ - extra-cmake-modules \ - gettext \ - kio-dev \ - libatasmart-dev \ - libboost-python-dev \ - libkf5config-dev \ - libkf5coreaddons-dev \ - libkf5i18n-dev \ - libkf5iconthemes-dev \ - libkf5parts-dev \ - libkf5service-dev \ - libkf5solid-dev \ - libkpmcore-dev \ - libparted-dev \ - libpolkit-qt5-1-dev \ - libqt5svg5-dev \ - libqt5webkit5-dev \ - libyaml-cpp-dev \ - os-prober \ - pkg-config \ - python3-dev \ - qtbase5-dev \ - qtdeclarative5-dev \ - qttools5-dev \ - qttools5-dev-tools + uses: calamares/actions/prepare-neon@v2 - name: "prepare source" uses: actions/checkout@v2 - - name: "prepare build" - id: pre_build - run: | - test -n "$BUILDDIR" || { echo "! \$BUILDDIR not set" ; exit 1 ; } - mkdir -p $BUILDDIR - test -f $SRCDIR/CMakeLists.txt || { echo "! Missing $SRCDIR/CMakeLists.txt" ; exit 1 ; } - echo "::set-output name=message::"`git log -1 --abbrev-commit --pretty=oneline --no-decorate ${{ github.event.head_commit.id }}` - - name: "Calamares: cmake" - working-directory: ${{ env.BUILDDIR }} - run: cmake $CMAKE_ARGS $SRCDIR - - name: "Calamares: make" - working-directory: ${{ env.BUILDDIR }} - run: make -j2 VERBOSE=1 - - name: "Calamares: install" - working-directory: ${{ env.BUILDDIR }} - run: make install VERBOSE=1 DESTDIR=${{ env.BUILDDIR }}/stage + - name: "build" + id: build + uses: calamares/actions/generic-build@v2 - name: "Calamares: archive" working-directory: ${{ env.BUILDDIR }} run: tar czf calamares.tar.gz stage - - name: "upload" + - name: "Calamares: upload" uses: actions/upload-artifact@v2 with: name: calamares-tarball @@ -83,15 +40,15 @@ jobs: retention-days: 3 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v1 + uses: calamares/actions/matrix-notify@v2 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} - message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.pre_build.outputs.message }}" + message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v1 + uses: calamares/actions/matrix-notify@v2 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} - message: "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ steps.pre_build.outputs.message }}" + message: "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" diff --git a/.github/workflows/nightly-opensuse.yml b/.github/workflows/nightly-opensuse.yml index 24987cc7c..ff395d5fb 100644 --- a/.github/workflows/nightly-opensuse.yml +++ b/.github/workflows/nightly-opensuse.yml @@ -22,75 +22,23 @@ jobs: options: --tmpfs /build:rw --user 0:0 steps: - name: "prepare env" - run: | - zypper --non-interactive up - zypper --non-interactive in git-core jq curl - # From deploycala.py - zypper --non-interactive in \ - "autoconf" \ - "automake" \ - "bison" \ - "flex" \ - "git" \ - "libtool" \ - "m4" \ - "make" \ - "cmake" \ - "extra-cmake-modules" \ - "gcc-c++" \ - "libqt5-qtbase-devel" \ - "libqt5-linguist-devel" \ - "libqt5-qtsvg-devel" \ - "libqt5-qtdeclarative-devel" \ - "libqt5-qtwebengine-devel" \ - "yaml-cpp-devel" \ - "libpolkit-qt5-1-devel" \ - "kservice-devel" \ - "kpackage-devel" \ - "kparts-devel" \ - "kcrash-devel" \ - "kpmcore-devel" \ - "plasma5-workspace-devel" \ - "plasma-framework-devel" \ - "libpwquality-devel" \ - "parted-devel" \ - "python3-devel" \ - "boost-devel" \ - "libboost_python-py3-*-devel" - # Additional dependencies - zypper --non-interactive in \ - libicu-devel \ - libAppStreamQt-devel \ - libatasmart-devel + uses: calamares/actions/prepare-opensuse@v2 - name: "prepare source" uses: actions/checkout@v2 - - name: "prepare build" - id: pre_build - run: | - test -n "$BUILDDIR" || { echo "! \$BUILDDIR not set" ; exit 1 ; } - mkdir -p $BUILDDIR - test -f $SRCDIR/CMakeLists.txt || { echo "! Missing $SRCDIR/CMakeLists.txt" ; exit 1 ; } - echo "::set-output name=message::"`git log -1 --abbrev-commit --pretty=oneline --no-decorate ${{ github.event.head_commit.id }}` - - name: "Calamares: cmake" - working-directory: ${{ env.BUILDDIR }} - run: cmake $CMAKE_ARGS $SRCDIR - - name: "Calamares: make" - working-directory: ${{ env.BUILDDIR }} - run: make -j2 VERBOSE=1 - - name: "Calamares: install" - working-directory: ${{ env.BUILDDIR }} - run: make install VERBOSE=1 + - name: "build" + id: build + uses: calamares/actions/generic-build@v2 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v1 + uses: calamares/actions/matrix-notify@v2 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} - message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.pre_build.outputs.message }}" + message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v1 + uses: calamares/actions/matrix-notify@v2 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} - message: "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ steps.pre_build.outputs.message }}" + message: "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 23d4b91e2..8d67f1865 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -36,7 +36,7 @@ jobs: uses: calamares/actions/generic-build@v2 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v1 + uses: calamares/actions/matrix-notify@v2 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} @@ -45,7 +45,7 @@ jobs: .. ${{ steps.build.outputs.git-summary }} - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v1 + uses: calamares/actions/matrix-notify@v2 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} From 516c8bf7b6b43a42eeb9cac7d3627103d671ec2a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sun, 30 May 2021 14:46:13 +0200 Subject: [PATCH 19/43] CI: fix artifact-building The generic-build step runs an install to the host system; for artifact- generation, we need it all centralized in a stage/ directory. Do that separately for the KDE neon builds that produce the artifact. --- .github/workflows/nightly-neon.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/nightly-neon.yml b/.github/workflows/nightly-neon.yml index 51a2b3fc6..2c964bedf 100644 --- a/.github/workflows/nightly-neon.yml +++ b/.github/workflows/nightly-neon.yml @@ -30,7 +30,9 @@ jobs: uses: calamares/actions/generic-build@v2 - name: "Calamares: archive" working-directory: ${{ env.BUILDDIR }} - run: tar czf calamares.tar.gz stage + run: | + make install DESTDIR=${{ env.BUILDDIR }}/stage + tar czf calamares.tar.gz stage - name: "Calamares: upload" uses: actions/upload-artifact@v2 with: From a72d59d23bbcd28dae59e90eb271d415526e5e08 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 31 May 2021 10:38:37 +0200 Subject: [PATCH 20/43] [partition] Don't mention IRC support for weird configs --- src/modules/partition/partition.conf | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/modules/partition/partition.conf b/src/modules/partition/partition.conf index e5de69659..7330f92b3 100644 --- a/src/modules/partition/partition.conf +++ b/src/modules/partition/partition.conf @@ -152,8 +152,6 @@ defaultFileSystemType: "ext4" # may arise as a consequence of setting this option to false. # It is strongly recommended that system integrators put in the work to support # LUKS unlocking support in GRUB2 and initramfs/dracut/mkinitcpio/etc. -# Support is offered to system integrators that wish to do so, through the -# Calamares bug tracker, as well as in #calamares on Freenode. # For more information on setting up GRUB2 for Calamares with LUKS, see # https://github.com/calamares/calamares/wiki/Deploy-LUKS # From 1825ae1de4c3c6996ceaf5afb38621b58324c450 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 31 May 2021 10:41:49 +0200 Subject: [PATCH 21/43] Docs: IRC links to Libera.Chat --- CONTRIBUTING.md | 2 +- README.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a8114bef2..c28163137 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -36,8 +36,8 @@ that chat window open because it can easily take a few hours for someone to notice a message. The Matrix room is relatively new. -* [![Chat on IRC](https://img.shields.io/badge/IRC-Freenode%20%23calamares-green)](https://webchat.freenode.net/?randomnick=1&channels=%23calamares) * [![Join us on Matrix](https://img.shields.io/badge/Matrix-%23calamares:kde.org-blue)](https://webchat.kde.org/#/room/%23calamares:kde.org) +* [![Chat on IRC](https://img.shields.io/badge/IRC-Libera.Chat%20%23calamares-green)](https://kiwiirc.com/client/irc.libera.chat/#calamares) ## General Guidelines diff --git a/README.md b/README.md index 252e00ea0..7c674bee4 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ [![GitHub license](https://img.shields.io/github/license/calamares/calamares.svg)](https://github.com/calamares/calamares/blob/calamares/LICENSE) -| [Report a Bug](https://github.com/calamares/calamares/issues/new) | [Translate](https://www.transifex.com/projects/p/calamares/) | [Contribute](CONTRIBUTING.md) | [IRC: Freenode #calamares](https://webchat.freenode.net/?channel=#calamares?nick=guest) | [Matrix: #calamares:kde.org](https://webchat.kde.org/#/room/%23calamares:kde.org) | [Wiki](https://github.com/calamares/calamares/wiki) | +| [Report a Bug](https://github.com/calamares/calamares/issues/new) | [Translate](https://www.transifex.com/projects/p/calamares/) | [Contribute](CONTRIBUTING.md) | [IRC: Libera.Chat #calamares](https://kiwiirc.com/client/irc.libera.chat/#calamares) | [Matrix: #calamares:kde.org](https://webchat.kde.org/#/room/%23calamares:kde.org) | [Wiki](https://github.com/calamares/calamares/wiki) | |:--:|:--:|:--:|:--:|:--:|:--:| @@ -61,5 +61,5 @@ Regular Calamares development chit-chat happens on old-school IRC (no registration required). Responsiveness is best during the day in Europe, but feel free to idle. The Matrix room is relatively new. -* [![Chat on IRC](https://img.shields.io/badge/IRC-Freenode%20%23calamares-green)](https://webchat.freenode.net/?randomnick=1&channels=%23calamares) * [![Join us on Matrix](https://img.shields.io/badge/Matrix-%23calamares:kde.org-blue)](https://webchat.kde.org/#/room/%23calamares:kde.org) +* [![Chat on IRC](https://img.shields.io/badge/IRC-Libera.Chat%20%23calamares-green)](https://kiwiirc.com/client/irc.libera.chat/#calamares) From ddcfd861cc0c40dde9e4327014c73ca5c7aa7657 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 31 May 2021 11:03:24 +0200 Subject: [PATCH 22/43] Changes: note communications --- CHANGES | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGES b/CHANGES index f678ecd68..b67d2d30a 100644 --- a/CHANGES +++ b/CHANGES @@ -17,6 +17,10 @@ This release contains contributions from (alphabetically by first name): - Joe Kamprad - Lisa Vitolo (blast from the past!) +In project news, chat (instant-messaging) communications has largely +moved to Matrix and Libera.Chat. CI notifications -- issues and build +results -- are sent to Matrix only. + ## Core ## - The CMake modules for consumption by external modules (e.g. the calamares-extensions repository, but also any other modules built From 716328cafb95a8f879bf975ee95a3821af206d51 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 31 May 2021 11:26:49 +0200 Subject: [PATCH 23/43] [libcalamares] Un-clog Logging - Map QtMsgType -- used by qDebug() and qWarning() -- to levels used by Calamares in a consistent fashion. - Drop unused log levels (INFO, EXTRA unused in any Calamares code). --- src/libcalamares/utils/Logger.cpp | 17 +++++++++-------- src/libcalamares/utils/Logger.h | 2 -- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/libcalamares/utils/Logger.cpp b/src/libcalamares/utils/Logger.cpp index 262ff59e1..8cce91410 100644 --- a/src/libcalamares/utils/Logger.cpp +++ b/src/libcalamares/utils/Logger.cpp @@ -33,7 +33,7 @@ static unsigned int s_threshold = #ifdef QT_NO_DEBUG Logger::LOG_DISABLE; #else - Logger::LOGEXTRA + 1; // Comparison is < in log() function + Logger::LOGDEBUG; // Comparison is < in log() function #endif static QMutex s_mutex; @@ -105,20 +105,21 @@ CalamaresLogHandler( QtMsgType type, const QMessageLogContext&, const QString& m const char* message = ba.constData(); QMutexLocker locker( &s_mutex ); + switch ( type ) { - case QtDebugMsg: + case QtInfoMsg: log( message, LOGVERBOSE ); break; - - case QtInfoMsg: - log( message, 1 ); + case QtDebugMsg: + log( message, LOGDEBUG ); break; - - case QtCriticalMsg: case QtWarningMsg: + log( message, LOGWARNING ); + break; + case QtCriticalMsg: case QtFatalMsg: - log( message, 0 ); + log( message, LOGERROR ); break; } } diff --git a/src/libcalamares/utils/Logger.h b/src/libcalamares/utils/Logger.h index b2e8cf0e8..6736ba740 100644 --- a/src/libcalamares/utils/Logger.h +++ b/src/libcalamares/utils/Logger.h @@ -47,8 +47,6 @@ enum LOG_DISABLE = 0, LOGERROR = 1, LOGWARNING = 2, - LOGINFO = 3, - LOGEXTRA = 5, LOGDEBUG = 6, LOGVERBOSE = 8 }; From b68e53513198fbc898467b300bf8e90b61808b31 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 31 May 2021 11:39:13 +0200 Subject: [PATCH 24/43] [libcalamares] Log to file and stdout consistently - The log **file** got every QDebug object, while stdout only got the ones of sufficient logging level. A CDebug object checks the logging level before writing anything -- so those already were consistent, but any qDebug() in the program (not cDebug()!) would reach the writing-function anyway, and so log to the file. Fix this weird inconsistency by checking log-level just once, for both writes. --- src/libcalamares/utils/Logger.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/libcalamares/utils/Logger.cpp b/src/libcalamares/utils/Logger.cpp index 8cce91410..c83fea4ae 100644 --- a/src/libcalamares/utils/Logger.cpp +++ b/src/libcalamares/utils/Logger.cpp @@ -69,7 +69,7 @@ logLevel() static void log( const char* msg, unsigned int debugLevel, bool withTime = true ) { - if ( true ) + if ( logLevelEnabled( debugLevel ) ) { QMutexLocker lock( &s_mutex ); @@ -81,11 +81,7 @@ log( const char* msg, unsigned int debugLevel, bool withTime = true ) << QString::number( debugLevel ).toUtf8().data() << "]: " << msg << std::endl; logfile.flush(); - } - if ( logLevelEnabled( debugLevel ) ) - { - QMutexLocker lock( &s_mutex ); if ( withTime ) { std::cout << QTime::currentTime().toString().toUtf8().data() << " [" From a57a1fdbd8358d2bff1e2c38abbbe9a5c4387089 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 4 Jun 2021 13:32:22 +0200 Subject: [PATCH 25/43] [partition] Improve logging while collecting devices --- .../partition/core/PartitionCoreModule.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index ddfc6c1cb..912d46546 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -255,13 +255,22 @@ PartitionCoreModule::doInit() DeviceList devices = PartUtils::getDevices( PartUtils::DeviceType::WritableOnly ); cDebug() << "LIST OF DETECTED DEVICES:"; - cDebug() << "node\tcapacity\tname\tprettyName"; + cDebug() << Logger::SubEntry << "node\tcapacity\tname\tprettyName"; for ( auto device : devices ) { - // Gives ownership of the Device* to the DeviceInfo object - auto deviceInfo = new DeviceInfo( device ); - m_deviceInfos << deviceInfo; - cDebug() << device->deviceNode() << device->capacity() << device->name() << device->prettyName(); + cDebug() << Logger::SubEntry << Logger::Pointer(device); + if ( device ) + { + // Gives ownership of the Device* to the DeviceInfo object + auto deviceInfo = new DeviceInfo( device ); + m_deviceInfos << deviceInfo; + cDebug() << Logger::SubEntry << device->deviceNode() << device->capacity() << device->name() + << device->prettyName(); + } + else + { + cDebug() << Logger::SubEntry << "(skipped null device)"; + } } cDebug() << Logger::SubEntry << devices.count() << "devices detected."; m_deviceModel->init( devices ); From 236bd0eb96e316d9a702acef83e9769268f334e9 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 4 Jun 2021 14:46:00 +0200 Subject: [PATCH 26/43] CI: adjust clang-formatting - duplicate the file to .base - drop 10-and-later setting that was commented out - specific setting for lambda-formatting (this seems to be the default) --- .clang-format | 2 +- .clang-format.base | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 .clang-format.base diff --git a/.clang-format b/.clang-format index aa4aa0e2a..2cd8d678a 100644 --- a/.clang-format +++ b/.clang-format @@ -8,6 +8,7 @@ AlignEscapedNewlines: DontAlign AllowAllParametersOfDeclarationOnNextLine: "false" AllowShortFunctionsOnASingleLine: Inline AllowShortIfStatementsOnASingleLine: "false" +AllowShortLambdasOnASingleLine: All AllowShortLoopsOnASingleLine: "false" AlwaysBreakAfterReturnType: TopLevelDefinitions AlwaysBreakTemplateDeclarations: Yes @@ -28,7 +29,6 @@ ReflowComments: "false" SortIncludes: "true" SpaceAfterCStyleCast: "false" SpacesBeforeTrailingComments: "2" -# SpaceInEmptyBlock: "true" SpacesInAngles: "true" SpacesInParentheses: "true" SpacesInSquareBrackets: "true" diff --git a/.clang-format.base b/.clang-format.base new file mode 100644 index 000000000..2cd8d678a --- /dev/null +++ b/.clang-format.base @@ -0,0 +1,35 @@ +# SPDX-FileCopyrightText: no +# SPDX-License-Identifier: CC0-1.0 +--- +BasedOnStyle: WebKit + +AlignAfterOpenBracket: Align +AlignEscapedNewlines: DontAlign +AllowAllParametersOfDeclarationOnNextLine: "false" +AllowShortFunctionsOnASingleLine: Inline +AllowShortIfStatementsOnASingleLine: "false" +AllowShortLambdasOnASingleLine: All +AllowShortLoopsOnASingleLine: "false" +AlwaysBreakAfterReturnType: TopLevelDefinitions +AlwaysBreakTemplateDeclarations: Yes +BinPackArguments: "false" +BinPackParameters: "false" +BreakBeforeBraces: Allman +BreakBeforeTernaryOperators: "true" +BreakConstructorInitializers: BeforeComma +ColumnLimit: 120 +Cpp11BracedListStyle: "false" +FixNamespaceComments: "true" +IncludeBlocks: Preserve +IndentWidth: "4" +MaxEmptyLinesToKeep: "2" +NamespaceIndentation: None +PointerAlignment: Left +ReflowComments: "false" +SortIncludes: "true" +SpaceAfterCStyleCast: "false" +SpacesBeforeTrailingComments: "2" +SpacesInAngles: "true" +SpacesInParentheses: "true" +SpacesInSquareBrackets: "true" +Standard: Cpp11 From f3c57723df264a3e6b3ef47d6b9f7b38029776f9 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 4 Jun 2021 14:47:26 +0200 Subject: [PATCH 27/43] CI: make clang-format wrangling more flexible Various clang-format versions have different defaults and don't understand the same options, so adjust to having files per-formatting-version to patch things up. --- ci/calamaresstyle | 75 ++++++++++++++++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 23 deletions(-) diff --git a/ci/calamaresstyle b/ci/calamaresstyle index 9c0964bd2..3718a8506 100755 --- a/ci/calamaresstyle +++ b/ci/calamaresstyle @@ -5,12 +5,7 @@ # SPDX-License-Identifier: BSD-2-Clause # # Calls astyle with settings matching Calamares coding style -# Requires astyle >= 2.04 and clang-format-7 -8 or -9 -# -# Clang-format-10 is **not** supported, since it changes a default -# that re-introduces a space into empty function bodies; this -# can be turned off with a style setting, but that breaks -# older format versions which don't recognize the setting. +# Requires astyle >= 2.04 and clang-format-8 or later # # You can pass in directory names, in which case the files # in that directory (NOT below it) are processed. @@ -20,9 +15,16 @@ LC_ALL=C LC_NUMERIC=C export LANG LC_ALL LC_NUMERIC +BASEDIR=$(dirname $0) +TOPDIR=$( cd $BASEDIR/.. && pwd -P ) +test -d "$BASEDIR" || { echo "! Could not determine base for $0" ; exit 1 ; } +test -d "$TOPDIR" || { echo "! Cound not determine top-level source dir" ; exit 1 ; } +test -f "$TOPDIR/.clang-format.base" || { echo "! No .clang-format support files in $TOPDIR" ; exit 1 ; } + AS=$( which astyle ) -CF_VERSIONS="clang-format-8 clang-format80 clang-format90 clang-format-9.0.1 clang-format" +# Allow specifying CF_VERSIONS outside already +CF_VERSIONS="$CF_VERSIONS clang-format-8 clang-format80 clang-format90 clang-format-9.0.1 clang-format" for _cf in $CF_VERSIONS do # Not an error if this particular clang-format isn't found @@ -35,19 +37,45 @@ test -n "$CF" || { echo "! No clang-format ($CF_VERSIONS) found in PATH"; exit 1 test -x "$AS" || { echo "! $AS is not executable."; exit 1 ; } test -x "$CF" || { echo "! $CF is not executable."; exit 1 ; } -unmangle_clang_format="" -format_version=`"$CF" --version | tr -dc '[^.0-9]' | cut -d . -f 1` -if expr "$format_version" '<' 8 > /dev/null ; then - echo "! Clang-format version 8+ required" - exit 1 -fi -if expr "$format_version" '<' 10 > /dev/null ; then - : -else - unmangle_clang_format=$( dirname $0 )/../.clang-format - echo "SpaceInEmptyBlock: false" >> "$unmangle_clang_format" -fi +### CLANG-FORMAT-WRANGLING +# +# Version 7 and earlier doesn't understand all the options we would like +# Version 8 is ok +# Version 9 is ok +# Later versions change some defaults so need extra wrangling. +# .. there are extra files that are appended to the settings, per +# .. clang-format version. +format_version=`"$CF" --version | tr -dc '[^.0-9]' | cut -d . -f 1` +case "$format_version" in + [0-7] ) + echo "! Clang-format version 8+ required" + exit 1 + ;; + [89] ) + : + ;; + 10 ) + extra_settings="10" + ;; + 11 ) + extra_settings="10 11" + ;; + * ) + echo "! Clang-format version '$format_version' unknown." + exit 1 + ;; +esac +_fmt="$TOPDIR/.clang-format" +cp "$_fmt.base" "$_fmt" +for f in "$extra_settings" ; do + test -f "$_fmt.$f" && cat "$_fmt.$f" >> "$_fmt" +done + + +### FILE PROCESSING +# +# set -e any_dirs=no @@ -59,7 +87,7 @@ done style_some() { if test -n "$*" ; then - $AS --options=$(dirname $0)/astylerc --quiet "$@" + $AS --options=$BASEDIR/astylerc --quiet "$@" $CF -i -style=file "$@" fi } @@ -77,6 +105,7 @@ else style_some "$@" fi -if test -n "$unmangle_clang_format" ; then - sed -i.bak '/^SpaceInEmptyBlock/d' "$unmangle_clang_format" -fi +### CLANG-FORMAT-WRANGLING +# +# Restore the original .clang-format +cp "$_fmt.base" "$_fmt" From 154396f80a8d7fb3321a2f13a1f9ec3e430c2345 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 4 Jun 2021 14:55:11 +0200 Subject: [PATCH 28/43] CI: drop support for clang-format10 and later The only acceptable versions of clang-format are 8 and 9 for now (until another round of big-churn-from-formatting, at which point we'll update the required version). clang-format-9 says: SpacesInSquareBrackets (bool) If true, spaces will be inserted after [ and before ]. Lambdas or unspecified size array declarations will not be affected. clang-format-10 changes part of that to: Lambdas without arguments or unspecified size array declarations will not be affected. This means that 9 will only allow `[name]` for captures, and 10 will only allow `[ name ]` for captures, so they ping-pong all the lambda's in the codebase back and forth. Just don't. --- ci/calamaresstyle | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/ci/calamaresstyle b/ci/calamaresstyle index 3718a8506..ffcfe0902 100755 --- a/ci/calamaresstyle +++ b/ci/calamaresstyle @@ -55,14 +55,8 @@ case "$format_version" in [89] ) : ;; - 10 ) - extra_settings="10" - ;; - 11 ) - extra_settings="10 11" - ;; * ) - echo "! Clang-format version '$format_version' unknown." + echo "! Clang-format version '$format_version' unsupported." exit 1 ;; esac From 8f81fd71884e8d27552fc7c06d69206bdd540000 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 8 Jun 2021 11:50:09 +0200 Subject: [PATCH 29/43] CI: bump openSUSE - needs newer dependency installation - try out the slightly-hardened notifications --- .github/workflows/nightly-opensuse.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/nightly-opensuse.yml b/.github/workflows/nightly-opensuse.yml index ff395d5fb..b9d13cf0a 100644 --- a/.github/workflows/nightly-opensuse.yml +++ b/.github/workflows/nightly-opensuse.yml @@ -22,7 +22,7 @@ jobs: options: --tmpfs /build:rw --user 0:0 steps: - name: "prepare env" - uses: calamares/actions/prepare-opensuse@v2 + uses: calamares/actions/prepare-opensuse@0d294e557d4d2f0fa179eff3ac97b45aaffe53cf - name: "prepare source" uses: actions/checkout@v2 - name: "build" @@ -30,15 +30,16 @@ jobs: uses: calamares/actions/generic-build@v2 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v2 + uses: calamares/actions/matrix-notify@0d294e557d4d2f0fa179eff3ac97b45aaffe53cf with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} - message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" + message: | + OK" ; ls -la ; echo "${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v2 + uses: calamares/actions/matrix-notify@0d294e557d4d2f0fa179eff3ac97b45aaffe53cf with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} - message: "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" + message: "FAIL\" ; ls -la ; echo \" ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" From eb627bc055cf3403e0f7c8d8e8cf459565c5de6d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 8 Jun 2021 13:22:56 +0200 Subject: [PATCH 30/43] [partition] Avoid crash when PARTITION_UNSAFE is on PARTITION_UNSAFE is a debug mode. It is not used in production, because it allows you to pick an install device that would be dangerous (e.g. the current / device). Existing code kept two copies of a list of pointers, and deleted pointers from one of the lists and returned the other -- which now contains dangling pointers. Refactor by applying suitable lambdas to a single copy of the list; this avoids copying the list so there is no danger of dangling pointers. --- src/modules/partition/core/DeviceList.cpp | 33 +++++++++++++++-------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/src/modules/partition/core/DeviceList.cpp b/src/modules/partition/core/DeviceList.cpp index 395b6b484..3a0a102b1 100644 --- a/src/modules/partition/core/DeviceList.cpp +++ b/src/modules/partition/core/DeviceList.cpp @@ -125,12 +125,27 @@ getDevices( DeviceType which ) DeviceList devices = backend->scanDevices( /* excludeReadOnly */ true ); #endif + /* The list of devices is cleaned up for use: + * - some devices can **never** be used (e.g. floppies, nullptr) + * - some devices can be used if unsafe mode is on, but not in normal operation + * Two lambda's are defined, + * - removeInAllModes() + * - removeInSafeMode() + * To handle the difference. + */ #ifdef DEBUG_PARTITION_UNSAFE cWarning() << "Allowing unsafe partitioning choices." << devices.count() << "candidates."; - DeviceList unsafeDevices = devices; #ifdef DEBUG_PARTITION_LAME - cDebug() << Logger::SubEntry << "it has been lamed, and will fail."; + cDebug() << Logger::SubEntry << "unsafe partitioning has been lamed, and will fail."; #endif + + // Unsafe partitioning + auto removeInAllModes = []( DeviceList& l, DeviceList::iterator& it) { return erase(l, it); }; + auto removeInSafeMode = []( DeviceList&, DeviceList::iterator& it) { return ++it; }; +#else + // Safe partitioning + auto removeInAllModes = []( DeviceList& l, DeviceList::iterator& it) { return erase(l, it); }; + auto& removeInSafeMode = removeFromAll; #endif cDebug() << "Removing unsuitable devices:" << devices.count() << "candidates."; @@ -142,27 +157,27 @@ getDevices( DeviceType which ) if ( !( *it ) ) { cDebug() << Logger::SubEntry << "Skipping nullptr device"; - it = erase( devices, it ); + it = removeInAllModes( devices, it ); } else if ( isZRam( *it ) ) { cDebug() << Logger::SubEntry << "Removing zram" << it; - it = erase( devices, it ); + it = removeInAllModes( devices, it ); } else if ( isFloppyDrive( ( *it ) ) ) { cDebug() << Logger::SubEntry << "Removing floppy disk" << it; - it = erase( devices, it ); + it = removeInAllModes( devices, it ); } else if ( writableOnly && hasRootPartition( *it ) ) { cDebug() << Logger::SubEntry << "Removing device with root filesystem (/) on it" << it; - it = erase( devices, it ); + it = removeInSafeMode( devices, it ); } else if ( writableOnly && isIso9660( *it ) ) { cDebug() << Logger::SubEntry << "Removing device with iso9660 filesystem (probably a CD) on it" << it; - it = erase( devices, it ); + it = removeInSafeMode( devices, it ); } else { @@ -170,11 +185,7 @@ getDevices( DeviceType which ) } } cDebug() << Logger::SubEntry << "there are" << devices.count() << "devices left."; -#ifdef DEBUG_PARTITION_UNSAFE - return unsafeDevices; -#else return devices; -#endif } } // namespace PartUtils From df634573bf0bad6834eb09c2693efbb9e7f76adc Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 8 Jun 2021 14:09:31 +0200 Subject: [PATCH 31/43] [partition] Resize combo box to show whole pop-up The (collapsed) combo box should be wide enough to show the entire pop-up (expanded) box data. FIXES #1700 --- src/modules/partition/gui/ChoicePage.cpp | 26 ++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index 093f74b39..245ee0b92 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -134,6 +134,28 @@ ChoicePage::ChoicePage( Config* config, QWidget* parent ) ChoicePage::~ChoicePage() {} +/** @brief Sets the @p model for the given @p box and adjusts UI sizes to match. + * + * The model provides data for drawing the items in the model; the + * drawing itself is done by the delegate, which may end up drawing a + * different width in the popup than in the collapsed combo box. + * + * Make the box wide enough to accomodate the whole expanded delegate; + * this avoids cases where the popup would truncate data being drawn + * because the overall box is sized too narrow. + */ +void setModelToComboBox( QComboBox* box, QAbstractItemModel* model ) +{ + box->setModel( model ); + if ( model->rowCount() > 0 ) + { + QStyleOptionViewItem options; + options.initFrom( box ); + auto delegateSize = box->itemDelegate()->sizeHint(options, model->index(0, 0) ); + box->setMinimumWidth( delegateSize.width() ); + } +} + void ChoicePage::init( PartitionCoreModule* core ) { @@ -145,10 +167,10 @@ ChoicePage::init( PartitionCoreModule* core ) // We need to do this because a PCM revert invalidates the deviceModel. connect( core, &PartitionCoreModule::reverted, this, [=] { - m_drivesCombo->setModel( core->deviceModel() ); + setModelToComboBox( m_drivesCombo, core->deviceModel() ); m_drivesCombo->setCurrentIndex( m_lastSelectedDeviceIndex ); } ); - m_drivesCombo->setModel( core->deviceModel() ); + setModelToComboBox( m_drivesCombo, core->deviceModel() ); connect( m_drivesCombo, static_cast< void ( QComboBox::* )( int ) >( &QComboBox::currentIndexChanged ), From f67c7f900cc3719b1d8f6956225926faec4dfdbd Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 8 Jun 2021 14:14:11 +0200 Subject: [PATCH 32/43] [partition] Make the expanded (pop-up) icon sizes for devices a bit smaller --- src/modules/partition/core/DeviceModel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/partition/core/DeviceModel.cpp b/src/modules/partition/core/DeviceModel.cpp index bf5541756..46a181b33 100644 --- a/src/modules/partition/core/DeviceModel.cpp +++ b/src/modules/partition/core/DeviceModel.cpp @@ -99,7 +99,7 @@ DeviceModel::data( const QModelIndex& index, int role ) const return CalamaresUtils::defaultPixmap( CalamaresUtils::PartitionDisk, CalamaresUtils::Original, - QSize( CalamaresUtils::defaultIconSize().width() * 3, CalamaresUtils::defaultIconSize().height() * 3 ) ); + QSize( CalamaresUtils::defaultIconSize().width() * 2, CalamaresUtils::defaultIconSize().height() * 2 ) ); default: return QVariant(); } From 63c6a8bac890b31b1572e9b4a0fc2a5ed50bfbfe Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 8 Jun 2021 14:18:28 +0200 Subject: [PATCH 33/43] [partition] Remove unneeded includes --- src/modules/partition/core/DeviceList.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/modules/partition/core/DeviceList.cpp b/src/modules/partition/core/DeviceList.cpp index 3a0a102b1..f7d1d4835 100644 --- a/src/modules/partition/core/DeviceList.cpp +++ b/src/modules/partition/core/DeviceList.cpp @@ -10,14 +10,8 @@ #include "DeviceList.h" -#include "PartitionCoreModule.h" -#include "core/DeviceModel.h" -#include "core/KPMHelpers.h" - -#include "GlobalStorage.h" -#include "JobQueue.h" -#include "partition/PartitionIterator.h" #include "utils/Logger.h" +#include "partition/PartitionIterator.h" #include #include @@ -25,7 +19,6 @@ #include #include -#include using CalamaresUtils::Partition::PartitionIterator; From 4f70568c652e73c247889ecf3d5f9c5491cd3099 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 8 Jun 2021 15:05:44 +0200 Subject: [PATCH 34/43] [partition] Remove unneeded includes --- src/modules/partition/gui/PartitionPage.h | 1 - .../partition/gui/PartitionViewStep.cpp | 18 ------------------ 2 files changed, 19 deletions(-) diff --git a/src/modules/partition/gui/PartitionPage.h b/src/modules/partition/gui/PartitionPage.h index 81c2cd983..462822346 100644 --- a/src/modules/partition/gui/PartitionPage.h +++ b/src/modules/partition/gui/PartitionPage.h @@ -20,7 +20,6 @@ class PartitionCoreModule; class Ui_PartitionPage; class Device; -class DeviceModel; class Partition; /** diff --git a/src/modules/partition/gui/PartitionViewStep.cpp b/src/modules/partition/gui/PartitionViewStep.cpp index 19544a198..b4eefb3b0 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -16,45 +16,27 @@ #include "core/BootLoaderModel.h" #include "core/Config.h" #include "core/DeviceModel.h" -#include "core/KPMHelpers.h" -#include "core/OsproberEntry.h" -#include "core/PartUtils.h" -#include "core/PartitionActions.h" #include "core/PartitionCoreModule.h" -#include "core/PartitionModel.h" #include "gui/ChoicePage.h" #include "gui/PartitionBarsView.h" #include "gui/PartitionLabelsView.h" #include "gui/PartitionPage.h" #include "Branding.h" -#include "CalamaresVersion.h" #include "GlobalStorage.h" -#include "Job.h" #include "JobQueue.h" #include "utils/CalamaresUtilsGui.h" #include "utils/Logger.h" -#include "utils/NamedEnum.h" #include "utils/QtCompat.h" #include "utils/Retranslator.h" -#include "utils/Units.h" #include "utils/Variant.h" #include "widgets/WaitingWidget.h" - -#include #include -#include -#include -#include #include -#include -#include #include -#include #include -#include #include PartitionViewStep::PartitionViewStep( QObject* parent ) From 7019b6d6636b00d2182a9a4d886b186df9f7e44b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 8 Jun 2021 15:37:23 +0200 Subject: [PATCH 35/43] CI: remove in-progress label when closing an issue --- .github/workflows/issues.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index b24d192a1..b03522103 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -5,7 +5,7 @@ on: types: [opened, reopened, closed] jobs: - irc: + notify: runs-on: ubuntu-latest steps: - name: "notify: new" @@ -22,3 +22,11 @@ jobs: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} message: "CLOSED ${{ github.event.issue.html_url }} by ${{ github.actor }} ${{ github.event.issue.title }}" + - name: "remove in-progress label" + if: github.event.issue.state != 'open' + run: | + curl -X DELETE \ + -H 'Accept: application/vnd.github.v3+json' \ + -H 'Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \ + https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.id }}/labels/hacking%3A+in-progress + From d75439e7119e7c5b04fb2dba2a00a5dfd26a2fea Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 8 Jun 2021 15:58:29 +0200 Subject: [PATCH 36/43] CI: bump all to @v3 actions from Calamares - prep for the nightlies (only openSUSE affected) - notifications (slightly more secure) - fix unlabeling issues on close --- .github/workflows/issues.yml | 6 +++--- .github/workflows/nightly-debian.yml | 8 ++++---- .github/workflows/nightly-neon.yml | 8 ++++---- .github/workflows/nightly-opensuse.yml | 12 ++++++------ .github/workflows/push.yml | 8 ++++---- 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index b03522103..155cb6a17 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -10,14 +10,14 @@ jobs: steps: - name: "notify: new" if: github.event.issue.state == 'open' - uses: calamares/actions/matrix-notify@v2 + uses: calamares/actions/matrix-notify@v3 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} message: "OPENED ${{ github.event.issue.html_url }} by ${{ github.actor }} ${{ github.event.issue.title }}" - name: "notify: closed" if: github.event.issue.state != 'open' - uses: calamares/actions/matrix-notify@v2 + uses: calamares/actions/matrix-notify@v3 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} @@ -28,5 +28,5 @@ jobs: curl -X DELETE \ -H 'Accept: application/vnd.github.v3+json' \ -H 'Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \ - https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.id }}/labels/hacking%3A+in-progress + https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/labels/hacking%3A+in-progress diff --git a/.github/workflows/nightly-debian.yml b/.github/workflows/nightly-debian.yml index 02b5fe386..d4dfe1621 100644 --- a/.github/workflows/nightly-debian.yml +++ b/.github/workflows/nightly-debian.yml @@ -22,22 +22,22 @@ jobs: options: --tmpfs /build:rw --user 0:0 steps: - name: "prepare env" - uses: calamares/actions/prepare-debian@v2 + uses: calamares/actions/prepare-debian@v3 - name: "prepare source" uses: actions/checkout@v2 - name: "build" id: build - uses: calamares/actions/generic-build@v2 + uses: calamares/actions/generic-build@v3 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v2 + uses: calamares/actions/matrix-notify@v3 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v2 + uses: calamares/actions/matrix-notify@v3 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} diff --git a/.github/workflows/nightly-neon.yml b/.github/workflows/nightly-neon.yml index 2c964bedf..64b745e45 100644 --- a/.github/workflows/nightly-neon.yml +++ b/.github/workflows/nightly-neon.yml @@ -22,12 +22,12 @@ jobs: options: --tmpfs /build:rw --user 0:0 steps: - name: "prepare env" - uses: calamares/actions/prepare-neon@v2 + uses: calamares/actions/prepare-neon@v3 - name: "prepare source" uses: actions/checkout@v2 - name: "build" id: build - uses: calamares/actions/generic-build@v2 + uses: calamares/actions/generic-build@v3 - name: "Calamares: archive" working-directory: ${{ env.BUILDDIR }} run: | @@ -42,14 +42,14 @@ jobs: retention-days: 3 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v2 + uses: calamares/actions/matrix-notify@v3 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v2 + uses: calamares/actions/matrix-notify@v3 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} diff --git a/.github/workflows/nightly-opensuse.yml b/.github/workflows/nightly-opensuse.yml index b9d13cf0a..0eab97bc4 100644 --- a/.github/workflows/nightly-opensuse.yml +++ b/.github/workflows/nightly-opensuse.yml @@ -22,24 +22,24 @@ jobs: options: --tmpfs /build:rw --user 0:0 steps: - name: "prepare env" - uses: calamares/actions/prepare-opensuse@0d294e557d4d2f0fa179eff3ac97b45aaffe53cf + uses: calamares/actions/prepare-opensuse@v3 - name: "prepare source" uses: actions/checkout@v2 - name: "build" id: build - uses: calamares/actions/generic-build@v2 + uses: calamares/actions/generic-build@v3 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@0d294e557d4d2f0fa179eff3ac97b45aaffe53cf + uses: calamares/actions/matrix-notify@v3 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} message: | - OK" ; ls -la ; echo "${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" + OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@0d294e557d4d2f0fa179eff3ac97b45aaffe53cf + uses: calamares/actions/matrix-notify@v3 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} - message: "FAIL\" ; ls -la ; echo \" ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" + message: "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ steps.build.outputs.git-summary }}" diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 8d67f1865..cc7bb7223 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -28,15 +28,15 @@ jobs: options: --tmpfs /build:rw --user 0:0 steps: - name: "prepare env" - uses: calamares/actions/prepare-neon@v2 + uses: calamares/actions/prepare-neon@v3 - name: "prepare source" uses: actions/checkout@v2 - name: "build" id: build - uses: calamares/actions/generic-build@v2 + uses: calamares/actions/generic-build@v3 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v2 + uses: calamares/actions/matrix-notify@v3 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} @@ -45,7 +45,7 @@ jobs: .. ${{ steps.build.outputs.git-summary }} - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} - uses: calamares/actions/matrix-notify@v2 + uses: calamares/actions/matrix-notify@v3 with: token: ${{ secrets.MATRIX_TOKEN }} room: ${{ secrets.MATRIX_ROOM }} From 242572f57dacfaee1af537285199298d084167a1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 8 Jun 2021 16:20:03 +0200 Subject: [PATCH 37/43] CI: don't encode label name in URL beforehand; let curl do it --- .github/workflows/issues.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 155cb6a17..679bb22b8 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -28,5 +28,5 @@ jobs: curl -X DELETE \ -H 'Accept: application/vnd.github.v3+json' \ -H 'Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \ - https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/labels/hacking%3A+in-progress + "https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/labels/hacking: in-progress" From 8d9c3c428d1806824b0b6e30be685fd3e5b581c2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 8 Jun 2021 16:26:29 +0200 Subject: [PATCH 38/43] Docs: there is no Coverity or Travis status to speak of --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 7c674bee4..54210dcf3 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,6 @@ [![GitHub release](https://img.shields.io/github/release/calamares/calamares.svg)](https://github.com/calamares/calamares/releases) [![GitHub Build Status](https://img.shields.io/github/workflow/status/calamares/calamares/ci?label=GH%20build)](https://github.com/calamares/calamares/actions?query=workflow%3Aci) -[![Travis Build Status](https://travis-ci.org/calamares/calamares.svg?branch=calamares)](https://travis-ci.org/calamares/calamares) -[![Coverity Scan Build Status](https://scan.coverity.com/projects/5389/badge.svg)](https://scan.coverity.com/projects/5389) [![GitHub license](https://img.shields.io/github/license/calamares/calamares.svg)](https://github.com/calamares/calamares/blob/calamares/LICENSE) From 185c5d8b5159673b4233868374f4219f815978a5 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 8 Jun 2021 16:37:01 +0200 Subject: [PATCH 39/43] Docs: add link and badge for 'current issue' --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 54210dcf3..5f1095752 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ # Calamares: Distribution-Independent Installer Framework --------- +[![Current issue](https://img.shields.io/badge/issue-in_progress-FE9B48)](https://github.com/calamares/calamares/labels/hacking%3A%20in-progress) [![GitHub release](https://img.shields.io/github/release/calamares/calamares.svg)](https://github.com/calamares/calamares/releases) [![GitHub Build Status](https://img.shields.io/github/workflow/status/calamares/calamares/ci?label=GH%20build)](https://github.com/calamares/calamares/actions?query=workflow%3Aci) [![GitHub license](https://img.shields.io/github/license/calamares/calamares.svg)](https://github.com/calamares/calamares/blob/calamares/LICENSE) From 983e32c9d91db021089ba5e317f8d6793db00ab3 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 8 Jun 2021 16:49:06 +0200 Subject: [PATCH 40/43] CI: fine, encode the whole label name --- .github/workflows/issues.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 679bb22b8..0a68dd58f 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -28,5 +28,5 @@ jobs: curl -X DELETE \ -H 'Accept: application/vnd.github.v3+json' \ -H 'Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \ - "https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/labels/hacking: in-progress" + "https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/labels/hacking%3A%20in-progress" From 619a6a3f97d6746220066cc101772bb2db6df9c3 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Tue, 8 Jun 2021 17:50:10 +0200 Subject: [PATCH 41/43] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_es.ts | 8 +- lang/calamares_es_MX.ts | 2 +- lang/calamares_es_PE.ts | 4257 +++++++++++++++++++++++++++++++++++++++ lang/calamares_fr.ts | 2 +- lang/calamares_he.ts | 14 +- lang/calamares_ja.ts | 2 +- lang/calamares_nl.ts | 162 +- 7 files changed, 4355 insertions(+), 92 deletions(-) create mode 100644 lang/calamares_es_PE.ts diff --git a/lang/calamares_es.ts b/lang/calamares_es.ts index 8a5d5455c..41c37f011 100644 --- a/lang/calamares_es.ts +++ b/lang/calamares_es.ts @@ -6,7 +6,7 @@ Manage auto-mount settings - + Gestionar la configuración de montaje automático @@ -14,7 +14,7 @@ The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. - El <strong>entorno de arranque<strong> de este sistema.<br><br>Los sistemas x86 sólo soportan <strong>BIOS</strong>.<br>Los sistemas modernos habitualmente usan <strong>EFI</strong>, pero también pueden mostrarse como BIOS si se inician en modo de compatibildiad. + El <strong>entorno de arranque<strong> de este sistema.<br><br>Los sistemas x86 sólo tienen soporte para <strong>BIOS</strong>.<br>Los sistemas modernos habitualmente usan <strong>EFI</strong>, pero también pueden mostrarse como BIOS si se inician en modo de compatibildiad. @@ -115,12 +115,12 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Uploads the session log to the configured pastebin. - + Sube el log de la sesión hacia el pastebin configurado. Send Session Log - + Envía el Log de la Sesión. diff --git a/lang/calamares_es_MX.ts b/lang/calamares_es_MX.ts index 969066580..9fef8fcbb 100644 --- a/lang/calamares_es_MX.ts +++ b/lang/calamares_es_MX.ts @@ -1882,7 +1882,7 @@ El instalador terminará y se perderán todos los cambios. Configuration Error - + Error de configuración diff --git a/lang/calamares_es_PE.ts b/lang/calamares_es_PE.ts new file mode 100644 index 000000000..aa7bc768c --- /dev/null +++ b/lang/calamares_es_PE.ts @@ -0,0 +1,4257 @@ + + + + + AutoMountManagementJob + + + Manage auto-mount settings + + + + + BootInfoWidget + + + The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. + + + + + 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. + + + + + 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. + + + + + BootLoaderModel + + + Master Boot Record of %1 + + + + + Boot Partition + + + + + System Partition + + + + + Do not install a boot loader + + + + + %1 (%2) + + + + + Calamares::BlankViewStep + + + Blank Page + + + + + Calamares::DebugWindow + + + Form + + + + + GlobalStorage + + + + + JobQueue + + + + + Modules + + + + + Type: + + + + + + none + + + + + Interface: + + + + + Crashes Calamares, so that Dr. Konqui can look at it. + + + + + Reloads the stylesheet from the branding directory. + + + + + Uploads the session log to the configured pastebin. + + + + + Send Session Log + + + + + Reload Stylesheet + + + + + Displays the tree of widget names in the log (for stylesheet debugging). + + + + + Widget Tree + + + + + Debug information + + + + + Calamares::ExecutionViewStep + + + Set up + + + + + Install + + + + + Calamares::FailJob + + + Job failed (%1) + + + + + Programmed job failure was explicitly requested. + + + + + Calamares::JobThread + + + Done + + + + + Calamares::NamedJob + + + Example job (%1) + + + + + Calamares::ProcessJob + + + Run command '%1' in target system. + + + + + Run command '%1'. + + + + + Running command %1 %2 + + + + + Calamares::PythonJob + + + Running %1 operation. + + + + + Bad working directory path + + + + + Working directory %1 for python job %2 is not readable. + + + + + Bad main script file + + + + + Main script file %1 for python job %2 is not readable. + + + + + Boost.Python error in job "%1". + + + + + Calamares::QmlViewStep + + + Loading ... + + + + + QML Step <i>%1</i>. + + + + + Loading failed. + + + + + Calamares::RequirementsChecker + + + Requirements checking for module <i>%1</i> is complete. + + + + + Waiting for %n module(s). + + + + + + + + (%n second(s)) + + + + + + + + System-requirements checking is complete. + + + + + Calamares::ViewManager + + + Setup Failed + + + + + Installation Failed + + + + + Would you like to paste the install log to the web? + + + + + Error + + + + + + &Yes + + + + + + &No + + + + + &Close + + + + + Install Log Paste URL + + + + + The upload was unsuccessful. No web-paste was done. + + + + + Install log posted to + +%1 + +Link copied to clipboard + + + + + Calamares Initialization Failed + + + + + %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. + + + + + <br/>The following modules could not be loaded: + + + + + Continue with setup? + + + + + Continue with installation? + + + + + The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong> + + + + + 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> + + + + + &Set up now + + + + + &Install now + + + + + Go &back + + + + + &Set up + + + + + &Install + + + + + Setup is complete. Close the setup program. + + + + + The installation is complete. Close the installer. + + + + + Cancel setup without changing the system. + + + + + Cancel installation without changing the system. + + + + + &Next + + + + + &Back + + + + + &Done + + + + + &Cancel + + + + + Cancel setup? + + + + + Cancel installation? + + + + + Do you really want to cancel the current setup process? +The setup program will quit and all changes will be lost. + + + + + Do you really want to cancel the current install process? +The installer will quit and all changes will be lost. + + + + + CalamaresPython::Helper + + + Unknown exception type + + + + + unparseable Python error + + + + + unparseable Python traceback + + + + + Unfetchable Python error. + + + + + CalamaresWindow + + + %1 Setup Program + + + + + %1 Installer + + + + + CheckerContainer + + + Gathering system information... + + + + + ChoicePage + + + Form + + + + + Select storage de&vice: + + + + + + + + Current: + + + + + After: + + + + + <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. + + + + + Reuse %1 as home partition for %2. + + + + + <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> + + + + + %1 will be shrunk to %2MiB and a new %3MiB partition will be created for %4. + + + + + Boot loader location: + + + + + <strong>Select a partition to install on</strong> + + + + + An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. + + + + + The EFI system partition at %1 will be used for starting %2. + + + + + EFI system partition: + + + + + This storage device does not seem to have an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + + + + <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. + + + + + + + + <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. + + + + + + + + <strong>Replace a partition</strong><br/>Replaces a partition with %1. + + + + + This storage device has %1 on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + This storage device already has an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + This storage device has multiple operating systems on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + This storage device already has an operating system on it, but the partition table <strong>%1</strong> is different from the needed <strong>%2</strong>.<br/> + + + + + This storage device has one of its partitions <strong>mounted</strong>. + + + + + This storage device is a part of an <strong>inactive RAID</strong> device. + + + + + No Swap + + + + + Reuse Swap + + + + + Swap (no Hibernate) + + + + + Swap (with Hibernate) + + + + + Swap to file + + + + + ClearMountsJob + + + Clear mounts for partitioning operations on %1 + + + + + Clearing mounts for partitioning operations on %1. + + + + + Cleared all mounts for %1 + + + + + ClearTempMountsJob + + + Clear all temporary mounts. + + + + + Clearing all temporary mounts. + + + + + Cannot get list of temporary mounts. + + + + + Cleared all temporary mounts. + + + + + CommandList + + + + Could not run command. + + + + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. + + + + + Config + + + Set keyboard model to %1.<br/> + + + + + Set keyboard layout to %1/%2. + + + + + Set timezone to %1/%2. + + + + + The system language will be set to %1. + + + + + The numbers and dates locale will be set to %1. + + + + + Network Installation. (Disabled: Incorrect configuration) + + + + + Network Installation. (Disabled: Received invalid groups data) + + + + + Network Installation. (Disabled: Internal error) + + + + + Network Installation. (Disabled: No package list) + + + + + Package selection + + + + + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) + + + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + + + + + <h1>Welcome to the Calamares setup program for %1</h1> + + + + + <h1>Welcome to %1 setup</h1> + + + + + <h1>Welcome to the Calamares installer for %1</h1> + + + + + <h1>Welcome to the %1 installer</h1> + + + + + Your username is too long. + + + + + '%1' is not allowed as username. + + + + + Your username must start with a lowercase letter or underscore. + + + + + Only lowercase letters, numbers, underscore and hyphen are allowed. + + + + + Your hostname is too short. + + + + + Your hostname is too long. + + + + + '%1' is not allowed as hostname. + + + + + Only letters, numbers, underscore and hyphen are allowed. + + + + + Your passwords do not match! + + + + + Setup Failed + + + + + Installation Failed + + + + + The setup of %1 did not complete successfully. + + + + + The installation of %1 did not complete successfully. + + + + + Setup Complete + + + + + Installation Complete + + + + + The setup of %1 is complete. + + + + + The installation of %1 is complete. + + + + + ContextualProcessJob + + + Contextual Processes Job + + + + + CreatePartitionDialog + + + Create a Partition + + + + + Si&ze: + + + + + MiB + + + + + Partition &Type: + + + + + &Primary + + + + + E&xtended + + + + + Fi&le System: + + + + + LVM LV name + + + + + &Mount Point: + + + + + Flags: + + + + + En&crypt + + + + + Logical + + + + + Primary + + + + + GPT + + + + + Mountpoint already in use. Please select another one. + + + + + CreatePartitionJob + + + Create new %1MiB partition on %3 (%2) with entries %4. + + + + + Create new %1MiB partition on %3 (%2). + + + + + Create new %2MiB partition on %4 (%3) with file system %1. + + + + + Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2) with entries <em>%4</em>. + + + + + Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2). + + + + + Create new <strong>%2MiB</strong> partition on <strong>%4</strong> (%3) with file system <strong>%1</strong>. + + + + + + Creating new %1 partition on %2. + + + + + The installer failed to create partition on disk '%1'. + + + + + CreatePartitionTableDialog + + + Create Partition Table + + + + + Creating a new partition table will delete all existing data on the disk. + + + + + What kind of partition table do you want to create? + + + + + Master Boot Record (MBR) + + + + + GUID Partition Table (GPT) + + + + + CreatePartitionTableJob + + + Create new %1 partition table on %2. + + + + + Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3). + + + + + Creating new %1 partition table on %2. + + + + + The installer failed to create a partition table on %1. + + + + + CreateUserJob + + + Create user %1 + + + + + Create user <strong>%1</strong>. + + + + + Preserving home directory + + + + + + Creating user %1 + + + + + Configuring user %1 + + + + + Setting file permissions + + + + + CreateVolumeGroupDialog + + + Create Volume Group + + + + + CreateVolumeGroupJob + + + Create new volume group named %1. + + + + + Create new volume group named <strong>%1</strong>. + + + + + Creating new volume group named %1. + + + + + The installer failed to create a volume group named '%1'. + + + + + DeactivateVolumeGroupJob + + + + Deactivate volume group named %1. + + + + + Deactivate volume group named <strong>%1</strong>. + + + + + The installer failed to deactivate a volume group named %1. + + + + + DeletePartitionJob + + + Delete partition %1. + + + + + Delete partition <strong>%1</strong>. + + + + + Deleting partition %1. + + + + + The installer failed to delete partition %1. + + + + + DeviceInfoWidget + + + This device has a <strong>%1</strong> partition table. + + + + + This is a <strong>loop</strong> device.<br><br>It is a pseudo-device with no partition table that makes a file accessible as a block device. This kind of setup usually only contains a single filesystem. + + + + + 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. + + + + + <br><br>This is the recommended partition table type for modern systems which start from an <strong>EFI</strong> boot environment. + + + + + <br><br>This partition table type is only advisable on older systems which start from a <strong>BIOS</strong> boot environment. GPT is recommended in most other cases.<br><br><strong>Warning:</strong> the MBR partition table is an obsolete MS-DOS era standard.<br>Only 4 <em>primary</em> partitions may be created, and of those 4, one can be an <em>extended</em> partition, which may in turn contain many <em>logical</em> partitions. + + + + + 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. + + + + + DeviceModel + + + %1 - %2 (%3) + device[name] - size[number] (device-node[name]) + + + + + %1 - (%2) + device[name] - (device-node[name]) + + + + + DracutLuksCfgJob + + + Write LUKS configuration for Dracut to %1 + + + + + Skip writing LUKS configuration for Dracut: "/" partition is not encrypted + + + + + Failed to open %1 + + + + + DummyCppJob + + + Dummy C++ Job + + + + + EditExistingPartitionDialog + + + Edit Existing Partition + + + + + Content: + + + + + &Keep + + + + + Format + + + + + Warning: Formatting the partition will erase all existing data. + + + + + &Mount Point: + + + + + Si&ze: + + + + + MiB + + + + + Fi&le System: + + + + + Flags: + + + + + Mountpoint already in use. Please select another one. + + + + + EncryptWidget + + + Form + + + + + En&crypt system + + + + + Passphrase + + + + + Confirm passphrase + + + + + + Please enter the same passphrase in both boxes. + + + + + FillGlobalStorageJob + + + Set partition information + + + + + Install %1 on <strong>new</strong> %2 system partition with features <em>%3</em> + + + + + Install %1 on <strong>new</strong> %2 system partition. + + + + + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong> and features <em>%3</em>. + + + + + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>%3. + + + + + Install %2 on %3 system partition <strong>%1</strong> with features <em>%4</em>. + + + + + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong> and features <em>%4</em>. + + + + + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>%4. + + + + + Install %2 on %3 system partition <strong>%1</strong>. + + + + + Install boot loader on <strong>%1</strong>. + + + + + Setting up mount points. + + + + + FinishedPage + + + Form + + + + + &Restart now + + + + + <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. + + + + + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style="font-style:italic;">Done</span> or close the setup program.</p></body></html> + + + + + <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. + + + + + <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> + + + + + <h1>Setup Failed</h1><br/>%1 has not been set up on your computer.<br/>The error message was: %2. + + + + + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. + + + + + FinishedQmlViewStep + + + Finish + + + + + FinishedViewStep + + + Finish + + + + + FormatPartitionJob + + + Format partition %1 (file system: %2, size: %3 MiB) on %4. + + + + + Format <strong>%3MiB</strong> partition <strong>%1</strong> with file system <strong>%2</strong>. + + + + + Formatting partition %1 with file system %2. + + + + + The installer failed to format partition %1 on disk '%2'. + + + + + GeneralRequirements + + + has at least %1 GiB available drive space + + + + + There is not enough drive space. At least %1 GiB is required. + + + + + has at least %1 GiB working memory + + + + + The system does not have enough working memory. At least %1 GiB is required. + + + + + is plugged in to a power source + + + + + The system is not plugged in to a power source. + + + + + is connected to the Internet + + + + + The system is not connected to the Internet. + + + + + is running the installer as an administrator (root) + + + + + The setup program is not running with administrator rights. + + + + + The installer is not running with administrator rights. + + + + + has a screen large enough to show the whole installer + + + + + The screen is too small to display the setup program. + + + + + The screen is too small to display the installer. + + + + + HostInfoJob + + + Collecting information about your machine. + + + + + IDJob + + + + + + OEM Batch Identifier + + + + + Could not create directories <code>%1</code>. + + + + + Could not open file <code>%1</code>. + + + + + Could not write to file <code>%1</code>. + + + + + InitcpioJob + + + Creating initramfs with mkinitcpio. + + + + + InitramfsJob + + + Creating initramfs. + + + + + InteractiveTerminalPage + + + Konsole not installed + + + + + Please install KDE Konsole and try again! + + + + + Executing script: &nbsp;<code>%1</code> + + + + + InteractiveTerminalViewStep + + + Script + + + + + KeyboardQmlViewStep + + + Keyboard + + + + + KeyboardViewStep + + + Keyboard + + + + + LCLocaleDialog + + + System locale setting + + + + + The system locale setting affects the language and character set for some command line user interface elements.<br/>The current setting is <strong>%1</strong>. + + + + + &Cancel + + + + + &OK + + + + + LicensePage + + + Form + + + + + <h1>License Agreement</h1> + + + + + I accept the terms and conditions above. + + + + + Please review the End User License Agreements (EULAs). + + + + + This setup procedure will install proprietary software that is subject to licensing terms. + + + + + If you do not agree with the terms, the setup procedure cannot continue. + + + + + This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. + + + + + If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. + + + + + LicenseViewStep + + + License + + + + + LicenseWidget + + + URL: %1 + + + + + <strong>%1 driver</strong><br/>by %2 + %1 is an untranslatable product name, example: Creative Audigy driver + + + + + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> + %1 is usually a vendor name, example: Nvidia graphics driver + + + + + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> + + + + + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> + + + + + <strong>%1 package</strong><br/><font color="Grey">by %2</font> + + + + + <strong>%1</strong><br/><font color="Grey">by %2</font> + + + + + File: %1 + + + + + Hide license text + + + + + Show the license text + + + + + Open license agreement in browser. + + + + + LocalePage + + + Region: + + + + + Zone: + + + + + + &Change... + + + + + LocaleQmlViewStep + + + Location + + + + + LocaleViewStep + + + Location + + + + + LuksBootKeyFileJob + + + Configuring LUKS key file. + + + + + + No partitions are defined. + + + + + + + Encrypted rootfs setup error + + + + + Root partition %1 is LUKS but no passphrase has been set. + + + + + Could not create LUKS key file for root partition %1. + + + + + Could not configure LUKS key file on partition %1. + + + + + MachineIdJob + + + Generate machine-id. + + + + + Configuration Error + + + + + No root mount point is set for MachineId. + + + + + Map + + + Timezone: %1 + + + + + Please select your preferred location on the map so the installer can suggest the locale + and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging + to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming. + + + + + NetInstallViewStep + + + Package selection + + + + + Office software + + + + + Office package + + + + + Browser software + + + + + Browser package + + + + + Web browser + + + + + Kernel + + + + + Services + + + + + Login + + + + + Desktop + + + + + Applications + + + + + Communication + + + + + Development + + + + + Office + + + + + Multimedia + + + + + Internet + + + + + Theming + + + + + Gaming + + + + + Utilities + + + + + NotesQmlViewStep + + + Notes + + + + + OEMPage + + + Ba&tch: + + + + + <html><head/><body><p>Enter a batch-identifier here. This will be stored in the target system.</p></body></html> + + + + + <html><head/><body><h1>OEM Configuration</h1><p>Calamares will use OEM settings while configuring the target system.</p></body></html> + + + + + OEMViewStep + + + OEM Configuration + + + + + Set the OEM Batch Identifier to <code>%1</code>. + + + + + Offline + + + Select your preferred Region, or use the default one based on your current location. + + + + + + + Timezone: %1 + + + + + Select your preferred Zone within your Region. + + + + + Zones + + + + + You can fine-tune Language and Locale settings below. + + + + + PWQ + + + Password is too short + + + + + Password is too long + + + + + Password is too weak + + + + + Memory allocation error when setting '%1' + + + + + Memory allocation error + + + + + The password is the same as the old one + + + + + The password is a palindrome + + + + + The password differs with case changes only + + + + + The password is too similar to the old one + + + + + The password contains the user name in some form + + + + + The password contains words from the real name of the user in some form + + + + + The password contains forbidden words in some form + + + + + The password contains too few digits + + + + + The password contains too few uppercase letters + + + + + The password contains fewer than %n lowercase letters + + + + + + + + The password contains too few lowercase letters + + + + + The password contains too few non-alphanumeric characters + + + + + The password is too short + + + + + The password does not contain enough character classes + + + + + The password contains too many same characters consecutively + + + + + The password contains too many characters of the same class consecutively + + + + + The password contains fewer than %n digits + + + + + + + + The password contains fewer than %n uppercase letters + + + + + + + + The password contains fewer than %n non-alphanumeric characters + + + + + + + + The password is shorter than %n characters + + + + + + + + The password is a rotated version of the previous one + + + + + The password contains fewer than %n character classes + + + + + + + + The password contains more than %n same characters consecutively + + + + + + + + The password contains more than %n characters of the same class consecutively + + + + + + + + The password contains monotonic sequence longer than %n characters + + + + + + + + The password contains too long of a monotonic character sequence + + + + + No password supplied + + + + + Cannot obtain random numbers from the RNG device + + + + + Password generation failed - required entropy too low for settings + + + + + The password fails the dictionary check - %1 + + + + + The password fails the dictionary check + + + + + Unknown setting - %1 + + + + + Unknown setting + + + + + Bad integer value of setting - %1 + + + + + Bad integer value + + + + + Setting %1 is not of integer type + + + + + Setting is not of integer type + + + + + Setting %1 is not of string type + + + + + Setting is not of string type + + + + + Opening the configuration file failed + + + + + The configuration file is malformed + + + + + Fatal failure + + + + + Unknown error + + + + + Password is empty + + + + + PackageChooserPage + + + Form + + + + + Product Name + + + + + TextLabel + + + + + Long Product Description + + + + + Package Selection + + + + + Please pick a product from the list. The selected product will be installed. + + + + + PackageChooserViewStep + + + Packages + + + + + PackageModel + + + Name + + + + + Description + + + + + Page_Keyboard + + + Form + + + + + Keyboard Model: + + + + + Type here to test your keyboard + + + + + Page_UserSetup + + + Form + + + + + What is your name? + + + + + Your Full Name + + + + + What name do you want to use to log in? + + + + + login + + + + + What is the name of this computer? + + + + + <small>This name will be used if you make the computer visible to others on a network.</small> + + + + + Computer Name + + + + + Choose a password to keep your account safe. + + + + + + <small>Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals.</small> + + + + + + Password + + + + + + Repeat Password + + + + + When this box is checked, password-strength checking is done and you will not be able to use a weak password. + + + + + Require strong passwords. + + + + + Log in automatically without asking for the password. + + + + + Use the same password for the administrator account. + + + + + Choose a password for the administrator account. + + + + + + <small>Enter the same password twice, so that it can be checked for typing errors.</small> + + + + + PartitionLabelsView + + + Root + + + + + Home + + + + + Boot + + + + + EFI system + + + + + Swap + + + + + New partition for %1 + + + + + New partition + + + + + %1 %2 + size[number] filesystem[name] + + + + + PartitionModel + + + + Free Space + + + + + + New partition + + + + + Name + + + + + File System + + + + + Mount Point + + + + + Size + + + + + PartitionPage + + + Form + + + + + Storage de&vice: + + + + + &Revert All Changes + + + + + New Partition &Table + + + + + Cre&ate + + + + + &Edit + + + + + &Delete + + + + + New Volume Group + + + + + Resize Volume Group + + + + + Deactivate Volume Group + + + + + Remove Volume Group + + + + + I&nstall boot loader on: + + + + + Are you sure you want to create a new partition table on %1? + + + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + + + + PartitionViewStep + + + Gathering system information... + + + + + Partitions + + + + + Install %1 <strong>alongside</strong> another operating system. + + + + + <strong>Erase</strong> disk and install %1. + + + + + <strong>Replace</strong> a partition with %1. + + + + + <strong>Manual</strong> partitioning. + + + + + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). + + + + + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. + + + + + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. + + + + + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). + + + + + Disk <strong>%1</strong> (%2) + + + + + Current: + + + + + After: + + + + + No EFI system partition configured + + + + + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>%3</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. + + + + + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>%3</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. + + + + + EFI system partition flag not set + + + + + Option to use GPT on BIOS + + + + + A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.<br/><br/>To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the <strong>bios_grub</strong> flag enabled.<br/><br/>An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT. + + + + + Boot partition not encrypted + + + + + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. + + + + + has at least one disk device available. + + + + + There are no partitions to install on. + + + + + PlasmaLnfJob + + + Plasma Look-and-Feel Job + + + + + + Could not select KDE Plasma Look-and-Feel package + + + + + PlasmaLnfPage + + + Form + + + + + 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 set up. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + + + + + 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. + + + + + PlasmaLnfViewStep + + + Look-and-Feel + + + + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + + + ProcessResult + + + +There was no output from the command. + + + + + +Output: + + + + + + External command crashed. + + + + + Command <i>%1</i> crashed. + + + + + External command failed to start. + + + + + Command <i>%1</i> failed to start. + + + + + Internal error when starting command. + + + + + Bad parameters for process job call. + + + + + External command failed to finish. + + + + + Command <i>%1</i> failed to finish in %2 seconds. + + + + + External command finished with errors. + + + + + Command <i>%1</i> finished with exit code %2. + + + + + QObject + + + %1 (%2) + + + + + unknown + + + + + extended + + + + + unformatted + + + + + swap + + + + + + Default + + + + + + + + File not found + + + + + Path <pre>%1</pre> must be an absolute path. + + + + + Directory not found + + + + + + Could not create new random file <pre>%1</pre>. + + + + + No product + + + + + No description provided. + + + + + (no mount point) + + + + + Unpartitioned space or unknown partition table + + + + + Recommended + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + + + RemoveUserJob + + + Remove live user from target system + + + + + RemoveVolumeGroupJob + + + + Remove Volume Group named %1. + + + + + Remove Volume Group named <strong>%1</strong>. + + + + + The installer failed to remove a volume group named '%1'. + + + + + ReplaceWidget + + + Form + + + + + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. + + + + + The selected item does not appear to be a valid partition. + + + + + %1 cannot be installed on empty space. Please select an existing partition. + + + + + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. + + + + + %1 cannot be installed on this partition. + + + + + Data partition (%1) + + + + + Unknown system partition (%1) + + + + + %1 system partition (%2) + + + + + <strong>%4</strong><br/><br/>The partition %1 is too small for %2. Please select a partition with capacity at least %3 GiB. + + + + + <strong>%2</strong><br/><br/>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. + + + + + + + <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. + + + + + The EFI system partition at %1 will be used for starting %2. + + + + + EFI system partition: + + + + + Requirements + + + <p>This computer does not satisfy the minimum requirements for installing %1.<br/> + Installation cannot continue.</p> + + + + + <p>This computer does not satisfy some of the recommended requirements for setting up %1.<br/> + Setup can continue, but some features might be disabled.</p> + + + + + ResizeFSJob + + + Resize Filesystem Job + + + + + Invalid configuration + + + + + The file-system resize job has an invalid configuration and will not run. + + + + + KPMCore not Available + + + + + Calamares cannot start KPMCore for the file-system resize job. + + + + + + + + + Resize Failed + + + + + The filesystem %1 could not be found in this system, and cannot be resized. + + + + + The device %1 could not be found in this system, and cannot be resized. + + + + + + The filesystem %1 cannot be resized. + + + + + + The device %1 cannot be resized. + + + + + The filesystem %1 must be resized, but cannot. + + + + + The device %1 must be resized, but cannot + + + + + ResizePartitionJob + + + Resize partition %1. + + + + + Resize <strong>%2MiB</strong> partition <strong>%1</strong> to <strong>%3MiB</strong>. + + + + + Resizing %2MiB partition %1 to %3MiB. + + + + + The installer failed to resize partition %1 on disk '%2'. + + + + + ResizeVolumeGroupDialog + + + Resize Volume Group + + + + + ResizeVolumeGroupJob + + + + Resize volume group named %1 from %2 to %3. + + + + + Resize volume group named <strong>%1</strong> from <strong>%2</strong> to <strong>%3</strong>. + + + + + The installer failed to resize a volume group named '%1'. + + + + + ResultsListDialog + + + For best results, please ensure that this computer: + + + + + System requirements + + + + + ResultsListWidget + + + This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled. + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + + + + + ScanningDialog + + + Scanning storage devices... + + + + + Partitioning + + + + + SetHostNameJob + + + Set hostname %1 + + + + + Set hostname <strong>%1</strong>. + + + + + Setting hostname %1. + + + + + + Internal Error + + + + + + Cannot write hostname to target system + + + + + SetKeyboardLayoutJob + + + Set keyboard model to %1, layout to %2-%3 + + + + + Failed to write keyboard configuration for the virtual console. + + + + + + + Failed to write to %1 + + + + + Failed to write keyboard configuration for X11. + + + + + Failed to write keyboard configuration to existing /etc/default directory. + + + + + SetPartFlagsJob + + + Set flags on partition %1. + + + + + Set flags on %1MiB %2 partition. + + + + + Set flags on new partition. + + + + + Clear flags on partition <strong>%1</strong>. + + + + + Clear flags on %1MiB <strong>%2</strong> partition. + + + + + Clear flags on new partition. + + + + + Flag partition <strong>%1</strong> as <strong>%2</strong>. + + + + + Flag %1MiB <strong>%2</strong> partition as <strong>%3</strong>. + + + + + Flag new partition as <strong>%1</strong>. + + + + + Clearing flags on partition <strong>%1</strong>. + + + + + Clearing flags on %1MiB <strong>%2</strong> partition. + + + + + Clearing flags on new partition. + + + + + Setting flags <strong>%2</strong> on partition <strong>%1</strong>. + + + + + Setting flags <strong>%3</strong> on %1MiB <strong>%2</strong> partition. + + + + + Setting flags <strong>%1</strong> on new partition. + + + + + The installer failed to set flags on partition %1. + + + + + SetPasswordJob + + + Set password for user %1 + + + + + Setting password for user %1. + + + + + Bad destination system path. + + + + + rootMountPoint is %1 + + + + + Cannot disable root account. + + + + + passwd terminated with error code %1. + + + + + Cannot set password for user %1. + + + + + usermod terminated with error code %1. + + + + + SetTimezoneJob + + + Set timezone to %1/%2 + + + + + Cannot access selected timezone path. + + + + + Bad path: %1 + + + + + Cannot set timezone. + + + + + Link creation failed, target: %1; link name: %2 + + + + + Cannot set timezone, + + + + + Cannot open /etc/timezone for writing + + + + + SetupGroupsJob + + + Preparing groups. + + + + + + Could not create groups in target system + + + + + These groups are missing in the target system: %1 + + + + + SetupSudoJob + + + Configure <pre>sudo</pre> users. + + + + + Cannot chmod sudoers file. + + + + + Cannot create sudoers file for writing. + + + + + ShellProcessJob + + + Shell Processes Job + + + + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + + + SummaryPage + + + This is an overview of what will happen once you start the setup procedure. + + + + + This is an overview of what will happen once you start the install procedure. + + + + + SummaryViewStep + + + Summary + + + + + TrackingInstallJob + + + Installation feedback + + + + + Sending installation feedback. + + + + + Internal error in install-tracking. + + + + + HTTP request timed out. + + + + + TrackingKUserFeedbackJob + + + KDE user feedback + + + + + Configuring KDE user feedback. + + + + + + Error in KDE user feedback configuration. + + + + + Could not configure KDE user feedback correctly, script error %1. + + + + + Could not configure KDE user feedback correctly, Calamares error %1. + + + + + TrackingMachineUpdateManagerJob + + + Machine feedback + + + + + Configuring machine feedback. + + + + + + Error in machine feedback configuration. + + + + + Could not configure machine feedback correctly, script error %1. + + + + + Could not configure machine feedback correctly, Calamares error %1. + + + + + TrackingPage + + + Form + + + + + Placeholder + + + + + <html><head/><body><p>Click here to send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + + + + + <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> + + + + + Tracking helps %1 to see how often it is installed, what hardware it is installed on and which applications are used. To see what will be sent, please click the help icon next to each area. + + + + + By selecting this you will send information about your installation and hardware. This information will only be sent <b>once</b> after the installation finishes. + + + + + By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. + + + + + By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. + + + + + TrackingViewStep + + + Feedback + + + + + UsersPage + + + <small>If more than one person will use this computer, you can create multiple accounts after setup.</small> + + + + + <small>If more than one person will use this computer, you can create multiple accounts after installation.</small> + + + + + UsersQmlViewStep + + + Users + + + + + UsersViewStep + + + Users + + + + + VariantModel + + + Key + Column header for key/value + + + + + Value + Column header for key/value + + + + + VolumeGroupBaseDialog + + + Create Volume Group + + + + + List of Physical Volumes + + + + + Volume Group Name: + + + + + Volume Group Type: + + + + + Physical Extent Size: + + + + + MiB + + + + + Total Size: + + + + + Used Size: + + + + + Total Sectors: + + + + + Quantity of LVs: + + + + + WelcomePage + + + Form + + + + + + Select application and system language + + + + + &About + + + + + Open donations website + + + + + &Donate + + + + + Open help and support website + + + + + &Support + + + + + Open issues and bug-tracking website + + + + + &Known issues + + + + + Open release notes website + + + + + &Release notes + + + + + <h1>Welcome to the Calamares setup program for %1.</h1> + + + + + <h1>Welcome to %1 setup.</h1> + + + + + <h1>Welcome to the Calamares installer for %1.</h1> + + + + + <h1>Welcome to the %1 installer.</h1> + + + + + %1 support + + + + + About %1 setup + + + + + About %1 installer + + + + + <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. + + + + + WelcomeQmlViewStep + + + Welcome + + + + + WelcomeViewStep + + + Welcome + + + + + about + + + <h1>%1</h1><br/> + <strong>%2<br/> + for %3</strong><br/><br/> + Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/> + Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/> + Thanks to <a href='https://calamares.io/team/'>the Calamares team</a> + and the <a href='https://www.transifex.com/calamares/calamares/'>Calamares + translators team</a>.<br/><br/> + <a href='https://calamares.io/'>Calamares</a> + development is sponsored by <br/> + <a href='http://www.blue-systems.com/'>Blue Systems</a> - + Liberating Software. + + + + + Back + + + + + calamares-sidebar + + + Show debug information + + + + + finishedq + + + Installation Completed + + + + + %1 has been installed on your computer.<br/> + You may now restart into your new system, or continue using the Live environment. + + + + + Close Installer + + + + + Restart System + + + + + <p>A full log of the install is available as installation.log in the home directory of the Live user.<br/> + This log is copied to /var/log/installation.log of the target system.</p> + + + + + i18n + + + <h1>Languages</h1> </br> + The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>. + + + + + <h1>Locales</h1> </br> + The system locale setting affects the numbers and dates format. The current setting is <strong>%1</strong>. + + + + + Back + + + + + keyboardq + + + Keyboard Model + + + + + Layouts + + + + + Keyboard Layout + + + + + Click your preferred keyboard model to select layout and variant, or use the default one based on the detected hardware. + + + + + Models + + + + + Variants + + + + + Keyboard Variant + + + + + Test your keyboard + + + + + localeq + + + Change + + + + + notesqml + + + <h3>%1</h3> + <p>These are example release notes.</p> + + + + + release_notes + + + <h3>%1</h3> + <p>This an example QML file, showing options in RichText with Flickable content.</p> + + <p>QML with RichText can use HTML tags, Flickable content is useful for touchscreens.</p> + + <p><b>This is bold text</b></p> + <p><i>This is italic text</i></p> + <p><u>This is underlined text</u></p> + <p><center>This text will be center-aligned.</center></p> + <p><s>This is strikethrough</s></p> + + <p>Code example: + <code>ls -l /home</code></p> + + <p><b>Lists:</b></p> + <ul> + <li>Intel CPU systems</li> + <li>AMD CPU systems</li> + </ul> + + <p>The vertical scrollbar is adjustable, current width set to 10.</p> + + + + + Back + + + + + usersq + + + Pick your user name and credentials to login and perform admin tasks + + + + + What is your name? + + + + + Your Full Name + + + + + What name do you want to use to log in? + + + + + Login Name + + + + + If more than one person will use this computer, you can create multiple accounts after installation. + + + + + What is the name of this computer? + + + + + Computer Name + + + + + This name will be used if you make the computer visible to others on a network. + + + + + Choose a password to keep your account safe. + + + + + Password + + + + + Repeat Password + + + + + Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals. + + + + + Validate passwords quality + + + + + When this box is checked, password-strength checking is done and you will not be able to use a weak password. + + + + + Log in automatically without asking for the password + + + + + Reuse user password as root password + + + + + Use the same password for the administrator account. + + + + + Choose a root password to keep your account safe. + + + + + Root Password + + + + + Repeat Root Password + + + + + Enter the same password twice, so that it can be checked for typing errors. + + + + + welcomeq + + + <h3>Welcome to the %1 <quote>%2</quote> installer</h3> + <p>This program will ask you some questions and set up %1 on your computer.</p> + + + + + About + + + + + Support + + + + + Known issues + + + + + Release notes + + + + + Donate + + + + diff --git a/lang/calamares_fr.ts b/lang/calamares_fr.ts index 6f2c1c1f7..b28c80fdd 100644 --- a/lang/calamares_fr.ts +++ b/lang/calamares_fr.ts @@ -104,7 +104,7 @@ Crashes Calamares, so that Dr. Konqui can look at it. - Crashes Calamares, pour que le Dr. Konqui puisse les regarder. + Accidents de Calamares, pour que le Dr. Konqui puisse les regarder. diff --git a/lang/calamares_he.ts b/lang/calamares_he.ts index 68db59150..881e05a5c 100644 --- a/lang/calamares_he.ts +++ b/lang/calamares_he.ts @@ -119,7 +119,7 @@ Send Session Log - + שליחת קובץ היומן של ההפעלה @@ -758,7 +758,7 @@ The installer will quit and all changes will be lost. Network Installation. (Disabled: Incorrect configuration) - התקנת רשת. (מושבתת: תצורה שגויה) + התקנה מהרשת. (מושבתת: תצורה שגויה) @@ -768,7 +768,7 @@ The installer will quit and all changes will be lost. Network Installation. (Disabled: Internal error) - + התקנה מהרשת. (מושבתת: שגיאה פנימית) @@ -888,12 +888,12 @@ The installer will quit and all changes will be lost. The setup of %1 did not complete successfully. - + התקנת %1 לא הושלמה בהצלחה. The installation of %1 did not complete successfully. - ההתקנה של %1 לא הסתיימה בהצלחה. + התקנת %1 לא הושלמה בהצלחה. @@ -1012,7 +1012,7 @@ The installer will quit and all changes will be lost. Create new %1MiB partition on %3 (%2). - + יצירת מחיצה חדשה בגודל %1MiB על גבי %3 ‏(%2). @@ -1027,7 +1027,7 @@ The installer will quit and all changes will be lost. Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2). - + יצירת מחיצה חדשה בגודל <strong>%1MiB</strong> על גבי <strong>%3</strong> ‏(%2). diff --git a/lang/calamares_ja.ts b/lang/calamares_ja.ts index a0fb111d9..db8e8421b 100644 --- a/lang/calamares_ja.ts +++ b/lang/calamares_ja.ts @@ -574,7 +574,7 @@ The installer will quit and all changes will be lost. The EFI system partition at %1 will be used for starting %2. - %1 上のEFIシステムパーテイションは %2 のスタートに使用されます。 + %1 の EFI システム パーティションは、%2 の起動に使用されます。 diff --git a/lang/calamares_nl.ts b/lang/calamares_nl.ts index 53c2848ec..31cf85468 100644 --- a/lang/calamares_nl.ts +++ b/lang/calamares_nl.ts @@ -6,7 +6,7 @@ Manage auto-mount settings - + Beheer auto-mount instellingen @@ -104,22 +104,22 @@ Crashes Calamares, so that Dr. Konqui can look at it. - + Laat Calamares crashen, zodat Dr. Konqui er naar kan kijken. Reloads the stylesheet from the branding directory. - + Laadt het stylesheet van de fabrikantsmap opnieuw. Uploads the session log to the configured pastebin. - + Uploads de sessielogboeken naar de geconfigureerde pastebin. Send Session Log - + Verstuur Sessielogboeken @@ -129,7 +129,7 @@ Displays the tree of widget names in the log (for stylesheet debugging). - + Weergeeft de boom van widgetnamen in het logboek (voor stylesheet debuggen). @@ -338,7 +338,11 @@ %1 Link copied to clipboard - + Installatielogboek geposte naar: + +%1 + +Link gekopieerd naar klembord @@ -626,17 +630,17 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. This storage device already has an operating system on it, but the partition table <strong>%1</strong> is different from the needed <strong>%2</strong>.<br/> - + Dit opslagmedium bevat al een besturingssysteem, maar de partitietabel <strong>%1</strong> is anders dan het benodigde <strong>%2</strong>.<br/> This storage device has one of its partitions <strong>mounted</strong>. - + Dit opslagmedium heeft een van de partities <strong>gemount</strong>. This storage device is a part of an <strong>inactive RAID</strong> device. - + Dit opslagmedium maakt deel uit van een <strong>inactieve RAID</strong> apparaat. @@ -764,12 +768,12 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Network Installation. (Disabled: Internal error) - + Netwerkinstallatie. (Uitgeschakeld: Interne Fout) Network Installation. (Disabled: No package list) - + Netwerkinstallatie. (Uitgeschakeld: Ontbrekende pakketlijst) @@ -884,12 +888,12 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. The setup of %1 did not complete successfully. - + De voorbereiding van %1 is niet met succes voltooid. The installation of %1 did not complete successfully. - + De installatie van %1 is niet met succes voltooid. @@ -1003,12 +1007,12 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Create new %1MiB partition on %3 (%2) with entries %4. - + Maak nieuwe %1MiB partitie aan op %3 (%2) met onderdelen %4. Create new %1MiB partition on %3 (%2). - + Maak nieuwe %1MiB partitie aan op %3 (%2). @@ -1018,12 +1022,12 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2) with entries <em>%4</em>. - + Maak een nieuwe <strong>%1MiB</strong> partitie aan op <strong>%3</strong> (%2) met onderdelen <em>%4</em>. Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2). - + Maak een nieuwe <strong>%1MiB</strong> partitie aan op <strong>%3</strong> (%2). @@ -1108,13 +1112,13 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Preserving home directory - + Gebruikersmap wordt behouden Creating user %1 - + Gebruiker %1 aanmaken @@ -1371,7 +1375,7 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Install %1 on <strong>new</strong> %2 system partition with features <em>%3</em> - + Installeer %1 op <strong>nieuwe</strong> %2 systeempartitie met features <em>%3</em> @@ -1381,27 +1385,27 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong> and features <em>%3</em>. - + <strong>Nieuwe</strong> %2 partitie voorbereiden met aankoppelpunt <strong>%1</strong> en features <em>%3</em>. Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>%3. - + Maak <strong>nieuwe</strong> %2 partitie met aankoppelpunt <strong>%1</strong>%3. Install %2 on %3 system partition <strong>%1</strong> with features <em>%4</em>. - + Installeer %2 op %3 systeempartitie <strong>%1</strong> met features <em>%4</em> Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong> and features <em>%4</em>. - + Stel %3 partitie <strong>%1</strong> in met aankoppelpunt <strong>%2</strong> met features <em>%4</em>. Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>%4. - + Stel %3 partitie <strong>%1</strong> in met aankoppelpunt <strong>%2</strong>%4. @@ -2146,9 +2150,9 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. The password contains fewer than %n lowercase letters - - - + + Het wachtwoord bevat minder dan %n kleine letters + Het wachtwoord bevat minder dan %n kleine letters @@ -2184,70 +2188,70 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. The password contains fewer than %n digits - - - + + Het wachtwoord bevat minder dan %n getallen + Het wachtwoord bevat minder dan %n getallen The password contains fewer than %n uppercase letters - - - + + Het wachtwoord bevat minder dan %n hoofdletters + Het wachtwoord bevat minder dan %n hoofdletters The password contains fewer than %n non-alphanumeric characters - - - + + Het wachtwoord bevat minder dan %n niet-alfanumerieke symbolen. + Het wachtwoord bevat minder dan %n niet-alfanumerieke symbolen. The password is shorter than %n characters - - - + + Het wachtwoord is korter dan %n karakters + Het wachtwoord is korter dan %n karakters The password is a rotated version of the previous one - + Het wachtwoord is een omgedraaide versie van de oude The password contains fewer than %n character classes - - - + + Het wachtwoord bevat minder dan %n karaktergroepen + Het wachtwoord bevat minder dan %n karaktergroepen The password contains more than %n same characters consecutively - - - + + Het wachtwoord bevat meer dan %n dezelfde karakters na elkaar + Het wachtwoord bevat meer dan %n dezelfde karakters na elkaar The password contains more than %n characters of the same class consecutively - - - + + Het wachtwoord bevat meer dan %n dezelfde karakters van dezelfde groep na elkaar + Het wachtwoord bevat meer dan %n dezelfde karakters van dezelfde groep na elkaar The password contains monotonic sequence longer than %n characters - - - + + Het wachtwoord bevat een monotone sequentie van meer dan %n karakters + Het wachtwoord bevat een monotone sequentie van meer dan %n karakters @@ -2966,7 +2970,7 @@ Uitvoer: Directory not found - + Map niet gevonden @@ -3530,12 +3534,12 @@ De installatie kan niet doorgaan. Could not create groups in target system - + Kan groepen niet creëren in doelsysteem. These groups are missing in the target system: %1 - + Deze groepen bestaan niet in het doelsysteem: %1 @@ -3543,7 +3547,7 @@ De installatie kan niet doorgaan. Configure <pre>sudo</pre> users. - + Configureer <pre>sudo</pre> (administratie) gebruikers. @@ -3954,7 +3958,7 @@ De installatie kan niet doorgaan. development is sponsored by <br/> <a href='http://www.blue-systems.com/'>Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/><strong>%2<br/>voor %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2020 Adriaan de Groot &lt;groot@kde.org&gt;<br/> Met dank aan <a href="https://calamares.io/team/">het Calamares team</a> en <a href="https://www.transifex.com/calamares/calamares/">het Calamares vertaalteam</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> ontwikkeling gesponsord door <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. @@ -3975,29 +3979,31 @@ De installatie kan niet doorgaan. Installation Completed - + Installatie Voltooid %1 has been installed on your computer.<br/> You may now restart into your new system, or continue using the Live environment. - + %1 is geïnstalleerd op je computer.<br/> +Je mag nu opnieuw opstarten in je systeem, of de Live-omgeving blijven gebruiken. Close Installer - + Sluit Installatieprogramma Restart System - + Herstart Systeem <p>A full log of the install is available as installation.log in the home directory of the Live user.<br/> This log is copied to /var/log/installation.log of the target system.</p> - + <p>Een logboek van de installatie is beschikbaar als installation.log in de gebruikersmap van de Live gebruiker<br/> +Dit logboek is ook gekopieerd naar /var/log/installation.log van het doelsysteem.</p> @@ -4042,7 +4048,7 @@ De systeemstijdinstellingen beïnvloeden de cijfer- en datumsformaat. De huidige Click your preferred keyboard model to select layout and variant, or use the default one based on the detected hardware. - + Kies je voorkeurstoetsenbordmodel om lay-out en variant te selecteren, of gebruik het standaardmodel op de gedetecteerde hardware. @@ -4057,7 +4063,7 @@ De systeemstijdinstellingen beïnvloeden de cijfer- en datumsformaat. De huidige Keyboard Variant - + Toetsenbord Variant @@ -4140,7 +4146,7 @@ De systeemstijdinstellingen beïnvloeden de cijfer- en datumsformaat. De huidige Pick your user name and credentials to login and perform admin tasks - + Kies je gebruikersnaam en wachtwoord om in te loggen en administratieve taken uit te voeren @@ -4160,12 +4166,12 @@ De systeemstijdinstellingen beïnvloeden de cijfer- en datumsformaat. De huidige Login Name - + Inlognaam If more than one person will use this computer, you can create multiple accounts after installation. - + Als meer dan één persoon deze computer zal gebruiken, kan je meerdere accounts aanmaken na installatie. @@ -4180,7 +4186,7 @@ De systeemstijdinstellingen beïnvloeden de cijfer- en datumsformaat. De huidige This name will be used if you make the computer visible to others on a network. - + Deze naam zal worden gebruikt als u de computer zichtbaar maakt voor anderen op een netwerk. @@ -4200,12 +4206,12 @@ De systeemstijdinstellingen beïnvloeden de cijfer- en datumsformaat. De huidige Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals. - + Voer hetzelfde wachtwoord twee keer in, zodat het gecontroleerd kan worden op tikfouten. Een goed wachtwoord bevat een combinatie van letters, cijfers en leestekens, is ten minste acht tekens lang, en zou regelmatig moeten worden gewijzigd. Validate passwords quality - + Controleer wachtwoorden op gelijkheid @@ -4215,12 +4221,12 @@ De systeemstijdinstellingen beïnvloeden de cijfer- en datumsformaat. De huidige Log in automatically without asking for the password - + Automatisch aanmelden zonder wachtwoord te vragen Reuse user password as root password - + Hergebruik gebruikerswachtwoord als root (administratie) wachtwoord. @@ -4230,22 +4236,22 @@ De systeemstijdinstellingen beïnvloeden de cijfer- en datumsformaat. De huidige Choose a root password to keep your account safe. - + Kies een root (administratie) wachtwoord om je account veilig te houden. Root Password - + Root (Administratie) Wachtwoord Repeat Root Password - + Herhaal Root Wachtwoord Enter the same password twice, so that it can be checked for typing errors. - + Voer hetzelfde wachtwoord twee keer in, zodat het gecontroleerd kan worden op tikfouten. From d71e0a009c8dbc51b186b50b5377ba34addbf7d7 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Tue, 8 Jun 2021 17:50:10 +0200 Subject: [PATCH 42/43] i18n: [python] Automatic merge of Transifex translations --- lang/python/es_MX/LC_MESSAGES/python.po | 99 ++++--- lang/python/es_PE/LC_MESSAGES/python.po | 347 ++++++++++++++++++++++++ lang/python/he/LC_MESSAGES/python.po | 2 +- lang/python/pl/LC_MESSAGES/python.po | 46 +++- 4 files changed, 435 insertions(+), 59 deletions(-) create mode 100644 lang/python/es_PE/LC_MESSAGES/python.po diff --git a/lang/python/es_MX/LC_MESSAGES/python.po b/lang/python/es_MX/LC_MESSAGES/python.po index 37171cb0e..6942a7859 100644 --- a/lang/python/es_MX/LC_MESSAGES/python.po +++ b/lang/python/es_MX/LC_MESSAGES/python.po @@ -6,6 +6,7 @@ # Translators: # guillermo pacheco , 2018 # Logan 8192 , 2018 +# Erland Huaman , 2021 # #, fuzzy msgid "" @@ -14,7 +15,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 14:27+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" -"Last-Translator: Logan 8192 , 2018\n" +"Last-Translator: Erland Huaman , 2021\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" @@ -24,11 +25,11 @@ msgstr "" #: src/modules/grubcfg/main.py:28 msgid "Configure GRUB." -msgstr "" +msgstr "Configura GRUB." #: src/modules/mount/main.py:30 msgid "Mounting partitions." -msgstr "" +msgstr "Montando particiones." #: src/modules/mount/main.py:125 src/modules/initcpiocfg/main.py:198 #: src/modules/initcpiocfg/main.py:202 @@ -40,51 +41,56 @@ msgstr "" #: src/modules/fstab/main.py:361 src/modules/localecfg/main.py:135 #: src/modules/networkcfg/main.py:39 msgid "Configuration Error" -msgstr "" +msgstr "Error de configuración" #: src/modules/mount/main.py:126 src/modules/initcpiocfg/main.py:199 #: src/modules/luksopenswaphookcfg/main.py:87 src/modules/rawfs/main.py:165 #: src/modules/initramfscfg/main.py:86 src/modules/openrcdmcryptcfg/main.py:73 #: src/modules/fstab/main.py:356 msgid "No partitions are defined for
{!s}
to use." -msgstr "" +msgstr "No hay particiones definidas para que
{!s}
use." #: src/modules/services-systemd/main.py:26 msgid "Configure systemd services" -msgstr "" +msgstr "Configura los servicios de systemd" #: src/modules/services-systemd/main.py:59 #: src/modules/services-openrc/main.py:93 msgid "Cannot modify service" -msgstr "" +msgstr "No se puede modificar el servicio." #: src/modules/services-systemd/main.py:60 msgid "" "systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" +"La llamada de: systemctl {arg!s} en chroot retorna código de " +"error {num!s}." #: src/modules/services-systemd/main.py:63 #: src/modules/services-systemd/main.py:67 msgid "Cannot enable systemd service {name!s}." -msgstr "" +msgstr "No se puede habilitar el servicio {name!s} de systemd." #: src/modules/services-systemd/main.py:65 msgid "Cannot enable systemd target {name!s}." -msgstr "" +msgstr "No se puede habilitar el objetivo {name!s} de systemd." #: src/modules/services-systemd/main.py:69 msgid "Cannot disable systemd target {name!s}." msgstr "" +"No se puede deshabilitar el objetivo {name!s} de systemd." #: src/modules/services-systemd/main.py:71 msgid "Cannot mask systemd unit {name!s}." -msgstr "" +msgstr "No se puede enmascarar la unidad {name!s} de systemd." #: src/modules/services-systemd/main.py:73 msgid "" "Unknown systemd commands {command!s} and " "{suffix!s} for unit {name!s}." msgstr "" +"systemd no reconoce los comandos {command!s} y " +"{suffix!s}para la unidad {name!s}." #: src/modules/umount/main.py:31 msgid "Unmount file systems." @@ -92,62 +98,67 @@ msgstr "Desmontar sistemas de archivo." #: src/modules/unpackfs/main.py:35 msgid "Filling up filesystems." -msgstr "" +msgstr "Llenando sistema de archivos." #: src/modules/unpackfs/main.py:255 msgid "rsync failed with error code {}." -msgstr "" +msgstr "rsync falló con código de error {}." #: src/modules/unpackfs/main.py:300 msgid "Unpacking image {}/{}, file {}/{}" -msgstr "" +msgstr "Desempaquetando imagen {}/{}, archivo {}/{}" #: src/modules/unpackfs/main.py:315 msgid "Starting to unpack {}" -msgstr "" +msgstr "Iniciando a desempaquetar {}" #: src/modules/unpackfs/main.py:324 src/modules/unpackfs/main.py:464 msgid "Failed to unpack image \"{}\"" -msgstr "" +msgstr "Se falló en la desempaquetización de la imagen \"{}\"" #: src/modules/unpackfs/main.py:431 msgid "No mount point for root partition" -msgstr "" +msgstr "No existe punto de montaje para la partición raíz" #: src/modules/unpackfs/main.py:432 msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr "" +"el globalstorage no contiene una llave \"rootMountPoint\", no se hace nada" #: src/modules/unpackfs/main.py:437 msgid "Bad mount point for root partition" -msgstr "" +msgstr "Mal punto de montaje para la partición raíz" #: src/modules/unpackfs/main.py:438 msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" -msgstr "" +msgstr "rootMountPoint es \"{}\", el cual no existe, no se hace nada" #: src/modules/unpackfs/main.py:454 src/modules/unpackfs/main.py:458 #: src/modules/unpackfs/main.py:478 msgid "Bad unsquash configuration" -msgstr "" +msgstr "Mala configuración del paquete unsquash" #: src/modules/unpackfs/main.py:455 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" +"Tu kernel actual no tiene soporte para el sistema de archivos para \"{}\" " +"({})" #: src/modules/unpackfs/main.py:459 msgid "The source filesystem \"{}\" does not exist" -msgstr "" +msgstr "El sistema de archivos fuente \"{}\" no existe" #: src/modules/unpackfs/main.py:465 msgid "" "Failed to find unsquashfs, make sure you have the squashfs-tools package " "installed" msgstr "" +"Falla buscando unsquashfs, asegúrate de tener el paquete squashfs-tools " +"instalado" #: src/modules/unpackfs/main.py:479 msgid "The destination \"{}\" in the target system is not a directory" -msgstr "" +msgstr "El destino \"{}\" en el sistema objetivo no es un directorio" #: src/modules/displaymanager/main.py:514 msgid "Cannot write KDM configuration file" @@ -179,7 +190,7 @@ msgstr "No se puede configurar LightDM" #: src/modules/displaymanager/main.py:736 msgid "No LightDM greeter installed." -msgstr "" +msgstr "LightDM greeter no está instalado." #: src/modules/displaymanager/main.py:767 msgid "Cannot write SLIM configuration file" @@ -191,21 +202,23 @@ msgstr "" #: src/modules/displaymanager/main.py:894 msgid "No display managers selected for the displaymanager module." -msgstr "" +msgstr "No se seleccionaron gestores para el módulo de gestor de pantalla." #: src/modules/displaymanager/main.py:895 msgid "" "The displaymanagers list is empty or undefined in both globalstorage and " "displaymanager.conf." msgstr "" +"La lista de gestores de pantalla está vacía o indefinida tanto en el " +"globalstorage como en el displaymanager.conf." #: src/modules/displaymanager/main.py:977 msgid "Display manager configuration was incomplete" -msgstr "" +msgstr "La configuración del gestor de pantalla estaba incompleta" #: src/modules/initcpiocfg/main.py:28 msgid "Configuring mkinitcpio." -msgstr "" +msgstr "Configurando mkinitcpio" #: src/modules/initcpiocfg/main.py:203 #: src/modules/luksopenswaphookcfg/main.py:91 @@ -217,15 +230,15 @@ msgstr "" #: src/modules/luksopenswaphookcfg/main.py:26 msgid "Configuring encrypted swap." -msgstr "" +msgstr "Configurando la swap encriptada." #: src/modules/rawfs/main.py:26 msgid "Installing data." -msgstr "" +msgstr "Instalando data." #: src/modules/services-openrc/main.py:29 msgid "Configure OpenRC services" -msgstr "" +msgstr "Configura los servicios de OpenRC" #: src/modules/services-openrc/main.py:57 msgid "Cannot add service {name!s} to run-level {level!s}." @@ -248,7 +261,7 @@ msgstr "" #: src/modules/services-openrc/main.py:101 msgid "Target runlevel does not exist" -msgstr "" +msgstr "El nivel de ejecución del objetivo no existe" #: src/modules/services-openrc/main.py:102 msgid "" @@ -258,7 +271,7 @@ msgstr "" #: src/modules/services-openrc/main.py:110 msgid "Target service does not exist" -msgstr "" +msgstr "El servicio objetivo no existe" #: src/modules/services-openrc/main.py:111 msgid "" @@ -268,7 +281,7 @@ msgstr "" #: src/modules/plymouthcfg/main.py:27 msgid "Configure Plymouth theme" -msgstr "" +msgstr "Configurando el tema de Plymouth" #: src/modules/packages/main.py:50 src/modules/packages/main.py:59 #: src/modules/packages/main.py:69 @@ -296,43 +309,43 @@ msgstr[1] "Removiendo %(num)dpaquetes." #: src/modules/bootloader/main.py:43 msgid "Install bootloader." -msgstr "" +msgstr "Instalar el cargador de arranque." #: src/modules/hwclock/main.py:26 msgid "Setting hardware clock." -msgstr "" +msgstr "Configurando el reloj del hardware." #: src/modules/mkinitfs/main.py:27 msgid "Creating initramfs with mkinitfs." -msgstr "" +msgstr "Creando initramfs con mkinitfs." #: src/modules/mkinitfs/main.py:49 msgid "Failed to run mkinitfs on the target" -msgstr "" +msgstr "Se falló al intentar correr mkinitfs en el objetivo" #: src/modules/mkinitfs/main.py:50 src/modules/dracut/main.py:50 msgid "The exit code was {}" -msgstr "" +msgstr "El código de salida fue {}" #: src/modules/dracut/main.py:27 msgid "Creating initramfs with dracut." -msgstr "" +msgstr "Creando initramfs con dracut" #: src/modules/dracut/main.py:49 msgid "Failed to run dracut on the target" -msgstr "" +msgstr "Se falló al intentar correr dracut en el objetivo" #: src/modules/initramfscfg/main.py:32 msgid "Configuring initramfs." -msgstr "" +msgstr "Configurando initramfs." #: src/modules/openrcdmcryptcfg/main.py:26 msgid "Configuring OpenRC dmcrypt service." -msgstr "" +msgstr "Configurando el servicio OpenRc dmcrypt." #: src/modules/fstab/main.py:29 msgid "Writing fstab." -msgstr "" +msgstr "Escribiento fstab." #: src/modules/dummypython/main.py:35 msgid "Dummy python job." @@ -345,8 +358,8 @@ msgstr "Paso python ficticio {}" #: src/modules/localecfg/main.py:30 msgid "Configuring locales." -msgstr "" +msgstr "Configurando locales." #: src/modules/networkcfg/main.py:28 msgid "Saving network configuration." -msgstr "" +msgstr "Guardando configuración de red." diff --git a/lang/python/es_PE/LC_MESSAGES/python.po b/lang/python/es_PE/LC_MESSAGES/python.po new file mode 100644 index 000000000..20096e12c --- /dev/null +++ b/lang/python/es_PE/LC_MESSAGES/python.po @@ -0,0 +1,347 @@ +# 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-03-19 14:27+0100\n" +"PO-Revision-Date: 2017-08-09 10:34+0000\n" +"Language-Team: Spanish (Peru) (https://www.transifex.com/calamares/teams/20061/es_PE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es_PE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: src/modules/grubcfg/main.py:28 +msgid "Configure GRUB." +msgstr "" + +#: src/modules/mount/main.py:30 +msgid "Mounting partitions." +msgstr "" + +#: src/modules/mount/main.py:125 src/modules/initcpiocfg/main.py:198 +#: src/modules/initcpiocfg/main.py:202 +#: src/modules/luksopenswaphookcfg/main.py:86 +#: src/modules/luksopenswaphookcfg/main.py:90 src/modules/rawfs/main.py:164 +#: src/modules/initramfscfg/main.py:85 src/modules/initramfscfg/main.py:89 +#: src/modules/openrcdmcryptcfg/main.py:72 +#: src/modules/openrcdmcryptcfg/main.py:76 src/modules/fstab/main.py:355 +#: src/modules/fstab/main.py:361 src/modules/localecfg/main.py:135 +#: src/modules/networkcfg/main.py:39 +msgid "Configuration Error" +msgstr "" + +#: src/modules/mount/main.py:126 src/modules/initcpiocfg/main.py:199 +#: src/modules/luksopenswaphookcfg/main.py:87 src/modules/rawfs/main.py:165 +#: src/modules/initramfscfg/main.py:86 src/modules/openrcdmcryptcfg/main.py:73 +#: src/modules/fstab/main.py:356 +msgid "No partitions are defined for
{!s}
to use." +msgstr "" + +#: src/modules/services-systemd/main.py:26 +msgid "Configure systemd services" +msgstr "" + +#: src/modules/services-systemd/main.py:59 +#: src/modules/services-openrc/main.py:93 +msgid "Cannot modify service" +msgstr "" + +#: src/modules/services-systemd/main.py:60 +msgid "" +"systemctl {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:63 +#: src/modules/services-systemd/main.py:67 +msgid "Cannot enable systemd service {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:65 +msgid "Cannot enable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:69 +msgid "Cannot disable systemd target {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:71 +msgid "Cannot mask systemd unit {name!s}." +msgstr "" + +#: src/modules/services-systemd/main.py:73 +msgid "" +"Unknown systemd commands {command!s} and " +"{suffix!s} for unit {name!s}." +msgstr "" + +#: src/modules/umount/main.py:31 +msgid "Unmount file systems." +msgstr "" + +#: src/modules/unpackfs/main.py:35 +msgid "Filling up filesystems." +msgstr "" + +#: src/modules/unpackfs/main.py:255 +msgid "rsync failed with error code {}." +msgstr "" + +#: src/modules/unpackfs/main.py:300 +msgid "Unpacking image {}/{}, file {}/{}" +msgstr "" + +#: src/modules/unpackfs/main.py:315 +msgid "Starting to unpack {}" +msgstr "" + +#: src/modules/unpackfs/main.py:324 src/modules/unpackfs/main.py:464 +msgid "Failed to unpack image \"{}\"" +msgstr "" + +#: src/modules/unpackfs/main.py:431 +msgid "No mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:432 +msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:437 +msgid "Bad mount point for root partition" +msgstr "" + +#: src/modules/unpackfs/main.py:438 +msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" +msgstr "" + +#: src/modules/unpackfs/main.py:454 src/modules/unpackfs/main.py:458 +#: src/modules/unpackfs/main.py:478 +msgid "Bad unsquash configuration" +msgstr "" + +#: src/modules/unpackfs/main.py:455 +msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" +msgstr "" + +#: src/modules/unpackfs/main.py:459 +msgid "The source filesystem \"{}\" does not exist" +msgstr "" + +#: src/modules/unpackfs/main.py:465 +msgid "" +"Failed to find unsquashfs, make sure you have the squashfs-tools package " +"installed" +msgstr "" + +#: src/modules/unpackfs/main.py:479 +msgid "The destination \"{}\" in the target system is not a directory" +msgstr "" + +#: src/modules/displaymanager/main.py:514 +msgid "Cannot write KDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:515 +msgid "KDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:576 +msgid "Cannot write LXDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:577 +msgid "LXDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:660 +msgid "Cannot write LightDM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:661 +msgid "LightDM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:735 +msgid "Cannot configure LightDM" +msgstr "" + +#: src/modules/displaymanager/main.py:736 +msgid "No LightDM greeter installed." +msgstr "" + +#: src/modules/displaymanager/main.py:767 +msgid "Cannot write SLIM configuration file" +msgstr "" + +#: src/modules/displaymanager/main.py:768 +msgid "SLIM config file {!s} does not exist" +msgstr "" + +#: src/modules/displaymanager/main.py:894 +msgid "No display managers selected for the displaymanager module." +msgstr "" + +#: src/modules/displaymanager/main.py:895 +msgid "" +"The displaymanagers list is empty or undefined in both globalstorage and " +"displaymanager.conf." +msgstr "" + +#: src/modules/displaymanager/main.py:977 +msgid "Display manager configuration was incomplete" +msgstr "" + +#: src/modules/initcpiocfg/main.py:28 +msgid "Configuring mkinitcpio." +msgstr "" + +#: src/modules/initcpiocfg/main.py:203 +#: src/modules/luksopenswaphookcfg/main.py:91 +#: src/modules/initramfscfg/main.py:90 src/modules/openrcdmcryptcfg/main.py:77 +#: src/modules/fstab/main.py:362 src/modules/localecfg/main.py:136 +#: src/modules/networkcfg/main.py:40 +msgid "No root mount point is given for
{!s}
to use." +msgstr "" + +#: src/modules/luksopenswaphookcfg/main.py:26 +msgid "Configuring encrypted swap." +msgstr "" + +#: src/modules/rawfs/main.py:26 +msgid "Installing data." +msgstr "" + +#: src/modules/services-openrc/main.py:29 +msgid "Configure OpenRC services" +msgstr "" + +#: src/modules/services-openrc/main.py:57 +msgid "Cannot add service {name!s} to run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:59 +msgid "Cannot remove service {name!s} from run-level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:61 +msgid "" +"Unknown service-action {arg!s} for service {name!s} in run-" +"level {level!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:94 +msgid "" +"rc-update {arg!s} call in chroot returned error code {num!s}." +msgstr "" + +#: src/modules/services-openrc/main.py:101 +msgid "Target runlevel does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:102 +msgid "" +"The path for runlevel {level!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/services-openrc/main.py:110 +msgid "Target service does not exist" +msgstr "" + +#: src/modules/services-openrc/main.py:111 +msgid "" +"The path for service {name!s} is {path!s}, which does not " +"exist." +msgstr "" + +#: src/modules/plymouthcfg/main.py:27 +msgid "Configure Plymouth theme" +msgstr "" + +#: src/modules/packages/main.py:50 src/modules/packages/main.py:59 +#: src/modules/packages/main.py:69 +msgid "Install packages." +msgstr "" + +#: src/modules/packages/main.py:57 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "" + +#: src/modules/packages/main.py:62 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/packages/main.py:65 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" + +#: src/modules/bootloader/main.py:43 +msgid "Install bootloader." +msgstr "" + +#: src/modules/hwclock/main.py:26 +msgid "Setting hardware clock." +msgstr "" + +#: src/modules/mkinitfs/main.py:27 +msgid "Creating initramfs with mkinitfs." +msgstr "" + +#: src/modules/mkinitfs/main.py:49 +msgid "Failed to run mkinitfs on the target" +msgstr "" + +#: src/modules/mkinitfs/main.py:50 src/modules/dracut/main.py:50 +msgid "The exit code was {}" +msgstr "" + +#: src/modules/dracut/main.py:27 +msgid "Creating initramfs with dracut." +msgstr "" + +#: src/modules/dracut/main.py:49 +msgid "Failed to run dracut on the target" +msgstr "" + +#: src/modules/initramfscfg/main.py:32 +msgid "Configuring initramfs." +msgstr "" + +#: src/modules/openrcdmcryptcfg/main.py:26 +msgid "Configuring OpenRC dmcrypt service." +msgstr "" + +#: src/modules/fstab/main.py:29 +msgid "Writing fstab." +msgstr "" + +#: src/modules/dummypython/main.py:35 +msgid "Dummy python job." +msgstr "" + +#: src/modules/dummypython/main.py:37 src/modules/dummypython/main.py:93 +#: src/modules/dummypython/main.py:94 +msgid "Dummy python step {}" +msgstr "" + +#: src/modules/localecfg/main.py:30 +msgid "Configuring locales." +msgstr "" + +#: src/modules/networkcfg/main.py:28 +msgid "Saving network configuration." +msgstr "" diff --git a/lang/python/he/LC_MESSAGES/python.po b/lang/python/he/LC_MESSAGES/python.po index 414247edb..21cdc6a56 100644 --- a/lang/python/he/LC_MESSAGES/python.po +++ b/lang/python/he/LC_MESSAGES/python.po @@ -5,7 +5,7 @@ # # Translators: # Eli Shleifer , 2017 -# Omeritzics Games , 2020 +# Omer I.S. , 2020 # Yaron Shahrabani , 2020 # #, fuzzy diff --git a/lang/python/pl/LC_MESSAGES/python.po b/lang/python/pl/LC_MESSAGES/python.po index 1b899113f..fac070882 100644 --- a/lang/python/pl/LC_MESSAGES/python.po +++ b/lang/python/pl/LC_MESSAGES/python.po @@ -7,6 +7,7 @@ # Marcin Mikołajczak , 2017 # KagiSame, 2018 # Piotr Strębski , 2020 +# Jacob B. , 2021 # #, fuzzy msgid "" @@ -15,7 +16,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-03-19 14:27+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" -"Last-Translator: Piotr Strębski , 2020\n" +"Last-Translator: Jacob B. , 2021\n" "Language-Team: Polish (https://www.transifex.com/calamares/teams/20061/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -48,7 +49,7 @@ msgstr "Błąd konfiguracji" #: src/modules/initramfscfg/main.py:86 src/modules/openrcdmcryptcfg/main.py:73 #: src/modules/fstab/main.py:356 msgid "No partitions are defined for
{!s}
to use." -msgstr "" +msgstr "Nie ma zdefiniowanych partycji dla
{!s}
do użytku." #: src/modules/services-systemd/main.py:26 msgid "Configure systemd services" @@ -63,29 +64,32 @@ msgstr "Nie można zmodyfikować usług" msgid "" "systemctl {arg!s} call in chroot returned error code {num!s}." msgstr "" +"Wezwanie systemctl {arg!s} w chroot zwróciło kod błędu {num!s}." #: src/modules/services-systemd/main.py:63 #: src/modules/services-systemd/main.py:67 msgid "Cannot enable systemd service {name!s}." -msgstr "" +msgstr "Nie można włączyć usługi systemd {name!s}." #: src/modules/services-systemd/main.py:65 msgid "Cannot enable systemd target {name!s}." -msgstr "" +msgstr "Nie można włączyć celu w systemd {name!s}." #: src/modules/services-systemd/main.py:69 msgid "Cannot disable systemd target {name!s}." -msgstr "" +msgstr "Nie można wyłączyć celu w systemd {name!s}." #: src/modules/services-systemd/main.py:71 msgid "Cannot mask systemd unit {name!s}." -msgstr "" +msgstr "Nie można zamaskować jednostki systemd {name!s}." #: src/modules/services-systemd/main.py:73 msgid "" "Unknown systemd commands {command!s} and " "{suffix!s} for unit {name!s}." msgstr "" +"Nieznana komenda systemd {command!s} oraz " +"{suffix!s} dla jednostki {name!s}." #: src/modules/umount/main.py:31 msgid "Unmount file systems." @@ -101,11 +105,11 @@ msgstr "rsync zakończyło działanie kodem błędu {}." #: src/modules/unpackfs/main.py:300 msgid "Unpacking image {}/{}, file {}/{}" -msgstr "" +msgstr "Odpakowywanie obrazu {}/{}, pliku {}/{}" #: src/modules/unpackfs/main.py:315 msgid "Starting to unpack {}" -msgstr "" +msgstr "Rozpoczynanie odpakowywania {}" #: src/modules/unpackfs/main.py:324 src/modules/unpackfs/main.py:464 msgid "Failed to unpack image \"{}\"" @@ -139,6 +143,8 @@ msgstr "Błędna konfiguracja unsquash" #: src/modules/unpackfs/main.py:455 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" +"System plików dla \"{}\" ({}) nie jest wspierany przez obecne jądro twojego " +"systemu" #: src/modules/unpackfs/main.py:459 msgid "The source filesystem \"{}\" does not exist" @@ -205,6 +211,8 @@ msgid "" "The displaymanagers list is empty or undefined in both globalstorage and " "displaymanager.conf." msgstr "" +"Lista displaymanagers jest pusta lub niezdefiniowana w globalstorage oraz " +"displaymanager.conf." #: src/modules/displaymanager/main.py:977 msgid "Display manager configuration was incomplete" @@ -221,6 +229,7 @@ msgstr "Konfigurowanie mkinitcpio." #: src/modules/networkcfg/main.py:40 msgid "No root mount point is given for
{!s}
to use." msgstr "" +"Nie znaleziono głównego punktu montowania dla
{!s}
do użycia." #: src/modules/luksopenswaphookcfg/main.py:26 msgid "Configuring encrypted swap." @@ -237,31 +246,38 @@ msgstr "Konfiguracja usług OpenRC" #: src/modules/services-openrc/main.py:57 msgid "Cannot add service {name!s} to run-level {level!s}." msgstr "" +"Nie udało się dodać usługi {name!s} do poziomu-uruchamiania {level!s}." #: src/modules/services-openrc/main.py:59 msgid "Cannot remove service {name!s} from run-level {level!s}." msgstr "" +"Nie udało się usunąć usługi {name!s} do poziomu-uruchamiania {level!s}." #: src/modules/services-openrc/main.py:61 msgid "" "Unknown service-action {arg!s} for service {name!s} in run-" "level {level!s}." msgstr "" +"Nieznana akcja-usługi {arg!s} dla usługi {name!s} w poziomie-" +"uruchamiania {level!s}." #: src/modules/services-openrc/main.py:94 msgid "" "rc-update {arg!s} call in chroot returned error code {num!s}." msgstr "" +"rc-update {arg!s} wezwanie w chroot zwróciło kod błędu {num!s}." #: src/modules/services-openrc/main.py:101 msgid "Target runlevel does not exist" -msgstr "" +msgstr "Docelowy poziom odtwarzania nie istnieje" #: src/modules/services-openrc/main.py:102 msgid "" "The path for runlevel {level!s} is {path!s}, which does not " "exist." msgstr "" +"Ścieżka do poziomu odtwarzania {level!s} to {path!s}, nie " +"istnieje." #: src/modules/services-openrc/main.py:110 msgid "Target service does not exist" @@ -271,7 +287,7 @@ msgstr "Docelowa usługa nie istnieje" msgid "" "The path for service {name!s} is {path!s}, which does not " "exist." -msgstr "" +msgstr "Ścieżka do usługi {name!s} to {path!s}, nie istnieje." #: src/modules/plymouthcfg/main.py:27 msgid "Configure Plymouth theme" @@ -315,15 +331,15 @@ msgstr "Ustawianie zegara systemowego." #: src/modules/mkinitfs/main.py:27 msgid "Creating initramfs with mkinitfs." -msgstr "" +msgstr "Tworzenie initramfs z mkinitfs." #: src/modules/mkinitfs/main.py:49 msgid "Failed to run mkinitfs on the target" -msgstr "" +msgstr "Nie udało się włączyć mkinitfs." #: src/modules/mkinitfs/main.py:50 src/modules/dracut/main.py:50 msgid "The exit code was {}" -msgstr "" +msgstr "Kod wyjściowy to {}" #: src/modules/dracut/main.py:27 msgid "Creating initramfs with dracut." @@ -331,7 +347,7 @@ msgstr "Tworzenie initramfs z dracut." #: src/modules/dracut/main.py:49 msgid "Failed to run dracut on the target" -msgstr "" +msgstr "Nie udało się włączyć dracut." #: src/modules/initramfscfg/main.py:32 msgid "Configuring initramfs." @@ -339,7 +355,7 @@ msgstr "Konfigurowanie initramfs." #: src/modules/openrcdmcryptcfg/main.py:26 msgid "Configuring OpenRC dmcrypt service." -msgstr "" +msgstr "Konfigurowanie usługi OpenRC dmcrypt." #: src/modules/fstab/main.py:29 msgid "Writing fstab." From dba346be7a798acdb94be89150b19e5e9fd78bce Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 8 Jun 2021 19:51:25 +0200 Subject: [PATCH 43/43] [partition] Fix build in non-debug settings --- src/modules/partition/core/DeviceList.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/partition/core/DeviceList.cpp b/src/modules/partition/core/DeviceList.cpp index f7d1d4835..d58b22868 100644 --- a/src/modules/partition/core/DeviceList.cpp +++ b/src/modules/partition/core/DeviceList.cpp @@ -138,7 +138,7 @@ getDevices( DeviceType which ) #else // Safe partitioning auto removeInAllModes = []( DeviceList& l, DeviceList::iterator& it) { return erase(l, it); }; - auto& removeInSafeMode = removeFromAll; + auto& removeInSafeMode = removeInAllModes; #endif cDebug() << "Removing unsuitable devices:" << devices.count() << "candidates.";