From 801c3d4715b3c5d39e655db079c217a50550e4e3 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 24 Feb 2020 11:41:18 +0100 Subject: [PATCH 01/15] Changes: pre-release (hotfix) housekeeping --- CHANGES | 12 +++++------- CMakeLists.txt | 4 ++-- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/CHANGES b/CHANGES index db5b75f82..d91de15b2 100644 --- a/CHANGES +++ b/CHANGES @@ -3,16 +3,14 @@ contributors are listed. Note that Calamares does not have a historical changelog -- this log starts with version 3.2.0. The release notes on the website will have to do for older versions. -# 3.2.20 (unreleased) # +# 3.2.19.1 (unreleased) # -This release contains contributions from (alphabetically by first name): - - No external contributors yet - -## Core ## - - No core changes yet +This is a hotfix release for bugs in the *users* module. +Reported by Philip Mueller and Walter Lapchynski. ## Modules ## - - No module changes yet + - The *users* module no longer wrote `/etc/hostname` at all. + - The *users* module erroneously shows the root password input fields. # 3.2.19 (2020-02-21) # diff --git a/CMakeLists.txt b/CMakeLists.txt index 6eb705812..b2dd344ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,10 +40,10 @@ cmake_minimum_required( VERSION 3.3 FATAL_ERROR ) project( CALAMARES - VERSION 3.2.20 + VERSION 3.2.19.1 LANGUAGES C CXX ) -set( CALAMARES_VERSION_RC 1 ) # Set to 0 during release cycle, 1 during development +set( CALAMARES_VERSION_RC 0 ) # Set to 0 during release cycle, 1 during development ### OPTIONS # From bcc779bd43908c58ee4a51f87eabc9e754ba05c2 Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Mon, 24 Feb 2020 11:43:37 +0100 Subject: [PATCH 02/15] i18n: [calamares] Automatic merge of Transifex translations --- lang/calamares_ast.ts | 78 +++++++++---------- lang/calamares_it_IT.ts | 162 ++++++++++++++++++++-------------------- lang/calamares_lt.ts | 47 ++++++------ lang/calamares_pt_BR.ts | 47 ++++++------ lang/calamares_ru.ts | 42 +++++------ 5 files changed, 190 insertions(+), 186 deletions(-) diff --git a/lang/calamares_ast.ts b/lang/calamares_ast.ts index 63c47d8a8..b6e19297c 100644 --- a/lang/calamares_ast.ts +++ b/lang/calamares_ast.ts @@ -212,7 +212,7 @@ Loading ... - + Cargando... @@ -222,7 +222,7 @@ Loading failed. - + Falló la carga. @@ -532,7 +532,7 @@ L'instalador va colar y van perdese tolos cambeos. %1 will be shrunk to %2MiB and a new %3MiB partition will be created for %4. - %1 va redimensionase a %2MB y va crease una partición nueva de %3MB pa %4. + %1 va redimensionase a %2MB y va crease una partición de %3MB pa %4. @@ -785,7 +785,7 @@ L'instalador va colar y van perdese tolos cambeos. Creating new %1 partition on %2. - Creando una partición %1 nueva en %2. + Creando una partición %1 en %2. @@ -803,7 +803,7 @@ L'instalador va colar y van perdese tolos cambeos. Creating a new partition table will delete all existing data on the disk. - Crear una tabla de particiones nueva va desaniciar tolos datos esistentes nel discu. + Crear una tabla de particiones va desaniciar tolos datos esistentes nel discu. @@ -831,12 +831,12 @@ L'instalador va colar y van perdese tolos cambeos. Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3). - Va crease una tabla de particiones nueva <strong>%1</strong> en <strong>%2</strong> (%3). + Va crease una tabla de particiones <strong>%1</strong> en <strong>%2</strong> (%3). Creating new %1 partition table on %2. - Creando una tabla de particiones nueva %1 en %2. + Creando una tabla de particiones %1 en %2. @@ -895,17 +895,17 @@ L'instalador va colar y van perdese tolos cambeos. Create new volume group named %1. - Creación d'un grupu nuevu de volúmenes col nome %1. + Creación d'un grupu de volúmenes col nome %1. Create new volume group named <strong>%1</strong>. - Va crease un grupu nuevu de volúmenes col nome <strong>%1</strong>. + Va crease un grupu de volúmenes col nome <strong>%1</strong>. Creating new volume group named %1. - Creando un grupu nuevu de volúmenes col nome %1. + Creando un grupu de volúmenes col nome %1. @@ -975,7 +975,7 @@ L'instalador va colar y van perdese tolos cambeos. 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. - Esti instalador <strong>nun pue deteutar una tabla de particiones</strong> nel preséu d'almacenamientu esbilláu.<br><br>El preséu nun tien una tabla de particiones, la tabla de particiones ta toyida o ye d'una triba desconocida.<br>Esti instalador pue crear una tabla de particiones nueva por ti, automáticamente o pente la páxina de particionáu manual. + Esti instalador <strong>nun pue deteutar una tabla de particiones</strong> nel preséu d'almacenamientu esbilláu.<br><br>El preséu nun tien una tabla de particiones porque ta toyida o ye d'una triba desconocida.<br>Esti instalador pue crear una tabla de particiones nueva por ti, automáticamente o pente la páxina de particionáu manual. @@ -1470,22 +1470,22 @@ L'instalador va colar y van perdese tolos cambeos. This setup procedure will install proprietary software that is subject to licensing terms. - + Esti procedimientu va instalar software privativu que ta suxetu a términos de llicencia. If you do not agree with the terms, the setup procedure cannot continue. - + Si nun aceutes los términos, el procedimientu de configuración nun pue siguir. This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Esti procedimientu de configuración pue instalar software privativu que ta suxetu a términos de llicencia pa fornir carauterístiques adicionales y ameyorar la esperiencia d'usuariu. If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + Si nun aceutes los términos, el software privativu nun va instalase y van usase les alternatives de códigu abiertu. @@ -1501,7 +1501,7 @@ L'instalador va colar y van perdese tolos cambeos. URL: %1 - + URL: %1 @@ -1538,7 +1538,7 @@ L'instalador va colar y van perdese tolos cambeos. File: %1 - + Ficheru: %1 @@ -1691,12 +1691,12 @@ L'instalador va colar y van perdese tolos cambeos. Office software - + Software ofimáticu Office package - + Paquete ofimáticu @@ -1711,17 +1711,17 @@ L'instalador va colar y van perdese tolos cambeos. Web browser - + Restolador web Kernel - + Kernel Services - + Servicios @@ -1731,12 +1731,12 @@ L'instalador va colar y van perdese tolos cambeos. Desktop - + Escritoriu Applications - + Aplicaciones @@ -1744,7 +1744,7 @@ L'instalador va colar y van perdese tolos cambeos. Notes - + Notes @@ -2023,7 +2023,7 @@ L'instalador va colar y van perdese tolos cambeos. Password is empty - + La contraseña ta balera @@ -2064,7 +2064,7 @@ L'instalador va colar y van perdese tolos cambeos. Packages - + Paquetes @@ -2142,7 +2142,7 @@ L'instalador va colar y van perdese tolos cambeos. Password - + Contraseña @@ -2301,22 +2301,22 @@ L'instalador va colar y van perdese tolos cambeos. New Volume Group - Grupu de volúmenes nuevu + Grupu nuevu Resize Volume Group - Redimensionar el grupu de volúmenes + Redimensionar el grupu Deactivate Volume Group - Desactivar el grupu de volúmenes + Desactivar el grupu Remove Volume Group - Desaniciar el grupu de volúmenes + Desaniciar el grupu @@ -2439,12 +2439,12 @@ L'instalador va colar y van perdese tolos cambeos. has at least one disk device available. - tien polo menos un preséu con espaciu disponible en discu + tien polo menos un preséu disponible d'almacenamientu There are no partitions to install on. - + Nun hai particiones nes qu'instalar. @@ -2649,7 +2649,7 @@ Salida: Path <pre>%1</pre> must be an absolute path. - + El camín <pre>%1</pre> ha ser absolutu. @@ -2850,7 +2850,7 @@ Salida: Resize Volume Group - Redimensionar el grupu de volúmenes + Redimensionar el grupu @@ -3542,7 +3542,7 @@ Salida: <h3>%1 <quote>%2</quote></h3> - + <h3>%1 <quote>%2</quote></h3> @@ -3557,12 +3557,12 @@ Salida: Known issues - + Problemes conocíos Release notes - + Notes del llanzamientu diff --git a/lang/calamares_it_IT.ts b/lang/calamares_it_IT.ts index 991746f7b..f73cfe173 100644 --- a/lang/calamares_it_IT.ts +++ b/lang/calamares_it_IT.ts @@ -106,7 +106,7 @@ Widget Tree - + Albero dei Widget @@ -137,7 +137,7 @@ Programmed job failure was explicitly requested. - + Il fallimento dell'operazione programmata è stato richiesto esplicitamente. @@ -153,7 +153,7 @@ Example job (%1) - + Operazione d'esempio (%1) @@ -212,12 +212,12 @@ Loading ... - + Caricamento ... QML Step <i>%1</i>. - + QML Progresso <i>%1</i>. @@ -238,9 +238,9 @@ (%n second(s)) - - - + + (%n secondo) + (%n secondi) @@ -292,12 +292,12 @@ Install Log Paste URL - + Incolla URL Log di Installazione The upload was unsuccessful. No web-paste was done. - + Il caricamento è fallito. Non è stato eseguito web-paste. @@ -454,7 +454,8 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Install log posted to: %1 - + Log di installazione caricato: +%1 @@ -779,7 +780,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Create new <strong>%2MiB</strong> partition on <strong>%4</strong> (%3) with file system <strong>%1</strong>. - + Creare nuova partizione di <strong>%2MiB</strong> su <strong>%4</strong> (%3) con file system <strong>%1</strong>. @@ -1162,7 +1163,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse <Restart checkbox tooltip> - + <Restart checkbox tooltip> @@ -1172,7 +1173,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse <h1>All done.</h1><br/>%1 has been set up on your computer.<br/>You may now start using your new system. - + <h1>Tutto eseguito.</h1><br/>%1 è stato configurato sul tuo computer.<br/>Adesso puoi iniziare a utilizzare il tuo nuovo sistema. @@ -1187,7 +1188,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse <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> - + <html><head/><body><p>Quando questa casella è selezionata, il tuo sistema si riavvierà immediatamente quando clicchi su <span style="font-style:italic;">Fatto</span> o chiudi il programma di installazione.</p></body></html> @@ -1296,7 +1297,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse is running the installer as an administrator (root) - + sta eseguendo il programma di installazione come amministratore (root) @@ -1311,7 +1312,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse has a screen large enough to show the whole installer - + ha uno schermo abbastanza grande da mostrare l'intero programma di installazione @@ -1329,7 +1330,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Collecting information about your machine. - + Raccogliendo informazioni sulla tua macchina. @@ -1340,7 +1341,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse OEM Batch Identifier - + Codice Batch OEM @@ -1454,7 +1455,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse <h1>License Agreement</h1> - + <h1>Accordo di Licenza</h1> @@ -1464,27 +1465,27 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Please review the End User License Agreements (EULAs). - + Si prega di leggere l'Accordo di Licenza per l'Utente Finale (EULAs). This setup procedure will install proprietary software that is subject to licensing terms. - + Questa procedura di configurazione installerà software proprietario che è soggetto ai termini di licenza. If you do not agree with the terms, the setup procedure cannot continue. - + Se non accetti i termini, la procedura di configurazione non può continuare. This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Questa procedura di configurazione installerà software proprietario sottoposto a termini di licenza, per fornire caratteristiche aggiuntive e migliorare l'esperienza utente. If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + Se non se ne accettano i termini, il software proprietario non verrà installato e al suo posto saranno utilizzate alternative open source. @@ -1500,7 +1501,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse URL: %1 - + URL: %1 @@ -1537,17 +1538,17 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse File: %1 - + File: %1 Show the license text - + Mostra il testo della licenza Open license agreement in browser. - + Apri l'accordo di licenza nel browser. @@ -1602,7 +1603,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Configuring LUKS key file. - + Configurazione in corso del file chiave LUKS. @@ -1615,22 +1616,22 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Encrypted rootfs setup error - + Errore nella configurazione del rootfs crittato Root partition %1 is LUKS but no passphrase has been set. - + La partizione root %1 è LUKS ma non sono state configurate passphrase. Could not create LUKS key file for root partition %1. - + Impossibile creare il file chiave LUKS per la partizione root %1. Could not configure LUKS key file on partition %1. - + Impossibile configurare il file chiave LUKS per la partizione %1. @@ -1643,12 +1644,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Configuration Error - + Errore di Configurazione No root mount point is set for MachineId. - + Non è impostato alcun punto di montaggio root per MachineId @@ -1676,7 +1677,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Network Installation. (Disabled: Incorrect configuration) - + Installazione di rete. (Disabilitato: Configurazione scorretta) @@ -1690,52 +1691,52 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Office software - + Software per ufficio Office package - + Pacchetto per ufficio Browser software - + Software navigazione web Browser package - + Pacchetto navigazione web Web browser - + Browser web Kernel - + Kernel Services - + Servizi Login - + Accesso Desktop - + Ambiente desktop Applications - + Applicazioni @@ -1743,7 +1744,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Notes - + Note @@ -1751,17 +1752,17 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Ba&tch: - + Lo&amp;tto <html><head/><body><p>Enter a batch-identifier here. This will be stored in the target system.</p></body></html> - + <html><head/><body><p>Inserire un identificatore per il lotto. Questo verrà salvato nel sistema di destinazione.</p></body></html> <html><head/><body><h1>OEM Configuration</h1><p>Calamares will use OEM settings while configuring the target system.</p></body></html> - + <html><head/><body><h1>Configurazione OEM</h1><p>Calamares userà le impostazioni OEM nella configurazione del sistema di destinazione.</p></body></html> @@ -1769,12 +1770,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse OEM Configuration - + Configurazione OEM Set the OEM Batch Identifier to <code>%1</code>. - + Impostare l'Identificatore del Lotto OEM a <code>%1</code>. @@ -2022,7 +2023,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Password is empty - + Password vuota @@ -2035,7 +2036,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Product Name - + Nome Prodotto @@ -2045,17 +2046,17 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Long Product Description - + Descrizione Estesa del Prodotto Package Selection - + Selezione del Pacchetto Please pick a product from the list. The selected product will be installed. - + Si prega di scegliere un prodotto dalla lista. Il prodotto selezionato verrà installato. @@ -2063,7 +2064,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Packages - + Pacchetti @@ -2120,12 +2121,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Your Full Name - + Nome Completo login - + accesso @@ -2135,29 +2136,29 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse Computer Name - + Nome Computer Password - + Password Repeat Password - + Ripetere Password When this box is checked, password-strength checking is done and you will not be able to use a weak password. - + Quando questa casella è selezionata, la robustezza della password viene verificata e non sarà possibile utilizzare password deboli. Require strong passwords. - + È richiesta una password robusta. @@ -2443,7 +2444,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno perse There are no partitions to install on. - + Non ci sono partizioni su cui installare. @@ -2630,7 +2631,7 @@ Output: No product - + Nessun prodotto @@ -2643,17 +2644,17 @@ Output: File not found - + File non trovato Path <pre>%1</pre> must be an absolute path. - + Il percorso <pre>%1</pre> deve essere un percorso assoluto. Could not create new random file <pre>%1</pre>. - + Impossibile creare un nuovo file random <pre>%1</pre>. @@ -2672,7 +2673,7 @@ Output: The installer failed to remove a volume group named '%1'. - + Il programma di installazione non è riuscito a rimuovere il gruppo di volumi denominato '%1'. @@ -2771,7 +2772,7 @@ Output: KPMCore not Available - + KPMCore non Disponibile @@ -3533,7 +3534,8 @@ Output: <h3>%1</h3> <p>These are example release notes.</p> - + <h3>%1</h3> + <p>Questo è un esempio di note di rilascio.</p> @@ -3541,32 +3543,32 @@ Output: <h3>%1 <quote>%2</quote></h3> - + <h3>%1 <quote>%2</quote></h3> About - + Informazioni su Support - + Supporto Known issues - + Problemi conosciuti Release notes - + Note di rilascio Donate - + Donazioni diff --git a/lang/calamares_lt.ts b/lang/calamares_lt.ts index c0e28c132..63a79157e 100644 --- a/lang/calamares_lt.ts +++ b/lang/calamares_lt.ts @@ -212,17 +212,17 @@ Loading ... - + Įkeliama... QML Step <i>%1</i>. - + QML <i>%1</i> žingsnis. Loading failed. - + Įkėlimas nepavyko. @@ -1636,7 +1636,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. Could not configure LUKS key file on partition %1. - + Nepavyko konfigūruoti LUKS rakto failo skaidinyje %1. @@ -1696,52 +1696,52 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. Office software - + Raštinės programinė įranga Office package - + Raštinės paketas Browser software - + Naršyklės programinė įranga Browser package - + Naršyklės paketas Web browser - + Saityno naršyklė Kernel - + Branduolys Services - + Tarnybos Login - + Prisijungimas Desktop - + Darbalaukis Applications - + Programos @@ -1749,7 +1749,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. Notes - + Pastabos @@ -2449,7 +2449,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. There are no partitions to install on. - + Nėra skaidinių į kuriuos diegti. @@ -3539,7 +3539,8 @@ Išvestis: <h3>%1</h3> <p>These are example release notes.</p> - + <h3>%1</h3> + <p>Tai yra pavyzdinė laidos informacija.</p> @@ -3547,32 +3548,32 @@ Išvestis: <h3>%1 <quote>%2</quote></h3> - + <h3>%1 <quote>%2</quote></h3> About - + Apie Support - + Palaikymas Known issues - + Žinomos problemos Release notes - + Laidos informacija Donate - + Paaukoti diff --git a/lang/calamares_pt_BR.ts b/lang/calamares_pt_BR.ts index 65c6c39bc..e56c960d9 100644 --- a/lang/calamares_pt_BR.ts +++ b/lang/calamares_pt_BR.ts @@ -212,17 +212,17 @@ Loading ... - + Carregando ... QML Step <i>%1</i>. - + Passo QML <i>%1</i>. Loading failed. - + Carregamento falhou. @@ -1632,7 +1632,7 @@ O instalador será fechado e todas as alterações serão perdidas. Could not configure LUKS key file on partition %1. - + Não foi possível configurar a chave LUKS na partição %1. @@ -1692,52 +1692,52 @@ O instalador será fechado e todas as alterações serão perdidas. Office software - + Software de office Office package - + Pacote office Browser software - + Softwares de browser Browser package - + Pacote de browser Web browser - + Navegador web Kernel - + Kernel Services - + Seriços Login - + Login Desktop - + Área de trabalho Applications - + Aplicações @@ -1745,7 +1745,7 @@ O instalador será fechado e todas as alterações serão perdidas. Notes - + Notas @@ -2445,7 +2445,7 @@ O instalador será fechado e todas as alterações serão perdidas. There are no partitions to install on. - + Não há partições para instalar. @@ -3535,7 +3535,8 @@ Saída: <h3>%1</h3> <p>These are example release notes.</p> - + <h3>%1</h3> + <p>These are example release notes.</p> @@ -3543,32 +3544,32 @@ Saída: <h3>%1 <quote>%2</quote></h3> - + <h3>%1 <quote>%2</quote></h3> About - + Sobre Support - + Suporte Known issues - + Problemas conhecidos Release notes - + Notas de lançamento Donate - + Faça uma doação diff --git a/lang/calamares_ru.ts b/lang/calamares_ru.ts index a1da26312..a04763d08 100644 --- a/lang/calamares_ru.ts +++ b/lang/calamares_ru.ts @@ -1333,7 +1333,7 @@ The installer will quit and all changes will be lost. Collecting information about your machine. - + Сбор информации о вашем компьютере. @@ -1458,7 +1458,7 @@ The installer will quit and all changes will be lost. <h1>License Agreement</h1> - + <h1>Лицензионное соглашение</h1> @@ -1541,17 +1541,17 @@ The installer will quit and all changes will be lost. File: %1 - + Файл: %1 Show the license text - + Показать текст лицензии Open license agreement in browser. - + Открыть лицензионное соглашение в браузере. @@ -1714,12 +1714,12 @@ The installer will quit and all changes will be lost. Web browser - + Веб-браузер Kernel - + Ядро @@ -1739,7 +1739,7 @@ The installer will quit and all changes will be lost. Applications - + Приложения @@ -2026,7 +2026,7 @@ The installer will quit and all changes will be lost. Password is empty - + Пустой пароль @@ -2124,7 +2124,7 @@ The installer will quit and all changes will be lost. Your Full Name - + Ваше полное имя @@ -2139,19 +2139,19 @@ The installer will quit and all changes will be lost. Computer Name - + Имя компьютера Password - + Пароль Repeat Password - + Повторите пароль @@ -2647,17 +2647,17 @@ Output: File not found - + Файл не найден Path <pre>%1</pre> must be an absolute path. - + Путь <pre>%1</pre> должен быть абсолютным путём. Could not create new random file <pre>%1</pre>. - + Не удалось создать новый случайный файл <pre>%1</pre>. @@ -2795,12 +2795,12 @@ Output: The filesystem %1 could not be found in this system, and cannot be resized. - + Файловая система %1 не обнаружена в этой системе, поэтому её размер невозможно изменить. The device %1 could not be found in this system, and cannot be resized. - + Устройство %1 не обнаружено в этой системе, поэтому его размер невозможно изменить. @@ -3319,12 +3319,12 @@ Output: Only lowercase letters, numbers, underscore and hyphen are allowed. - + Допускаются только строчные буквы, числа, символы подчёркивания и дефисы. Only letters, numbers, underscore and hyphen are allowed. - + Допускаются только буквы, цифры, символы подчёркивания и дефисы. @@ -3373,7 +3373,7 @@ Output: List of Physical Volumes - + Список физических томов From d903a50bd89de2e7f6f9b2e71f2a1fa96baec5ef Mon Sep 17 00:00:00 2001 From: Calamares CI Date: Mon, 24 Feb 2020 11:43:38 +0100 Subject: [PATCH 03/15] i18n: [python] Automatic merge of Transifex translations --- lang/python/it_IT/LC_MESSAGES/python.mo | Bin 5467 -> 5522 bytes lang/python/it_IT/LC_MESSAGES/python.po | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lang/python/it_IT/LC_MESSAGES/python.mo b/lang/python/it_IT/LC_MESSAGES/python.mo index 8a8b461a408e3f123937a6d578efb707484c37af..f66197a976b366e34a6d30982b8f225b36200943 100644 GIT binary patch delta 1136 zcmX}r&1(}u7{~FkX=0o7#ne_4wRW}DYLg~0tx~n-kkASd5kxG4hlUzUY)N2=pi-z8 zUqDds1wE*_6z>{(5WMu{A7Bqkp&(jsxk~lq_cw`sVCFMBo6XEV^X%Ht)5zj_SMv)) z#A*9z&$k(q!8Q*a5o$K(Ack=dj^hYUVF(}LC@wYp*0|r{t^a2ld${l77(T>)T)_cj z7R?5OK_>h@J7JQzlj|uA;~Z+Cd#DY(#VCHnApXK`+{BC6zTKF;IE}i$fIILpYNHj@ z23B!^_01-OK_+@zXgGnVaRv`y1tYkEda#BG47S!coW}iJ&!V2ckK?$6SMfUzW6E#L z1)Rt8_z91)zVQd@DH=tG>nz^p80Ju^-e{{Y5N@v@%^3DEzkn%xjaqOGwee7gF{khn z>gb+e20!3&{Ea6t+DZOTGMHhYi8rWJucA_2YuG~mbls2IPzsfD7kA?Wyn+=xgnv*+ z*hl_Z%Z%U|Ok)D?;xT+5B>y^-A56qB)Md;$Jd0ZB87A>F>VdzgB8u|wy3V6g{<7gR z>J7i(G`6zKVZ4F*-&dH$pLiJKJ>*~2d6`Z-pGPvU%CsqFJ#&Pn;2Hb28dEZcU()C3pN#>LG+ ze4v7B7SW*uoZ3YPH=%+c2!%R`gMto9(GGrpHxcx}xu1K^<=+3f|MNe0!ykG}t8JbK zMvKrp>9;qT9m5S57uq+s**^S^0c`h}4Pq2`UcvHj;XBj^d<|xMFpPRXi3yy=X)I$ux*E;S zU<^;=O+18eu!H!v&P@=T{ALeHe-xGC*PE*We&Y$ofh}fTcn-&K0Tpl=weVkf6o;Ft zTXqHY-hCXx_c)AA&1NHb5=)vWaibK!sJT+}3u+;C}#qBtWXK@zy<4fF%pOF~0 zfvO=t`xL_o9KdU+t$2nJTx%u&r?_cps|K3JIO9907ha)?=0|NDA&OF+s=0vrvnQCs zx7d$^tXAJmV-la^0bEBFV;2`Kd`S5x<4)6rvY?_HlCKc^k!%1{2+lu8{vHLZRdT_=EgbxsU8N0wc3 zwnx>krW#Rt$+AaKikE_?p~xlwEl diff --git a/lang/python/it_IT/LC_MESSAGES/python.po b/lang/python/it_IT/LC_MESSAGES/python.po index b7aa8b2a7..31b21fbe5 100644 --- a/lang/python/it_IT/LC_MESSAGES/python.po +++ b/lang/python/it_IT/LC_MESSAGES/python.po @@ -5,8 +5,8 @@ # # Translators: # Saverio , 2018 -# Pietro F. Fontana, 2018 # Pierfrancesco Passerini , 2019 +# Pietro F. Fontana, 2020 # #, fuzzy msgid "" @@ -15,7 +15,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-02-19 17:27+0100\n" "PO-Revision-Date: 2017-08-09 10:34+0000\n" -"Last-Translator: Pierfrancesco Passerini , 2019\n" +"Last-Translator: Pietro F. Fontana, 2020\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" @@ -41,7 +41,7 @@ msgstr "" #: src/modules/fstab/main.py:328 src/modules/localecfg/main.py:144 #: src/modules/networkcfg/main.py:48 msgid "Configuration Error" -msgstr "" +msgstr "Errore di Configurazione" #: src/modules/mount/main.py:146 src/modules/initcpiocfg/main.py:202 #: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:172 From f89951716eeb113601deb2ed4e47c58ef01e01f6 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 24 Feb 2020 12:14:50 +0100 Subject: [PATCH 04/15] [libcalamares] Add mode to createTargetFile() - Unconditionally **not** overwriting the target file isn't an option: writing hostname, for instance, expects that to be done even if `/etc/hostname` already exists on the target filesystem. --- src/libcalamares/utils/CalamaresUtilsSystem.cpp | 6 +++--- src/libcalamares/utils/CalamaresUtilsSystem.h | 16 +++++++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/libcalamares/utils/CalamaresUtilsSystem.cpp b/src/libcalamares/utils/CalamaresUtilsSystem.cpp index a38b28b6d..c464e93f6 100644 --- a/src/libcalamares/utils/CalamaresUtilsSystem.cpp +++ b/src/libcalamares/utils/CalamaresUtilsSystem.cpp @@ -247,7 +247,7 @@ System::targetPath( const QString& path ) const } CreationResult -System::createTargetFile( const QString& path, const QByteArray& contents ) const +System::createTargetFile( const QString& path, const QByteArray& contents, WriteMode mode ) const { QString completePath = targetPath( path ); if ( completePath.isEmpty() ) @@ -256,7 +256,7 @@ System::createTargetFile( const QString& path, const QByteArray& contents ) cons } QFile f( completePath ); - if ( f.exists() ) + if ( ( mode == WriteMode::KeepExisting ) && f.exists() ) { return CreationResult( CreationResult::Code::AlreadyExists ); } @@ -264,7 +264,7 @@ System::createTargetFile( const QString& path, const QByteArray& contents ) cons QIODevice::OpenMode m = #if QT_VERSION >= QT_VERSION_CHECK( 5, 11, 0 ) // New flag from Qt 5.11, implies WriteOnly - QIODevice::NewOnly | + ( mode == WriteMode::KeepExisting ? QIODevice::NewOnly : QIODevice::WriteOnly ) | #endif QIODevice::WriteOnly | QIODevice::Truncate; diff --git a/src/libcalamares/utils/CalamaresUtilsSystem.h b/src/libcalamares/utils/CalamaresUtilsSystem.h index a163a1208..c4db9dc00 100644 --- a/src/libcalamares/utils/CalamaresUtilsSystem.h +++ b/src/libcalamares/utils/CalamaresUtilsSystem.h @@ -258,6 +258,12 @@ public: */ DLLEXPORT QString targetPath( const QString& path ) const; + enum class WriteMode + { + KeepExisting, + Overwrite + }; + /** @brief Create a (small-ish) file in the target system. * * @param path Path to the file; this is interpreted @@ -265,14 +271,18 @@ public: * but / in the chroot, or / in OEM modes). * @param contents Actual content of the file. * - * Will not overwrite files. Returns an empty string if the - * target file already exists. + * If the target already exists: + * - returns AlreadyExists as a result (and does not overwrite), + * - **unless** @p mode is set to Overwrite, then it tries writing as + * usual and will not return AlreadyExists. * * @return The complete canonical path to the target file from the * root of the host system, or empty on failure. (Here, it is * possible to be canonical because the file exists). */ - DLLEXPORT CreationResult createTargetFile( const QString& path, const QByteArray& contents ) const; + DLLEXPORT CreationResult createTargetFile( const QString& path, + const QByteArray& contents, + WriteMode mode = WriteMode::KeepExisting ) const; /** @brief Remove a file from the target system. * From 862b7e34dfbb95459fdb2a28bbbae8ff76685489 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 24 Feb 2020 12:38:08 +0100 Subject: [PATCH 05/15] [libcalamares] Add tests for file-overwrite --- src/libcalamares/utils/TestPaths.cpp | 104 ++++++++++++++++++++++----- 1 file changed, 88 insertions(+), 16 deletions(-) diff --git a/src/libcalamares/utils/TestPaths.cpp b/src/libcalamares/utils/TestPaths.cpp index 612c8f97d..2fd7b9c98 100644 --- a/src/libcalamares/utils/TestPaths.cpp +++ b/src/libcalamares/utils/TestPaths.cpp @@ -49,6 +49,8 @@ private Q_SLOTS: void testCreationResult(); void testTargetPath(); void testCreateTarget(); + void testCreateTargetExists(); + void testCreateTargetOverwrite(); void testCreateTargetBasedirs(); private: @@ -96,31 +98,32 @@ TestPaths::init() m_gs->insert( "rootMountPoint", "/tmp" ); } -void TestPaths::testCreationResult() +void +TestPaths::testCreationResult() { using Code = CalamaresUtils::CreationResult::Code; - for( auto c : { Code::OK, Code::AlreadyExists, Code::Failed, Code::Invalid } ) + for ( auto c : { Code::OK, Code::AlreadyExists, Code::Failed, Code::Invalid } ) { auto r = CalamaresUtils::CreationResult( c ); QVERIFY( r.path().isEmpty() ); QCOMPARE( r.path(), QString() ); // Get a warning from Clang if we're not covering everything - switch( r.code() ) + switch ( r.code() ) { - case Code::OK: - QVERIFY( !r.failed() ); - QVERIFY( r ); - break; - case Code::AlreadyExists: - QVERIFY( !r.failed() ); - QVERIFY( !r ); - break; - case Code::Failed: - case Code::Invalid: - QVERIFY( r.failed() ); - QVERIFY( !r ); - break; + case Code::OK: + QVERIFY( !r.failed() ); + QVERIFY( r ); + break; + case Code::AlreadyExists: + QVERIFY( !r.failed() ); + QVERIFY( !r ); + break; + case Code::Failed: + case Code::Invalid: + QVERIFY( r.failed() ); + QVERIFY( !r ); + break; } } @@ -168,6 +171,75 @@ TestPaths::testCreateTarget() QVERIFY( !fi2.exists() ); } +struct GSRollback +{ + GSRollback( const QString& key ) + : m_key( key ) + , m_value( Calamares::JobQueue::instance()->globalStorage()->value( key ) ) + { + } + ~GSRollback() { Calamares::JobQueue::instance()->globalStorage()->insert( m_key, m_value ); } + QString m_key; + QVariant m_value; +}; + + +void +TestPaths::testCreateTargetExists() +{ + static const char ltestFile[] = "cala-test-world"; + GSRollback g( QStringLiteral( "rootMountPoint" ) ); + + QTemporaryDir d; + d.setAutoRemove( true ); + Calamares::JobQueue::instance()->globalStorage()->insert( QStringLiteral( "rootMountPoint" ), d.path() ); + + QVERIFY( QFileInfo( d.path() ).exists() ); + auto r = m_system->createTargetFile( ltestFile, "Hello" ); + QVERIFY( r ); + QVERIFY( r.path().endsWith( QString( ltestFile ) ) ); + QCOMPARE( QFileInfo( d.filePath( QString( ltestFile ) ) ).size(), 5 ); + + r = m_system->createTargetFile( ltestFile, "Goodbye" ); + QVERIFY( !r.failed() ); // It didn't fail! + QVERIFY( !r ); // But not unqualified success, either + + QVERIFY( r.path().isEmpty() ); + QCOMPARE( QFileInfo( d.filePath( QString( ltestFile ) ) ).size(), 5 ); // Unchanged! +} + +void +TestPaths::testCreateTargetOverwrite() +{ + static const char ltestFile[] = "cala-test-world"; + GSRollback g( QStringLiteral( "rootMountPoint" ) ); + + QTemporaryDir d; + d.setAutoRemove( true ); + Calamares::JobQueue::instance()->globalStorage()->insert( QStringLiteral( "rootMountPoint" ), d.path() ); + + QVERIFY( QFileInfo( d.path() ).exists() ); + auto r = m_system->createTargetFile( ltestFile, "Hello" ); + QVERIFY( r ); + QVERIFY( r.path().endsWith( QString( ltestFile ) ) ); + QCOMPARE( QFileInfo( d.filePath( QString( ltestFile ) ) ).size(), 5 ); + + r = m_system->createTargetFile( ltestFile, "Goodbye", CalamaresUtils::System::WriteMode::KeepExisting ); + QVERIFY( !r.failed() ); // It didn't fail! + QVERIFY( !r ); // But not unqualified success, either + + QVERIFY( r.path().isEmpty() ); + QCOMPARE( QFileInfo( d.filePath( QString( ltestFile ) ) ).size(), 5 ); // Unchanged! + + r = m_system->createTargetFile( ltestFile, "Goodbye", CalamaresUtils::System::WriteMode::Overwrite ); + QVERIFY( !r.failed() ); // It didn't fail! + QVERIFY( r ); // Total success + + QVERIFY( r.path().endsWith( QString( ltestFile ) ) ); + QCOMPARE( QFileInfo( d.filePath( QString( ltestFile ) ) ).size(), 7 ); +} + + struct DirRemover { DirRemover( const QString& base, const QString& dir ) From 462193747772fc8547578c16706ea534342c0f15 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 24 Feb 2020 12:44:50 +0100 Subject: [PATCH 06/15] [users] Use right check on writing hostname - !failed() also means "didn't write the file because it already exists", which is sometimes acceptable -- but not here. Use the more-strict bool() conversion, which is only when the file was actually written. --- src/modules/users/SetHostNameJob.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/modules/users/SetHostNameJob.cpp b/src/modules/users/SetHostNameJob.cpp index db220d042..1c70fe634 100644 --- a/src/modules/users/SetHostNameJob.cpp +++ b/src/modules/users/SetHostNameJob.cpp @@ -61,9 +61,8 @@ SetHostNameJob::prettyStatusMessage() const STATICTEST bool setFileHostname( const QString& hostname ) { - return !( CalamaresUtils::System::instance() - ->createTargetFile( QStringLiteral( "/etc/hostname" ), ( hostname + '\n' ).toUtf8() ) - .failed() ); + return CalamaresUtils::System::instance()->createTargetFile( QStringLiteral( "/etc/hostname" ), + ( hostname + '\n' ).toUtf8() ); } STATICTEST bool @@ -78,9 +77,8 @@ ff02::1 ip6-allnodes ff02::2 ip6-allrouters )"; - return !( CalamaresUtils::System::instance() - ->createTargetFile( QStringLiteral( "/etc/hosts" ), QString( etc_hosts ).arg( hostname ).toUtf8() ) - .failed() ); + return CalamaresUtils::System::instance()->createTargetFile( QStringLiteral( "/etc/hosts" ), + QString( etc_hosts ).arg( hostname ).toUtf8() ); } STATICTEST bool From 8c527ab5929c3ddb079ab7d2c8482bc0a1f52b48 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 24 Feb 2020 12:48:01 +0100 Subject: [PATCH 07/15] [users] Overwrite host(s|name) files in target --- src/modules/users/SetHostNameJob.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/modules/users/SetHostNameJob.cpp b/src/modules/users/SetHostNameJob.cpp index 1c70fe634..555fcdc7d 100644 --- a/src/modules/users/SetHostNameJob.cpp +++ b/src/modules/users/SetHostNameJob.cpp @@ -31,6 +31,8 @@ #include #include +using WriteMode = CalamaresUtils::System::WriteMode; + SetHostNameJob::SetHostNameJob( const QString& hostname, Actions a ) : Calamares::Job() , m_hostname( hostname ) @@ -61,8 +63,8 @@ SetHostNameJob::prettyStatusMessage() const STATICTEST bool setFileHostname( const QString& hostname ) { - return CalamaresUtils::System::instance()->createTargetFile( QStringLiteral( "/etc/hostname" ), - ( hostname + '\n' ).toUtf8() ); + return CalamaresUtils::System::instance()->createTargetFile( + QStringLiteral( "/etc/hostname" ), ( hostname + '\n' ).toUtf8(), WriteMode::Overwrite ); } STATICTEST bool @@ -77,8 +79,8 @@ ff02::1 ip6-allnodes ff02::2 ip6-allrouters )"; - return CalamaresUtils::System::instance()->createTargetFile( QStringLiteral( "/etc/hosts" ), - QString( etc_hosts ).arg( hostname ).toUtf8() ); + return CalamaresUtils::System::instance()->createTargetFile( + QStringLiteral( "/etc/hosts" ), QString( etc_hosts ).arg( hostname ).toUtf8(), WriteMode::Overwrite ); } STATICTEST bool From ee52e37b36b936eb1a6003a35897aeeb5de4cfc7 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 24 Feb 2020 13:11:58 +0100 Subject: [PATCH 08/15] [libcalamares] Don't hard-code full paths - See editorial in the code-comment. Still need to test that chroot(8) doesn't need a full path, otherwise this will go to /usr/bin/env udevadm to force lookup (redundantly if not in a chroot) --- src/libcalamares/partition/Sync.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/libcalamares/partition/Sync.cpp b/src/libcalamares/partition/Sync.cpp index c5e131cfa..c71c6a172 100644 --- a/src/libcalamares/partition/Sync.cpp +++ b/src/libcalamares/partition/Sync.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2019, Adriaan de Groot + * Copyright 2019-2020, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,7 +24,14 @@ void CalamaresUtils::Partition::sync() { - auto r = CalamaresUtils::System::runCommand( { "/sbin/udevadm", "settle" }, std::chrono::seconds( 10 ) ); + /* I would normally use full paths here, e.g. /sbin/udevadm and /bin/sync, + * but there's enough variation / opinion on where these executables + * should live, that full paths would need to be configurable. + * Instead, just run them and assume they're found in PATH; + * either chroot(8) or env(1) is used to run the command, + * and they do suitable lookup. + */ + auto r = CalamaresUtils::System::runCommand( { "udevadm", "settle" }, std::chrono::seconds( 10 ) ); if ( r.getExitCode() != 0 ) { @@ -32,5 +39,5 @@ CalamaresUtils::Partition::sync() r.explainProcess( "udevadm", std::chrono::seconds( 10 ) ); } - CalamaresUtils::System::runCommand( { "/bin/sync" }, std::chrono::seconds( 10 ) ); + CalamaresUtils::System::runCommand( { "sync" }, std::chrono::seconds( 10 ) ); } From a865620f902988f890781fb4576cf151c779133f Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 24 Feb 2020 14:47:10 +0100 Subject: [PATCH 09/15] [calamares] Easter egg: running -D8 will show the Debug Information button --- src/calamares/CalamaresWindow.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/calamares/CalamaresWindow.cpp b/src/calamares/CalamaresWindow.cpp index ac00bafd4..1c7ecf813 100644 --- a/src/calamares/CalamaresWindow.cpp +++ b/src/calamares/CalamaresWindow.cpp @@ -135,7 +135,7 @@ CalamaresWindow::CalamaresWindow( QWidget* parent ) sideLayout->addWidget( tv ); tv->setFocusPolicy( Qt::NoFocus ); - if ( Calamares::Settings::instance()->debugMode() ) + if ( Calamares::Settings::instance()->debugMode() || ( Logger::logLevel() >= Logger::LOGVERBOSE ) ) { QPushButton* debugWindowBtn = new QPushButton; debugWindowBtn->setObjectName( "debugButton" ); From 14979b1630bbc853ffdafce00250efb5df0a5f75 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 24 Feb 2020 15:21:31 +0100 Subject: [PATCH 10/15] [libcalamares] TemporaryMount with backwards logic - because mount() returns an exit code, and 0 is "success", the if (!code) was backwards: when mounting succeeded, the TemporaryMount object thought it failed. - This leads to temp-mounts being left *all over* the place from os-prober and fstab-handling. --- src/libcalamares/partition/Mount.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/libcalamares/partition/Mount.cpp b/src/libcalamares/partition/Mount.cpp index 91fcefff5..aa30c9d92 100644 --- a/src/libcalamares/partition/Mount.cpp +++ b/src/libcalamares/partition/Mount.cpp @@ -105,8 +105,9 @@ TemporaryMount::TemporaryMount( const QString& devicePath, const QString& filesy m_d->m_devicePath = devicePath; m_d->m_mountDir.setAutoRemove( false ); int r = mount( devicePath, m_d->m_mountDir.path(), filesystemName, options ); - if ( !r ) + if ( r ) { + cWarning() << "Mount of" << devicePath << "on" << m_d->m_mountDir.path() << "failed, code" << r; delete m_d; m_d = nullptr; } @@ -116,7 +117,12 @@ TemporaryMount::~TemporaryMount() { if ( m_d ) { - unmount( m_d->m_devicePath, { "-R" } ); + int r = unmount( m_d->m_devicePath, { "-R" } ); + if ( r ) + { + cWarning() << "UnMount of temporary" << m_d->m_devicePath << "on" << m_d->m_mountDir.path() + << "failed, code" << r; + } delete m_d; m_d = nullptr; } From 7752cf31b3d56228df7e4f0f4a6c549cf920920c Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 24 Feb 2020 15:59:52 +0100 Subject: [PATCH 11/15] [users] Improve documentation of setRootPassword --- src/modules/users/users.conf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/modules/users/users.conf b/src/modules/users/users.conf index 1c928fd3a..174a60142 100644 --- a/src/modules/users/users.conf +++ b/src/modules/users/users.conf @@ -45,8 +45,11 @@ doAutologin: true # potentially confusing users. sudoersGroup: wheel -# Setting this to false , causes the root account to be disabled. +# Setting this to false, causes the root account to be disabled. +# When disabled, hides the "Use the same password for administrator" +# checkbox. Also hides the "Choose a password" and associated text-inputs. setRootPassword: true + # You can control the initial state for the 'reuse password for root' # checkbox here. Possible values are: # - true to check or From c20ac0836eb11e76f63e994675df91b5d0103380 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Mon, 24 Feb 2020 16:11:14 +0100 Subject: [PATCH 12/15] [users] Take setRootPassword into account when hiding fields --- src/modules/users/UsersPage.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index 21f472a40..a18d3a82d 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -105,6 +105,16 @@ UsersPage::UsersPage( QWidget* parent ) checkReady( isReady() ); } ); connect( ui->checkBoxReusePassword, &QCheckBox::stateChanged, this, [this]( int checked ) { + /* When "reuse" is checked, hide the fields for explicitly + * entering the root password. However, if we're going to + * disable the root password anyway, hide them all regardless of + * the checkbox -- so when writeRoot is false, checked needs + * to be true, to hide them all. + */ + if ( !m_writeRootPassword ) + { + checked = true; + } ui->labelChooseRootPassword->setVisible( !checked ); ui->labelRootPassword->setVisible( !checked ); ui->labelRootPasswordError->setVisible( !checked ); @@ -246,8 +256,8 @@ UsersPage::onActivate() void UsersPage::setWriteRootPassword( bool write ) { - ui->checkBoxReusePassword->setVisible( write ); m_writeRootPassword = write; + ui->checkBoxReusePassword->setVisible( write ); } From 717b8947d5501a8710b675c0dcc264efd2358341 Mon Sep 17 00:00:00 2001 From: Matti Hyttinen Date: Mon, 24 Feb 2020 17:49:56 +0200 Subject: [PATCH 13/15] Update main.py Unset GRUB_SAVEDEFAULT if / or /boot is in btrfs or f2fs partition. This avoids the error "sparse file not allowed" at boot time. Btrfs and f2fs do not support saving default entry in grub. --- src/modules/grubcfg/main.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/modules/grubcfg/main.py b/src/modules/grubcfg/main.py index 0df255e75..ef77b988c 100644 --- a/src/modules/grubcfg/main.py +++ b/src/modules/grubcfg/main.py @@ -72,6 +72,12 @@ def modify_grub_default(partitions, root_mount_point, distributor): swap_uuid = "" swap_outer_uuid = "" swap_outer_mappername = None + no_save_default = False + + for partition in partitions: + if partition["mountPoint"] in ("/", "/boot") and partition["fs"] in ("btrfs", "f2fs"): + no_save_default = True + break if have_plymouth: use_splash = "splash" @@ -191,6 +197,9 @@ def modify_grub_default(partitions, root_mount_point, distributor): # We're not updating because of *keepDistributor*, but if # this was a comment line, then it's still not been set. have_distributor_line = have_distributor_line or not lines[i].startswith("#") + # If btrfs or f2fs is used, don't save default + if no_save_default and lines[i].startswith("GRUB_SAVEDEFAULT="): + lines[i] = "#GRUB_SAVEDEFAULT=\"true\"" else: lines = [] From ee99e34e25ed1224504bbef93fb41e5cad6b0ee8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20M=C3=BCller?= Date: Mon, 24 Feb 2020 17:29:06 +0100 Subject: [PATCH 14/15] [initcpiocfg] add check for foreign swap --- src/modules/initcpiocfg/main.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/modules/initcpiocfg/main.py b/src/modules/initcpiocfg/main.py index ba1d962bb..b3c43ea0b 100644 --- a/src/modules/initcpiocfg/main.py +++ b/src/modules/initcpiocfg/main.py @@ -144,6 +144,10 @@ def modify_mkinitcpio_conf(partitions, root_mount_point): hooks.append("bootsplash-{!s}".format(bootsplash_theme)) for partition in partitions: + if partition["fs"] == "linuxswap" and not partition.get("claimed", None): + # Skip foreign swap + continue + if partition["fs"] == "linuxswap": swap_uuid = partition["uuid"] if "luksMapperName" in partition: From 0c8257df3def9cc4cd73f910bec2de4cf0abc74e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20M=C3=BCller?= Date: Mon, 24 Feb 2020 18:22:32 +0100 Subject: [PATCH 15/15] [initcpio] Don't claim other swap From downstream ee99e34e25ed1224504bbef93fb41e5cad6b0ee8 --- src/modules/initcpiocfg/main.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/initcpiocfg/main.py b/src/modules/initcpiocfg/main.py index 621352fc5..3d570ff94 100644 --- a/src/modules/initcpiocfg/main.py +++ b/src/modules/initcpiocfg/main.py @@ -4,7 +4,7 @@ # === This file is part of Calamares - === # # Copyright 2014, Rohan Garg -# Copyright 2015,2019, Philip Müller +# Copyright 2015,2019-2020, Philip Müller # Copyright 2017, Alf Gaida # Copyright 2019, Adriaan de Groot # @@ -137,6 +137,10 @@ def modify_mkinitcpio_conf(partitions, root_mount_point): hooks.append("plymouth") for partition in partitions: + if partition["fs"] == "linuxswap" and not partition.get("claimed", None): + # Skip foreign swap + continue + if partition["fs"] == "linuxswap": swap_uuid = partition["uuid"] if "luksMapperName" in partition: