From 64db6d5ba1749896db3ab6c0257dd3eee1257e86 Mon Sep 17 00:00:00 2001 From: Chantara Tith Date: Sun, 11 Sep 2016 15:56:06 +0700 Subject: [PATCH 1/4] Use device's immutable copy instead of rescanning. --- src/modules/partition/core/PartitionCoreModule.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index 0df152507..77333846a 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -700,7 +700,6 @@ QList< PartitionCoreModule::SummaryInfo > PartitionCoreModule::createSummaryInfo() const { QList< SummaryInfo > lst; - CoreBackend* backend = CoreBackendManager::self()->backend(); for ( auto deviceInfo : m_deviceInfos ) { if ( !deviceInfo->isDirty() ) @@ -709,7 +708,7 @@ PartitionCoreModule::createSummaryInfo() const summaryInfo.deviceName = deviceInfo->device->name(); summaryInfo.deviceNode = deviceInfo->device->deviceNode(); - Device* deviceBefore = backend->scanDevice( deviceInfo->device->deviceNode() ); + Device* deviceBefore = deviceInfo->immutableDevice.data(); summaryInfo.partitionModelBefore = new PartitionModel; summaryInfo.partitionModelBefore->init( deviceBefore, m_osproberLines ); // Make deviceBefore a child of partitionModelBefore so that it is not From c83ca9af4433d95c5e5722386b963d584bbff9b6 Mon Sep 17 00:00:00 2001 From: Jonathan Carter Date: Mon, 12 Sep 2016 07:56:13 +0200 Subject: [PATCH 2/4] Fix spelling mistake in kdsingleapplicationguard.cpp (#257) s/emty/empty/g. --- .../kdsingleapplicationguard/kdsingleapplicationguard.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libcalamares/kdsingleapplicationguard/kdsingleapplicationguard.cpp b/src/libcalamares/kdsingleapplicationguard/kdsingleapplicationguard.cpp index 6b2a2e13a..ea8ccce33 100644 --- a/src/libcalamares/kdsingleapplicationguard/kdsingleapplicationguard.cpp +++ b/src/libcalamares/kdsingleapplicationguard/kdsingleapplicationguard.cpp @@ -723,7 +723,7 @@ void KDSingleApplicationGuard::Private::create( const QStringList & arguments ) const QString name = QCoreApplication::applicationName(); if ( name.isEmpty() ) { - qWarning( "KDSingleApplicationGuard: QCoreApplication::applicationName must not be emty" ); + qWarning( "KDSingleApplicationGuard: QCoreApplication::applicationName must not be empty" ); return; } From ea1c8a0e5ddfc6b72311cf744e2ac514c6630009 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philip=20M=C3=BCller?= Date: Mon, 12 Sep 2016 07:59:17 +0200 Subject: [PATCH 3/4] [plymouthcfg] add module to configure Plymouth (#256) --- settings.conf | 1 + src/modules/grubcfg/main.py | 9 ++-- src/modules/plymouthcfg/main.py | 61 ++++++++++++++++++++++++ src/modules/plymouthcfg/module.desc | 5 ++ src/modules/plymouthcfg/plymouthcfg.conf | 4 ++ 5 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 src/modules/plymouthcfg/main.py create mode 100644 src/modules/plymouthcfg/module.desc create mode 100644 src/modules/plymouthcfg/plymouthcfg.conf diff --git a/settings.conf b/settings.conf index 07210980e..4da88a8dd 100644 --- a/settings.conf +++ b/settings.conf @@ -79,6 +79,7 @@ sequence: - localecfg # - luksbootkeyfile # - luksopenswaphookcfg +# - plymouthcfg - initcpiocfg - initcpio - users diff --git a/src/modules/grubcfg/main.py b/src/modules/grubcfg/main.py index 4e05a0d3f..6229cabda 100644 --- a/src/modules/grubcfg/main.py +++ b/src/modules/grubcfg/main.py @@ -23,7 +23,6 @@ import libcalamares import os import re - def modify_grub_default(partitions, root_mount_point, distributor): """ Configures '/etc/default/grub' for hibernation and plymouth. @@ -35,14 +34,12 @@ def modify_grub_default(partitions, root_mount_point, distributor): default_dir = os.path.join(root_mount_point, "etc/default") default_grub = os.path.join(default_dir, "grub") distributor_replace = distributor.replace("'", "'\\''") - plymouth_bin = libcalamares.utils.target_env_call(["sh", "-c", "which plymouth"]) use_splash = "" swap_uuid = "" - libcalamares.utils.debug("which plymouth exit code: {!s}".format(plymouth_bin)) - - if plymouth_bin == 0: - use_splash = "splash" + if libcalamares.globalstorage.contains("hasPlymouth"): + if libcalamares.globalstorage.value("hasPlymouth"): + use_splash = "splash" cryptdevice_params = [] diff --git a/src/modules/plymouthcfg/main.py b/src/modules/plymouthcfg/main.py new file mode 100644 index 000000000..9612735cd --- /dev/null +++ b/src/modules/plymouthcfg/main.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# === This file is part of Calamares - === +# +# Copyright 2016, Artoo +# +# 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 . + +import libcalamares + +from libcalamares.utils import debug, target_env_call + + +class PlymouthController: + + def __init__(self): + self.__root = libcalamares.globalstorage.value('rootMountPoint') + + @property + def root(self): + return self.__root + + def setTheme(self): + plymouth_theme = libcalamares.job.configuration["plymouth_theme"] + target_env_call(["sed", "-e", 's|^.*Theme=.*|Theme=' + + plymouth_theme + '|', "-i", "/etc/plymouth/plymouthd.conf"]) + + def detect(self): + isPlymouth = target_env_call(["which", "plymouth"]) + debug("which plymouth exit code: {!s}".format(isPlymouth)) + + if isPlymouth == 0: + libcalamares.globalstorage.insert("hasPlymouth", True) + else: + libcalamares.globalstorage.insert("hasPlymouth", False) + + return isPlymouth + + def run(self): + if self.detect() == 0: + if "plymouth_theme" in libcalamares.job.configuration and libcalamares.job.configuration["plymouth_theme"] is not None: + self.setTheme() + return None + + +def run(): + pc = PlymouthController() + return pc.run() + diff --git a/src/modules/plymouthcfg/module.desc b/src/modules/plymouthcfg/module.desc new file mode 100644 index 000000000..f2d2d4743 --- /dev/null +++ b/src/modules/plymouthcfg/module.desc @@ -0,0 +1,5 @@ +--- +type: "job" +name: "plymouthcfg" +interface: "python" +script: "main.py" diff --git a/src/modules/plymouthcfg/plymouthcfg.conf b/src/modules/plymouthcfg/plymouthcfg.conf new file mode 100644 index 000000000..6d7ae5c27 --- /dev/null +++ b/src/modules/plymouthcfg/plymouthcfg.conf @@ -0,0 +1,4 @@ +--- +# The plymouth theme to be set if plymouth binary is present +# leave commented if packaged default theme should be used +# plymouth_theme: spinfinity From d2a274012a6d8ad4503677c22d9e49003f60e583 Mon Sep 17 00:00:00 2001 From: Jonathan Carter Date: Mon, 12 Sep 2016 15:53:35 +0200 Subject: [PATCH 4/4] Add keywords to desktop file (#259) * Fix spelling mistake in kdsingleapplicationguard.cpp s/emty/empty/g. * Add fdo keywords Add freedesktop.org keywords to desktop entry. This allows users to search for the app in various desktop environments. For more details, see: https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s05.html, https://bugs.debian.org/693918, and https://wiki.gnome.org/Initiatives/GnomeGoals/DesktopFileKeywords for --- calamares.desktop | 1 + 1 file changed, 1 insertion(+) diff --git a/calamares.desktop b/calamares.desktop index 4920c6eb3..88cb71e20 100644 --- a/calamares.desktop +++ b/calamares.desktop @@ -3,6 +3,7 @@ Type=Application Version=1.0 Name=Calamares GenericName=System Installer +Keywords=calamares;system;installer TryExec=calamares Exec=pkexec /usr/bin/calamares Comment=Calamares — System Installer