diff options
Diffstat (limited to 'app-admin/calamares/files/calamares-openrc-dmcrypt-cfg-r1.patch')
-rw-r--r-- | app-admin/calamares/files/calamares-openrc-dmcrypt-cfg-r1.patch | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/app-admin/calamares/files/calamares-openrc-dmcrypt-cfg-r1.patch b/app-admin/calamares/files/calamares-openrc-dmcrypt-cfg-r1.patch new file mode 100644 index 00000000..67279b7c --- /dev/null +++ b/app-admin/calamares/files/calamares-openrc-dmcrypt-cfg-r1.patch @@ -0,0 +1,84 @@ +diff -Nur a/src/modules/openrcdmcryptcfg/main.py b/src/modules/openrcdmcryptcfg/main.py +--- a/src/modules/openrcdmcryptcfg/main.py 1970-01-01 01:00:00.000000000 +0100 ++++ b/src/modules/openrcdmcryptcfg/main.py 2017-12-02 19:40:18.212303089 +0000 +@@ -0,0 +1,65 @@ ++#!/usr/bin/env python3 ++# -*- coding: utf-8 -*- ++# ++# === This file is part of Calamares - <http://github.com/calamares> === ++# ++# Copyright 2017, Ghiunhan Mamut <venerix@redcorelinux.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 ++import os.path ++ ++def write_dmcrypt_conf(partitions, root_mount_point, dmcrypt_conf_path): ++ crypto_target = "" ++ crypto_source = "" ++ ++ for partition in partitions: ++ has_luks = "luksMapperName" in partition ++ skip_partitions = partition["mountPoint"] == "/" or partition["fs"] == "linuxswap" ++ ++ if not has_luks and not skip_partitions: ++ libcalamares.utils.debug( ++ "Skip writing OpenRC LUKS configuration for partition {!s}".format(partition["mountPoint"])) ++ ++ if has_luks and not skip_partitions: ++ crypto_target = partition["luksMapperName"] ++ crypto_source = "/dev/disk/by-uuid/{!s}".format(partition["uuid"]) ++ libcalamares.utils.debug( ++ "Writing OpenRC LUKS configuration for partition {!s}".format(partition["mountPoint"])) ++ ++ with open(os.path.join(root_mount_point, dmcrypt_conf_path), 'a+') as dmcrypt_file: ++ dmcrypt_file.write("\ntarget=" + crypto_target) ++ dmcrypt_file.write("\nsource=" + crypto_source) ++ dmcrypt_file.write("\nkey=/crypto_keyfile.bin") ++ dmcrypt_file.write("\n") ++ ++ if has_luks and skip_partitions: ++ pass # root and swap partitions should be handled by initramfs generators ++ ++ return None ++ ++def run(): ++ """ ++ This module configures OpenRC dmcrypt service for LUKS encrypted partitions. ++ :return: ++ """ ++ ++ root_mount_point = libcalamares.globalstorage.value("rootMountPoint") ++ dmcrypt_conf_path = libcalamares.job.configuration["configFilePath"] ++ partitions = libcalamares.globalstorage.value("partitions") ++ ++ dmcrypt_conf_path = dmcrypt_conf_path.lstrip('/') ++ ++ return write_dmcrypt_conf(partitions, root_mount_point, dmcrypt_conf_path) +diff -Nur a/src/modules/openrcdmcryptcfg/module.desc b/src/modules/openrcdmcryptcfg/module.desc +--- a/src/modules/openrcdmcryptcfg/module.desc 1970-01-01 01:00:00.000000000 +0100 ++++ b/src/modules/openrcdmcryptcfg/module.desc 2017-12-02 16:48:49.663145918 +0000 +@@ -0,0 +1,5 @@ ++--- ++type: "job" ++name: "openrcdmcryptcfg" ++interface: "python" ++script: "main.py" +diff -Nur a/src/modules/openrcdmcryptcfg/openrcdmcryptcfg.conf b/src/modules/openrcdmcryptcfg/openrcdmcryptcfg.conf +--- a/src/modules/openrcdmcryptcfg/openrcdmcryptcfg.conf 1970-01-01 01:00:00.000000000 +0100 ++++ b/src/modules/openrcdmcryptcfg/openrcdmcryptcfg.conf 2017-12-02 16:48:49.663145918 +0000 +@@ -0,0 +1,2 @@ ++--- ++configFilePath: /etc/conf.d/dmcrypt |