From 1a3dc7d38629899b79aef86bcc128786547bced4 Mon Sep 17 00:00:00 2001 From: Emmanuel Arias Date: Sat, 1 May 2021 20:58:30 -0300 Subject: [PATCH 01/37] Fix minor Typo on README a `)` is missing. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 21c393e29..e7e165a81 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ The dependencies are explained in [CONTRIBUTING.md](CONTRIBUTING.md). Calamares welcomes PRs. New issues are welcome, too. There are both the Calamares **core** repository (this one), -and an *extensions** repository ([Calamares extensions](https://github.com/calamares/calamares-extensions). +and an *extensions** repository ([Calamares extensions])(https://github.com/calamares/calamares-extensions). Contributions to code, modules, documentation, the wiki and the website are all welcome. There is more information in the [CONTRIBUTING.md](CONTRIBUTING.md) file. From 97184dc498ae63ff856671be32b50879da1a1882 Mon Sep 17 00:00:00 2001 From: Emmanuel Arias Date: Sun, 2 May 2021 12:43:11 -0300 Subject: [PATCH 02/37] Fix md link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e7e165a81..464fbc1b3 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ The dependencies are explained in [CONTRIBUTING.md](CONTRIBUTING.md). Calamares welcomes PRs. New issues are welcome, too. There are both the Calamares **core** repository (this one), -and an *extensions** repository ([Calamares extensions])(https://github.com/calamares/calamares-extensions). +and an *extensions** repository ([Calamares extensions](https://github.com/calamares/calamares-extensions)). Contributions to code, modules, documentation, the wiki and the website are all welcome. There is more information in the [CONTRIBUTING.md](CONTRIBUTING.md) file. From 4543feccca2ae5e83216b9acfa066155f330e1a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20M=C3=BCller?= Date: Fri, 7 May 2021 15:44:25 +0200 Subject: [PATCH 03/37] [displaymanager] add ukui --- src/modules/displaymanager/main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/displaymanager/main.py b/src/modules/displaymanager/main.py index edb4d1242..ef34e929f 100644 --- a/src/modules/displaymanager/main.py +++ b/src/modules/displaymanager/main.py @@ -197,6 +197,7 @@ desktop_environments = [ DesktopEnvironment('/usr/bin/icewm-session', 'icewm-session'), DesktopEnvironment('/usr/bin/fvwm3', 'fvwm3'), DesktopEnvironment('/usr/bin/sway', 'sway'), + DesktopEnvironment('/usr/bin/ukui-session', 'ukui'), ] From da2fff12564108e731d6558891d658a93d4f8e29 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sun, 2 May 2021 21:08:58 +0200 Subject: [PATCH 04/37] Changes: credits --- CHANGES | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES b/CHANGES index b817354c3..f678ecd68 100644 --- a/CHANGES +++ b/CHANGES @@ -11,6 +11,7 @@ website will have to do for older versions. This release contains contributions from (alphabetically by first name): - Anubhav Choudhary (SoK success!) + - Emmanuel Arias (new contributor! welcome!) - Erik Dubois - Jerrod Frost (new contributor! welcome!) - Joe Kamprad From 5d577371e70c5e443241d68ca94cb51509ded8d0 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 10 May 2021 21:49:54 +0200 Subject: [PATCH 05/37] [welcome] Name widgets for styling Widgets are easier to style if they have a name, and easier to spot in the widget tree as well. Give the requirements-checker parts meaningful names. SEE #1685 --- src/modules/welcome/checker/CheckerContainer.cpp | 1 + src/modules/welcome/checker/ResultWidget.cpp | 7 +++++-- src/modules/welcome/checker/ResultsListWidget.cpp | 9 ++++++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/modules/welcome/checker/CheckerContainer.cpp b/src/modules/welcome/checker/CheckerContainer.cpp index eb3416ce5..860857c3c 100644 --- a/src/modules/welcome/checker/CheckerContainer.cpp +++ b/src/modules/welcome/checker/CheckerContainer.cpp @@ -64,6 +64,7 @@ CheckerContainer::requirementsComplete( bool ok ) m_waitingWidget = nullptr; // Don't delete in destructor m_checkerWidget = new ResultsListWidget( m_model, this ); + m_checkerWidget->setObjectName( "requirementsChecker" ); layout()->addWidget( m_checkerWidget ); m_verdict = ok; diff --git a/src/modules/welcome/checker/ResultWidget.cpp b/src/modules/welcome/checker/ResultWidget.cpp index ef3a7fdc1..6e34a6c36 100644 --- a/src/modules/welcome/checker/ResultWidget.cpp +++ b/src/modules/welcome/checker/ResultWidget.cpp @@ -29,11 +29,14 @@ ResultWidget::ResultWidget( bool satisfied, bool required, QWidget* parent ) setLayout( mainLayout ); m_iconLabel = new QLabel( this ); - mainLayout->addWidget( m_iconLabel ); m_iconLabel->setFixedSize( CalamaresUtils::defaultIconSize() ); + m_iconLabel->setObjectName( "resultIcon" ); + mainLayout->addWidget( m_iconLabel ); + m_textLabel = new QLabel( this ); - mainLayout->addWidget( m_textLabel ); m_textLabel->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ); + m_textLabel->setObjectName( "resultText" ); + mainLayout->addWidget( m_textLabel ); if ( satisfied ) { diff --git a/src/modules/welcome/checker/ResultsListWidget.cpp b/src/modules/welcome/checker/ResultsListWidget.cpp index c04d2a48b..a7c5caf49 100644 --- a/src/modules/welcome/checker/ResultsListWidget.cpp +++ b/src/modules/welcome/checker/ResultsListWidget.cpp @@ -52,9 +52,12 @@ createResultWidgets( QLayout* layout, continue; } + const QString checkName = model.data( index, Calamares::RequirementsModel::Name ).toString(); const bool is_satisfied = model.data( index, Calamares::RequirementsModel::Satisfied ).toBool(); const bool is_mandatory = model.data( index, Calamares::RequirementsModel::Mandatory ).toBool(); ResultWidget* ciw = new ResultWidget( is_satisfied, is_mandatory ); + ciw->setObjectName( checkName ); + layout->addWidget( ciw ); ciw->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ); @@ -105,6 +108,7 @@ ResultsListDialog::ResultsListDialog( const Calamares::RequirementsModel& model, auto* entriesLayout = new QVBoxLayout; m_title = new QLabel( this ); + m_title->setObjectName( "resultDialogTitle" ); createResultWidgets( entriesLayout, m_resultWidgets, model, []( const Calamares::RequirementsModel& m, QModelIndex i ) { @@ -112,6 +116,7 @@ ResultsListDialog::ResultsListDialog( const Calamares::RequirementsModel& model, } ); QDialogButtonBox* buttonBox = new QDialogButtonBox( QDialogButtonBox::Close, Qt::Horizontal, this ); + buttonBox->setObjectName( "resultDialogButtons" ); mainLayout->addWidget( m_title ); mainLayout->addLayout( entriesLayout ); @@ -168,6 +173,7 @@ ResultsListWidget::ResultsListWidget( const Calamares::RequirementsModel& model, m_explanation->setWordWrap( true ); m_explanation->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Preferred ); m_explanation->setOpenExternalLinks( false ); + m_explanation->setObjectName( "resultsExplanation" ); connect( m_explanation, &QLabel::linkActivated, this, &ResultsListWidget::linkClicked ); entriesLayout->addWidget( m_explanation ); @@ -208,9 +214,10 @@ ResultsListWidget::ResultsListWidget( const Calamares::RequirementsModel& model, } imageLabel->setContentsMargins( 4, CalamaresUtils::defaultFontHeight() * 3 / 4, 4, 4 ); - mainLayout->addWidget( imageLabel ); imageLabel->setAlignment( Qt::AlignCenter ); imageLabel->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ); + imageLabel->setObjectName( "welcomeLogo" ); + mainLayout->addWidget( imageLabel ); } } m_explanation->setAlignment( Qt::AlignCenter ); From 27f965deb6ea49d81ded02c7bfec705792990a78 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 10 May 2021 21:55:21 +0200 Subject: [PATCH 06/37] [summary] Name widgets for styling --- src/modules/summary/SummaryPage.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/modules/summary/SummaryPage.cpp b/src/modules/summary/SummaryPage.cpp index 3dd797be0..b56793e7e 100644 --- a/src/modules/summary/SummaryPage.cpp +++ b/src/modules/summary/SummaryPage.cpp @@ -44,6 +44,7 @@ SummaryPage::SummaryPage( const SummaryViewStep* thisViewStep, QWidget* parent ) layout->setContentsMargins( 0, 0, 0, 0 ); QLabel* headerLabel = new QLabel( this ); + headerLabel->setObjectName( "summaryTitle" ); CALAMARES_RETRANSLATE( if ( Calamares::Settings::instance()->isSetupMode() ) headerLabel->setText( tr( "This is an overview of what will happen once you start " "the setup procedure." ) ); @@ -169,6 +170,7 @@ QLabel* SummaryPage::createTitleLabel( const QString& text ) const { QLabel* label = new QLabel( text ); + label->setObjectName( "summaryItemTitle" ); QFont fnt = font(); fnt.setWeight( QFont::Light ); fnt.setPointSize( CalamaresUtils::defaultFontSize() * 2 ); @@ -182,6 +184,7 @@ QLabel* SummaryPage::createBodyLabel( const QString& text ) const { QLabel* label = new QLabel; + label->setObjectName( "summaryItemBody" ); label->setMargin( CalamaresUtils::defaultFontHeight() / 2 ); QPalette pal( palette() ); pal.setColor( WindowBackground, palette().window().color().lighter( 108 ) ); From a888156debbe7a5f0db33c5ac2a457e668fe8283 Mon Sep 17 00:00:00 2001 From: Raul Rodrigo Segura Date: Wed, 12 May 2021 16:20:13 +0200 Subject: [PATCH 07/37] copy resolvconf as link --- src/modules/networkcfg/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/networkcfg/main.py b/src/modules/networkcfg/main.py index 608cfd288..40d153031 100644 --- a/src/modules/networkcfg/main.py +++ b/src/modules/networkcfg/main.py @@ -59,7 +59,7 @@ def run(): continue try: - shutil.copy(source_network, target_network) + shutil.copy(source_network, target_network, follow_symlinks=False) except FileNotFoundError: libcalamares.utils.debug( "Can't copy network configuration files in " @@ -80,7 +80,7 @@ def run(): ) try: - shutil.copy(source_resolv, target_resolv) + shutil.copy(source_resolv, target_resolv, follow_symlinks=False) except Exception as err: libcalamares.utils.debug( "Can't copy resolv.conf from {}: {}".format(source_resolv, err) From a4ad4404039ba9ea67976f2e3a33bf27cfc22d3f Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Fri, 14 May 2021 17:49:45 +0200 Subject: [PATCH 08/37] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_en_GB.ts | 2 +- lang/calamares_fr.ts | 375 ++-- lang/calamares_he.ts | 24 +- lang/calamares_pl.ts | 23 +- lang/calamares_ru_RU.ts | 4279 +++++++++++++++++++++++++++++++++++++++ lang/calamares_sk.ts | 10 +- lang/calamares_sv.ts | 2 +- lang/calamares_zh_CN.ts | 18 +- 8 files changed, 4529 insertions(+), 204 deletions(-) create mode 100644 lang/calamares_ru_RU.ts diff --git a/lang/calamares_en_GB.ts b/lang/calamares_en_GB.ts index 286894d8a..524a8435b 100644 --- a/lang/calamares_en_GB.ts +++ b/lang/calamares_en_GB.ts @@ -6,7 +6,7 @@ Manage auto-mount settings - + Manage auto-mount settings diff --git a/lang/calamares_fr.ts b/lang/calamares_fr.ts index 5b44eb61f..6f2c1c1f7 100644 --- a/lang/calamares_fr.ts +++ b/lang/calamares_fr.ts @@ -6,7 +6,7 @@ Manage auto-mount settings - + Gérer les paramètres de montage automatique @@ -42,7 +42,7 @@ System Partition - Partition Système + Partition système @@ -99,27 +99,27 @@ Interface: - Interface: + Interface : Crashes Calamares, so that Dr. Konqui can look at it. - + Crashes Calamares, pour que le Dr. Konqui puisse les regarder. Reloads the stylesheet from the branding directory. - + Recharge la feuille de style à partir du répertoire de personnalisation. Uploads the session log to the configured pastebin. - + Télécharge le journal de session dans le pastebin configuré. Send Session Log - + Envoyer le journal de session @@ -129,12 +129,12 @@ Displays the tree of widget names in the log (for stylesheet debugging). - + Affiche l'arborescence des noms de widgets dans le journal (pour le débogage de la feuille de style). Widget Tree - Arbre de Widget + Arbre de widget @@ -338,7 +338,11 @@ %1 Link copied to clipboard - + Journal d'installation publié sur + +%1 + +Lien copié dans le presse-papiers @@ -353,7 +357,7 @@ Link copied to clipboard <br/>The following modules could not be loaded: - Les modules suivants n'ont pas pu être chargés : + <br/>Les modules suivants n'ont pas pu être chargés : @@ -519,7 +523,7 @@ L'installateur se fermera et les changements seront perdus. Select storage de&vice: - Sélectionnez le support de sto&ckage : + Sélectionner le support de sto&ckage : @@ -532,7 +536,7 @@ L'installateur se fermera et les changements seront perdus. After: - Après: + Après : @@ -547,17 +551,17 @@ L'installateur se fermera et les changements seront perdus. <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> - <strong>Sélectionnez une partition à réduire, puis faites glisser la barre du bas pour redimensionner</strong> + <strong>Sélectionner une partition à réduire, puis faites glisser la barre du bas pour redimensionner</strong> %1 will be shrunk to %2MiB and a new %3MiB partition will be created for %4. - %1 va être réduit à %2Mio et une nouvelle partition de %3Mio va être créée pour %4. + %1 va être réduit à %2 Mio et une nouvelle partition de %3 Mio va être créée pour %4. Boot loader location: - Emplacement du chargeur de démarrage: + Emplacement du chargeur de démarrage : @@ -764,12 +768,12 @@ L'installateur se fermera et les changements seront perdus. Network Installation. (Disabled: Internal error) - + Installation réseau. (Désactivé : erreur interne) Network Installation. (Disabled: No package list) - + Installation réseau. (Désactivé : pas de liste de paquets) @@ -779,7 +783,7 @@ L'installateur se fermera et les changements seront perdus. Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - Installation par le réseau (Désactivée : impossible de récupérer leslistes de paquets, vérifiez la connexion réseau) + Installation par le réseau (Désactivée : impossible de récupérer les listes de paquets, vérifier la connexion réseau) @@ -884,12 +888,12 @@ L'installateur se fermera et les changements seront perdus. The setup of %1 did not complete successfully. - + La configuration de %1 n'a pas abouti. The installation of %1 did not complete successfully. - + L’installation de %1 n’a pas abouti. @@ -955,7 +959,7 @@ L'installateur se fermera et les changements seront perdus. Fi&le System: - Sy&stème de fichiers: + Sy&stème de fichiers : @@ -965,12 +969,12 @@ L'installateur se fermera et les changements seront perdus. &Mount Point: - Point de &Montage : + Point de &montage : Flags: - Drapeaux: + Drapeaux : @@ -1003,32 +1007,32 @@ L'installateur se fermera et les changements seront perdus. Create new %1MiB partition on %3 (%2) with entries %4. - + Créer une nouvelle partition %1 Mio sur %3 (%2) avec les entrées %4. Create new %1MiB partition on %3 (%2). - + Créer une nouvelle partition %1 Mio sur %3 (%2). Create new %2MiB partition on %4 (%3) with file system %1. - Créer une nouvelle partition de %2Mio sur %4 (%3) avec le système de fichier %1. + Créer une nouvelle partition de %2 Mio sur %4 (%3) avec le système de fichier %1. Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2) with entries <em>%4</em>. - + Créer une nouvelle partition <strong>%1 Mio</strong> sur <strong>%3</strong> (%2) avec les entrées <em>%4</em>. Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2). - + Créer une nouvelle partition <strong>%1 Mio</strong> sur <strong>%3</strong> (%2). Create new <strong>%2MiB</strong> partition on <strong>%4</strong> (%3) with file system <strong>%1</strong>. - Créer une nouvelle partition de <strong>%2Mio</strong> sur <strong>%4</strong> (%3) avec le système de fichiers <strong>%1</strong>. + Créer une nouvelle partition de <strong>%2 Mio</strong> sur <strong>%4</strong> (%3) avec le système de fichiers <strong>%1</strong>. @@ -1132,7 +1136,7 @@ L'installateur se fermera et les changements seront perdus. Create Volume Group - Créer le Groupe de Volumes + Créer le groupe de volume @@ -1304,12 +1308,12 @@ L'installateur se fermera et les changements seront perdus. &Mount Point: - Point de &Montage : + Point de &montage : Si&ze: - Ta&ille: + Ta&ille : @@ -1319,12 +1323,12 @@ L'installateur se fermera et les changements seront perdus. Fi&le System: - Sys&tème de fichiers: + Sys&tème de fichiers : Flags: - Drapeaux: + Drapeaux : @@ -1347,18 +1351,18 @@ L'installateur se fermera et les changements seront perdus. Passphrase - Phrase de passe + Phrase secrète Confirm passphrase - Confirmez la phrase de passe + Confirmer la phrase secrète Please enter the same passphrase in both boxes. - Merci d'entrer la même phrase de passe dans les deux champs. + Merci d'entrer la même phrase secrète dans les deux champs. @@ -1371,7 +1375,7 @@ L'installateur se fermera et les changements seront perdus. Install %1 on <strong>new</strong> %2 system partition with features <em>%3</em> - + Installer %1 sur la <strong>nouvelle</strong> partition système %2 avec les fonctionnalités <em>%3</em> @@ -1381,27 +1385,27 @@ L'installateur se fermera et les changements seront perdus. Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong> and features <em>%3</em>. - + Configurer la <strong>nouvelle</strong> partition %2 avec le point de montage <strong>%1</strong> et les fonctionnalités <em>%3</em>. Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>%3. - + Configurer la <strong>nouvelle</strong> partition %2 avec le point de montage <strong>%1</strong>%3. Install %2 on %3 system partition <strong>%1</strong> with features <em>%4</em>. - + Installer %2 sur la partition système %3 <strong>%1</strong> avec les fonctionnalités <em>%4</em>. Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong> and features <em>%4</em>. - + Configurer la partition %3 <strong>%1</strong> avec le point de montage <strong>%2</strong> et les fonctionnalités <em>%4</em>. Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>%4. - + Configurer la partition %3 <strong>%1</strong> avec le point de montage <strong>%2</strong>%4. @@ -1590,7 +1594,7 @@ L'installateur se fermera et les changements seront perdus. OEM Batch Identifier - Identifiant de Lot OEM + Identifiant de lot OEM @@ -1745,7 +1749,7 @@ L'installateur se fermera et les changements seront perdus. URL: %1 - URL: %1 + URL : %1 @@ -1858,7 +1862,7 @@ L'installateur se fermera et les changements seront perdus. Root partition %1 is LUKS but no passphrase has been set. - La partition racine %1 est LUKS mais aucune passphrase n'a été configurée. + La partition racine %1 est LUKS mais aucune phrase secrète n'a été configurée. @@ -1901,8 +1905,9 @@ L'installateur se fermera et les changements seront perdus. 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. - Sélectionnez votre emplacement préféré sur la carte pour que l'installateur vous suggère les paramètres linguistiques et de fuseau horaire. Vous pouvez affiner les paramètres suggérés ci-dessous. Cherchez sur la carte en la faisant glisser -et en utilisant les boutons +/- pour zommer/dézoomer ou utilisez la molette de la souris. + Sélectionner votre emplacement préféré sur la carte pour que l'installateur vous suggère + les paramètres linguistiques et de fuseau horaire. Vous pouvez affiner les paramètres suggérés ci-dessous. Chercher sur la carte en la faisant glisser + et en utilisant les boutons +/- pour zoomer/dézoomer ou utiliser la molette de la souris. @@ -1930,7 +1935,7 @@ et en utilisant les boutons +/- pour zommer/dézoomer ou utilisez la molette de Browser package - Navigateur Web + Navigateur web @@ -2016,12 +2021,12 @@ et en utilisant les boutons +/- pour zommer/dézoomer ou utilisez la molette de Ba&tch: - Lo&amp;t: + Lo&amp;t : <html><head/><body><p>Enter a batch-identifier here. This will be stored in the target system.</p></body></html> - <html><head/><body><p>Entrez ici un identifiant de lot. Celui-ci sera stocké sur le système cible.</p></body></html> + <html><head/><body><p>Saisir ici un identifiant de lot. Celui-ci sera stocké sur le système cible.</p></body></html> @@ -2047,7 +2052,7 @@ et en utilisant les boutons +/- pour zommer/dézoomer ou utilisez la molette de Select your preferred Region, or use the default one based on your current location. - Sélectionnez votre région préférée, ou utilisez celle par défaut basée sur votre localisation actuelle. + Sélectionner votre région préférée, ou utiliser celle par défaut basée sur votre localisation actuelle. @@ -2059,17 +2064,17 @@ et en utilisant les boutons +/- pour zommer/dézoomer ou utilisez la molette de Select your preferred Zone within your Region. - + Sélectionner votre zone préférée dans votre région. Zones - + Zones You can fine-tune Language and Locale settings below. - + Vous pouvez affiner les paramètres de langue et régionaux ci-dessous. @@ -2147,9 +2152,9 @@ et en utilisant les boutons +/- pour zommer/dézoomer ou utilisez la molette de The password contains fewer than %n lowercase letters - - - + + Le mot de passe contient moins de %n lettres minuscules + Le mot de passe contient moins de %n lettres minuscules @@ -2180,75 +2185,75 @@ et en utilisant les boutons +/- pour zommer/dézoomer ou utilisez la molette de The password contains too many characters of the same class consecutively - Le mot de passe contient trop de caractères de la même classe consécutivement + Le mot de passe contient trop de caractères de la même classe consécutive The password contains fewer than %n digits - - - + + Le mot de passe contient moins de %n chiffres + Le mot de passe contient moins de %n chiffres The password contains fewer than %n uppercase letters - - - + + Le mot de passe contient moins de %n lettres majuscules + Le mot de passe contient moins de %n lettres majuscules The password contains fewer than %n non-alphanumeric characters - - - + + Le mot de passe contient moins de %n caractères non alphanumériques + Le mot de passe contient moins de %n caractères non alphanumériques The password is shorter than %n characters - - - + + Le mot de passe est plus court que %n caractères + Le mot de passe est plus court que %n caractères The password is a rotated version of the previous one - + Le mot de passe est une version pivotée du précédent The password contains fewer than %n character classes - - - + + Le mot de passe contient moins de %n classes de caractères + Le mot de passe contient moins de %n classes de caractères The password contains more than %n same characters consecutively - - - + + Le mot de passe contient plus de %n mêmes caractères consécutifs + Le mot de passe contient plus de %n mêmes caractères consécutifs The password contains more than %n characters of the same class consecutively - - - + + Le mot de passe contient plus de %n caractères de la même classe consécutive + Le mot de passe contient plus de %n caractères de la même classe consécutive The password contains monotonic sequence longer than %n characters - - - + + Le mot de passe contient une séquence monotone de plus de %n caractères + Le mot de passe contient une séquence monotone de plus de %n caractères @@ -2357,12 +2362,12 @@ et en utilisant les boutons +/- pour zommer/dézoomer ou utilisez la molette de Product Name - Nom du Produit + Nom du produit TextLabel - TextLabel + Étiquette de texte @@ -2411,7 +2416,7 @@ et en utilisant les boutons +/- pour zommer/dézoomer ou utilisez la molette de Keyboard Model: - Modèle Clavier : + Modèle de clavier : @@ -2605,7 +2610,7 @@ et en utilisant les boutons +/- pour zommer/dézoomer ou utilisez la molette de Storage de&vice: - Périphérique de stockage: + Périphérique de stockage : @@ -2635,22 +2640,22 @@ et en utilisant les boutons +/- pour zommer/dézoomer ou utilisez la molette de New Volume Group - Nouveau Groupe de Volumes + Nouveau groupe de volume Resize Volume Group - Redimensionner le Groupe de Volumes + Redimensionner le groupe de volume Deactivate Volume Group - Désactiver le Groupe de Volumes + Désactiver le groupe de volume Remove Volume Group - Supprimer le Groupe de Volumes + Supprimer le groupe de volume @@ -2748,12 +2753,12 @@ et en utilisant les boutons +/- pour zommer/dézoomer ou utilisez la molette de 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. - + Une partition système EFI est nécessaire pour démarrer %1.<br/><br/>Pour configurer une partition système EFI, revenez en arrière et sélectionnez ou créez un système de fichiers FAT32 avec l'indicateur <strong>%3</strong> activé et le point de montage <strong>%2</strong>.<br/><br/>Vous pouvez continuer sans configurer de partition système EFI mais votre système peut ne pas démarrer. 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. - + Une partition système EFI est nécessaire pour démarrer %1.<br/><br/>Une partition a été configurée avec le point de montage <strong>%2</strong> mais son indicateur <strong>%3</strong> n'est pas défini.<br/>Pour définir l'indicateur, revenez en arrière et modifiez la partition.<br/><br/>Vous pouvez continuer sans définir l'indicateur mais votre le système peut ne pas démarrer. @@ -2763,12 +2768,12 @@ et en utilisant les boutons +/- pour zommer/dézoomer ou utilisez la molette de Option to use GPT on BIOS - + Option pour utiliser GPT sur le 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. - + Une table de partition GPT est la meilleure option pour tous les systèmes. Ce programme d'installation prend également en charge une telle configuration pour les systèmes BIOS.<br/><br/>Pour configurer une table de partition GPT sur le BIOS, (si ce n'est déjà fait) revenez en arrière et définissez la table de partition sur GPT, puis créez une partition non formatée de 8 Mo avec l'indicateur <strong>bios_grub</strong> activé.<br/><br/>Une partition de 8 Mo non formatée est nécessaire pour démarrer %1 sur un système BIOS avec GPT. @@ -2968,7 +2973,7 @@ Sortie Directory not found - + Répertoire non trouvé @@ -3003,7 +3008,8 @@ Sortie <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> - + <p>Cet ordinateur ne satisfait pas à certaines des exigences recommandées pour la configuration de %1.<br/> + L'installation peut continuer, mais certaines fonctionnalités peuvent être désactivées. @@ -3043,7 +3049,7 @@ Sortie Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. - Sélectionnez ou installer %1.<br><font color="red">Attention: </font>ceci va effacer tous les fichiers sur la partition sélectionnée. + Sélectionner ou installer %1.<br><font color="red">Attention : </font>ceci va effacer tous les fichiers sur la partition sélectionnée. @@ -3105,7 +3111,7 @@ Sortie EFI system partition: - Partition système EFI: + Partition système EFI : @@ -3114,13 +3120,15 @@ Sortie <p>This computer does not satisfy the minimum requirements for installing %1.<br/> Installation cannot continue.</p> - + <p>Cet ordinateur ne satisfait pas à la configuration minimale requise pour l'installation de %1.<br/> + L'installation ne peut pas continuer. <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> - + <p>Cet ordinateur ne satisfait pas à certaines des exigences recommandées pour la configuration de %1.<br/> + L'installation peut continuer, mais certaines fonctionnalités peuvent être désactivées.</p> @@ -3252,7 +3260,7 @@ Sortie System requirements - Prérequis système + Configuration requise @@ -3288,7 +3296,7 @@ Sortie Scanning storage devices... - Balayage des périphériques de stockage... + Analyse des périphériques de stockage... @@ -3376,17 +3384,17 @@ Sortie Clear flags on partition <strong>%1</strong>. - Réinitialisez les drapeaux sur la partition <strong>%1</strong>. + Réinitialiser les drapeaux sur la partition <strong>%1</strong>. Clear flags on %1MiB <strong>%2</strong> partition. - Réinitialisez les drapeaux sur la partition <strong>%2</strong> de %1Mio. + Réinitialiser les drapeaux sur la partition <strong>%2</strong> de %1 Mio. Clear flags on new partition. - Réinitialisez les drapeaux sur la nouvelle partition. + Réinitialiser les drapeaux sur la nouvelle partition. @@ -3411,12 +3419,12 @@ Sortie Clearing flags on %1MiB <strong>%2</strong> partition. - Réinitialisez les drapeaux sur la partition <strong>%2</strong> de %1 Mio. + Réinitialiser les drapeaux sur la partition <strong>%2</strong> de %1 Mio. Clearing flags on new partition. - Réinitialisez les drapeaux sur la nouvelle partition. + Réinitialiser les drapeaux sur la nouvelle partition. @@ -3525,18 +3533,18 @@ Sortie Preparing groups. - + Préparation des groupes. Could not create groups in target system - + Impossible de créer des groupes dans le système cible These groups are missing in the target system: %1 - + Ces groupes sont manquants dans le système cible : %1 @@ -3544,7 +3552,7 @@ Sortie Configure <pre>sudo</pre> users. - + Configurer les utilisateurs <pre>sudo</pre>. @@ -3623,28 +3631,28 @@ Sortie KDE user feedback - + Commentaires des utilisateurs de KDE Configuring KDE user feedback. - + Configuration des commentaires des utilisateurs de KDE. Error in KDE user feedback configuration. - + Erreur dans la configuration des commentaires des utilisateurs de KDE. Could not configure KDE user feedback correctly, script error %1. - + Impossible de configurer correctement les commentaires des utilisateurs de KDE, erreur de script %1. Could not configure KDE user feedback correctly, Calamares error %1. - + Impossible de configurer correctement les commentaires des utilisateurs de KDE, erreur Calamares %1. @@ -3691,32 +3699,32 @@ Sortie <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>Cliquer ici <span style=" font-weight:600;">pour n'envoyer aucune information</span> sur votre 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> - <html><head/><body><span style=" text-decoration: underline; color:#2980b9;">Cliquez ici pour plus d'informations sur les rapports d'utilisateurs</span><a href="placeholder"><p></p></body> + <html><head/><body><span style=" text-decoration: underline; color:#2980b9;">Cliquer ici pour plus d'informations sur les rapports d'utilisateurs</span><a href="placeholder"><p></p></body> 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. - + Le suivi aide %1 à voir à quelle fréquence il est installé, sur quel matériel il est installé et quelles applications sont utilisées. Pour voir ce qui sera envoyé, veuillez cliquer sur l'icône d'aide à côté de chaque zone. 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. - + En sélectionnant cette option, vous enverrez des informations sur votre installation et votre matériel. Ces informations ne seront envoyées <b>qu'une seule fois</b> après la fin de l'installation. By selecting this you will periodically send information about your <b>machine</b> installation, hardware and applications, to %1. - + En sélectionnant cette option, vous enverrez périodiquement des informations sur l'installation, le matériel et les applications de votre <b>machine</b> à %1. By selecting this you will regularly send information about your <b>user</b> installation, hardware, applications and application usage patterns, to %1. - + En sélectionnant cette option, vous enverrez régulièrement des informations sur <b>votre</b> installation, le matériel, les applications et les modèles d'utilisation des applications à %1. @@ -3806,17 +3814,17 @@ Sortie Total Size: - Taille Totale : + Taille totale : Used Size: - Taille Utilisée : + Taille utilisée : Total Sectors: - Total des Secteurs : + Total des secteurs : @@ -3920,7 +3928,7 @@ Sortie <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. - + <h1>%1</h1><br/><strong>%2<br/> pour %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/>Merci à <a href="https://calamares.io/team/">l'équipe de Calamares</a> et à <a href="https://www.transifex.com/calamares/calamares/">l'équipe de traducteurs de Calamares</a>.<br/><br/>Le développement de <a href="https://calamares.io/">Calamares</a> est sponsorisé par<br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. @@ -3955,12 +3963,21 @@ Sortie development is sponsored by <br/> <a href='http://www.blue-systems.com/'>Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/> + <strong>%2<br/> + pour %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/> + Merci à <a href='https://calamares.io/team/'>l'équipe de Calamares</a> + et à <a href='https://www.transifex.com/calamares/calamares/'>l'équipe de traducteurs de Calamares</a>.<br/><br/> + Le développement de <a href='https://calamares.io/'>Calamares</a> est sponsorisé par<br/> + <a href='http://www.blue-systems.com/'>Blue Systems</a> - + Liberating Software. Back - + Retour @@ -3976,29 +3993,31 @@ Sortie Installation Completed - + Installation terminée %1 has been installed on your computer.<br/> You may now restart into your new system, or continue using the Live environment. - + %1 a été installé sur votre ordinateur.<br/> + Vous pouvez maintenant redémarrer votre nouveau système ou continuer à utiliser l'environnement en direct. Close Installer - + Fermer l'installateur Restart System - + Redémarrer le système <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>Un journal complet de l'installation est disponible sous le nom d'installation.log dans le répertoire de base de l'utilisateur en direct.<br/> + Ce journal est copié dans /var/log/installation.log du système cible.</p> @@ -4007,18 +4026,20 @@ Sortie <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>Langues</h1></br> + Les paramètres régionaux du système affectent la langue et le jeu de caractères de certains éléments de l'interface utilisateur de la ligne de commande. Le paramètre actuel est <strong>%1</strong>. <h1>Locales</h1> </br> The system locale setting affects the numbers and dates format. The current setting is <strong>%1</strong>. - + <h1>Paramètres régionaux</h1></br> + Les paramètres régionaux du système affectent le format des nombres et des dates. Le paramètre actuel est <strong>%1</strong>. Back - + Retour @@ -4026,42 +4047,42 @@ Sortie Keyboard Model - + Modèle de clavier Layouts - + Dispositions Keyboard Layout - + Disposition du clavier Click your preferred keyboard model to select layout and variant, or use the default one based on the detected hardware. - + Cliquer sur votre modèle de clavier préféré pour sélectionner la disposition et la variante, ou utiliser celui par défaut en fonction du matériel détecté. Models - + Modèles Variants - + Variantes Keyboard Variant - + Variante de clavier Test your keyboard - + Tester votre clavier @@ -4069,7 +4090,7 @@ Sortie Change - + Modifier @@ -4078,7 +4099,8 @@ Sortie <h3>%1</h3> <p>These are example release notes.</p> - + <h3>%1</h3> + <p>Ce sont des exemples de notes de mise à jour.</p> @@ -4106,12 +4128,32 @@ Sortie </ul> <p>The vertical scrollbar is adjustable, current width set to 10.</p> - + <h3>%1</h3> + <p>Voici un exemple de fichier QML, montrant les options dans RichText avec un contenu Flickable.</p> + + <p>QML avec RichText peut utiliser des balises HTML, le contenu Flickable est utile pour les écrans tactiles.</p> + + <p><b>Ceci est un texte en gras</b></p> + <p><i>Ceci est du texte en italique</i></p> + <p><u>Ceci est un texte souligné</u></p> + <p><center>Ce texte sera aligné au centre.</center></p> + <p><s>C'est barré</s></p> + + <p>Exemple de code : + <code>ls -l /home</code></p> + + <p><b>Listes :</b></p> + <ul> + <li>Systèmes CPU Intel</li> + <li>Systèmes CPU AMD</li> + </ul> + + <p>La barre de défilement verticale est réglable, la largeur actuelle est définie sur 10.</p> Back - + Retour @@ -4119,7 +4161,7 @@ Sortie Pick your user name and credentials to login and perform admin tasks - + Choisir votre nom d'utilisateur et vos informations d'identification pour vous connecter et effectuer des tâches d'administration @@ -4139,12 +4181,12 @@ Sortie Login Name - + Identifiant If more than one person will use this computer, you can create multiple accounts after installation. - + Si plusieurs personnes utilisent cet ordinateur, vous pouvez créer plusieurs comptes après l'installation. @@ -4159,7 +4201,7 @@ Sortie This name will be used if you make the computer visible to others on a network. - + Ce nom sera utilisé si vous rendez l'ordinateur visible aux autres sur un réseau. @@ -4179,12 +4221,12 @@ Sortie 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. - + Saisir le même mot de passe deux fois, afin qu'il puisse être vérifié pour les erreurs de frappe. Un bon mot de passe contient un mélange de lettres, de chiffres et de ponctuation, doit comporter au moins huit caractères et doit être changé à intervalles réguliers. Validate passwords quality - + Valider la qualité des mots de passe @@ -4194,12 +4236,12 @@ Sortie Log in automatically without asking for the password - + Connectez-vous automatiquement sans demander le mot de passe Reuse user password as root password - + Réutiliser le mot de passe utilisateur comme mot de passe root @@ -4209,22 +4251,22 @@ Sortie Choose a root password to keep your account safe. - + Choisir un mot de passe root pour protéger votre compte. Root Password - + Mot de passe root Repeat Root Password - + Répéter le mot de passe root Enter the same password twice, so that it can be checked for typing errors. - + Entrer le même mot de passe deux fois, afin qu'il puisse être vérifié pour les erreurs de frappe. @@ -4233,7 +4275,8 @@ Sortie <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> - + <h3>Bienvenue dans le programme d'installation de %1 <quote>%2</quote></h3> + <p>Ce programme vous posera quelques questions et installera %1 sur votre ordinateur.</p> @@ -4243,7 +4286,7 @@ Sortie Support - + Support @@ -4253,7 +4296,7 @@ Sortie Release notes - + Notes de version diff --git a/lang/calamares_he.ts b/lang/calamares_he.ts index 2a2d68f76..68db59150 100644 --- a/lang/calamares_he.ts +++ b/lang/calamares_he.ts @@ -6,7 +6,7 @@ Manage auto-mount settings - + ניהול הגדרות העיגון האוטומטי @@ -412,17 +412,17 @@ Link copied to clipboard The installation is complete. Close the installer. - תהליך ההתקנה הושלם. נא לסגור את תכנית ההתקנה. + ההתקנה הושלמה. נא לסגור את אשף ההתקנה. Cancel setup without changing the system. - ביטול ההתקנה ללא שינוי המערכת. + ביטול ההתקנה ללא ביצוע שינוי במערכת. Cancel installation without changing the system. - ביטול התקנה ללא ביצוע שינוי במערכת. + ביטול ההתקנה ללא ביצוע שינוי במערכת. @@ -458,14 +458,14 @@ Link copied to clipboard 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. - האם אכן ברצונך לבטל את תהליך ההתקנה? + האם לבטל את תהליך ההתקנה הנוכחי? אשף ההתקנה ייסגר וכל השינויים יאבדו. @@ -893,7 +893,7 @@ The installer will quit and all changes will be lost. The installation of %1 did not complete successfully. - + ההתקנה של %1 לא הסתיימה בהצלחה. @@ -2683,7 +2683,7 @@ The installer will quit and all changes will be lost. Are you sure you want to create a new partition table on %1? - ליצור טבלת מחיצות חדשה על %1? + האם ליצור טבלת מחיצות חדשה על %1? @@ -4012,7 +4012,7 @@ Output: Installation Completed - + ההתקנה הושלמה @@ -4023,12 +4023,12 @@ Output: Close Installer - + סגירת אשף ההתקנה Restart System - + הפעלת המערכת מחדש diff --git a/lang/calamares_pl.ts b/lang/calamares_pl.ts index 21b7cfcba..51c6add85 100644 --- a/lang/calamares_pl.ts +++ b/lang/calamares_pl.ts @@ -6,7 +6,7 @@ Manage auto-mount settings - + Zarządzaj ustawieniami auto-montowania @@ -109,22 +109,22 @@ Reloads the stylesheet from the branding directory. - + Ponownie ładuje arkusz stylów z katalogu brandingu. Uploads the session log to the configured pastebin. - + Przesyła dziennik sesji do skonfigurowanego pliku na pastebin. Send Session Log - + Wyślij dziennik sesji Reload Stylesheet - + Przeładowuje Arkusz Stylów @@ -4253,32 +4253,33 @@ i nie uruchomi się <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> - + <h3>Witaj w instalatorze %1<quote>%2</quote></h3> + <p>Ten program zapyta cię o kilka rzeczy i ustawi %1 na twoim komputerze.</p> About - + O nas Support - + Wsparcie Known issues - + Znane problemy Release notes - + Informacje o wydaniu Donate - + Dotacje diff --git a/lang/calamares_ru_RU.ts b/lang/calamares_ru_RU.ts new file mode 100644 index 000000000..275860461 --- /dev/null +++ b/lang/calamares_ru_RU.ts @@ -0,0 +1,4279 @@ + + + + + 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_sk.ts b/lang/calamares_sk.ts index c7b5c6809..2c2fb3fc8 100644 --- a/lang/calamares_sk.ts +++ b/lang/calamares_sk.ts @@ -312,18 +312,18 @@ &Yes - _Áno + Án&o &No - _Nie + &Nie &Close - _Zavrieť + &Zavrieť @@ -402,7 +402,7 @@ Link copied to clipboard &Install - _Inštalovať + &Inštalovať @@ -437,7 +437,7 @@ Link copied to clipboard &Done - _Dokončiť + &Dokončiť diff --git a/lang/calamares_sv.ts b/lang/calamares_sv.ts index e1045e73b..1206b2900 100644 --- a/lang/calamares_sv.ts +++ b/lang/calamares_sv.ts @@ -3847,7 +3847,7 @@ Installationen kan inte fortsätta.</p> &About - Om, &A + &Om diff --git a/lang/calamares_zh_CN.ts b/lang/calamares_zh_CN.ts index a285512e7..c2a0c2d02 100644 --- a/lang/calamares_zh_CN.ts +++ b/lang/calamares_zh_CN.ts @@ -6,7 +6,7 @@ Manage auto-mount settings - + 管理自动挂载设置 @@ -120,7 +120,7 @@ Send Session Log - + 发送会话日志 @@ -1403,7 +1403,7 @@ The installer will quit and all changes will be lost. Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>%4. - + 设置%3 分区的挂载点 @@ -3985,29 +3985,31 @@ Output: Installation Completed - + 安装完成 %1 has been installed on your computer.<br/> You may now restart into your new system, or continue using the Live environment. - + %1 已安装在您的电脑上了。<br/> + 您现在可以重新启动到新系统,或是继续使用 Live 环境。 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> - + 安装过程中的翻译已经复制到了临时用户的家目录下 +于此同时安装日志也已经复制到了目标系统,路径为:/var/log/installation.log From 38293b0f0934ca63121bf5f54fd9871aee521e43 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Fri, 14 May 2021 17:49:46 +0200 Subject: [PATCH 09/37] i18n: [python] Automatic merge of Transifex translations --- lang/python/fr/LC_MESSAGES/python.po | 21 +- lang/python/he/LC_MESSAGES/python.po | 2 +- lang/python/it_IT/LC_MESSAGES/python.po | 9 +- lang/python/ko/LC_MESSAGES/python.po | 4 +- lang/python/pt_BR/LC_MESSAGES/python.po | 4 +- lang/python/ru_RU/LC_MESSAGES/python.po | 351 ++++++++++++++++++++++++ 6 files changed, 375 insertions(+), 16 deletions(-) create mode 100644 lang/python/ru_RU/LC_MESSAGES/python.po diff --git a/lang/python/fr/LC_MESSAGES/python.po b/lang/python/fr/LC_MESSAGES/python.po index 568181c5e..66b598cf9 100644 --- a/lang/python/fr/LC_MESSAGES/python.po +++ b/lang/python/fr/LC_MESSAGES/python.po @@ -13,6 +13,7 @@ # Seboss666 , 2019 # Florian B , 2019 # Arnaud Ferraris , 2019 +# roxfr , 2021 # #, fuzzy msgid "" @@ -21,7 +22,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: Arnaud Ferraris , 2019\n" +"Last-Translator: roxfr , 2021\n" "Language-Team: French (https://www.transifex.com/calamares/teams/20061/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -112,11 +113,11 @@ msgstr "rsync a échoué avec le code d'erreur {}." #: src/modules/unpackfs/main.py:300 msgid "Unpacking image {}/{}, file {}/{}" -msgstr "" +msgstr "Décompression de l'image {}/{}, fichier {}/{}" #: src/modules/unpackfs/main.py:315 msgid "Starting to unpack {}" -msgstr "" +msgstr "Commencer à décompresser {}" #: src/modules/unpackfs/main.py:324 src/modules/unpackfs/main.py:464 msgid "Failed to unpack image \"{}\"" @@ -146,6 +147,8 @@ msgstr "Mauvaise configuration unsquash" #: src/modules/unpackfs/main.py:455 msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr "" +"Le système de fichiers pour \"{}\" ({}) n'est pas pris en charge par votre " +"noyau actuel" #: src/modules/unpackfs/main.py:459 msgid "The source filesystem \"{}\" does not exist" @@ -214,6 +217,8 @@ msgid "" "The displaymanagers list is empty or undefined in both globalstorage and " "displaymanager.conf." msgstr "" +"La liste des gestionnaires d'affichage est vide ou indéfinie à la fois dans " +"globalstorage et displaymanager.conf." #: src/modules/displaymanager/main.py:977 msgid "Display manager configuration was incomplete" @@ -330,11 +335,11 @@ msgstr "Configuration de l'horloge matériel." #: src/modules/mkinitfs/main.py:27 msgid "Creating initramfs with mkinitfs." -msgstr "" +msgstr "Création d'initramfs avec mkinitfs." #: src/modules/mkinitfs/main.py:49 msgid "Failed to run mkinitfs on the target" -msgstr "" +msgstr "Échec de l'exécution de mkinitfs sur la cible" #: src/modules/mkinitfs/main.py:50 src/modules/dracut/main.py:50 msgid "The exit code was {}" @@ -362,12 +367,12 @@ msgstr "Écriture du fstab." #: src/modules/dummypython/main.py:35 msgid "Dummy python job." -msgstr "Tâche factice python" +msgstr "Tâche factice de python" #: src/modules/dummypython/main.py:37 src/modules/dummypython/main.py:93 #: src/modules/dummypython/main.py:94 msgid "Dummy python step {}" -msgstr "Étape factice python {}" +msgstr "Étape factice de python {}" #: src/modules/localecfg/main.py:30 msgid "Configuring locales." @@ -375,4 +380,4 @@ msgstr "Configuration des locales." #: src/modules/networkcfg/main.py:28 msgid "Saving network configuration." -msgstr "Sauvegarde des configuration réseau." +msgstr "Sauvegarde de la configuration du réseau en cours." diff --git a/lang/python/he/LC_MESSAGES/python.po b/lang/python/he/LC_MESSAGES/python.po index 21cdc6a56..414247edb 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 -# Omer I.S. , 2020 +# Omeritzics Games , 2020 # Yaron Shahrabani , 2020 # #, fuzzy diff --git a/lang/python/it_IT/LC_MESSAGES/python.po b/lang/python/it_IT/LC_MESSAGES/python.po index 1933817ba..5f516a949 100644 --- a/lang/python/it_IT/LC_MESSAGES/python.po +++ b/lang/python/it_IT/LC_MESSAGES/python.po @@ -7,6 +7,7 @@ # Pierfrancesco Passerini , 2019 # Pietro F. Fontana, 2020 # Saverio , 2020 +# Giuseppe Pignataro , 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: Saverio , 2020\n" +"Last-Translator: Giuseppe Pignataro , 2021\n" "Language-Team: Italian (Italy) (https://www.transifex.com/calamares/teams/20061/it_IT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -209,6 +210,8 @@ msgid "" "The displaymanagers list is empty or undefined in both globalstorage and " "displaymanager.conf." msgstr "" +"L'elenco dei display manager è vuota o non definita sia in globalstorage che" +" in displaymanager.conf." #: src/modules/displaymanager/main.py:977 msgid "Display manager configuration was incomplete" @@ -321,11 +324,11 @@ msgstr "Impostazione del clock hardware." #: src/modules/mkinitfs/main.py:27 msgid "Creating initramfs with mkinitfs." -msgstr "" +msgstr "Sto creando initramfs con mkinitfs." #: src/modules/mkinitfs/main.py:49 msgid "Failed to run mkinitfs on the target" -msgstr "" +msgstr "Impossibile eseguire mkinitfs sulla destinazione" #: src/modules/mkinitfs/main.py:50 src/modules/dracut/main.py:50 msgid "The exit code was {}" diff --git a/lang/python/ko/LC_MESSAGES/python.po b/lang/python/ko/LC_MESSAGES/python.po index 528ae5e3b..b6165a387 100644 --- a/lang/python/ko/LC_MESSAGES/python.po +++ b/lang/python/ko/LC_MESSAGES/python.po @@ -5,7 +5,7 @@ # # Translators: # Ji-Hyeon Gim , 2018 -# Bruce Lee , 2020 +# Jung Hee Lee , 2020 # #, fuzzy msgid "" @@ -14,7 +14,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: Bruce Lee , 2020\n" +"Last-Translator: Jung Hee Lee , 2020\n" "Language-Team: Korean (https://www.transifex.com/calamares/teams/20061/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/lang/python/pt_BR/LC_MESSAGES/python.po b/lang/python/pt_BR/LC_MESSAGES/python.po index 6803c6287..dab21b4fa 100644 --- a/lang/python/pt_BR/LC_MESSAGES/python.po +++ b/lang/python/pt_BR/LC_MESSAGES/python.po @@ -5,7 +5,7 @@ # # Translators: # André Marcelo Alvarenga , 2020 -# Guilherme, 2020 +# Guilherme Marçal Silva, 2020 # #, fuzzy msgid "" @@ -14,7 +14,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: Guilherme, 2020\n" +"Last-Translator: Guilherme Marçal Silva, 2020\n" "Language-Team: Portuguese (Brazil) (https://www.transifex.com/calamares/teams/20061/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/lang/python/ru_RU/LC_MESSAGES/python.po b/lang/python/ru_RU/LC_MESSAGES/python.po new file mode 100644 index 000000000..814b007b2 --- /dev/null +++ b/lang/python/ru_RU/LC_MESSAGES/python.po @@ -0,0 +1,351 @@ +# 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: Russian (Russia) (https://www.transifex.com/calamares/teams/20061/ru_RU/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ru_RU\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\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] "" +msgstr[2] "" +msgstr[3] "" + +#: src/modules/packages/main.py:65 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: 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 "" From ea8f5afc3cea1c7ce713cb3e966322401ee653b1 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 15 May 2021 06:24:32 +0200 Subject: [PATCH 10/37] CI: clang-format 7 is no longer supported --- ci/calamaresstyle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/calamaresstyle b/ci/calamaresstyle index 81ec71c39..9c0964bd2 100755 --- a/ci/calamaresstyle +++ b/ci/calamaresstyle @@ -22,7 +22,7 @@ export LANG LC_ALL LC_NUMERIC AS=$( which astyle ) -CF_VERSIONS="clang-format-7 clang-format-8 clang-format70 clang-format80 clang-format90 clang-format-9.0.1 clang-format" +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 From d731e12456815d109dc86583ffb1c0dbf67a4683 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Sat, 15 May 2021 07:46:03 +0200 Subject: [PATCH 11/37] [libcalamares] Add an extra job-failure enum value --- src/libcalamares/Job.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libcalamares/Job.h b/src/libcalamares/Job.h index c7578272d..58a9bba39 100644 --- a/src/libcalamares/Job.h +++ b/src/libcalamares/Job.h @@ -35,7 +35,8 @@ public: NoError = 0, GenericError = -1, PythonUncaughtException = 1, - InvalidConfiguration = 2 + InvalidConfiguration = 2, + MissingRequirements = 3, }; // Can't copy, but you can keep a temporary From efe41da24d6e191dc8cc5dab5105a412e785dcb9 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 19 May 2021 14:21:58 +0200 Subject: [PATCH 12/37] Docs: mention Matrix channel, too --- CONTRIBUTING.md | 4 ++-- README.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d96c91e23..41dec59fa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -35,8 +35,8 @@ in Europe, but feel free to idle. **DO NOT** ask-and-leave. Keep that chat window open because it can easily take a few hours for someone to notice a message. -[![Visit our IRC channel](https://kiwiirc.com/buttons/webchat.freenode.net/calamares.png)](https://webchat.freenode.net/?channel=#calamares?nick=guest) - +- [![Visit our IRC channel](https://kiwiirc.com/buttons/webchat.freenode.net/calamares.png)](https://webchat.freenode.net/?channel=#calamares?nick=guest) +- [Join us on Matrix](https://webchat.kde.org/#/room/%23calamares:kde.org) ## General Guidelines diff --git a/README.md b/README.md index 464fbc1b3..0b83861f8 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) | [Freenode (IRC): #calamares](https://webchat.freenode.net/?channel=#calamares?nick=guest) | [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) | [Freenode (IRC): #calamares](https://webchat.freenode.net/?channel=#calamares?nick=guest) | [Matrix](https://webchat.kde.org/#/room/%23calamares:kde.org) | [Wiki](https://github.com/calamares/calamares/wiki) | |:--:|:--:|:--:|:--:|:--:| From e4c97cac2b3116e300a1dafbceb26a111444d97b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 19 May 2021 14:24:01 +0200 Subject: [PATCH 13/37] Docs: link to the website user-guide, not the wiki version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0b83861f8..6c596c2e9 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ a "ready to use" application: distributions apply a huge amount of customisation and configuration to Calamares, and the target audience for this repository is those distributions, and the people who make those Linux distro's. -Calamares has some [generic user documentation](https://github.com/calamares/calamares/wiki/Use-Guide) +Calamares has some [generic user documentation](https://calamares.io/docs/users-guide/) for end-users, but most of what we have is for distro developers. ## Getting Calamares From b48de5b908821d015357e7c5cfc49aa774621f95 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 19 May 2021 14:28:24 +0200 Subject: [PATCH 14/37] Docs: mention Matrix consistently --- CONTRIBUTING.md | 1 + README.md | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 41dec59fa..fed505844 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,6 +34,7 @@ Regular Calamares development chit-chat happens on old-school IRC in Europe, but feel free to idle. **DO NOT** ask-and-leave. Keep that chat window open because it can easily take a few hours for someone to notice a message. +The Matrix room is relatively new. - [![Visit our IRC channel](https://kiwiirc.com/buttons/webchat.freenode.net/calamares.png)](https://webchat.freenode.net/?channel=#calamares?nick=guest) - [Join us on Matrix](https://webchat.kde.org/#/room/%23calamares:kde.org) diff --git a/README.md b/README.md index 6c596c2e9..a017bc0c3 100644 --- a/README.md +++ b/README.md @@ -59,6 +59,7 @@ problems or a new feature to discuss. 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. +in Europe, but feel free to idle. The Matrix room is relatively new. -[![Visit our IRC channel](https://kiwiirc.com/buttons/webchat.freenode.net/calamares.png)](https://webchat.freenode.net/?channel=#calamares?nick=guest|) +- [![Visit our IRC channel](https://kiwiirc.com/buttons/webchat.freenode.net/calamares.png)](https://webchat.freenode.net/?channel=#calamares?nick=guest|) +- [Join us on Matrix](https://webchat.kde.org/#/room/%23calamares:kde.org) From caea146840ef409a478f4f10e19b4f20c550b6fe Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 19 May 2021 14:57:33 +0200 Subject: [PATCH 15/37] Docs: styling, badge for matrix --- CONTRIBUTING.md | 2 +- README.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fed505844..a1525dea9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -37,7 +37,7 @@ someone to notice a message. The Matrix room is relatively new. - [![Visit our IRC channel](https://kiwiirc.com/buttons/webchat.freenode.net/calamares.png)](https://webchat.freenode.net/?channel=#calamares?nick=guest) -- [Join us on Matrix](https://webchat.kde.org/#/room/%23calamares:kde.org) +- [![Join us on Matrix](https://img.shields.io/badge/Matrix-%23calamares-blue?logo=matrix)](https://webchat.kde.org/#/room/%23calamares:kde.org) ## General Guidelines diff --git a/README.md b/README.md index a017bc0c3..2247fcf4d 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ | [Report a Bug](https://github.com/calamares/calamares/issues/new) | [Translate](https://www.transifex.com/projects/p/calamares/) | [Contribute](CONTRIBUTING.md) | [Freenode (IRC): #calamares](https://webchat.freenode.net/?channel=#calamares?nick=guest) | [Matrix](https://webchat.kde.org/#/room/%23calamares:kde.org) | [Wiki](https://github.com/calamares/calamares/wiki) | -|:--:|:--:|:--:|:--:|:--:| +|:--:|:--:|:--:|:--:|:--:|:--:| > Calamares is a distribution-independent system installer, with an advanced partitioning @@ -47,7 +47,7 @@ The dependencies are explained in [CONTRIBUTING.md](CONTRIBUTING.md). Calamares welcomes PRs. New issues are welcome, too. There are both the Calamares **core** repository (this one), -and an *extensions** repository ([Calamares extensions](https://github.com/calamares/calamares-extensions)). +and an **extensions** repository ([Calamares extensions](https://github.com/calamares/calamares-extensions)). Contributions to code, modules, documentation, the wiki and the website are all welcome. There is more information in the [CONTRIBUTING.md](CONTRIBUTING.md) file. @@ -62,4 +62,4 @@ Regular Calamares development chit-chat happens on old-school IRC in Europe, but feel free to idle. The Matrix room is relatively new. - [![Visit our IRC channel](https://kiwiirc.com/buttons/webchat.freenode.net/calamares.png)](https://webchat.freenode.net/?channel=#calamares?nick=guest|) -- [Join us on Matrix](https://webchat.kde.org/#/room/%23calamares:kde.org) +- [![Join us on Matrix](https://img.shields.io/badge/Matrix-%23calamares-blue?logo=matrix)](https://webchat.kde.org/#/room/%23calamares:kde.org) From 7830461ac5dc188dce6d4fec29fdd3acbd809bb2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Wed, 19 May 2021 15:21:05 +0200 Subject: [PATCH 16/37] Docs: one more round of badging --- CONTRIBUTING.md | 5 +++-- README.md | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a1525dea9..a8114bef2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -36,8 +36,9 @@ that chat window open because it can easily take a few hours for someone to notice a message. The Matrix room is relatively new. -- [![Visit our IRC channel](https://kiwiirc.com/buttons/webchat.freenode.net/calamares.png)](https://webchat.freenode.net/?channel=#calamares?nick=guest) -- [![Join us on Matrix](https://img.shields.io/badge/Matrix-%23calamares-blue?logo=matrix)](https://webchat.kde.org/#/room/%23calamares:kde.org) +* [![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) + ## General Guidelines diff --git a/README.md b/README.md index 2247fcf4d..252e00ea0 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) | [Freenode (IRC): #calamares](https://webchat.freenode.net/?channel=#calamares?nick=guest) | [Matrix](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: 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) | |:--:|:--:|:--:|:--:|:--:|:--:| @@ -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. -- [![Visit our IRC channel](https://kiwiirc.com/buttons/webchat.freenode.net/calamares.png)](https://webchat.freenode.net/?channel=#calamares?nick=guest|) -- [![Join us on Matrix](https://img.shields.io/badge/Matrix-%23calamares-blue?logo=matrix)](https://webchat.kde.org/#/room/%23calamares:kde.org) +* [![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) From 98ebb6f8d102db980abe9cbeb3954dd0bb9a6683 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Fri, 21 May 2021 16:24:56 +0200 Subject: [PATCH 17/37] CI: send push-related CI notifications to Matrix --- .github/workflows/push.yml | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 0889ea278..2a54f1600 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -78,18 +78,10 @@ jobs: working-directory: ${{ env.BUILDDIR }} run: make install VERBOSE=1 - name: "notify: ok" - uses: rectalogic/notify-irc@v1 if: ${{ success() && github.repository == 'calamares/calamares' }} - with: - server: chat.freenode.net - nickname: cala-ci - channel: "#calamares" - message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ github.actor }} on ${{ github.event.ref }}\n.. ${{ steps.pre_build.outputs.message }}" + run: | + curl -s -XPOST -d '{"msgtype":"m.text", "body":"OK ${{ github.workflow }} in ${{ github.repository }} ${{ github.actor }} on ${{ github.event.ref }}\n.. ${{ steps.pre_build.outputs.message }}"}' 'https://matrix.org/_matrix/client/r0/rooms/%21${{ secrets.MATRIX_ROOM }}/send/m.room.message?access_token=${{ secrets.MATRIX_TOKEN }}' > /dev/null - name: "notify: fail" - uses: rectalogic/notify-irc@v1 if: ${{ failure() && github.repository == 'calamares/calamares' }} - with: - server: chat.freenode.net - nickname: cala-ci - channel: "#calamares" - message: "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ github.actor }} on ${{ github.event.ref }}\n.. ${{ steps.pre_build.outputs.message }}\n.. DIFF ${{ github.event.compare }}" + run: | + curl -s -XPOST -d '{"msgtype":"m.text", "body": "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ github.actor }} on ${{ github.event.ref }}\n.. ${{ steps.pre_build.outputs.message }}\n.. DIFF ${{ github.event.compare }}" }' 'https://matrix.org/_matrix/client/r0/rooms/%21${{ secrets.MATRIX_ROOM }}/send/m.room.message?access_token=${{ secrets.MATRIX_TOKEN }}' > /dev/null From e186e54434af6058e0f8d841a8ddca8aa75ba684 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 24 May 2021 22:16:54 +0200 Subject: [PATCH 18/37] [fstab] Don't fail with a KeyError in misconfigured installations Use get() instead of [] to avoid KeyError when the host system confuguration is entirely missing a setting for *mountOptions*. FIXES #1702 --- src/modules/fstab/main.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/modules/fstab/main.py b/src/modules/fstab/main.py index b6d7a4b2a..61f6b0e9f 100644 --- a/src/modules/fstab/main.py +++ b/src/modules/fstab/main.py @@ -372,15 +372,23 @@ def run(): root_btrfs = (root_partitions[0] == "btrfs") if root_partitions else False if root_btrfs: partitions.append( dict(fs="swap", mountPoint=None, claimed=True, device="/swap/swapfile", uuid=None) ) - else: + else: partitions.append( dict(fs="swap", mountPoint=None, claimed=True, device="/swapfile", uuid=None) ) else: swap_choice = None libcalamares.job.setprogress(0.1) - mount_options = conf["mountOptions"] + mount_options = conf.get("mountOptions", {}) ssd_extra_mount_options = conf.get("ssdExtraMountOptions", {}) crypttab_options = conf.get("crypttabOptions", "luks") + + # We rely on mount_options having a default; if there wasn't one, + # bail out with a meaningful error. + if not mount_options: + return (_("Configuration Error"), + _("No
{!s}
configuration is given for
{!s}
to use.") + .format("mountOptions", "fstab")) + generator = FstabGenerator(partitions, root_mount_point, mount_options, From bb1df38caa75d85855062971116002f9e60cec4d Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 24 May 2021 23:05:46 +0200 Subject: [PATCH 19/37] [bootloader] Convert command-failures into readable error messages Avoid leaking errors to the caller, because that gets us a traceback and generic Python Error message, which is less-than-helpful. --- src/modules/bootloader/main.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/modules/bootloader/main.py b/src/modules/bootloader/main.py index 03fdb0c5b..3e384a018 100644 --- a/src/modules/bootloader/main.py +++ b/src/modules/bootloader/main.py @@ -474,6 +474,14 @@ def run(): libcalamares.utils.warning( "EFI system, but nothing mounted on {!s}".format(efi_system_partition) ) return None - prepare_bootloader(fw_type) + try: + prepare_bootloader(fw_type) + except subprocess.CalledProcessError as e: + libcalamares.utils.warning(str(e)) + libcalamares.utils.debug("stdout:" + str(e.stdout)) + libcalamares.utils.debug("stderr:" + str(e.stderr)) + return (_("Bootloader installation error"), + _("The bootloader could not be installed. The installation command
{!s}
returned error code {!s}.") + .format(e.cmd, e.returncode)) return None From aa4569b55b384a47ed0d4fd24f0f0e795e4d79e8 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 24 May 2021 23:07:11 +0200 Subject: [PATCH 20/37] [packages] Convert command-failures into readable error messages If the pakcage manager fails in some way, convert to a readable error message instead of leaking the exception to the caller (which produces a traceback, which is harder to read and less informative) --- src/modules/packages/main.py | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/modules/packages/main.py b/src/modules/packages/main.py index c3cc2ad7d..9be079dac 100644 --- a/src/modules/packages/main.py +++ b/src/modules/packages/main.py @@ -579,11 +579,27 @@ def run(): update_db = libcalamares.job.configuration.get("update_db", False) if update_db and libcalamares.globalstorage.value("hasInternet"): - pkgman.update_db() + try: + pkgman.update_db() + except subprocess.CalledProcessError as e: + libcalamares.utils.warning(str(e)) + libcalamares.utils.debug("stdout:" + str(e.stdout)) + libcalamares.utils.debug("stderr:" + str(e.stderr)) + return (_("Package Manager error"), + _("The package manager could not prepare updates. The command
{!s}
returned error code {!s}.") + .format(e.cmd, e.returncode)) update_system = libcalamares.job.configuration.get("update_system", False) if update_system and libcalamares.globalstorage.value("hasInternet"): - pkgman.update_system() + try: + pkgman.update_system() + except subprocess.CalledProcessError as e: + libcalamares.utils.warning(str(e)) + libcalamares.utils.debug("stdout:" + str(e.stdout)) + libcalamares.utils.debug("stderr:" + str(e.stderr)) + return (_("Package Manager error"), + _("The package manager could not update the system. The command
{!s}
returned error code {!s}.") + .format(e.cmd, e.returncode)) operations = libcalamares.job.configuration.get("operations", []) if libcalamares.globalstorage.contains("packageOperations"): @@ -603,11 +619,18 @@ def run(): for entry in operations: group_packages = 0 libcalamares.utils.debug(pretty_name()) - run_operations(pkgman, entry) + try: + run_operations(pkgman, entry) + except subprocess.CalledProcessError as e: + libcalamares.utils.warning(str(e)) + libcalamares.utils.debug("stdout:" + str(e.stdout)) + libcalamares.utils.debug("stderr:" + str(e.stderr)) + return (_("Package Manager error"), + _("The package manager could make changes to the installed system. The command
{!s}
returned error code {!s}.") + .format(e.cmd, e.returncode)) mode_packages = None libcalamares.job.setprogress(1.0) - libcalamares.utils.debug(pretty_name()) return None From ded7991dd6d68e5a5bae58fa10b4747246e8dc0b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 09:55:45 +0200 Subject: [PATCH 21/37] CI: different tactic for notifications --- .github/workflows/push.yml | 8 ++++++ ci/notify.sh | 55 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100755 ci/notify.sh diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 2a54f1600..15418dcfc 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -85,3 +85,11 @@ jobs: if: ${{ failure() && github.repository == 'calamares/calamares' }} run: | curl -s -XPOST -d '{"msgtype":"m.text", "body": "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ github.actor }} on ${{ github.event.ref }}\n.. ${{ steps.pre_build.outputs.message }}\n.. DIFF ${{ github.event.compare }}" }' 'https://matrix.org/_matrix/client/r0/rooms/%21${{ secrets.MATRIX_ROOM }}/send/m.room.message?access_token=${{ secrets.MATRIX_TOKEN }}' > /dev/null + - name: "notify: check" + env: + MATRIX_TOKEN: ${{ secrets.MATRIX_TOKEN }} + MATRIX_ROOM: ${{ secrets.MATRIX_ROOM }} + run: | + "$SRCDIR/ci/notify.sh" OK '${{ github.workflow }}' '${{ github.repository }}' '${{ github.actor }}' '${{ github.event.ref }}' \ + '(test)${{ steps.pre_build.outputs.message }}' \ + '${{ github.event.compare }}' diff --git a/ci/notify.sh b/ci/notify.sh new file mode 100755 index 000000000..a51d48cd3 --- /dev/null +++ b/ci/notify.sh @@ -0,0 +1,55 @@ +#! /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}" + +status_line="${STATUS} ${WORKFLOW} in ${REPOSITORY} ${ACTOR} on ${EVENT}" +summary_line="" +compare_line="" + +test -n "$SUMMARY" && summary_line="\n.. ${SUMMARY}" +test -n "$COMPARE" && compare_line="\n.. DIFF ${COMPARE}" + +message_data=$(jq -Rs --arg body "${status_line}${summary_line}${compare_line}" '{"msgtype": "m.text", $body}' < /dev/null) + +curl -s -XPOST -d "$message_data" "$url" > /dev/null From a73ad23b9f1ea9638d1c2eec51d30c89b628615c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 10:40:20 +0200 Subject: [PATCH 22/37] CI: need jq for JSON-formatting of matrix message data --- .github/workflows/push.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 15418dcfc..b73fb5b22 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -36,6 +36,7 @@ jobs: cmake \ extra-cmake-modules \ gettext \ + jq \ kio-dev \ libatasmart-dev \ libboost-python-dev \ From e773fb65a8a659da4687e340186e70fec0c6d413 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 11:21:41 +0200 Subject: [PATCH 23/37] CI: migrate push notification to helper script --- .github/workflows/push.yml | 21 +++++++++++---------- ci/notify.sh | 15 ++++++--------- 2 files changed, 17 insertions(+), 19 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index b73fb5b22..b5583c1d3 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -30,13 +30,12 @@ jobs: - name: "prepare env" run: | sudo apt-get update - sudo apt-get -y install git-core + sudo apt-get -y install git-core jq sudo apt-get -y install \ build-essential \ cmake \ extra-cmake-modules \ gettext \ - jq \ kio-dev \ libatasmart-dev \ libboost-python-dev \ @@ -80,17 +79,19 @@ jobs: run: make install VERBOSE=1 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} - run: | - curl -s -XPOST -d '{"msgtype":"m.text", "body":"OK ${{ github.workflow }} in ${{ github.repository }} ${{ github.actor }} on ${{ github.event.ref }}\n.. ${{ steps.pre_build.outputs.message }}"}' 'https://matrix.org/_matrix/client/r0/rooms/%21${{ secrets.MATRIX_ROOM }}/send/m.room.message?access_token=${{ secrets.MATRIX_TOKEN }}' > /dev/null - - name: "notify: fail" - if: ${{ failure() && github.repository == 'calamares/calamares' }} - run: | - curl -s -XPOST -d '{"msgtype":"m.text", "body": "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ github.actor }} on ${{ github.event.ref }}\n.. ${{ steps.pre_build.outputs.message }}\n.. DIFF ${{ github.event.compare }}" }' 'https://matrix.org/_matrix/client/r0/rooms/%21${{ secrets.MATRIX_ROOM }}/send/m.room.message?access_token=${{ secrets.MATRIX_TOKEN }}' > /dev/null - - name: "notify: check" env: MATRIX_TOKEN: ${{ secrets.MATRIX_TOKEN }} MATRIX_ROOM: ${{ secrets.MATRIX_ROOM }} run: | "$SRCDIR/ci/notify.sh" OK '${{ github.workflow }}' '${{ github.repository }}' '${{ github.actor }}' '${{ github.event.ref }}' \ - '(test)${{ steps.pre_build.outputs.message }}' \ + '${{ steps.pre_build.outputs.message }}' \ + '' + - name: "notify: fail" + if: ${{ failure() && github.repository == 'calamares/calamares' }} + env: + MATRIX_TOKEN: ${{ secrets.MATRIX_TOKEN }} + MATRIX_ROOM: ${{ secrets.MATRIX_ROOM }} + run: | + "$SRCDIR/ci/notify.sh" FAIL '${{ github.workflow }}' '${{ github.repository }}' '${{ github.actor }}' '${{ github.event.ref }}' \ + '${{ steps.pre_build.outputs.message }}' \ '${{ github.event.compare }}' diff --git a/ci/notify.sh b/ci/notify.sh index a51d48cd3..d9a2a4f4b 100755 --- a/ci/notify.sh +++ b/ci/notify.sh @@ -42,14 +42,11 @@ 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}" - -status_line="${STATUS} ${WORKFLOW} in ${REPOSITORY} ${ACTOR} on ${EVENT}" -summary_line="" -compare_line="" - -test -n "$SUMMARY" && summary_line="\n.. ${SUMMARY}" -test -n "$COMPARE" && compare_line="\n.. DIFF ${COMPARE}" - -message_data=$(jq -Rs --arg body "${status_line}${summary_line}${compare_line}" '{"msgtype": "m.text", $body}' < /dev/null) +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 d630c2aadf392f6ab6c5ae49cafc6fa74664e9eb Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 10:47:05 +0200 Subject: [PATCH 24/37] [partition] Introduce a check if the GPT-on-BIOS popup should be shown The check is bogus right now, and it still always warns; but if the `shouldWarnForGPTOnBIOS()` function is implemented, this will fix issue 1701. --- .../partition/gui/PartitionViewStep.cpp | 47 ++++++++++++------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/src/modules/partition/gui/PartitionViewStep.cpp b/src/modules/partition/gui/PartitionViewStep.cpp index 6755b64c6..b1fa851ed 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -395,6 +395,18 @@ PartitionViewStep::onActivate() } } +static bool +shouldWarnForGPTOnBIOS( const PartitionCoreModule* core ) +{ + if ( PartUtils::isEfiSystem() ) + { + return false; + } + + cDebug() << core->bootLoaderInstallPath(); + + return true; +} void PartitionViewStep::onLeave() @@ -462,24 +474,25 @@ PartitionViewStep::onLeave() { cDebug() << "device: BIOS"; - // TODO: this *always* warns, which might be annoying, so it'd be - // best to find a way to detect that bios_grub partition. - QString message = tr( "Option to use GPT on BIOS" ); - QString description = tr( "A GPT partition table is the best option for all " - "systems. This installer supports such a setup for " - "BIOS systems too." - "

" - "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 " - "bios_grub flag enabled.

" - "An unformatted 8 MB partition is necessary " - "to start %1 on a BIOS system with GPT." ) - .arg( branding->shortProductName() ); + if ( shouldWarnForGPTOnBIOS( m_core ) ) + { + QString message = tr( "Option to use GPT on BIOS" ); + QString description = tr( "A GPT partition table is the best option for all " + "systems. This installer supports such a setup for " + "BIOS systems too." + "

" + "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 " + "bios_grub flag enabled.

" + "An unformatted 8 MB partition is necessary " + "to start %1 on a BIOS system with GPT." ) + .arg( branding->shortProductName() ); - QMessageBox::information( m_manualPartitionPage, message, description ); + QMessageBox::information( m_manualPartitionPage, message, description ); + } } Partition* root_p = m_core->findPartitionByMountPoint( "/" ); @@ -593,7 +606,7 @@ PartitionViewStep::setConfigurationMap( const QVariantMap& configurationMap ) // because it could take a while. Then when it's done, we can set up the widgets // and remove the spinner. m_future = new QFutureWatcher< void >(); - connect( m_future, &QFutureWatcher< void >::finished, this, [this] { + connect( m_future, &QFutureWatcher< void >::finished, this, [ this ] { continueLoading(); this->m_future->deleteLater(); this->m_future = nullptr; From dabd895755e14b1926600f7743c013e235a1d64b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 12:33:12 +0200 Subject: [PATCH 25/37] [partition] Use type alias consistently --- src/modules/partition/core/BootLoaderModel.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/partition/core/BootLoaderModel.h b/src/modules/partition/core/BootLoaderModel.h index 47e6ccb95..9b1a651e4 100644 --- a/src/modules/partition/core/BootLoaderModel.h +++ b/src/modules/partition/core/BootLoaderModel.h @@ -26,6 +26,8 @@ class BootLoaderModel : public QStandardItemModel { Q_OBJECT public: + using DeviceList = QList< Device* >; + enum { BootLoaderPathRole = Qt::UserRole + 1, @@ -39,14 +41,12 @@ public: * Init the model with the list of devices. Does *not* take ownership of the * devices. */ - void init( const QList< Device* >& devices ); + void init( const DeviceList& devices ); void update(); QVariant data( const QModelIndex& index, int role = Qt::DisplayRole ) const override; - using DeviceList = QList< Device* >; - private: DeviceList m_devices; mutable QMutex m_lock; From d0276fd25fde2717e81ac02c56454847ad175306 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 13:05:45 +0200 Subject: [PATCH 26/37] [partition] Look up bootloader by name, method The bootloader model knows about both rows and devices, so we can look up both at once. The existing implementation as a non-member was rather sketchy and wasn't used except as support for restoreSelectedBootLoader(). --- .../partition/core/BootLoaderModel.cpp | 48 ++++++++++++------- src/modules/partition/core/BootLoaderModel.h | 15 +++--- 2 files changed, 40 insertions(+), 23 deletions(-) diff --git a/src/modules/partition/core/BootLoaderModel.cpp b/src/modules/partition/core/BootLoaderModel.cpp index 08b0283b3..fd66c8514 100644 --- a/src/modules/partition/core/BootLoaderModel.cpp +++ b/src/modules/partition/core/BootLoaderModel.cpp @@ -18,6 +18,7 @@ // KPMcore #include +#include #include @@ -148,28 +149,39 @@ BootLoaderModel::data( const QModelIndex& index, int role ) const return QStandardItemModel::data( index, role ); } -namespace Calamares +std::pair< int, Device* > +BootLoaderModel::findBootLoader( const QString& path ) const { -int -findBootloader( const QAbstractItemModel* model, const QString& path ) -{ - for ( int i = 0; i < model->rowCount(); ++i ) + int r = 0; + for ( Device* d : m_devices ) { - const auto index = model->index( i, 0, QModelIndex() ); - if ( !index.isValid() ) + if ( d && d->deviceNode() == path ) { - continue; - } - QVariant var = model->data( index, BootLoaderModel::BootLoaderPathRole ); - if ( var.isValid() && var.toString() == path ) - { - return i; + return std::make_pair( r, d ); } + r++; } - return -1; + Partition* partition = KPMHelpers::findPartitionByMountPoint( m_devices, path ); + if ( partition ) + { + const QString partition_device_path = partition->deviceNode(); + r = 0; + for ( Device* d : m_devices ) + { + if ( d && d->deviceNode() == partition_device_path ) + { + return std::make_pair( r, d ); + } + r++; + } + } + return std::make_pair( -1, nullptr ); } + +namespace Calamares +{ void restoreSelectedBootLoader( QComboBox& combo, const QString& path ) { @@ -180,12 +192,16 @@ restoreSelectedBootLoader( QComboBox& combo, const QString& path ) return; } - int r = -1; if ( path.isEmpty() ) { + cDebug() << "No path to restore, choosing default"; combo.setCurrentIndex( 0 ); + return; } - else if ( ( r = findBootloader( model, path ) ) >= 0 ) + + const BootLoaderModel* bmodel = qobject_cast< const BootLoaderModel* >( model ); + int r = bmodel ? bmodel->findBootLoader( path ).first : -1; + if ( r >= 0 ) { combo.setCurrentIndex( r ); } diff --git a/src/modules/partition/core/BootLoaderModel.h b/src/modules/partition/core/BootLoaderModel.h index 9b1a651e4..e640d4d7c 100644 --- a/src/modules/partition/core/BootLoaderModel.h +++ b/src/modules/partition/core/BootLoaderModel.h @@ -47,6 +47,14 @@ public: QVariant data( const QModelIndex& index, int role = Qt::DisplayRole ) const override; + /** @brief Looks up a boot-loader by device-name @p path (e.g. /dev/sda) + * + * Returns a row number (index) in the model and a Device*: if there **is** a + * device for the given @p path, index will be in range of the model and + * Device* non-null. Returns (-1, nullptr) otherwise. + */ + std::pair< int, Device* > findBootLoader( const QString& path ) const; + private: DeviceList m_devices; mutable QMutex m_lock; @@ -57,13 +65,6 @@ private: namespace Calamares { -/** @brief Returns the row number of boot-loader @p path (e.g. /dev/sda) - * - * Assuming the @p model is a BootLoaderModel, will return a row number - * in the model. Returns -1 otherwise. - */ -int findBootloader( const QAbstractItemModel* model, const QString& path ); - /** @brief Tries to set @p path as selected item in @p combo * * Matches a boot-loader install path (e.g. /dev/sda) with a model From 43c172f54d596d3169e3ea4439c4a60a0d48921b Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 13:23:28 +0200 Subject: [PATCH 27/37] [partition] Tighten up types Don't return the generic Abstract model for bootloader, but the subclass pointer, so that consumers can use the convenience API on the subclass. --- src/modules/partition/core/PartitionCoreModule.cpp | 2 +- src/modules/partition/core/PartitionCoreModule.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index 058c10d18..27aceec60 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -340,7 +340,7 @@ PartitionCoreModule::deviceModel() const return m_deviceModel; } -QAbstractItemModel* +BootLoaderModel* PartitionCoreModule::bootLoaderModel() const { return m_bootLoaderModel; diff --git a/src/modules/partition/core/PartitionCoreModule.h b/src/modules/partition/core/PartitionCoreModule.h index 492348187..693569310 100644 --- a/src/modules/partition/core/PartitionCoreModule.h +++ b/src/modules/partition/core/PartitionCoreModule.h @@ -122,7 +122,7 @@ public: * The single BootLoaderModel instance belongs to the PCM. * @return the BootLoaderModel. */ - QAbstractItemModel* bootLoaderModel() const; + BootLoaderModel* bootLoaderModel() const; void createPartitionTable( Device* device, PartitionTable::TableType type ); From 252a88cb7fd60d2a526fc33f09608f644f9a3c28 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 14:07:58 +0200 Subject: [PATCH 28/37] [partition] Check for suitable bios_grub partition. --- .../partition/gui/PartitionViewStep.cpp | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/modules/partition/gui/PartitionViewStep.cpp b/src/modules/partition/gui/PartitionViewStep.cpp index b1fa851ed..2e769576e 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -13,6 +13,7 @@ #include "gui/PartitionViewStep.h" +#include "core/BootLoaderModel.h" #include "core/Config.h" #include "core/DeviceModel.h" #include "core/KPMHelpers.h" @@ -36,6 +37,7 @@ #include "utils/NamedEnum.h" #include "utils/QtCompat.h" #include "utils/Retranslator.h" +#include "utils/Units.h" #include "utils/Variant.h" #include "widgets/WaitingWidget.h" @@ -403,8 +405,33 @@ shouldWarnForGPTOnBIOS( const PartitionCoreModule* core ) return false; } - cDebug() << core->bootLoaderInstallPath(); - + auto [ r, device ] = core->bootLoaderModel()->findBootLoader( core->bootLoaderInstallPath() ); + if ( device ) + { + auto* table = device->partitionTable(); + cDebug() << "Found device for bootloader" << device->deviceNode(); + if ( table && table->type() == PartitionTable::TableType::gpt ) + { + // So this is a BIOS system, and the bootloader will be installed on a GPT system + for ( const auto& partition : qAsConst( table->children() ) ) + { + using CalamaresUtils::Units::operator""_MiB; + if ( ( partition->activeFlags() & PartitionTable::Flag::BiosGrub ) + && ( partition->fileSystem().type() == FileSystem::Unformatted ) + && ( partition->capacity() >= 8_MiB ) ) + { + cDebug() << Logger::SubEntry << "Partition" << partition->partitionPath() + << "is a suitable bios_grub partition"; + return false; + } + } + } + cDebug() << Logger::SubEntry << "No suitable partition for bios_grub found"; + } + else + { + cDebug() << "Found no device for" << core->bootLoaderInstallPath(); + } return true; } From 01911beccc91273a020fa9f55092fbbf578da871 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 14:16:28 +0200 Subject: [PATCH 29/37] [partition] Expand debugging output The partition path isn't set yet, so is probably 'empty'. Try logging the device, too. --- 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 2e769576e..903b03380 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -420,7 +420,8 @@ shouldWarnForGPTOnBIOS( const PartitionCoreModule* core ) && ( partition->fileSystem().type() == FileSystem::Unformatted ) && ( partition->capacity() >= 8_MiB ) ) { - cDebug() << Logger::SubEntry << "Partition" << partition->partitionPath() + cDebug() << Logger::SubEntry << "Partition" << partition->devicePath() + << partition->partitionPath() << "is a suitable bios_grub partition"; return false; } From c333b9bb0ad92d145e1dc7ac5129c27698c60276 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 14:38:40 +0200 Subject: [PATCH 30/37] CI: want jq for actions in the nightlies, too --- .github/workflows/nightly-debian.yml | 2 +- .github/workflows/nightly-neon.yml | 2 +- .github/workflows/nightly-opensuse.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/nightly-debian.yml b/.github/workflows/nightly-debian.yml index 3fd558e21..3ce1e7191 100644 --- a/.github/workflows/nightly-debian.yml +++ b/.github/workflows/nightly-debian.yml @@ -24,7 +24,7 @@ jobs: - name: "prepare env" run: | apt-get update - apt-get -y install git-core + apt-get -y install git-core jq apt-get -y install \ build-essential \ cmake \ diff --git a/.github/workflows/nightly-neon.yml b/.github/workflows/nightly-neon.yml index 92f71c10b..c40311044 100644 --- a/.github/workflows/nightly-neon.yml +++ b/.github/workflows/nightly-neon.yml @@ -24,7 +24,7 @@ jobs: - name: "prepare env" run: | sudo apt-get update - sudo apt-get -y install git-core + sudo apt-get -y install git-core jq sudo apt-get -y install \ build-essential \ cmake \ diff --git a/.github/workflows/nightly-opensuse.yml b/.github/workflows/nightly-opensuse.yml index c3762fb99..579e30807 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 + zypper --non-interactive in git-core jq # From deploycala.py zypper --non-interactive in \ "autoconf" \ From 5bf118409ab81997285feb29eb972195edc494a2 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 14:39:09 +0200 Subject: [PATCH 31/37] CI: try to use actions-metadata rather than local script --- .github/actions/notify-push/action.yml | 20 ++++++++++++++++++ .github/workflows/push.yml | 29 +++++++++++++------------- 2 files changed, 35 insertions(+), 14 deletions(-) create mode 100644 .github/actions/notify-push/action.yml diff --git a/.github/actions/notify-push/action.yml b/.github/actions/notify-push/action.yml new file mode 100644 index 000000000..9492fa325 --- /dev/null +++ b/.github/actions/notify-push/action.yml @@ -0,0 +1,20 @@ +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 "$INPUT_MESSAGE" | jq -Rs '{"msgtype": "m.text", "body":@text}' ) "https://matrix.org/_matrix/client/r0/rooms/%21${INPUT_ROOM}/send/m.room.message?access_token=${INPUT_TOKEN}" > /dev/null diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index b5583c1d3..4ab250158 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -79,19 +79,20 @@ jobs: run: make install VERBOSE=1 - name: "notify: ok" if: ${{ success() && github.repository == 'calamares/calamares' }} - env: - MATRIX_TOKEN: ${{ secrets.MATRIX_TOKEN }} - MATRIX_ROOM: ${{ secrets.MATRIX_ROOM }} - run: | - "$SRCDIR/ci/notify.sh" OK '${{ github.workflow }}' '${{ github.repository }}' '${{ github.actor }}' '${{ github.event.ref }}' \ - '${{ steps.pre_build.outputs.message }}' \ - '' + uses: ./.github/actions/notify-push + with: + TOKEN: ${{ secrets.MATRIX_TOKEN }} + ROOM: ${{ secrets.MATRIX_ROOM }} + MESSAGE: | + OK ${{ github.workflow }} in ${{ github.repository }} by ${{ github.actor }} on ${{ github.event.ref }} + .. ${{ steps.pre_build.outputs.message }} - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} - env: - MATRIX_TOKEN: ${{ secrets.MATRIX_TOKEN }} - MATRIX_ROOM: ${{ secrets.MATRIX_ROOM }} - run: | - "$SRCDIR/ci/notify.sh" FAIL '${{ github.workflow }}' '${{ github.repository }}' '${{ github.actor }}' '${{ github.event.ref }}' \ - '${{ steps.pre_build.outputs.message }}' \ - '${{ github.event.compare }}' + uses: ./.github/actions/notify-push + with: + TOKEN: ${{ secrets.MATRIX_TOKEN }} + ROOM: ${{ secrets.MATRIX_ROOM }} + MESSAGE: | + FAIL ${{ github.workflow }} in ${{ github.repository }} by ${{ github.actor }} on ${{ github.event.ref }} + .. ${{ steps.pre_build.outputs.message }} + .. ${{ github.event.compare }} From d8b8d17e8638d15481f11c9eb5d3a8b7938d454a Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 15:01:18 +0200 Subject: [PATCH 32/37] CI: try simpler action --- .github/actions/notify-push/action.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/actions/notify-push/action.yml b/.github/actions/notify-push/action.yml index 9492fa325..56cdbf7c6 100644 --- a/.github/actions/notify-push/action.yml +++ b/.github/actions/notify-push/action.yml @@ -16,5 +16,4 @@ runs: using: "composite" steps: - shell: bash - run: | - curl -s -XPOST -d $( echo "$INPUT_MESSAGE" | jq -Rs '{"msgtype": "m.text", "body":@text}' ) "https://matrix.org/_matrix/client/r0/rooms/%21${INPUT_ROOM}/send/m.room.message?access_token=${INPUT_TOKEN}" > /dev/null + run: echo "$INPUT_MESSAGE" From 93221da5ead59f7cda84a081e3c608e2b60546e3 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 15:47:44 +0200 Subject: [PATCH 33/37] CI: fix up notifications to Matrix --- .github/actions/notify-push/action.yml | 3 ++- .github/workflows/push.yml | 12 ++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/actions/notify-push/action.yml b/.github/actions/notify-push/action.yml index 56cdbf7c6..ca4e6c0b2 100644 --- a/.github/actions/notify-push/action.yml +++ b/.github/actions/notify-push/action.yml @@ -16,4 +16,5 @@ runs: using: "composite" steps: - shell: bash - run: echo "$INPUT_MESSAGE" + run: | + curl -s -XPOST -d $( echo "${{ inputs.message }}" | jq -Rs '{"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/push.yml b/.github/workflows/push.yml index 4ab250158..c5f02c625 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -81,18 +81,18 @@ jobs: if: ${{ success() && github.repository == 'calamares/calamares' }} uses: ./.github/actions/notify-push with: - TOKEN: ${{ secrets.MATRIX_TOKEN }} - ROOM: ${{ secrets.MATRIX_ROOM }} - MESSAGE: | + token: ${{ secrets.MATRIX_TOKEN }} + room: ${{ secrets.MATRIX_ROOM }} + message: | OK ${{ github.workflow }} in ${{ github.repository }} by ${{ github.actor }} on ${{ github.event.ref }} .. ${{ steps.pre_build.outputs.message }} - name: "notify: fail" if: ${{ failure() && github.repository == 'calamares/calamares' }} uses: ./.github/actions/notify-push with: - TOKEN: ${{ secrets.MATRIX_TOKEN }} - ROOM: ${{ secrets.MATRIX_ROOM }} - MESSAGE: | + token: ${{ secrets.MATRIX_TOKEN }} + room: ${{ secrets.MATRIX_ROOM }} + message: | FAIL ${{ github.workflow }} in ${{ github.repository }} by ${{ github.actor }} on ${{ github.event.ref }} .. ${{ steps.pre_build.outputs.message }} .. ${{ github.event.compare }} From b419f5a3c321d8bc57eb02d4082eb34910d36034 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 16:23:59 +0200 Subject: [PATCH 34/37] CI: fix up quotes in command --- .github/actions/notify-push/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/notify-push/action.yml b/.github/actions/notify-push/action.yml index ca4e6c0b2..80c89ea76 100644 --- a/.github/actions/notify-push/action.yml +++ b/.github/actions/notify-push/action.yml @@ -17,4 +17,4 @@ runs: steps: - shell: bash run: | - curl -s -XPOST -d $( echo "${{ inputs.message }}" | jq -Rs '{"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 + 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 From e15db9a68ca52cd6b06cb4205836993386c25e04 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 16:25:30 +0200 Subject: [PATCH 35/37] CI: move issues notification to Matrix --- .github/workflows/issues.yml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index e8d2821ae..a321d40ba 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -9,18 +9,16 @@ jobs: runs-on: ubuntu-latest steps: - name: "notify: new" - uses: rectalogic/notify-irc@v1 if: github.event.issue.state == 'open' + uses: ./.github/actions/notify-push with: - server: chat.freenode.net - nickname: cala-issues - channel: "#calamares" + 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" - uses: rectalogic/notify-irc@v1 if: github.event.issue.state != 'open' + uses: ./.github/actions/notify-push with: - server: chat.freenode.net - nickname: cala-issues - channel: "#calamares" + token: ${{ secrets.MATRIX_TOKEN }} + room: ${{ secrets.MATRIX_ROOM }} message: "CLOSED ${{ github.event.issue.html_url }} by ${{ github.actor }} ${{ github.event.issue.title }}" From 74c8f34b79476296cd2798ae27fe1f6e4f2cb8ab Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 25 May 2021 16:27:12 +0200 Subject: [PATCH 36/37] CI: move nightlies reporting to Matrix --- .github/workflows/nightly-debian.yml | 14 ++++++-------- .github/workflows/nightly-neon.yml | 14 ++++++-------- .github/workflows/nightly-opensuse.yml | 14 ++++++-------- 3 files changed, 18 insertions(+), 24 deletions(-) diff --git a/.github/workflows/nightly-debian.yml b/.github/workflows/nightly-debian.yml index 3ce1e7191..53ff93019 100644 --- a/.github/workflows/nightly-debian.yml +++ b/.github/workflows/nightly-debian.yml @@ -83,18 +83,16 @@ jobs: working-directory: ${{ env.BUILDDIR }} run: make install VERBOSE=1 - name: "notify: ok" - uses: rectalogic/notify-irc@v1 if: ${{ success() && github.repository == 'calamares/calamares' }} + uses: ./.github/actions/notify-push with: - server: chat.freenode.net - nickname: cala-ci - channel: "#calamares" + token: ${{ secrets.MATRIX_TOKEN }} + room: ${{ secrets.MATRIX_ROOM }} message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.pre_build.outputs.message }}" - name: "notify: fail" - uses: rectalogic/notify-irc@v1 if: ${{ failure() && github.repository == 'calamares/calamares' }} + uses: ./.github/actions/notify-push with: - server: chat.freenode.net - nickname: cala-ci - channel: "#calamares" + token: ${{ secrets.MATRIX_TOKEN }} + room: ${{ secrets.MATRIX_ROOM }} message: "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ steps.pre_build.outputs.message }}" diff --git a/.github/workflows/nightly-neon.yml b/.github/workflows/nightly-neon.yml index c40311044..b5c5b8ced 100644 --- a/.github/workflows/nightly-neon.yml +++ b/.github/workflows/nightly-neon.yml @@ -82,18 +82,16 @@ jobs: if-no-files-found: error retention-days: 3 - name: "notify: ok" - uses: rectalogic/notify-irc@v1 if: ${{ success() && github.repository == 'calamares/calamares' }} + uses: ./.github/actions/notify-push with: - server: chat.freenode.net - nickname: cala-ci - channel: "#calamares" + token: ${{ secrets.MATRIX_TOKEN }} + room: ${{ secrets.MATRIX_ROOM }} message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.pre_build.outputs.message }}" - name: "notify: fail" - uses: rectalogic/notify-irc@v1 if: ${{ failure() && github.repository == 'calamares/calamares' }} + uses: ./.github/actions/notify-push with: - server: chat.freenode.net - nickname: cala-ci - channel: "#calamares" + token: ${{ secrets.MATRIX_TOKEN }} + room: ${{ secrets.MATRIX_ROOM }} message: "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ steps.pre_build.outputs.message }}" diff --git a/.github/workflows/nightly-opensuse.yml b/.github/workflows/nightly-opensuse.yml index 579e30807..59e45500b 100644 --- a/.github/workflows/nightly-opensuse.yml +++ b/.github/workflows/nightly-opensuse.yml @@ -81,18 +81,16 @@ jobs: working-directory: ${{ env.BUILDDIR }} run: make install VERBOSE=1 - name: "notify: ok" - uses: rectalogic/notify-irc@v1 if: ${{ success() && github.repository == 'calamares/calamares' }} + uses: ./.github/actions/notify-push with: - server: chat.freenode.net - nickname: cala-ci - channel: "#calamares" + token: ${{ secrets.MATRIX_TOKEN }} + room: ${{ secrets.MATRIX_ROOM }} message: "OK ${{ github.workflow }} in ${{ github.repository }} ${{ steps.pre_build.outputs.message }}" - name: "notify: fail" - uses: rectalogic/notify-irc@v1 if: ${{ failure() && github.repository == 'calamares/calamares' }} + uses: ./.github/actions/notify-push with: - server: chat.freenode.net - nickname: cala-ci - channel: "#calamares" + token: ${{ secrets.MATRIX_TOKEN }} + room: ${{ secrets.MATRIX_ROOM }} message: "FAIL ${{ github.workflow }} in ${{ github.repository }} ${{ steps.pre_build.outputs.message }}" From 2c99a8c6f8ea43d3ea3a96db1def5a805bfd0976 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20M=C3=BCller?= Date: Wed, 26 May 2021 09:36:02 +0200 Subject: [PATCH 37/37] [displaymanager] add cutefish - more info at https://cutefishos.com/ --- src/modules/displaymanager/main.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/displaymanager/main.py b/src/modules/displaymanager/main.py index ef34e929f..8b63b9e8d 100644 --- a/src/modules/displaymanager/main.py +++ b/src/modules/displaymanager/main.py @@ -198,6 +198,7 @@ desktop_environments = [ DesktopEnvironment('/usr/bin/fvwm3', 'fvwm3'), DesktopEnvironment('/usr/bin/sway', 'sway'), DesktopEnvironment('/usr/bin/ukui-session', 'ukui'), + DesktopEnvironment('/usr/bin/cutefish-session', 'cutefish-xsession'), ]