Files
main/system/installer/calamares/files/d.patch
T
2026-04-17 11:42:42 +03:00

558 lines
21 KiB
Diff

diff -Nuar calamares-3.1.7/src/modules/dracut/main.py calamares-3.1.71/src/modules/dracut/main.py
--- calamares-3.1.7/src/modules/dracut/main.py 2017-10-23 23:22:25.000000000 +0300
+++ calamares-3.1.71/src/modules/dracut/main.py 1970-01-01 02:00:00.000000000 +0200
@@ -1,47 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# === This file is part of Calamares - <http://github.com/calamares> ===
-#
-# Copyright 2014-2015, Philip Müller <philm@manjaro.org>
-# Copyright 2014, Teo Mrnjavac <teo@kde.org>
-# Copyright 2017, Alf Gaida <agaid@siduction.org>
-#
-# 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 libcalamares
-from libcalamares.utils import target_env_call
-
-
-def run_dracut():
- """
- Creates initramfs, even when initramfs already exists.
-
- :return:
- """
- return target_env_call(['dracut', '-f'])
-
-
-def run():
- """
- Starts routine to create initramfs. It passes back the exit code
- if it fails.
-
- :return:
- """
- return_code = run_dracut()
-
- if return_code != 0:
- return ("Failed to run dracut on the target",
- "The exit code was {}".format(return_code))
diff -Nuar calamares-3.1.7/src/modules/dracut/module.desc calamares-3.1.71/src/modules/dracut/module.desc
--- calamares-3.1.7/src/modules/dracut/module.desc 2017-10-23 23:22:25.000000000 +0300
+++ calamares-3.1.71/src/modules/dracut/module.desc 1970-01-01 02:00:00.000000000 +0200
@@ -1,5 +0,0 @@
----
-type: "job"
-name: "dracut"
-interface: "python"
-script: "main.py"
diff -Nuar calamares-3.1.7/src/modules/dracutlukscfg/CMakeLists.txt calamares-3.1.71/src/modules/dracutlukscfg/CMakeLists.txt
--- calamares-3.1.7/src/modules/dracutlukscfg/CMakeLists.txt 2017-10-23 23:22:25.000000000 +0300
+++ calamares-3.1.71/src/modules/dracutlukscfg/CMakeLists.txt 1970-01-01 02:00:00.000000000 +0200
@@ -1,9 +0,0 @@
-calamares_add_plugin( dracutlukscfg
- TYPE job
- EXPORT_MACRO PLUGINDLLEXPORT_PRO
- SOURCES
- DracutLuksCfgJob.cpp
- LINK_PRIVATE_LIBRARIES
- calamares
- SHARED_LIB
-)
diff -Nuar calamares-3.1.7/src/modules/dracutlukscfg/DracutLuksCfgJob.cpp calamares-3.1.71/src/modules/dracutlukscfg/DracutLuksCfgJob.cpp
--- calamares-3.1.7/src/modules/dracutlukscfg/DracutLuksCfgJob.cpp 2017-10-23 23:22:25.000000000 +0300
+++ calamares-3.1.71/src/modules/dracutlukscfg/DracutLuksCfgJob.cpp 1970-01-01 02:00:00.000000000 +0200
@@ -1,168 +0,0 @@
-/* === This file is part of Calamares - <http://github.com/calamares> ===
- *
- * Copyright 2016, Kevin Kofler <kevin.kofler@chello.at>
- *
- * 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/>.
- */
-
-#include "DracutLuksCfgJob.h"
-
-#include <QDir>
-#include <QFile>
-#include <QFileInfo>
-#include <QTextStream>
-
-#include "CalamaresVersion.h"
-#include "JobQueue.h"
-#include "GlobalStorage.h"
-
-#include "utils/Logger.h"
-
-// static
-const QLatin1Literal DracutLuksCfgJob::CONFIG_FILE( "/etc/dracut.conf.d/calamares-luks.conf" );
-
-// static
-const char *DracutLuksCfgJob::CONFIG_FILE_HEADER =
- "# Configuration file automatically written by the Calamares system installer\n"
- "# (This file is written once at install time and should be safe to edit.)\n"
- "# Enables support for LUKS full disk encryption with single sign on from GRUB.\n"
- "\n";
-
-// static
-const char *DracutLuksCfgJob::CONFIG_FILE_CRYPTTAB_KEYFILE_LINE =
- "# force installing /etc/crypttab even if hostonly=\"no\", install the keyfile\n"
- "install_items+=\" /etc/crypttab /crypto_keyfile.bin \"\n";
-
-// static
-const char *DracutLuksCfgJob::CONFIG_FILE_CRYPTTAB_LINE =
- "# force installing /etc/crypttab even if hostonly=\"no\"\n"
- "install_items+=\" /etc/crypttab \"\n";
-
-// static
-const QLatin1Literal DracutLuksCfgJob::CONFIG_FILE_SWAPLINE( "# enable automatic resume from swap\nadd_device+=\" /dev/disk/by-uuid/%1 \"\n" );
-
-// static
-QString
-DracutLuksCfgJob::rootMountPoint()
-{
- Calamares::GlobalStorage *globalStorage = Calamares::JobQueue::instance()->globalStorage();
- return globalStorage->value( QStringLiteral( "rootMountPoint" ) ).toString();
-}
-
-// static
-QVariantList
-DracutLuksCfgJob::partitions()
-{
- Calamares::GlobalStorage *globalStorage = Calamares::JobQueue::instance()->globalStorage();
- return globalStorage->value( QStringLiteral( "partitions" ) ).toList();
-}
-
-// static
-bool
-DracutLuksCfgJob::isRootEncrypted()
-{
- const QVariantList partitions = DracutLuksCfgJob::partitions();
- for ( const QVariant &partition : partitions )
- {
- QVariantMap partitionMap = partition.toMap();
- QString mountPoint = partitionMap.value( QStringLiteral( "mountPoint" ) ).toString();
- if ( mountPoint == QStringLiteral( "/" ) )
- return partitionMap.contains( QStringLiteral( "luksMapperName" ) );
- }
- return false;
-}
-
-// static
-bool
-DracutLuksCfgJob::hasUnencryptedSeparateBoot()
-{
- const QVariantList partitions = DracutLuksCfgJob::partitions();
- for ( const QVariant &partition : partitions )
- {
- QVariantMap partitionMap = partition.toMap();
- QString mountPoint = partitionMap.value( QStringLiteral( "mountPoint" ) ).toString();
- if ( mountPoint == QStringLiteral( "/boot" ) )
- return !partitionMap.contains( QStringLiteral( "luksMapperName" ) );
- }
- return false;
-}
-
-// static
-QString
-DracutLuksCfgJob::swapOuterUuid()
-{
- const QVariantList partitions = DracutLuksCfgJob::partitions();
- for ( const QVariant &partition : partitions )
- {
- QVariantMap partitionMap = partition.toMap();
- QString fsType = partitionMap.value( QStringLiteral( "fs" ) ).toString();
- if ( fsType == QStringLiteral( "linuxswap" ) && partitionMap.contains( QStringLiteral( "luksMapperName" ) ) )
- return partitionMap.value( QStringLiteral( "luksUuid" ) ).toString();
- }
- return QString();
-}
-
-DracutLuksCfgJob::DracutLuksCfgJob( QObject* parent )
- : Calamares::CppJob( parent )
-{
-}
-
-
-DracutLuksCfgJob::~DracutLuksCfgJob()
-{
-}
-
-
-QString
-DracutLuksCfgJob::prettyName() const
-{
- if ( isRootEncrypted() )
- return tr( "Write LUKS configuration for Dracut to %1" ).arg( CONFIG_FILE );
- else
- return tr( "Skip writing LUKS configuration for Dracut: \"/\" partition is not encrypted" );
-}
-
-
-Calamares::JobResult
-DracutLuksCfgJob::exec()
-{
- if ( isRootEncrypted() )
- {
- const QString realConfigFilePath = rootMountPoint() + CONFIG_FILE;
- cDebug() << "[DRACUTLUKSCFG]: Writing" << realConfigFilePath;
- QDir( QStringLiteral( "/" ) ).mkpath( QFileInfo( realConfigFilePath ).absolutePath() );
- QFile configFile( realConfigFilePath );
- if ( ! configFile.open( QIODevice::WriteOnly | QIODevice::Text ) )
- {
- cDebug() << "[DRACUTLUKSCFG]: Failed to open" << realConfigFilePath;
- return Calamares::JobResult::error( tr( "Failed to open %1" ).arg( realConfigFilePath ) );
- }
- QTextStream outStream( &configFile );
- outStream << CONFIG_FILE_HEADER
- << ( hasUnencryptedSeparateBoot() ? CONFIG_FILE_CRYPTTAB_LINE
- : CONFIG_FILE_CRYPTTAB_KEYFILE_LINE );
- const QString swapOuterUuid = DracutLuksCfgJob::swapOuterUuid();
- if ( ! swapOuterUuid.isEmpty() )
- {
- cDebug() << "[DRACUTLUKSCFG]: Swap outer UUID" << swapOuterUuid;
- outStream << QString(CONFIG_FILE_SWAPLINE).arg( swapOuterUuid ).toLatin1();
- }
- cDebug() << "[DRACUTLUKSCFG]: Wrote config to" << realConfigFilePath;
- } else
- cDebug() << "[DRACUTLUKSCFG]: / not encrypted, skipping";
-
- return Calamares::JobResult::ok();
-}
-
-CALAMARES_PLUGIN_FACTORY_DEFINITION( DracutLuksCfgJobFactory, registerPlugin<DracutLuksCfgJob>(); )
diff -Nuar calamares-3.1.7/src/modules/dracutlukscfg/DracutLuksCfgJob.h calamares-3.1.71/src/modules/dracutlukscfg/DracutLuksCfgJob.h
--- calamares-3.1.7/src/modules/dracutlukscfg/DracutLuksCfgJob.h 2017-10-23 23:22:25.000000000 +0300
+++ calamares-3.1.71/src/modules/dracutlukscfg/DracutLuksCfgJob.h 1970-01-01 02:00:00.000000000 +0200
@@ -1,60 +0,0 @@
-/* === This file is part of Calamares - <http://github.com/calamares> ===
- *
- * Copyright 2016, Kevin Kofler <kevin.kofler@chello.at>
- * Copyright 2017, Adriaan de Groot <groot@kde.org>
- *
- * 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/>.
- */
-
-#ifndef DRACUTLUKSCFGJOB_H
-#define DRACUTLUKSCFGJOB_H
-
-#include <QObject>
-#include <QVariantMap>
-
-#include <CppJob.h>
-
-#include <utils/PluginFactory.h>
-
-#include <PluginDllMacro.h>
-
-class PLUGINDLLEXPORT DracutLuksCfgJob : public Calamares::CppJob
-{
- Q_OBJECT
-
-public:
- explicit DracutLuksCfgJob( QObject* parent = nullptr );
- virtual ~DracutLuksCfgJob() override;
-
- QString prettyName() const override;
-
- Calamares::JobResult exec() override;
-
-private:
- static const QLatin1Literal CONFIG_FILE;
- static const char *CONFIG_FILE_HEADER;
- static const char *CONFIG_FILE_CRYPTTAB_KEYFILE_LINE;
- static const char *CONFIG_FILE_CRYPTTAB_LINE;
- static const QLatin1Literal CONFIG_FILE_SWAPLINE;
-
- static QString rootMountPoint();
- static QVariantList partitions();
- static bool isRootEncrypted();
- static bool hasUnencryptedSeparateBoot();
- static QString swapOuterUuid();
-};
-
-CALAMARES_PLUGIN_FACTORY_DECLARATION( DracutLuksCfgJobFactory )
-
-#endif // DRACUTLUKSCFGJOB_H
diff -Nuar calamares-3.1.7/src/modules/locale/LocalePage.cpp calamares-3.1.71/src/modules/locale/LocalePage.cpp
--- calamares-3.1.7/src/modules/locale/LocalePage.cpp 2017-10-23 23:22:25.000000000 +0300
+++ calamares-3.1.71/src/modules/locale/LocalePage.cpp 2017-11-14 02:27:55.108042084 +0300
@@ -320,7 +320,7 @@
<< ". Assuming the supported languages are already built into "
"the locale archive.";
QProcess localeA;
- localeA.start( "locale", QStringList() << "-a" );
+ localeA.start( "cat", QStringList() << "/etc/languages" );
localeA.waitForFinished();
ba = localeA.readAllStandardOutput();
}
diff -Nuar calamares-3.1.7/src/modules/localecfg/main.py calamares-3.1.71/src/modules/localecfg/main.py
--- calamares-3.1.7/src/modules/localecfg/main.py 2017-10-23 23:22:25.000000000 +0300
+++ calamares-3.1.71/src/modules/localecfg/main.py 2017-11-14 03:07:20.726123018 +0300
@@ -83,13 +83,14 @@
locale_conf_path = os.path.join(install_path, "etc/locale.conf")
with open(locale_conf_path, "w") as lcf:
for k, v in locale_conf.items():
- lcf.write("{!s}={!s}\n".format(k, v))
+ lcf.write("{!s}\n".format( v))
# write /etc/default/locale if /etc/default exists and is a dir
etc_default_path = os.path.join(install_path, "etc/default")
if os.path.isdir(etc_default_path):
with open(os.path.join(etc_default_path, "locale"), "w") as edl:
for k, v in locale_conf.items():
- edl.write("{!s}={!s}\n".format(k, v))
+ edl.write("{!s}\n".format( v))
+
return None
diff -Nuar calamares-3.1.7/src/modules/mudur/main.py calamares-3.1.71/src/modules/mudur/main.py
--- calamares-3.1.7/src/modules/mudur/main.py 1970-01-01 02:00:00.000000000 +0200
+++ calamares-3.1.71/src/modules/mudur/main.py 2017-11-14 02:10:42.000000000 +0300
@@ -0,0 +1,64 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+#
+# === This file is part of Calamares - <http://github.com/calamares> ===
+#
+# Copyright 2014, Anke Boersma <demm@kaosx.us>
+# Copyright 2015, Philip Müller <philm@manjaro.org>
+#
+# 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 os
+import shutil
+
+import libcalamares
+
+
+
+def run():
+
+ install_path = libcalamares.globalstorage.value("rootMountPoint")
+
+
+ path = os.path.join(install_path, "etc/locale.conf")
+
+ mloc = open(path,"r")
+
+ languages = mloc.readline(2)
+
+
+ mudur_file_path = os.path.join(install_path, "etc/conf.d/mudur")
+ lines = []
+ for l in open(mudur_file_path, "r").readlines():
+ if l.strip().startswith('language=') or l.strip().startswith('# language='):
+ if languages == "pt":
+ l = 'language="pt_BR"\n'
+ else:
+ l = 'language="%s"\n' % languages
+ lines.append(l)
+
+ open(mudur_file_path, "w").writelines(lines)
+
+ if os.path.exists(os.path.join(install_path, "etc/sudoers")):
+ os.unlink(os.path.join(install_path, "etc/sudoers"))
+
+
+ source = os.path.join(install_path, "etc/sudoers.orig")
+ target = os.path.join(install_path, "etc/sudoers")
+
+ shutil.copy(source, target)
+
+ libcalamares.utils.target_env_call(['chmod', '440', '/etc/sudoers'])
+
+ return None
diff -Nuar calamares-3.1.7/src/modules/mudur/module.desc calamares-3.1.71/src/modules/mudur/module.desc
--- calamares-3.1.7/src/modules/mudur/module.desc 1970-01-01 02:00:00.000000000 +0200
+++ calamares-3.1.71/src/modules/mudur/module.desc 2017-11-14 02:10:42.000000000 +0300
@@ -0,0 +1,5 @@
+---
+type: "job"
+name: "mudur"
+interface: "python"
+script: "main.py"
diff -Nuar calamares-3.1.7/src/modules/services/main.py calamares-3.1.71/src/modules/services/main.py
--- calamares-3.1.7/src/modules/services/main.py 2017-10-23 23:22:25.000000000 +0300
+++ calamares-3.1.71/src/modules/services/main.py 1970-01-01 02:00:00.000000000 +0200
@@ -1,101 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# === This file is part of Calamares - <http://github.com/calamares> ===
-#
-# Copyright 2014, Philip Müller <philm@manjaro.org>
-# Copyright 2014, Teo Mrnjavac <teo@kde.org>
-# Copyright 2017, Alf Gaida <agaida@siduction.org>
-#
-# 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 libcalamares
-
-
-def run():
- """
- Setup systemd services
- """
- services = libcalamares.job.configuration['services']
- targets = libcalamares.job.configuration['targets']
- disable = libcalamares.job.configuration['disable']
-
- # note that the "systemctl enable" and "systemctl disable" commands used
- # here will work in a chroot; in fact, they are the only systemctl commands
- # that support that, see:
- # http://0pointer.de/blog/projects/changing-roots.html
-
- # enable services
- for svc in services:
- ec = libcalamares.utils.target_env_call(
- ['systemctl', 'enable', '{}.service'.format(svc['name'])]
- )
-
- if ec != 0:
- if svc['mandatory']:
- return ("Cannot enable systemd service {}".format(svc['name']),
- "systemctl enable call in chroot returned error code "
- "{}".format(ec)
- )
- else:
- libcalamares.utils.debug(
- "Cannot enable systemd service {}".format(svc['name'])
- )
- libcalamares.utils.debug(
- "systemctl enable call in chroot returned error code "
- "{}".format(ec)
- )
-
- # enable targets
- for tgt in targets:
- ec = libcalamares.utils.target_env_call(
- ['systemctl', 'enable', '{}.target'.format(tgt['name'])]
- )
-
- if ec != 0:
- if tgt['mandatory']:
- return ("Cannot enable systemd target {}".format(tgt['name']),
- "systemctl enable call in chroot returned error code"
- "{}".format(ec)
- )
- else:
- libcalamares.utils.debug(
- "Cannot enable systemd target {}".format(tgt['name'])
- )
- libcalamares.utils.debug(
- "systemctl enable call in chroot returned error code "
- "{}".format(ec)
- )
-
- for dbl in disable:
- ec = libcalamares.utils.target_env_call(
- ['systemctl', 'disable', '{}.service'.format(dbl['name'])]
- )
-
- if ec != 0:
- if dbl['mandatory']:
- return ("Cannot disable systemd service"
- "{}".format(dbl['name']),
- "systemctl disable call in chroot returned error code"
- "{}".format(ec))
- else:
- libcalamares.utils.debug(
- "Cannot disable systemd service {}".format(dbl['name'])
- )
- libcalamares.utils.debug(
- "systemctl disable call in chroot returned error code "
- "{}".format(ec)
- )
-
- return None
diff -Nuar calamares-3.1.7/src/modules/services/module.desc calamares-3.1.71/src/modules/services/module.desc
--- calamares-3.1.7/src/modules/services/module.desc 2017-10-23 23:22:25.000000000 +0300
+++ calamares-3.1.71/src/modules/services/module.desc 1970-01-01 02:00:00.000000000 +0200
@@ -1,6 +0,0 @@
----
-type: "job"
-name: "services"
-interface: "python"
-requires: []
-script: "main.py"
diff -Nuar calamares-3.1.7/src/modules/services/services.conf calamares-3.1.71/src/modules/services/services.conf
--- calamares-3.1.7/src/modules/services/services.conf 2017-10-23 23:22:25.000000000 +0300
+++ calamares-3.1.71/src/modules/services/services.conf 1970-01-01 02:00:00.000000000 +0200
@@ -1,20 +0,0 @@
----
-#systemd services and targets are enabled in this precise order
-
-services:
- - name: "NetworkManager" #name of the service file
- mandatory: false #true=> if enabling fails the installer errors out and quits
- #false=>if enabling fails print warning to console and continue
- - name: "cups"
- mandatory: false
-
-targets:
- - name: "graphical"
- mandatory: true
-
-disable:
- - name: "pacman-init"
- mandatory: false
-
-# Example to express an empty list:
-# disable: []