aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-07-10 14:17:40 +0000
committersaturneric <[email protected]>2024-07-10 14:17:40 +0000
commitc0a2987afd8667e6eb87f9e8d7b14583644b7a6f (patch)
tree3253a787707e49b9fdee16a9a83282827646fede
parentfeat: add macos 13 and 14 and remove macos 11 in ci build config (diff)
downloadGpgFrontend-c0a2987afd8667e6eb87f9e8d7b14583644b7a6f.tar.gz
GpgFrontend-c0a2987afd8667e6eb87f9e8d7b14583644b7a6f.zip
feat: move modules' code out of repo
-rw-r--r--CMakeLists.txt11
-rw-r--r--src/CMakeLists.txt18
-rw-r--r--src/module/CMakeLists.txt23
-rw-r--r--src/module/mods/gpg_info/CMakeLists.txt76
-rw-r--r--src/module/mods/gpg_info/GFModuleExport.h42
-rw-r--r--src/module/mods/gpg_info/GnuPGInfoGatheringModule.cpp526
-rw-r--r--src/module/mods/gpg_info/GnuPGInfoGatheringModule.h56
-rw-r--r--src/module/mods/gpg_info/GpgInfo.cpp79
-rw-r--r--src/module/mods/gpg_info/GpgInfo.h88
-rw-r--r--src/module/mods/gpg_info/QtLoggerFmt.h68
-rw-r--r--src/module/mods/ver_check/CMakeLists.txt76
-rw-r--r--src/module/mods/ver_check/GFModuleExport.h42
-rw-r--r--src/module/mods/ver_check/QtLoggerFmt.h68
-rw-r--r--src/module/mods/ver_check/SoftwareVersion.cpp100
-rw-r--r--src/module/mods/ver_check/SoftwareVersion.h83
-rw-r--r--src/module/mods/ver_check/VersionCheckTask.cpp171
-rw-r--r--src/module/mods/ver_check/VersionCheckTask.h89
-rw-r--r--src/module/mods/ver_check/VersionCheckingModule.cpp164
-rw-r--r--src/module/mods/ver_check/VersionCheckingModule.h56
19 files changed, 32 insertions, 1804 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4f3232ad..76547e65 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -65,9 +65,10 @@ option(GPGFRONTEND_BUILD_TYPE_TEST_ALL
"Generate a graphical interface with all functions" OFF)
option(GPGFRONTEND_BUILD_TYPE_STABLE
"Generate release version" ON)
+option(GPGFRONTEND_BUILD_TYPE_SDK "Generate a usable SDK" OFF)
option(GPGFRONTEND_QT5_BUILD "Swith to Qt5 building mode" OFF)
option(GPGFRONTEND_GENERATE_LINUX_INSTALL_SOFTWARE "Generate an installable version" OFF)
-option(GPGFRONTEND_BUILD_MODS_ONLY "Build Modules Only" OFF)
+
option(GPGFRONTEND_XCODE_TEAM_ID "GpgFrontend Apple Team ID" "NONE")
option(GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY "GpgFrontend Signing Certificate" "NONE")
@@ -124,7 +125,7 @@ if (GPGFRONTEND_GENERATE_LINUX_INSTALL_SOFTWARE)
set(LINUX_INSTALL_SOFTWARE 1)
endif ()
-if (GPGFRONTEND_BUILD_MODS_ONLY)
+if (GPGFRONTEND_BUILD_TYPE_SDK)
set(GPGFRONTEND_BUILD_TYPE_TEST_CORE 0)
set(GPGFRONTEND_BUILD_TYPE_TEST_CORE_AND_COVERAGE 0)
set(GPGFRONTEND_BUILD_TYPE_TEST_UI 0)
@@ -132,7 +133,7 @@ if (GPGFRONTEND_BUILD_MODS_ONLY)
unset(GPGFRONTEND_BUILD_CONFIG)
set(STABLE_BUILD_APPLICATION 0)
- set(BUILD_MODS_ONLY 1)
+ set(BUILD_SDK 1)
endif()
# C++
@@ -370,8 +371,8 @@ if (STABLE_BUILD_APPLICATION)
set(BUILD_TEST 1)
set(BUILD_APPLICATION 1)
set(SUPPORT_MULTI_LANG 1)
-elseif (BUILD_MODS_ONLY)
- message("[+] Build Mods")
+elseif (BUILD_SDK)
+ message("[+] Build SDK")
set(BUILD_CORE 1)
set(BUILD_MODULE 1)
endif ()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 48efd191..d1f51efb 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -112,8 +112,8 @@ if (BUILD_UI)
add_subdirectory(ui)
endif ()
-if (BUILD_MODULE)
- message("[+] Build Module")
+if (BUILD_SDK)
+ message("[+] Build SDK")
add_subdirectory(module)
endif ()
@@ -527,3 +527,17 @@ if (LINUX AND LINUX_INSTALL_SOFTWARE)
install(DIRECTORY ${CMAKE_SOURCE_DIR}/resource/lfs/hicolor/
DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/icons/hicolor/)
endif ()
+
+# if building sdk
+if (BUILD_SDK)
+ include(GNUInstallDirs)
+ set(GPGFRONTEND_SDK_INSTALL_LIBRARIES
+ gpgfrontend_module_sdk)
+
+ install(TARGETS ${GPGFRONTEND_SDK_INSTALL_LIBRARIES}
+ EXPORT GpgFrontendTargets
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+endif ()
diff --git a/src/module/CMakeLists.txt b/src/module/CMakeLists.txt
index 8d894b00..7f71c5a2 100644
--- a/src/module/CMakeLists.txt
+++ b/src/module/CMakeLists.txt
@@ -41,6 +41,15 @@ target_include_directories(gpgfrontend_module_sdk PUBLIC sdk)
# link module system
target_link_libraries(gpgfrontend_module_sdk PRIVATE gpgfrontend_core)
+# sdk export headers
+file(GLOB _headerPath "${CMAKE_CURRENT_SOURCE_DIR}/sdk/*.h")
+set_target_properties(gpgfrontend_module_sdk PROPERTIES PUBLIC_HEADER "${_headerPath}")
+
+# lib output path
+set_target_properties(gpgfrontend_module_sdk PROPERTIES
+ LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/mods
+ RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/mods)
+
if (XCODE_BUILD)
set_target_properties(gpgfrontend_module_sdk
PROPERTIES
@@ -49,16 +58,4 @@ if (XCODE_BUILD)
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}
XCODE_ATTRIBUTE_SKIP_INSTALL "Yes"
XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}")
-endif ()
-
-# tracking modules
-set(all_integrated_module_libraries "")
-file(GLOB children LIST_DIRECTORIES true "mods/*")
-foreach(child ${children})
- if(IS_DIRECTORY ${child})
- get_filename_component(dirName ${child} NAME)
- add_subdirectory("mods/${dirName}")
-
- list(APPEND all_integrated_module_libraries ${dirName})
- endif()
-endforeach() \ No newline at end of file
+endif () \ No newline at end of file
diff --git a/src/module/mods/gpg_info/CMakeLists.txt b/src/module/mods/gpg_info/CMakeLists.txt
deleted file mode 100644
index 6660f5cb..00000000
--- a/src/module/mods/gpg_info/CMakeLists.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright (C) 2021 Saturneric <[email protected]>
-#
-# This file is part of GpgFrontend.
-#
-# GpgFrontend 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.
-#
-# GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
-#
-# The initial version of the source code is inherited from
-# the gpg4usb project, which is under GPL-3.0-or-later.
-#
-# All the source code of GpgFrontend was modified and released by
-# Saturneric <[email protected]> starting on May 12, 2021.
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-# com.bktus.gpgfrontend.module.integrated.gnupg_info_gathering
-
-aux_source_directory(. INTEGRATED_MODULE_SOURCE)
-
-# define libgpgfrontend_module
-add_library(mod_gpg_info SHARED ${INTEGRATED_MODULE_SOURCE})
-set(_export_file "${CMAKE_CURRENT_SOURCE_DIR}/GFModuleExport.h")
-generate_export_header(mod_gpg_info
- BASE_NAME "GF_MODULE"
- EXPORT_FILE_NAME "${_export_file}")
-
-target_include_directories(mod_gpg_info PRIVATE
- ${CMAKE_SOURCE_DIR}/third_party/spdlog/include)
-
-# set output directory
-set_target_properties(mod_gpg_info PROPERTIES
- LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/mods
- RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/mods)
-
-if (XCODE_BUILD)
- set_target_properties(mod_gpg_info
- PROPERTIES
- ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}
- LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}
- RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}
- XCODE_ATTRIBUTE_SKIP_INSTALL "Yes"
- XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}")
-endif ()
-
-if (LINUX AND LINUX_INSTALL_SOFTWARE)
- install(TARGETS mod_gpg_info
- LIBRARY DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/mods/")
-endif()
-
-# link sdk
-target_link_libraries(mod_gpg_info PRIVATE
- gpgfrontend_module_sdk)
-
-if(GPGFRONTEND_QT5_BUILD)
- # link Qt core
- target_link_libraries(mod_gpg_info PRIVATE Qt5::Core)
-else()
- # link Qt core
- target_link_libraries(mod_gpg_info PRIVATE Qt6::Core)
-endif()
-
-# property
-set_property(TARGET mod_gpg_info PROPERTY AUTOMOC ON)
-
-# using std c++ 17
-target_compile_features(mod_gpg_info PRIVATE cxx_std_17) \ No newline at end of file
diff --git a/src/module/mods/gpg_info/GFModuleExport.h b/src/module/mods/gpg_info/GFModuleExport.h
deleted file mode 100644
index a1fc1053..00000000
--- a/src/module/mods/gpg_info/GFModuleExport.h
+++ /dev/null
@@ -1,42 +0,0 @@
-
-#ifndef GF_MODULE_EXPORT_H
-#define GF_MODULE_EXPORT_H
-
-#ifdef GF_MODULE_STATIC_DEFINE
-# define GF_MODULE_EXPORT
-# define GF_MODULE_NO_EXPORT
-#else
-# ifndef GF_MODULE_EXPORT
-# ifdef mod_gpg_info_EXPORTS
- /* We are building this library */
-# define GF_MODULE_EXPORT __attribute__((visibility("default")))
-# else
- /* We are using this library */
-# define GF_MODULE_EXPORT __attribute__((visibility("default")))
-# endif
-# endif
-
-# ifndef GF_MODULE_NO_EXPORT
-# define GF_MODULE_NO_EXPORT __attribute__((visibility("hidden")))
-# endif
-#endif
-
-#ifndef GF_MODULE_DEPRECATED
-# define GF_MODULE_DEPRECATED __attribute__ ((__deprecated__))
-#endif
-
-#ifndef GF_MODULE_DEPRECATED_EXPORT
-# define GF_MODULE_DEPRECATED_EXPORT GF_MODULE_EXPORT GF_MODULE_DEPRECATED
-#endif
-
-#ifndef GF_MODULE_DEPRECATED_NO_EXPORT
-# define GF_MODULE_DEPRECATED_NO_EXPORT GF_MODULE_NO_EXPORT GF_MODULE_DEPRECATED
-#endif
-
-#if 0 /* DEFINE_NO_DEPRECATED */
-# ifndef GF_MODULE_NO_DEPRECATED
-# define GF_MODULE_NO_DEPRECATED
-# endif
-#endif
-
-#endif /* GF_MODULE_EXPORT_H */
diff --git a/src/module/mods/gpg_info/GnuPGInfoGatheringModule.cpp b/src/module/mods/gpg_info/GnuPGInfoGatheringModule.cpp
deleted file mode 100644
index 8d400c89..00000000
--- a/src/module/mods/gpg_info/GnuPGInfoGatheringModule.cpp
+++ /dev/null
@@ -1,526 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric <[email protected]>
- *
- * This file is part of GpgFrontend.
- *
- * GpgFrontend 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.
- *
- * GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric <[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#include "GnuPGInfoGatheringModule.h"
-
-#include <GFSDKBasic.h>
-#include <GFSDKBuildInfo.h>
-#include <GFSDKLog.h>
-#include <spdlog/spdlog.h>
-
-// qt
-#include <QCryptographicHash>
-#include <QFileInfo>
-#include <QJsonDocument>
-#include <QString>
-
-// c++
-#include <optional>
-
-#include "GpgInfo.h"
-
-template <>
-struct fmt::formatter<QString> {
- // Parses format specifications.
- constexpr auto parse(format_parse_context &ctx) -> decltype(ctx.begin()) {
- return ctx.begin();
- }
-
- // Formats the QString qstr and writes it to the output.
- template <typename FormatContext>
- auto format(const QString &qstr, FormatContext &ctx) const
- -> decltype(ctx.out()) {
- // Convert QString to UTF-8 QString (to handle Unicode characters
- // correctly)
- QByteArray utf8_array = qstr.toUtf8();
- return fmt::format_to(ctx.out(), "{}", utf8_array.constData());
- }
-};
-
-template <>
-struct fmt::formatter<QByteArray> {
- // Parses format specifications.
- constexpr auto parse(format_parse_context &ctx) -> decltype(ctx.begin()) {
- return ctx.begin();
- }
-
- // Formats the QString qstr and writes it to the output.
- template <typename FormatContext>
- auto format(const QByteArray &qarray, FormatContext &ctx) const
- -> decltype(ctx.out()) {
- // Convert QString to UTF-8 QString (to handle Unicode characters
- // correctly)
- return fmt::format_to(ctx.out(), "{}", qarray.constData());
- }
-};
-
-extern auto CalculateBinaryChacksum(const QString &path)
- -> std::optional<QString>;
-
-extern void GetGpgComponentInfos(void *, int, const char *, const char *);
-
-extern void GetGpgDirectoryInfos(void *, int, const char *, const char *);
-
-extern void GetGpgOptionInfos(void *, int, const char *, const char *);
-
-using Context = struct {
- QString gpgme_version;
- QString gpgconf_path;
- GpgComponentInfo component_info;
-};
-
-auto GFGetModuleGFSDKVersion() -> const char * {
- return GFModuleStrDup(GF_SDK_VERSION_STR);
-}
-
-auto GFGetModuleQtEnvVersion() -> const char * {
- return GFModuleStrDup(QT_VERSION_STR);
-}
-
-auto GFGetModuleID() -> const char * {
- return GFModuleStrDup("com.bktus.gpgfrontend.module.gnupg_info_gathering");
-}
-
-auto GFGetModuleVersion() -> const char * { return GFModuleStrDup("1.0.0"); }
-
-auto GFGetModuleMetaData() -> GFModuleMetaData * {
- auto *p_meta = static_cast<GFModuleMetaData *>(
- GFAllocateMemory(sizeof(GFModuleMetaData)));
- auto *h_meta = p_meta;
-
- p_meta->key = "Name";
- p_meta->value = "GatherGnupgInfo";
- p_meta->next = static_cast<GFModuleMetaData *>(
- GFAllocateMemory(sizeof(GFModuleMetaData)));
- p_meta = p_meta->next;
-
- p_meta->key = "Description";
- p_meta->value = "Try gathering gnupg informations";
- p_meta->next = static_cast<GFModuleMetaData *>(
- GFAllocateMemory(sizeof(GFModuleMetaData)));
- p_meta = p_meta->next;
-
- p_meta->key = "Author";
- p_meta->value = "Saturneric";
- p_meta->next = nullptr;
- return h_meta;
-}
-
-auto GFRegisterModule() -> int {
- GFModuleLogDebug("gnupg info gathering module registering");
- return 0;
-}
-
-auto GFActiveModule() -> int {
- GFModuleLogDebug("gnupg info gathering module activating");
- GFModuleListenEvent(GFGetModuleID(),
- GFModuleStrDup("REQUEST_GATHERING_GNUPG_INFO"));
- return 0;
-}
-
-auto GFExecuteModule(GFModuleEvent *event) -> int {
- GFModuleLogDebug(
- fmt::format("gnupg info gathering module executing, event id: {}",
- event->id)
- .c_str());
-
- GFModuleLogDebug("start to load extra info at module gnupginfogathering...");
-
- const auto *const gpgme_version = GFModuleRetrieveRTValueOrDefault(
- GFModuleStrDup("core"), GFModuleStrDup("gpgme.version"),
- GFModuleStrDup("0.0.0"));
- GFModuleLogDebug(
- fmt::format("got gpgme version from rt: {}", gpgme_version).c_str());
-
- const auto *const gpgconf_path = GFModuleRetrieveRTValueOrDefault(
- GFModuleStrDup("core"), GFModuleStrDup("gpgme.ctx.gpgconf_path"),
- GFModuleStrDup(""));
- GFModuleLogDebug(
- fmt::format("got gpgconf path from rt: {}", gpgconf_path).c_str());
-
- auto context = Context{gpgme_version, gpgconf_path};
-
- // get all components
- const char *argv[] = {GFModuleStrDup("--list-components")};
- GFExecuteCommandSync(gpgconf_path, 1, argv, GetGpgComponentInfos, &context);
- GFModuleLogDebug("load gnupg component info done.");
-
-#ifdef QT5_BUILD
- QVector<GFCommandExecuteContext> exec_contexts;
-#else
- QList<GFCommandExecuteContext> exec_contexts;
-#endif
-
- const char **argv_0 =
- static_cast<const char **>(GFAllocateMemory(sizeof(const char *)));
- argv_0[0] = GFModuleStrDup("--list-dirs");
-
- exec_contexts.push_back(
- {gpgconf_path, 1, argv_0, GetGpgDirectoryInfos, nullptr});
-
- char **components_c_array;
- int ret = GFModuleListRTChildKeys(
- GFGetModuleID(), GFModuleStrDup("gnupg.components"), &components_c_array);
- if (components_c_array == nullptr || ret == 0) return -1;
-
- QStringList components;
- auto *p_a = components_c_array;
- for (int i = 0; i < ret; i++) components.append(QString::fromUtf8(p_a[i]));
-
- for (const auto &component : components) {
- const auto *component_info_json = GFModuleRetrieveRTValueOrDefault(
- GFGetModuleID(),
- GFModuleStrDup(QString("gnupg.components.%1").arg(component).toUtf8()),
- nullptr);
-
- if (component_info_json == nullptr) continue;
-
- auto jsonlized_component_info =
- QJsonDocument::fromJson(component_info_json);
- assert(jsonlized_component_info.isObject());
-
- auto component_info = GpgComponentInfo(jsonlized_component_info.object());
- GFModuleLogDebug(fmt::format("gpgconf check options ready, "
- "component: {}",
- component_info.name)
- .c_str());
-
- if (component_info.name == "gpgme" || component_info.name == "gpgconf") {
- continue;
- }
-
- auto *context = new (GFAllocateMemory(sizeof(Context)))
- Context{gpgme_version, gpgconf_path, component_info};
-
- const char **argv_0 =
- static_cast<const char **>(GFAllocateMemory(sizeof(const char *) * 2));
- argv_0[0] = GFModuleStrDup("--list-options"),
- argv_0[1] = GFModuleStrDup(component_info.name.toUtf8());
- exec_contexts.push_back(
- {gpgconf_path, 2, argv_0, GetGpgOptionInfos, context});
- }
-
- GFExecuteCommandBatchSync(static_cast<int32_t>(exec_contexts.size()),
- exec_contexts.constData());
- GFModuleUpsertRTValueBool(GFGetModuleID(),
- GFModuleStrDup("gnupg.gathering_done"), 1);
-
- char **event_argv =
- static_cast<char **>(GFAllocateMemory(sizeof(char **) * 1));
- event_argv[0] = GFModuleStrDup("0");
-
- GFModuleTriggerModuleEventCallback(event, GFGetModuleID(), 1, event_argv);
-
- GFModuleLogDebug("gnupg external info gathering done");
- return 0;
-}
-
-auto GFDeactiveModule() -> int { return 0; }
-
-auto GFUnregisterModule() -> int {
- GFModuleLogDebug("gnupg info gathering module unregistering");
- return 0;
-}
-
-auto CalculateBinaryChacksum(const QString &path) -> std::optional<QString> {
- // check file info and access rights
- QFileInfo info(path);
- if (!info.exists() || !info.isFile() || !info.isReadable()) {
- GFModuleLogError(fmt::format("get info for file {} error, exists: {}",
- info.filePath(), info.exists())
- .c_str());
- return {};
- }
-
- // open and read file
- QFile f(info.filePath());
- if (!f.open(QIODevice::ReadOnly)) {
- GFModuleLogError(fmt::format("open {} to calculate checksum error: {}",
- path.toStdString(),
- f.errorString().toStdString())
- .c_str());
- return {};
- }
-
- QCryptographicHash hash_sha(QCryptographicHash::Sha256);
-
- // read data by chunks
- const qint64 buffer_size = 8192; // Define a suitable buffer size
- while (!f.atEnd()) {
- QByteArray const buffer = f.read(buffer_size);
- if (buffer.isEmpty()) {
- GFModuleLogError(fmt::format("error reading file {} during "
- "checksum calculation",
- path.toStdString())
- .c_str());
- return {};
- }
- hash_sha.addData(buffer);
- }
-
- // close the file
- f.close();
-
- // return the first 6 characters of the SHA-256 hash
- // of the file
- return QString(hash_sha.result().toHex()).left(6);
-}
-
-void GetGpgComponentInfos(void *data, int exit_code, const char *out,
- const char *err) {
- auto *context = reinterpret_cast<Context *>(data);
- auto p_out = QString::fromUtf8(out);
- auto p_err = QString::fromUtf8(err);
-
- GFModuleLogDebug(fmt::format("gpgconf components exit_code: {} "
- "process stdout size: {}",
- exit_code, p_out.size())
- .c_str());
-
- if (exit_code != 0) {
- GFModuleLogError(fmt::format("gpgconf execute error, process "
- "stderr: {}, "
- "process stdout: {}",
- p_err, p_out)
- .c_str());
- return;
- }
-
- std::vector<GpgComponentInfo> component_infos;
- GpgComponentInfo c_i_gpgme;
- c_i_gpgme.name = "gpgme";
- c_i_gpgme.desc = "GPG Made Easy";
- c_i_gpgme.version = context->gpgme_version;
- c_i_gpgme.path = "Embedded In";
- c_i_gpgme.binary_checksum = "/";
-
- GpgComponentInfo c_i_gpgconf;
- c_i_gpgconf.name = "gpgconf";
- c_i_gpgconf.desc = "GPG Configure";
- c_i_gpgconf.version = "/";
- c_i_gpgconf.path = context->gpgconf_path;
- auto gpgconf_binary_checksum = CalculateBinaryChacksum(context->gpgconf_path);
- c_i_gpgconf.binary_checksum =
- (gpgconf_binary_checksum.has_value() ? gpgconf_binary_checksum.value()
- : QString("/"));
-
- component_infos.push_back(c_i_gpgme);
- component_infos.push_back(c_i_gpgconf);
-
- auto const jsonlized_gpgme_component_info = c_i_gpgme.Json();
- auto const jsonlized_gpgconf_component_info = c_i_gpgconf.Json();
- GFModuleUpsertRTValue(
- GFGetModuleID(), GFModuleStrDup("gnupg.components.gpgme"),
- GFModuleStrDup(QJsonDocument(jsonlized_gpgme_component_info).toJson()));
- GFModuleUpsertRTValue(
- GFGetModuleID(), GFModuleStrDup("gnupg.components.gpgconf"),
- GFModuleStrDup(QJsonDocument(jsonlized_gpgconf_component_info).toJson()));
-
- auto line_split_list = p_out.split("\n");
-
- for (const auto &line : line_split_list) {
- auto info_split_list = line.split(":");
-
- if (info_split_list.size() != 3) continue;
-
- auto component_name = info_split_list[0].trimmed();
- auto component_desc = info_split_list[1].trimmed();
- auto component_path = info_split_list[2].trimmed();
-
-#ifdef WINDOWS
- // replace some special substrings on windows
- // platform
- component_path.replace("%3a", ":");
-#endif
-
- auto binary_checksum = CalculateBinaryChacksum(component_path);
-
- GFModuleLogDebug(
- fmt::format("gnupg component name: {} desc: "
- "{} checksum: {} path: {} ",
- component_name, component_desc,
- binary_checksum.has_value() ? binary_checksum.value() : "/",
- component_path)
- .c_str());
-
- QString version = "/";
-
- if (component_name == "gpg") {
- version = GFModuleRetrieveRTValueOrDefault(
- GFModuleStrDup("core"), GFModuleStrDup("gpgme.ctx.gnupg_version"),
- GFModuleStrDup("2.0.0"));
- }
- if (component_name == "gpg-agent") {
- GFModuleUpsertRTValue(GFGetModuleID(),
- GFModuleStrDup("gnupg.gpg_agent_path"),
- GFModuleStrDup(QString(component_path).toUtf8()));
- }
- if (component_name == "dirmngr") {
- GFModuleUpsertRTValue(GFGetModuleID(),
- GFModuleStrDup("gnupg.dirmngr_path"),
- GFModuleStrDup(QString(component_path).toUtf8()));
- }
- if (component_name == "keyboxd") {
- GFModuleUpsertRTValue(GFGetModuleID(),
- GFModuleStrDup("gnupg.keyboxd_path"),
- GFModuleStrDup(QString(component_path).toUtf8()));
- }
-
- {
- GpgComponentInfo c_i;
- c_i.name = component_name;
- c_i.desc = component_desc;
- c_i.version = version;
- c_i.path = component_path;
- c_i.binary_checksum =
- (binary_checksum.has_value() ? binary_checksum.value()
- : QString("/"));
-
- auto const jsonlized_component_info = c_i.Json();
- GFModuleUpsertRTValue(
- GFGetModuleID(),
- GFModuleStrDup(
- QString("gnupg.components.%1").arg(component_name).toUtf8()),
- GFModuleStrDup(QJsonDocument(jsonlized_component_info).toJson()));
-
- component_infos.push_back(c_i);
- }
-
- GFModuleLogDebug("load gnupg component info actually done.");
- }
-}
-
-void GetGpgDirectoryInfos(void *, int exit_code, const char *out,
- const char *err) {
- if (exit_code != 0) return;
-
- auto p_out = QString::fromUtf8(out);
- auto p_err = QString::fromUtf8(err);
- auto line_split_list = p_out.split("\n");
-
- for (const auto &line : line_split_list) {
- auto info_split_list = line.split(":");
- GFModuleLogDebug(fmt::format("gpgconf direcrotries info line: "
- "{} info size: {}",
- line, info_split_list.size())
- .c_str());
-
- if (info_split_list.size() != 2) continue;
-
- auto configuration_name = info_split_list[0].trimmed();
- auto configuration_value = info_split_list[1].trimmed();
-
-#ifdef WINDOWS
- // replace some special substrings on windows
- // platform
- configuration_value.replace("%3a", ":");
-#endif
-
- // record gnupg home path
- if (configuration_name == "homedir") {
- GFModuleUpsertRTValue(GFGetModuleID(), GFModuleStrDup("gnupg.home_path"),
- GFModuleStrDup(configuration_value.toUtf8()));
- }
-
- GFModuleUpsertRTValue(
- GFGetModuleID(),
- GFModuleStrDup(
- QString("gnupg.dirs.%1").arg(configuration_name).toUtf8()),
- GFModuleStrDup(configuration_value.toUtf8()));
- }
-}
-
-void GetGpgOptionInfos(void *data, int exit_code, const char *out,
- const char *err) {
- if (exit_code != 0) return;
-
- auto p_out = QString::fromUtf8(out);
- auto p_err = QString::fromUtf8(err);
- auto *context = reinterpret_cast<Context *>(data);
- auto component_name = context->component_info.name;
-
- GFModuleLogDebug(fmt::format("gpgconf {} avaliable options "
- "exit_code: {} process stdout "
- "size: {} ",
- component_name, exit_code, p_out.size())
- .c_str());
-
- std::vector<GpgOptionsInfo> options_infos;
-
- auto line_split_list = p_out.split("\n");
-
- for (const auto &line : line_split_list) {
- auto info_split_list = line.split(":");
-
- GFModuleLogDebug(fmt::format("component {} avaliable options "
- "line: {} info size: {}",
- component_name, line, info_split_list.size())
- .c_str());
-
- if (info_split_list.size() < 10) continue;
-
- // The format of each line is:
- // name:flags:level:description:type:alt-type:argname:default:argdef:value
-
- auto option_name = info_split_list[0].trimmed();
- auto option_flags = info_split_list[1].trimmed();
- auto option_level = info_split_list[2].trimmed();
- auto option_desc = info_split_list[3].trimmed();
- auto option_type = info_split_list[4].trimmed();
- auto option_alt_type = info_split_list[5].trimmed();
- auto option_argname = info_split_list[6].trimmed();
- auto option_default = info_split_list[7].trimmed();
- auto option_argdef = info_split_list[8].trimmed();
- auto option_value = info_split_list[9].trimmed();
-
- GpgOptionsInfo info;
- info.name = option_name;
- info.flags = option_flags;
- info.level = option_level;
- info.description = option_desc;
- info.type = option_type;
- info.alt_type = option_alt_type;
- info.argname = option_argname;
- info.default_value = option_default;
- info.argdef = option_argdef;
- info.value = option_value;
-
- auto const jsonlized_option_info = info.Json();
- GFModuleUpsertRTValue(
- GFGetModuleID(),
- GFModuleStrDup(QString("gnupg.components.%1.options.%2")
- .arg(component_name)
- .arg(option_name)
- .toUtf8()),
- GFModuleStrDup(QJsonDocument(jsonlized_option_info).toJson()));
- options_infos.push_back(info);
- }
-
- context->~Context();
- GFFreeMemory(context);
-}
diff --git a/src/module/mods/gpg_info/GnuPGInfoGatheringModule.h b/src/module/mods/gpg_info/GnuPGInfoGatheringModule.h
deleted file mode 100644
index 35ee4ac3..00000000
--- a/src/module/mods/gpg_info/GnuPGInfoGatheringModule.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric <[email protected]>
- *
- * This file is part of GpgFrontend.
- *
- * GpgFrontend 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.
- *
- * GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric <[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#pragma once
-
-#include <GFSDKModule.h>
-
-#include "GFModuleExport.h"
-
-extern "C" {
-
-auto GF_MODULE_EXPORT GFGetModuleGFSDKVersion() -> const char *;
-
-auto GF_MODULE_EXPORT GFGetModuleQtEnvVersion() -> const char *;
-
-auto GF_MODULE_EXPORT GFGetModuleID() -> const char *;
-
-auto GF_MODULE_EXPORT GFGetModuleVersion() -> const char *;
-
-auto GF_MODULE_EXPORT GFGetModuleMetaData() -> GFModuleMetaData *;
-
-auto GF_MODULE_EXPORT GFRegisterModule() -> int;
-
-auto GF_MODULE_EXPORT GFActiveModule() -> int;
-
-auto GF_MODULE_EXPORT GFExecuteModule(GFModuleEvent *) -> int;
-
-auto GF_MODULE_EXPORT GFDeactiveModule() -> int;
-
-auto GF_MODULE_EXPORT GFUnregisterModule() -> int;
-};
diff --git a/src/module/mods/gpg_info/GpgInfo.cpp b/src/module/mods/gpg_info/GpgInfo.cpp
deleted file mode 100644
index 680f4a8a..00000000
--- a/src/module/mods/gpg_info/GpgInfo.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric <[email protected]>
- *
- * This file is part of GpgFrontend.
- *
- * GpgFrontend 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.
- *
- * GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric <[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#include "GpgInfo.h"
-
-GpgOptionsInfo::GpgOptionsInfo(const QJsonObject &j) {
- if (const auto v = j["name"]; v.isString()) name = v.toString();
- if (const auto v = j["flags"]; v.isString()) flags = v.toString();
- if (const auto v = j["level"]; v.isString()) level = v.toString();
- if (const auto v = j["description"]; v.isString()) description = v.toString();
- if (const auto v = j["type"]; v.isString()) type = v.toString();
- if (const auto v = j["alt_type"]; v.isString()) alt_type = v.toString();
- if (const auto v = j["argname"]; v.isString()) argname = v.toString();
- if (const auto v = j["default_value"]; v.isString()) {
- default_value = v.toString();
- }
- if (const auto v = j["argdef"]; v.isString()) argdef = v.toString();
- if (const auto v = j["value"]; v.isString()) value = v.toString();
-}
-
-auto GpgOptionsInfo::Json() const -> QJsonObject {
- QJsonObject j;
- j["name"] = name;
- j["flags"] = flags;
- j["level"] = level;
- j["description"] = description;
- j["type"] = type;
- j["alt_type"] = alt_type;
- j["argname"] = argname;
- j["default_value"] = default_value;
- j["argdef"] = argdef;
- j["value"] = value;
- return j;
-}
-
-auto GpgComponentInfo::Json() const -> QJsonObject {
- QJsonObject j;
- j["name"] = name;
- j["desc"] = desc;
- j["version"] = version;
- j["path"] = path;
- j["binary_checksum"] = binary_checksum;
- return j;
-}
-
-GpgComponentInfo::GpgComponentInfo(const QJsonObject &j) {
- if (const auto v = j["name"]; v.isString()) name = v.toString();
- if (const auto v = j["desc"]; v.isString()) desc = v.toString();
- if (const auto v = j["version"]; v.isString()) version = v.toString();
- if (const auto v = j["path"]; v.isString()) path = v.toString();
- if (const auto v = j["binary_checksum"]; v.isString()) {
- binary_checksum = v.toString();
- }
-}
diff --git a/src/module/mods/gpg_info/GpgInfo.h b/src/module/mods/gpg_info/GpgInfo.h
deleted file mode 100644
index 1aacc207..00000000
--- a/src/module/mods/gpg_info/GpgInfo.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric <[email protected]>
- *
- * This file is part of GpgFrontend.
- *
- * GpgFrontend 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.
- *
- * GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric <[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#pragma once
-
-#include <QJsonObject>
-#include <QString>
-#include <map>
-
-/**
- * @brief Use to record some info about gnupg
- *
- */
-class GpgInfo {
- public:
- QString GnuPGHomePath; ///< value of ---homedir
-
- std::map<QString, std::vector<QString>> ComponentsInfo; ///<
- std::map<QString, std::vector<QString>> ConfigurationsInfo; ///<
- std::map<QString, std::vector<QString>> OptionsInfo; ///<
- std::map<QString, std::vector<QString>> AvailableOptionsInfo; ///<
-};
-
-/**
- * @brief Use to record some info about gnupg components
- *
- */
-struct GpgComponentInfo {
- QString name;
- QString desc;
- QString version;
- QString path;
- QString binary_checksum;
-
- GpgComponentInfo() = default;
-
- explicit GpgComponentInfo(const QJsonObject &j);
-
- [[nodiscard]] auto Json() const -> QJsonObject;
-};
-
-/**
- * The format of each line is:
- * name:flags:level:description:type:alt-type:argname:default:argdef:value
- */
-struct GpgOptionsInfo {
- QString name;
- QString flags;
- QString level;
- QString description;
- QString type;
- QString alt_type;
- QString argname;
- QString default_value;
- QString argdef;
- QString value;
-
- GpgOptionsInfo() = default;
-
- explicit GpgOptionsInfo(const QJsonObject &j);
-
- [[nodiscard]] auto Json() const -> QJsonObject;
-};
diff --git a/src/module/mods/gpg_info/QtLoggerFmt.h b/src/module/mods/gpg_info/QtLoggerFmt.h
deleted file mode 100644
index 23997465..00000000
--- a/src/module/mods/gpg_info/QtLoggerFmt.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric <[email protected]>
- *
- * This file is part of GpgFrontend.
- *
- * GpgFrontend 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.
- *
- * GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric <[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#pragma once
-
-#include <spdlog/spdlog.h>
-
-#include <QString>
-
-template <>
-struct fmt::formatter<QString> {
- // Parses format specifications.
- constexpr auto parse(format_parse_context& ctx) -> decltype(ctx.begin()) {
- return ctx.begin();
- }
-
- // Formats the QString qstr and writes it to the output.
- template <typename FormatContext>
- auto format(const QString& qstr, FormatContext& ctx) const
- -> decltype(ctx.out()) {
- // Convert QString to UTF-8 QString (to handle Unicode characters
- // correctly)
- QByteArray utf8_array = qstr.toUtf8();
- return fmt::format_to(ctx.out(), "{}", utf8_array.constData());
- }
-};
-
-template <>
-struct fmt::formatter<QByteArray> {
- // Parses format specifications.
- constexpr auto parse(format_parse_context& ctx) -> decltype(ctx.begin()) {
- return ctx.begin();
- }
-
- // Formats the QString qstr and writes it to the output.
- template <typename FormatContext>
- auto format(const QByteArray& qarray, FormatContext& ctx) const
- -> decltype(ctx.out()) {
- // Convert QString to UTF-8 QString (to handle Unicode characters
- // correctly)
- return fmt::format_to(ctx.out(), "{}", qarray.constData());
- }
-};
diff --git a/src/module/mods/ver_check/CMakeLists.txt b/src/module/mods/ver_check/CMakeLists.txt
deleted file mode 100644
index b07a499a..00000000
--- a/src/module/mods/ver_check/CMakeLists.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright (C) 2021 Saturneric <[email protected]>
-#
-# This file is part of GpgFrontend.
-#
-# GpgFrontend 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.
-#
-# GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
-#
-# The initial version of the source code is inherited from
-# the gpg4usb project, which is under GPL-3.0-or-later.
-#
-# All the source code of GpgFrontend was modified and released by
-# Saturneric <[email protected]> starting on May 12, 2021.
-#
-# SPDX-License-Identifier: GPL-3.0-or-later
-
-# com.bktus.gpgfrontend.module.integrated.version_checking
-
-aux_source_directory(. INTEGRATED_MODULE_SOURCE)
-
-# define libgpgfrontend_module
-add_library(mod_ver_check SHARED ${INTEGRATED_MODULE_SOURCE})
-set(_export_file "${CMAKE_CURRENT_SOURCE_DIR}/GFModuleExport.h")
-generate_export_header(mod_ver_check
- BASE_NAME "GF_MODULE"
- EXPORT_FILE_NAME "${_export_file}")
-
-target_include_directories(mod_ver_check PRIVATE
- ${CMAKE_SOURCE_DIR}/third_party/spdlog/include)
-
-# set output directory
-set_target_properties(mod_ver_check PROPERTIES
- LIBRARY_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/mods
- RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/mods)
-
-if (XCODE_BUILD)
- set_target_properties(mod_ver_check
- PROPERTIES
- ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}
- LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}
- RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}
- XCODE_ATTRIBUTE_SKIP_INSTALL "Yes"
- XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "${GPGFRONTEND_XOCDE_CODE_SIGN_IDENTITY}")
-endif ()
-
-if (LINUX AND LINUX_INSTALL_SOFTWARE)
- install(TARGETS mod_ver_check
- LIBRARY DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/mods/")
-endif()
-
-# link sdk
-target_link_libraries(mod_ver_check PRIVATE
- gpgfrontend_module_sdk)
-
-if(GPGFRONTEND_QT5_BUILD)
- # link Qt
- target_link_libraries(mod_ver_check PUBLIC Qt5::Core Qt5::Network)
-else()
- # link Qt
- target_link_libraries(mod_ver_check PUBLIC Qt6::Core Qt6::Network)
-endif()
-
-# property
-set_property(TARGET mod_ver_check PROPERTY AUTOMOC ON)
-
-# using std c++ 17
-target_compile_features(mod_ver_check PRIVATE cxx_std_17) \ No newline at end of file
diff --git a/src/module/mods/ver_check/GFModuleExport.h b/src/module/mods/ver_check/GFModuleExport.h
deleted file mode 100644
index ce663b5f..00000000
--- a/src/module/mods/ver_check/GFModuleExport.h
+++ /dev/null
@@ -1,42 +0,0 @@
-
-#ifndef GF_MODULE_EXPORT_H
-#define GF_MODULE_EXPORT_H
-
-#ifdef GF_MODULE_STATIC_DEFINE
-# define GF_MODULE_EXPORT
-# define GF_MODULE_NO_EXPORT
-#else
-# ifndef GF_MODULE_EXPORT
-# ifdef mod_ver_check_EXPORTS
- /* We are building this library */
-# define GF_MODULE_EXPORT __attribute__((visibility("default")))
-# else
- /* We are using this library */
-# define GF_MODULE_EXPORT __attribute__((visibility("default")))
-# endif
-# endif
-
-# ifndef GF_MODULE_NO_EXPORT
-# define GF_MODULE_NO_EXPORT __attribute__((visibility("hidden")))
-# endif
-#endif
-
-#ifndef GF_MODULE_DEPRECATED
-# define GF_MODULE_DEPRECATED __attribute__ ((__deprecated__))
-#endif
-
-#ifndef GF_MODULE_DEPRECATED_EXPORT
-# define GF_MODULE_DEPRECATED_EXPORT GF_MODULE_EXPORT GF_MODULE_DEPRECATED
-#endif
-
-#ifndef GF_MODULE_DEPRECATED_NO_EXPORT
-# define GF_MODULE_DEPRECATED_NO_EXPORT GF_MODULE_NO_EXPORT GF_MODULE_DEPRECATED
-#endif
-
-#if 0 /* DEFINE_NO_DEPRECATED */
-# ifndef GF_MODULE_NO_DEPRECATED
-# define GF_MODULE_NO_DEPRECATED
-# endif
-#endif
-
-#endif /* GF_MODULE_EXPORT_H */
diff --git a/src/module/mods/ver_check/QtLoggerFmt.h b/src/module/mods/ver_check/QtLoggerFmt.h
deleted file mode 100644
index 23997465..00000000
--- a/src/module/mods/ver_check/QtLoggerFmt.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric <[email protected]>
- *
- * This file is part of GpgFrontend.
- *
- * GpgFrontend 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.
- *
- * GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric <[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#pragma once
-
-#include <spdlog/spdlog.h>
-
-#include <QString>
-
-template <>
-struct fmt::formatter<QString> {
- // Parses format specifications.
- constexpr auto parse(format_parse_context& ctx) -> decltype(ctx.begin()) {
- return ctx.begin();
- }
-
- // Formats the QString qstr and writes it to the output.
- template <typename FormatContext>
- auto format(const QString& qstr, FormatContext& ctx) const
- -> decltype(ctx.out()) {
- // Convert QString to UTF-8 QString (to handle Unicode characters
- // correctly)
- QByteArray utf8_array = qstr.toUtf8();
- return fmt::format_to(ctx.out(), "{}", utf8_array.constData());
- }
-};
-
-template <>
-struct fmt::formatter<QByteArray> {
- // Parses format specifications.
- constexpr auto parse(format_parse_context& ctx) -> decltype(ctx.begin()) {
- return ctx.begin();
- }
-
- // Formats the QString qstr and writes it to the output.
- template <typename FormatContext>
- auto format(const QByteArray& qarray, FormatContext& ctx) const
- -> decltype(ctx.out()) {
- // Convert QString to UTF-8 QString (to handle Unicode characters
- // correctly)
- return fmt::format_to(ctx.out(), "{}", qarray.constData());
- }
-};
diff --git a/src/module/mods/ver_check/SoftwareVersion.cpp b/src/module/mods/ver_check/SoftwareVersion.cpp
deleted file mode 100644
index cd864195..00000000
--- a/src/module/mods/ver_check/SoftwareVersion.cpp
+++ /dev/null
@@ -1,100 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric <[email protected]>
- *
- * This file is part of GpgFrontend.
- *
- * GpgFrontend 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.
- *
- * GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric <[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#include "SoftwareVersion.h"
-
-#include <GFSDKBasic.h>
-#include <GFSDKExtra.h>
-#include <GFSDKLog.h>
-#include <spdlog/spdlog.h>
-
-#include <QString>
-
-template <>
-struct fmt::formatter<QString> {
- // Parses format specifications.
- constexpr auto parse(format_parse_context& ctx) -> decltype(ctx.begin()) {
- return ctx.begin();
- }
-
- // Formats the QString qstr and writes it to the output.
- template <typename FormatContext>
- auto format(const QString& qstr, FormatContext& ctx) const
- -> decltype(ctx.out()) {
- // Convert QString to UTF-8 QString (to handle Unicode characters
- // correctly)
- QByteArray utf8_array = qstr.toUtf8();
- return fmt::format_to(ctx.out(), "{}", utf8_array.constData());
- }
-};
-
-template <>
-struct fmt::formatter<QByteArray> {
- // Parses format specifications.
- constexpr auto parse(format_parse_context& ctx) -> decltype(ctx.begin()) {
- return ctx.begin();
- }
-
- // Formats the QString qstr and writes it to the output.
- template <typename FormatContext>
- auto format(const QByteArray& qarray, FormatContext& ctx) const
- -> decltype(ctx.out()) {
- // Convert QString to UTF-8 QString (to handle Unicode characters
- // correctly)
- return fmt::format_to(ctx.out(), "{}", qarray.constData());
- }
-};
-
-auto SoftwareVersion::NeedUpgrade() const -> bool {
- GFModuleLogDebug(
- fmt::format(
- "compair version current {} latest {}, result {}", current_version,
- latest_version,
- GFCompareSoftwareVersion(GFModuleStrDup(current_version.toUtf8()),
- GFModuleStrDup(latest_version.toUtf8())))
- .c_str());
-
- GFModuleLogDebug(fmt::format("load done: {}, pre-release: {}, draft: {}",
- loading_done,
- latest_prerelease_version_from_remote,
- latest_draft_from_remote)
- .c_str());
- return loading_done && !latest_prerelease_version_from_remote &&
- !latest_draft_from_remote &&
- GFCompareSoftwareVersion(GFModuleStrDup(current_version.toUtf8()),
- GFModuleStrDup(latest_version.toUtf8())) < 0;
-}
-
-auto SoftwareVersion::VersionWithdrawn() const -> bool {
- return loading_done && !current_version_publish_in_remote &&
- current_version_is_a_prerelease && !current_version_is_drafted;
-}
-
-auto SoftwareVersion::CurrentVersionReleased() const -> bool {
- return loading_done && current_version_publish_in_remote;
-} \ No newline at end of file
diff --git a/src/module/mods/ver_check/SoftwareVersion.h b/src/module/mods/ver_check/SoftwareVersion.h
deleted file mode 100644
index 6b05d413..00000000
--- a/src/module/mods/ver_check/SoftwareVersion.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric <[email protected]>
- *
- * This file is part of GpgFrontend.
- *
- * GpgFrontend 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.
- *
- * GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric <[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#pragma once
-
-#include <QString>
-
-/**
- * @brief
- *
- */
-struct SoftwareVersion {
- QString latest_version; ///<
- QString current_version; ///<
- bool latest_prerelease_version_from_remote = false; ///<
- bool latest_draft_from_remote = false; ///<
- bool current_version_is_a_prerelease = false; ///<
- bool current_version_is_drafted = false; ///<
- bool loading_done = false; ///<
- bool current_version_publish_in_remote = false; ///<
- QString publish_date; ///<
- QString release_note; ///<
-
- /**
- * @brief
- *
- * @return true
- * @return false
- */
- [[nodiscard]] auto InfoValid() const -> bool { return loading_done; }
-
- /**
- * @brief
- *
- * @return true
- * @return false
- */
- [[nodiscard]] auto NeedUpgrade() const -> bool;
-
- /**
- * @brief
- *
- * @return true
- * @return false
- */
- [[nodiscard]] auto VersionWithdrawn() const -> bool;
-
- /**
- * @brief
- *
- * @return true
- * @return false
- */
- [[nodiscard]] auto CurrentVersionReleased() const -> bool;
-
- private:
- static auto version_compare(const QString& a, const QString& b) -> int;
-};
diff --git a/src/module/mods/ver_check/VersionCheckTask.cpp b/src/module/mods/ver_check/VersionCheckTask.cpp
deleted file mode 100644
index 5ea9c48e..00000000
--- a/src/module/mods/ver_check/VersionCheckTask.cpp
+++ /dev/null
@@ -1,171 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric <[email protected]>
- *
- * This file is part of GpgFrontend.
- *
- * GpgFrontend 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.
- *
- * GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric <[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#include "VersionCheckTask.h"
-
-#include <GFSDKBasic.h>
-#include <GFSDKExtra.h>
-#include <GFSDKLog.h>
-
-#include <QMetaType>
-#include <QtNetwork>
-
-VersionCheckTask::VersionCheckTask()
- : network_manager_(new QNetworkAccessManager(this)),
- current_version_(GFProjectVersion()) {
- qRegisterMetaType<SoftwareVersion>("SoftwareVersion");
- version_.current_version = current_version_;
-}
-
-auto VersionCheckTask::Run() -> int {
- GFModuleLogDebug(
- fmt::format("current project version: {}", current_version_).c_str());
- QString latest_version_url =
- "https://api.github.com/repos/saturneric/gpgfrontend/releases/latest";
-
- QNetworkRequest latest_request(latest_version_url);
- latest_request.setHeader(QNetworkRequest::UserAgentHeader,
- GFHttpRequestUserAgent());
-
- latest_reply_ = network_manager_->get(latest_request);
- connect(latest_reply_, &QNetworkReply::finished, this,
- &VersionCheckTask::slot_parse_latest_version_info);
- return 0;
-}
-
-void VersionCheckTask::slot_parse_latest_version_info() {
- if (latest_reply_ == nullptr) {
- version_.latest_version = current_version_;
- version_.loading_done = false;
- } else if (latest_reply_->error() != QNetworkReply::NoError) {
- GFModuleLogError(fmt::format("latest version request error: ",
- latest_reply_->errorString())
- .c_str());
- version_.latest_version = current_version_;
- } else {
- latest_reply_bytes_ = latest_reply_->readAll();
- auto latest_reply_json = QJsonDocument::fromJson(latest_reply_bytes_);
-
- if (latest_reply_json.isObject()) {
- QString latest_version = latest_reply_json["tag_name"].toString();
-
- QRegularExpression re(R"(^[vV](\d+\.)?(\d+\.)?(\*|\d+))");
- auto version_match = re.match(latest_version);
- if (version_match.hasMatch()) {
- latest_version = version_match.captured(0);
- GFModuleLogInfo(fmt::format("latest released version from github: {}",
- latest_version)
- .c_str());
- } else {
- latest_version = current_version_;
- GFModuleLogWarn(
- fmt::format("latest version unknown, set to current version: {}",
- current_version_)
- .c_str());
- }
-
- bool prerelease = latest_reply_json["prerelease"].toBool();
- bool draft = latest_reply_json["draft"].toBool();
- auto publish_date = latest_reply_json["published_at"].toString();
- auto release_note = latest_reply_json["body"].toString();
- version_.latest_version = latest_version;
- version_.latest_prerelease_version_from_remote = prerelease;
- version_.latest_draft_from_remote = draft;
- version_.publish_date = publish_date;
- version_.release_note = release_note;
- } else {
- GFModuleLogWarn(fmt::format("cannot parse data got from github: {}",
- latest_reply_bytes_)
- .c_str());
- }
- }
-
- if (latest_reply_ != nullptr) {
- latest_reply_->deleteLater();
- }
-
- try {
- QString current_version_url =
- "https://api.github.com/repos/saturneric/gpgfrontend/releases/tags/" +
- current_version_;
- GFModuleLogDebug(
- fmt::format("current version info query url: {}", current_version_url)
- .c_str());
-
- QNetworkRequest current_request(current_version_url);
- current_request.setHeader(QNetworkRequest::UserAgentHeader,
- GFHttpRequestUserAgent());
-
- current_reply_ = network_manager_->get(current_request);
-
- connect(current_reply_, &QNetworkReply::finished, this,
- &VersionCheckTask::slot_parse_current_version_info);
- } catch (...) {
- GFModuleLogError("current version request create error");
- }
-}
-
-void VersionCheckTask::slot_parse_current_version_info() {
- if (current_reply_ == nullptr) {
- // loading done
- version_.loading_done = false;
-
- } else if (current_reply_->error() != QNetworkReply::NoError) {
- GFModuleLogError(fmt::format("current version request network error: {}",
- current_reply_->errorString())
- .c_str());
-
- // loading done
- version_.loading_done = true;
- version_.current_version_publish_in_remote = false;
- } else {
- version_.current_version_publish_in_remote = true;
- current_reply_bytes_ = current_reply_->readAll();
- auto current_reply_json = QJsonDocument::fromJson(current_reply_bytes_);
-
- if (current_reply_json.isObject()) {
- bool current_prerelease = current_reply_json["prerelease"].toBool();
- bool current_draft = current_reply_json["draft"].toBool();
- version_.latest_prerelease_version_from_remote = current_prerelease;
- version_.latest_draft_from_remote = current_draft;
- // loading done
- version_.loading_done = true;
- } else {
- GFModuleLogWarn(fmt::format("cannot parse data got from github: {}",
- current_reply_bytes_)
- .c_str());
- }
- }
-
- GFModuleLogDebug(fmt::format("current version parse done: {}",
- version_.current_version_publish_in_remote)
- .c_str());
-
- if (current_reply_ != nullptr) current_reply_->deleteLater();
- emit SignalUpgradeVersion(version_);
-}
diff --git a/src/module/mods/ver_check/VersionCheckTask.h b/src/module/mods/ver_check/VersionCheckTask.h
deleted file mode 100644
index df801570..00000000
--- a/src/module/mods/ver_check/VersionCheckTask.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric <[email protected]>
- *
- * This file is part of GpgFrontend.
- *
- * GpgFrontend 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.
- *
- * GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric <[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#pragma once
-
-#include <core/thread/Task.h>
-
-#include "SoftwareVersion.h"
-
-class QNetworkReply;
-class QNetworkAccessManager;
-
-/**
- * @brief
- *
- */
-class VersionCheckTask : public QObject {
- Q_OBJECT
- public:
- /**
- * @brief Construct a new Version Check Thread object
- *
- */
- VersionCheckTask();
-
- /**
- * @brief
- *
- * @return int
- */
- auto Run() -> int;
-
- signals:
-
- /**
- * @brief
- *
- * @param version
- */
- void SignalUpgradeVersion(SoftwareVersion version);
-
- private slots:
-
- /**
- * @brief
- *
- */
- void slot_parse_latest_version_info();
-
- /**
- * @brief
- *
- */
- void slot_parse_current_version_info();
-
- private:
- QByteArray latest_reply_bytes_; ///<
- QByteArray current_reply_bytes_; ///<
- QNetworkReply* latest_reply_ = nullptr; ///< latest version info reply
- QNetworkReply* current_reply_ = nullptr; ///< current version info reply
- QNetworkAccessManager* network_manager_; ///<
- QString current_version_;
- SoftwareVersion version_;
-};
diff --git a/src/module/mods/ver_check/VersionCheckingModule.cpp b/src/module/mods/ver_check/VersionCheckingModule.cpp
deleted file mode 100644
index 35d3b82e..00000000
--- a/src/module/mods/ver_check/VersionCheckingModule.cpp
+++ /dev/null
@@ -1,164 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric <[email protected]>
- *
- * This file is part of GpgFrontend.
- *
- * GpgFrontend 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.
- *
- * GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric <[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#include "VersionCheckingModule.h"
-
-#include <GFSDKBasic.h>
-#include <GFSDKBuildInfo.h>
-#include <GFSDKExtra.h>
-#include <GFSDKLog.h>
-#include <spdlog/spdlog.h>
-
-#include <QMetaType>
-#include <QtNetwork>
-
-#include "SoftwareVersion.h"
-#include "VersionCheckTask.h"
-
-extern void VersionCheckDone(const SoftwareVersion& version);
-
-auto GFGetModuleGFSDKVersion() -> const char* {
- return GFModuleStrDup(GF_SDK_VERSION_STR);
-}
-
-auto GFGetModuleQtEnvVersion() -> const char* {
- return GFModuleStrDup(QT_VERSION_STR);
-}
-
-auto GFGetModuleID() -> const char* {
- return GFModuleStrDup("com.bktus.gpgfrontend.module.version_checking");
-}
-
-auto GFGetModuleVersion() -> const char* { return GFModuleStrDup("1.0.0"); }
-
-auto GFGetModuleMetaData() -> GFModuleMetaData* {
- auto* p_meta = static_cast<GFModuleMetaData*>(
- GFAllocateMemory(sizeof(GFModuleMetaData)));
- auto* h_meta = p_meta;
-
- p_meta->key = "Name";
- p_meta->value = "VersionChecking";
- p_meta->next = static_cast<GFModuleMetaData*>(
- GFAllocateMemory(sizeof(GFModuleMetaData)));
- p_meta = p_meta->next;
-
- p_meta->key = "Description";
- p_meta->value = "Try checking gpgfrontend version";
- p_meta->next = static_cast<GFModuleMetaData*>(
- GFAllocateMemory(sizeof(GFModuleMetaData)));
- p_meta = p_meta->next;
-
- p_meta->key = "Author";
- p_meta->value = "Saturneric";
- p_meta->next = nullptr;
-
- return h_meta;
-}
-
-auto GFRegisterModule() -> int {
- GFModuleLogInfo("version checking module registering");
- return 0;
-}
-
-auto GFActiveModule() -> int {
- GFModuleLogInfo("version checking module activating");
-
- GFModuleListenEvent(GFGetModuleID(), GFModuleStrDup("APPLICATION_LOADED"));
- GFModuleListenEvent(GFGetModuleID(),
- GFModuleStrDup("CHECK_APPLICATION_VERSION"));
- return 0;
-}
-
-auto GFExecuteModule(GFModuleEvent* event) -> int {
- GFModuleLogInfo(
- fmt::format("version checking module executing, event id: {}", event->id)
- .c_str());
-
- auto* task = new VersionCheckTask();
- QObject::connect(
- task, &VersionCheckTask::SignalUpgradeVersion, QThread::currentThread(),
- [event](const SoftwareVersion& version) {
- VersionCheckDone(version);
-
- char** event_argv =
- static_cast<char**>(GFAllocateMemory(sizeof(char**) * 1));
- event_argv[0] = GFModuleStrDup("0");
-
- GFModuleTriggerModuleEventCallback(event, GFGetModuleID(), 1,
- event_argv);
- });
- QObject::connect(task, &VersionCheckTask::SignalUpgradeVersion, task,
- &QObject::deleteLater);
- task->Run();
-
- return 0;
-}
-
-auto GFDeactiveModule() -> int { return 0; }
-
-auto GFUnregisterModule() -> int { return 0; }
-
-void VersionCheckDone(const SoftwareVersion& version) {
- GFModuleLogDebug("filling software information info in rt...");
-
- GFModuleUpsertRTValue(GFGetModuleID(),
- GFModuleStrDup("version.current_version"),
- GFModuleStrDup(version.current_version.toUtf8()));
- GFModuleUpsertRTValue(GFGetModuleID(),
- GFModuleStrDup("version.latest_version"),
- GFModuleStrDup(version.latest_version.toUtf8()));
- GFModuleUpsertRTValueBool(
- GFGetModuleID(), GFModuleStrDup("version.current_version_is_drafted"),
- version.current_version_is_drafted ? 1 : 0);
- GFModuleUpsertRTValueBool(
- GFGetModuleID(),
- GFModuleStrDup("version.current_version_is_a_prerelease"),
- version.current_version_is_a_prerelease ? 1 : 0);
- GFModuleUpsertRTValueBool(
- GFGetModuleID(),
- GFModuleStrDup("version.current_version_publish_in_remote"),
- version.current_version_publish_in_remote ? 1 : 0);
- GFModuleUpsertRTValueBool(
- GFGetModuleID(),
- GFModuleStrDup("version.latest_prerelease_version_from_remote"),
- version.latest_prerelease_version_from_remote ? 1 : 0);
- GFModuleUpsertRTValueBool(GFGetModuleID(),
- GFModuleStrDup("version.need_upgrade"),
- version.NeedUpgrade() ? 1 : 0);
- GFModuleUpsertRTValueBool(GFGetModuleID(),
- GFModuleStrDup("version.current_version_released"),
- version.CurrentVersionReleased() ? 1 : 0);
- GFModuleUpsertRTValueBool(
- GFGetModuleID(), GFModuleStrDup("version.current_a_withdrawn_version"),
- version.VersionWithdrawn() ? 1 : 0);
- GFModuleUpsertRTValueBool(GFGetModuleID(),
- GFModuleStrDup("version.loading_done"),
- version.loading_done ? 1 : 0);
-
- GFModuleLogDebug("software information filled in rt");
-}
diff --git a/src/module/mods/ver_check/VersionCheckingModule.h b/src/module/mods/ver_check/VersionCheckingModule.h
deleted file mode 100644
index 35ee4ac3..00000000
--- a/src/module/mods/ver_check/VersionCheckingModule.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Copyright (C) 2021 Saturneric <[email protected]>
- *
- * This file is part of GpgFrontend.
- *
- * GpgFrontend 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.
- *
- * GpgFrontend 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 GpgFrontend. If not, see <https://www.gnu.org/licenses/>.
- *
- * The initial version of the source code is inherited from
- * the gpg4usb project, which is under GPL-3.0-or-later.
- *
- * All the source code of GpgFrontend was modified and released by
- * Saturneric <[email protected]> starting on May 12, 2021.
- *
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- */
-
-#pragma once
-
-#include <GFSDKModule.h>
-
-#include "GFModuleExport.h"
-
-extern "C" {
-
-auto GF_MODULE_EXPORT GFGetModuleGFSDKVersion() -> const char *;
-
-auto GF_MODULE_EXPORT GFGetModuleQtEnvVersion() -> const char *;
-
-auto GF_MODULE_EXPORT GFGetModuleID() -> const char *;
-
-auto GF_MODULE_EXPORT GFGetModuleVersion() -> const char *;
-
-auto GF_MODULE_EXPORT GFGetModuleMetaData() -> GFModuleMetaData *;
-
-auto GF_MODULE_EXPORT GFRegisterModule() -> int;
-
-auto GF_MODULE_EXPORT GFActiveModule() -> int;
-
-auto GF_MODULE_EXPORT GFExecuteModule(GFModuleEvent *) -> int;
-
-auto GF_MODULE_EXPORT GFDeactiveModule() -> int;
-
-auto GF_MODULE_EXPORT GFUnregisterModule() -> int;
-};