Merge branch 'master' of https://github.com/calamares/calamares into development

This commit is contained in:
Philip Müller 2020-04-23 21:25:21 +02:00
commit f431863593
11 changed files with 223 additions and 32 deletions

View File

@ -6,10 +6,11 @@ website will have to do for older versions.
# 3.2.24 (unreleased) # # 3.2.24 (unreleased) #
This release contains contributions from (alphabetically by first name): This release contains contributions from (alphabetically by first name):
- No external contributors yet - Gaël PORTAY
## Core ## ## Core ##
- No core changes yet - There is now a bash-completions script for Calamares; turn on
the (CMake-time) option INSTALL_COMPLETION to get it. (Thanks Gaël)
## Modules ## ## Modules ##
- No module changes yet - No module changes yet

View File

@ -49,6 +49,7 @@ set( CALAMARES_VERSION_RC 1 ) # Set to 0 during release cycle, 1 during develop
# #
option( INSTALL_CONFIG "Install configuration files" OFF ) option( INSTALL_CONFIG "Install configuration files" OFF )
option( INSTALL_POLKIT "Install Polkit configuration" ON ) option( INSTALL_POLKIT "Install Polkit configuration" ON )
option( INSTALL_COMPLETION "Install shell completions" OFF )
option( BUILD_TESTING "Build the testing tree." ON ) option( BUILD_TESTING "Build the testing tree." ON )
option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON ) option( WITH_PYTHON "Enable Python modules API (requires Boost.Python)." ON )
option( WITH_PYTHONQT "Enable next generation Python modules API (experimental, requires PythonQt)." OFF ) option( WITH_PYTHONQT "Enable next generation Python modules API (experimental, requires PythonQt)." OFF )
@ -389,6 +390,13 @@ list( SORT CALAMARES_TRANSLATION_LANGUAGES )
add_subdirectory( lang ) # i18n tools add_subdirectory( lang ) # i18n tools
if ( INSTALL_COMPLETION )
if( NOT CMAKE_INSTALL_BASHCOMPLETIONDIR )
set( CMAKE_INSTALL_BASHCOMPLETIONDIR "${CMAKE_INSTALL_DATADIR}/bash-completion/completions" )
endif()
install( FILES ${CMAKE_SOURCE_DIR}/data/completion/bash/calamares DESTINATION "${CMAKE_INSTALL_BASHCOMPLETIONDIR}" )
endif()
### Example Distro ### Example Distro
# #

View File

@ -0,0 +1,36 @@
# === This file is part of Calamares - <https://github.com/calamares> ===
#
# Copyright 2020, Gaël PORTAY <gael.portay@gmail.com>
#
# Calamares is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Calamares is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Calamares. If not, see <http://www.gnu.org/licenses/>.
_calamares()
{
local cur prev words cword
_init_completion || return
case "$prev" in
-D)
COMPREPLY=( $( compgen -W "$( seq 0 1 8 )" -- "$cur" ) )
return
;;
-c|--config)
_filedir
return
;;
esac
COMPREPLY=( $( compgen -W "-h --help -v --version -d --debug -D -c --config -X -xdg-config -T --debug-translation" -- "$cur" ) )
} &&
complete -F _calamares calamares

View File

@ -151,6 +151,10 @@ doAutopartition( PartitionCoreModule* core, Device* dev, Choices::AutoPartitionO
KPM_PARTITION_FLAG( None ) ); KPM_PARTITION_FLAG( None ) );
PartitionInfo::setFormat( efiPartition, true ); PartitionInfo::setFormat( efiPartition, true );
PartitionInfo::setMountPoint( efiPartition, o.efiPartitionMountPoint ); PartitionInfo::setMountPoint( efiPartition, o.efiPartitionMountPoint );
if ( gs->contains( "efiSystemPartitionName" ) )
{
efiPartition->setLabel( gs->value( "efiSystemPartitionName" ).toString() );
}
core->createPartition( dev, efiPartition, KPM_PARTITION_FLAG_ESP ); core->createPartition( dev, efiPartition, KPM_PARTITION_FLAG_ESP );
firstFreeSector = lastSector + 1; firstFreeSector = lastSector + 1;
} }

View File

@ -538,6 +538,12 @@ PartitionViewStep::setConfigurationMap( const QVariantMap& configurationMap )
gs->insert( "efiSystemPartitionSize", CalamaresUtils::getString( configurationMap, "efiSystemPartitionSize" ) ); gs->insert( "efiSystemPartitionSize", CalamaresUtils::getString( configurationMap, "efiSystemPartitionSize" ) );
} }
// Read and parse key efiSystemPartitionName
if ( configurationMap.contains( "efiSystemPartitionName" ) )
{
gs->insert( "efiSystemPartitionName", CalamaresUtils::getString( configurationMap, "efiSystemPartitionName" ) );
}
// SWAP SETTINGS // SWAP SETTINGS
// //
// This is a bit convoluted because there's legacy settings to handle as well // This is a bit convoluted because there's legacy settings to handle as well

View File

@ -107,7 +107,7 @@ mapForPartition( Partition* partition, const QString& uuid )
Logger::CDebug deb; Logger::CDebug deb;
using TR = Logger::DebugRow< const char* const, const QString& >; using TR = Logger::DebugRow< const char* const, const QString& >;
deb << Logger::SubEntry << "mapping for" << partition->partitionPath() << partition->deviceNode() deb << Logger::SubEntry << "mapping for" << partition->partitionPath() << partition->deviceNode()
<< TR( "mtpoint:", PartitionInfo::mountPoint( partition ) ) << TR( "fs:", map[ "fs" ].toString() ) << TR( "mountPoint:", PartitionInfo::mountPoint( partition ) ) << TR( "fs:", map[ "fs" ].toString() )
<< TR( "fsName", map[ "fsName" ].toString() ) << TR( "uuid", uuid ) << TR( "fsName", map[ "fsName" ].toString() ) << TR( "uuid", uuid )
<< TR( "claimed", map[ "claimed" ].toString() ); << TR( "claimed", map[ "claimed" ].toString() );

View File

@ -7,6 +7,10 @@ efiSystemPartition: "/boot/efi"
# If nothing is specified, the default size of 300MiB will be used. # If nothing is specified, the default size of 300MiB will be used.
# efiSystemPartitionSize: 300M # efiSystemPartitionSize: 300M
# This optional setting specifies the name of the EFI system partition.
# If nothing is specified, the partition name is left unset.
# efiSystemPartitionName: EFI
# In autogenerated partitioning, allow the user to select a swap size? # In autogenerated partitioning, allow the user to select a swap size?
# If there is exactly one choice, no UI is presented, and the user # If there is exactly one choice, no UI is presented, and the user
# cannot make a choice -- this setting is used. If there is more than # cannot make a choice -- this setting is used. If there is more than

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,100 @@
/* === This file is part of Calamares - <https://github.com/calamares> ===
*
* Copyright 2020, Anke Boersma <demm@kaosx.us>
*
* Calamares is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Calamares is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
*/
import io.calamares.ui 1.0
import QtQuick 2.7
import QtQuick.Controls 2.2
import QtQuick.Window 2.2
import QtQuick.Layouts 1.3
Rectangle {
width: parent.width
height: parent.height
focus: true
color: "#f2f2f2"
Flickable {
id: flick
anchors.fill: parent
contentHeight: 3500
ScrollBar.vertical: ScrollBar {
id: fscrollbar
width: 10
policy: ScrollBar.AlwaysOn
}
TextArea {
id: intro
x: 130
y: 8
width: 640
font.pointSize: 14
textFormat: Text.RichText
antialiasing: true
activeFocusOnPress: false
wrapMode: Text.WordWrap
text: qsTr("<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>").arg(Branding.string(Branding.VersionedName))
}
}
ToolButton {
id: toolButton
x: 19
y: 29
width: 105
height: 48
text: qsTr("Back")
hoverEnabled: true
onClicked: load.source = ""
Image {
id: image1
x: 0
y: 13
width: 22
height: 22
source: "img/chevron-left-solid.svg"
fillMode: Image.PreserveAspectFit
}
}
}

View File

@ -16,6 +16,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with Calamares. If not, see <http://www.gnu.org/licenses/>. * along with Calamares. If not, see <http://www.gnu.org/licenses/>.
*/ */
import io.calamares.core 1.0
import io.calamares.ui 1.0 import io.calamares.ui 1.0
import QtQuick 2.10 import QtQuick 2.10
@ -29,21 +30,21 @@ Page
{ {
id: welcome id: welcome
header: Item header: Item {
{
width: parent.width width: parent.width
height: parent.height height: parent.height
Text Text {
{
id: welcomeTopText id: welcomeTopText
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.top anchors.top: parent.top
horizontalAlignment: Text.AlignHCenter
padding: 40
// In QML, QString::arg() only takes one argument // In QML, QString::arg() only takes one argument
text: qsTr("<h3>Welcome to the %1 <quote>%2</quote> installer</h3>").arg(Branding.string(Branding.ProductName)).arg(Branding.string(Branding.Version)) text: qsTr("<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>").arg(Branding.string(Branding.ProductName)).arg(Branding.string(Branding.Version))
} }
Image Image {
{
id: welcomeImage id: welcomeImage
anchors.centerIn: parent anchors.centerIn: parent
// imagePath() returns a full pathname, so make it refer to the filesystem // imagePath() returns a full pathname, so make it refer to the filesystem
@ -55,36 +56,31 @@ Page
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
} }
RowLayout RowLayout {
{
id: buttonBar id: buttonBar
width: parent.width width: parent.width / 1.5
height: 64 height: 64
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.horizontalCenter: parent.horizontalCenter
spacing: Kirigami.Units.largeSpacing* 2 spacing: Kirigami.Units.largeSpacing* 2
/* Traditionally Calamares has had an "About" button that talks about Button {
* Calamares itself, which just isn't a very useful thing in someone
* else's installation ISO.
*/
Button
{
Layout.fillWidth: true Layout.fillWidth: true
text: qsTr("About") text: qsTr("About")
icon.name: "dialog-information" icon.name: "dialog-information"
Kirigami.Theme.backgroundColor: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.4) Kirigami.Theme.backgroundColor: Qt.rgba(Kirigami.Theme.backgroundColor.r, Kirigami.Theme.backgroundColor.g, Kirigami.Theme.backgroundColor.b, 0.4)
Kirigami.Theme.textColor: Kirigami.Theme.textColor Kirigami.Theme.textColor: Kirigami.Theme.textColor
visible: false visible: true
onClicked: { onClicked: {
//onClicked: load.source = "file:/usr/share/calamares/branding/kaos_branding/show.qml" //onClicked: load.source = "file:/usr/share/calamares/branding/default/show.qml"
onClicked: load.source = "about.qml" onClicked: load.source = "about.qml"
} }
} }
Button
{ Button {
Layout.fillWidth: true Layout.fillWidth: true
text: qsTr("Support") text: qsTr("Support")
icon.name: "system-help" icon.name: "system-help"
@ -94,8 +90,8 @@ Page
visible: config.supportUrl !== "" visible: config.supportUrl !== ""
onClicked: Qt.openUrlExternally(config.supportUrl) onClicked: Qt.openUrlExternally(config.supportUrl)
} }
Button
{ Button {
Layout.fillWidth: true Layout.fillWidth: true
text: qsTr("Known issues") text: qsTr("Known issues")
icon.name: "tools-report-bug" icon.name: "tools-report-bug"
@ -105,8 +101,8 @@ Page
visible: config.knownIssuesUrl !== "" visible: config.knownIssuesUrl !== ""
onClicked: Qt.openUrlExternally(config.knownIssuesUrl) onClicked: Qt.openUrlExternally(config.knownIssuesUrl)
} }
Button
{ Button {
Layout.fillWidth: true Layout.fillWidth: true
text: qsTr("Release notes") text: qsTr("Release notes")
icon.name: "folder-text" icon.name: "folder-text"
@ -114,10 +110,11 @@ Page
Kirigami.Theme.textColor: Kirigami.Theme.textColor Kirigami.Theme.textColor: Kirigami.Theme.textColor
visible: config.releaseNotesUrl !== "" visible: config.releaseNotesUrl !== ""
onClicked: Qt.openUrlExternally(config.releaseNotesUrl) onClicked: load.source = "release_notes.qml"
//onClicked: load.source = "file:/usr/share/calamares/release_notes.qml"
} }
Button
{ Button {
Layout.fillWidth: true Layout.fillWidth: true
text: qsTr("Donate") text: qsTr("Donate")
icon.name: "taxes-finances" icon.name: "taxes-finances"
@ -128,8 +125,41 @@ Page
onClicked: Qt.openUrlExternally(config.donateUrl) onClicked: Qt.openUrlExternally(config.donateUrl)
} }
} }
Loader
{ RowLayout {
id: languageBar
width: parent.width /1.2
height: 48
anchors.bottom: parent.bottom
anchors.bottomMargin: parent.height /7
anchors.horizontalCenter: parent.horizontalCenter
spacing: Kirigami.Units.largeSpacing* 4
Rectangle {
width: parent.width
Layout.fillWidth: true
focus: true
Image {
id: image
height: 48
fillMode: Image.PreserveAspectFit
source: "img/language-icon-48px.png"
}
ComboBox {
id: languages
anchors.left: image.right
width: languageBar.width /1.1
textRole: "label"
currentIndex: 4 //model.currentIndex
model: config.languagesModel
onCurrentIndexChanged: console.debug(currentText, currentIndex)
}
}
}
Loader {
id:load id:load
anchors.fill: parent anchors.fill: parent
} }

View File

@ -2,7 +2,9 @@
<qresource> <qresource>
<file alias="welcomeq.qml">welcomeq.qml</file> <file alias="welcomeq.qml">welcomeq.qml</file>
<file alias="about.qml">about.qml</file> <file alias="about.qml">about.qml</file>
<file alias="release_notes.qml">release_notes.qml</file>
<file>img/squid.png</file> <file>img/squid.png</file>
<file>img/chevron-left-solid.svg</file> <file>img/chevron-left-solid.svg</file>
<file>img/language-icon-48px.png</file>
</qresource> </qresource>
</RCC> </RCC>