From 5ca029df255cdc01ccbe599480e3f89ebd89e060 Mon Sep 17 00:00:00 2001 From: Adriaan de Groot Date: Tue, 30 Nov 2021 16:02:59 +0100 Subject: [PATCH] [luksopenswaphookcfg] Start a C++ port - this module needs work to handle BTRFS special-cases *anyway* - limited in scope, few options: port it while doing the special-cases So far, this is just a C++ stub. SEE #1659 #1644 --- .../luksopenswaphookcfg/CMakeLists.txt | 21 +++++++ src/modules/luksopenswaphookcfg/LOSHJob.cpp | 62 +++++++++++++++++++ src/modules/luksopenswaphookcfg/Tests.cpp | 38 ++++++++++++ src/modules/luksopenswaphookcfg/module.desc | 7 --- 4 files changed, 121 insertions(+), 7 deletions(-) create mode 100644 src/modules/luksopenswaphookcfg/CMakeLists.txt create mode 100644 src/modules/luksopenswaphookcfg/LOSHJob.cpp create mode 100644 src/modules/luksopenswaphookcfg/Tests.cpp delete mode 100644 src/modules/luksopenswaphookcfg/module.desc diff --git a/src/modules/luksopenswaphookcfg/CMakeLists.txt b/src/modules/luksopenswaphookcfg/CMakeLists.txt new file mode 100644 index 000000000..64b6c58bc --- /dev/null +++ b/src/modules/luksopenswaphookcfg/CMakeLists.txt @@ -0,0 +1,21 @@ +# === This file is part of Calamares - === +# +# SPDX-FileCopyrightText: 2021 Adriaan de Groot +# SPDX-License-Identifier: BSD-2-Clause +# + +# Because LUKS Open Swap Hook (Job) is such a mouthful, we'll +# use LOSH all over the place as a shorthand. +calamares_add_plugin( luksopenswaphook + TYPE job + EXPORT_MACRO PLUGINDLLEXPORT_PRO + SOURCES + LOSHJob.cpp + SHARED_LIB +) + +calamares_add_test( + luksopenswaphooktest + SOURCES + Tests.cpp +) diff --git a/src/modules/luksopenswaphookcfg/LOSHJob.cpp b/src/modules/luksopenswaphookcfg/LOSHJob.cpp new file mode 100644 index 000000000..e05b24108 --- /dev/null +++ b/src/modules/luksopenswaphookcfg/LOSHJob.cpp @@ -0,0 +1,62 @@ +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2021 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later + * + */ + +#include "CppJob.h" +#include "DllMacro.h" +#include "utils/Permissions.h" +#include "utils/PluginFactory.h" + +#include +#include +#include + +class PLUGINDLLEXPORT LOSHJob : public Calamares::CppJob +{ + Q_OBJECT + +public: + explicit LOSHJob( QObject* parent = nullptr ); + ~LOSHJob() override; + + QString prettyName() const override; + + Calamares::JobResult exec() override; + + void setConfigurationMap( const QVariantMap& configurationMap ) override; + +private: +}; + +LOSHJob::LOSHJob( QObject* parent ) + : Calamares::CppJob( parent ) +{ +} + +QString +LOSHJob::prettyName() const +{ + return tr( "Configuring encrypted swap." ); +} + + +Calamares::JobResult +LOSHJob::exec() +{ + return Calamares::JobResult::ok(); +} + +void +LOSHJob::setConfigurationMap( const QVariantMap& configurationMap ) +{ +} + +CALAMARES_PLUGIN_FACTORY_DECLARATION( LOSHJobFactory ) +CALAMARES_PLUGIN_FACTORY_DEFINITION( LOSHJobFactory, registerPlugin< LOSHJob >(); ) + +#include "utils/moc-warnings.h" + +#include "LOSHJob.moc" diff --git a/src/modules/luksopenswaphookcfg/Tests.cpp b/src/modules/luksopenswaphookcfg/Tests.cpp new file mode 100644 index 000000000..233701746 --- /dev/null +++ b/src/modules/luksopenswaphookcfg/Tests.cpp @@ -0,0 +1,38 @@ +/* === This file is part of Calamares - === + * + * SPDX-FileCopyrightText: 2021 Adriaan de Groot + * SPDX-License-Identifier: GPL-3.0-or-later + * + */ + +#include "utils/Logger.h" + +#include + +// LOSH = LUKS Open Swap Hook (Job) + +class LOSHTests : public QObject +{ + Q_OBJECT +public: + LOSHTests(); + ~LOSHTests() override {} + +private Q_SLOTS: + void initTestCase(); + + void testTrue(); +}; + +LOSHTests::LOSHTests() {} + +void +LOSHTests::initTestCase() +{ + Logger::setupLogLevel( Logger::LOGDEBUG ); + cDebug() << "LOSH test started."; +} + +#include "utils/moc-warnings.h" + +#include "Tests.moc" diff --git a/src/modules/luksopenswaphookcfg/module.desc b/src/modules/luksopenswaphookcfg/module.desc deleted file mode 100644 index 919a92792..000000000 --- a/src/modules/luksopenswaphookcfg/module.desc +++ /dev/null @@ -1,7 +0,0 @@ -# SPDX-FileCopyrightText: no -# SPDX-License-Identifier: CC0-1.0 ---- -type: "job" -name: "luksopenswaphookcfg" -interface: "python" -script: "main.py"