diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7951b8e8f2..3df38ca878 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -79,13 +79,13 @@ set(CALAMARES_SOVERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}")
#
option(INSTALL_POLKIT "Install Polkit configuration" ON)
option(INSTALL_COMPLETION "Install shell completions" OFF)
-option(INSTALL_CONFIG "Install configuration files" OFF)
+option(INSTALL_CONFIG "Install configuration files" ON)
# When adding WITH_* that affects the ABI offered by libcalamares,
# also update libcalamares/CalamaresConfig.h.in
option(WITH_PYBIND11 "Use bundled pybind11 instead of Boost::Python" ON)
option(WITH_PYTHON "Enable Python modules API." ON)
option(WITH_QML "Enable QML UI options." ON)
-option(WITH_QT6 "Use Qt6 instead of Qt5" OFF)
+option(WITH_QT6 "Use Qt6 instead of Qt5" ON)
#
# Additional parts to build that do not affect ABI
option(BUILD_SCHEMA_TESTING "Enable schema-validation-tests" ON)
diff --git a/make-test.sh b/make-test.sh
new file mode 100755
index 0000000000..f3e2945361
--- /dev/null
+++ b/make-test.sh
@@ -0,0 +1,5 @@
+mkdir -p build
+cd build
+cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_QT6=ON ..
+make -j$(nproc)
+#sudo make install
diff --git a/make.sh b/make.sh
new file mode 100755
index 0000000000..2f4077b306
--- /dev/null
+++ b/make.sh
@@ -0,0 +1,5 @@
+mkdir -p build
+cd build
+cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib -DWITH_QT6=ON -DINSTALL_CONFIG=ON ..
+make -j$(nproc)
+sudo make install
diff --git a/packagechooser_id b/packagechooser_id
new file mode 100644
index 0000000000..5367130ff3
--- /dev/null
+++ b/packagechooser_id
@@ -0,0 +1,32 @@
+ - id: stable
+ name: "Astro_stable"
+ description: "Kstars / Indi stable."
+ screenshot: ":/images/kstars_indi.jpg"
+ netinstall:
+ name: "Stable"
+ description: "Kstars-indi stable"
+ hidden: false
+ selected: true
+ critical: false
+ expanded: true
+ packages:
+ - kstars
+ - libindi
+ - indi-3rdparty-drivers
+ - indi-3rdparty-libs
+ - id: bleeding
+ name: "Astro_bleeding"
+ description: "Kstras / Indi bleeding"
+ screenshot: ":/images/kstars_indi_bleeding.jpg"
+ netinstall:
+ name: "Bleeding"
+ description: "Kstars-indi bleeding"
+ hidden: false
+ selected: true
+ critical: false
+ expanded: true
+ packages:
+ - kstars-git
+ - libindi-git
+ - indi-3rdparty-drivers-git
+ - indi-3rdparty-libs-git
diff --git a/settings.conf b/settings.conf
index 13fd0db237..9908bb04f7 100644
--- a/settings.conf
+++ b/settings.conf
@@ -90,6 +90,43 @@ modules-search: [ local ]
# module: packagechooserq
# config: licenseq.conf
+instances:
+- id: softwares
+ module: netinstall
+ config: netinstall-software.conf
+
+- id: update
+ module: shellprocess
+ config: shellprocess-update.conf
+
+- id: final
+ module: shellprocess
+ config: shellprocess-final.conf
+
+- id: kstars_indi
+ module: packagechooserq
+ config: packagechooserq_kstars_indi.conf
+
+- id: gps
+ module: packagechooser
+ config: packagechooser_gps.conf
+
+- id: ftp
+ module: packagechooser
+ config: packagechooser_ftp.conf
+
+- id: bluetooth
+ module: packagechooser
+ config: packagechooser_bluetooth.conf
+
+- id: power
+ module: packagechooser
+ config: packagechooser_power.conf
+
+- id: readme
+ module: notesqml
+ config: readme.conf
+
# Sequence section. This section describes the sequence of modules, both
# viewmodules and jobmodules, as they should appear and/or run.
#
@@ -117,11 +154,21 @@ sequence:
- welcome
- locale
- keyboard
+ - packagechooserq@kstars_indi
+ - netinstall@softwares
+ - packagechooser@gps
+ - packagechooser@ftp
+ - packagechooser@bluetooth
+ - packagechooser@power
+ - notesqml@readme
- exec:
- locale
- keyboard
- localecfg
- - hwclock
+ - shellprocess@update
+ - contextualprocess
+ - packages
+ - shellprocess@final
- show:
- finished
@@ -137,7 +184,7 @@ sequence:
# here, Calamares then takes care of finding it and loading the contents.
#
# YAML: string.
-branding: AstroArch
+branding: astroarch
# If this is set to true, Calamares will show an "Are you sure?" prompt right
# before each execution phase, i.e. at points of no return. If this is set to
diff --git a/src/.astroarch/configs/calamares_astroarch/AstroArch-onboarding.desktop b/src/.astroarch/configs/calamares_astroarch/AstroArch-onboarding.desktop
new file mode 100755
index 0000000000..df0a598ef5
--- /dev/null
+++ b/src/.astroarch/configs/calamares_astroarch/AstroArch-onboarding.desktop
@@ -0,0 +1,22 @@
+[Desktop Entry]
+Categories=Qt;System;
+Comment[en_US]=AstroArch - configure system
+Comment=AstroArch - configure system
+Exec=pkexec calamares
+GenericName[en_US]=AstroArch onboarding
+GenericName=AstroArch onboarding
+Icon=calamares
+Keywords=calamares;system;configurer;
+MimeType=
+Name[en_US]=AstroArch onboarding
+Name=AstroArch onboarding
+Path=
+StartupNotify=true
+Terminal=false
+TerminalOptions=\s--noclose
+TryExec=calamares
+Type=Application
+Version=1.0
+X-AppStream-Ignore=true
+X-KDE-SubstituteUID=false
+X-KDE-Username=
diff --git a/src/.astroarch/configs/calamares_astroarch/com.github.calamares.calamares.policy b/src/.astroarch/configs/calamares_astroarch/com.github.calamares.calamares.policy
new file mode 100644
index 0000000000..b45fa69259
--- /dev/null
+++ b/src/.astroarch/configs/calamares_astroarch/com.github.calamares.calamares.policy
@@ -0,0 +1,25 @@
+
+
+
+
+
+ Calamares
+ https://github.com/calamares
+
+
+ Run Installer
+ Authentication is required to run the installation program
+ drive-harddisk
+
+ yes
+ yes
+ yes
+
+ /usr/bin/calamares
+ true
+
+
diff --git a/src/.astroarch/configs/calamares_astroarch/netinstall_software.yaml b/src/.astroarch/configs/calamares_astroarch/netinstall_software.yaml
new file mode 100644
index 0000000000..ee8b11fb1c
--- /dev/null
+++ b/src/.astroarch/configs/calamares_astroarch/netinstall_software.yaml
@@ -0,0 +1,32 @@
+- name: "Astronomy"
+ description: "Astronomy softwares"
+ hidden: false
+ selected: false
+ critical: false
+ expanded: true
+ subgroups:
+ - name: "Siril"
+ description: "Siril is an astronomical image processing tool"
+ selected: false
+ packages:
+ - siril
+ - name: "Firecapture"
+ description: "FireCapture is a free JAVA-based software package primarily intended for planetary and lunar image capture"
+ selected: false
+ packages:
+ - firecapture
+ - name: "Libcamera"
+ description: "A complex camera support library"
+ selected: false
+ packages:
+ - libcamera
+ - name: "Rpicam-apps"
+ description: "This is a small suite of libcamera-based applications to drive the cameras on a Raspberry Pi platform"
+ selected: false
+ packages:
+ - rpicam-apps
+ - name: "Indi-pylibcamera"
+ description: "This project implements a Raspberry Pi camera driver for INDI"
+ selected: false
+ packages:
+ - pylibcamera
diff --git a/src/.astroarch/configs/calamares_astroarch/run-astroarch-onboarding.sh b/src/.astroarch/configs/calamares_astroarch/run-astroarch-onboarding.sh
new file mode 100755
index 0000000000..be6a35cf1d
--- /dev/null
+++ b/src/.astroarch/configs/calamares_astroarch/run-astroarch-onboarding.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+# Add folders to .astroarch
+cp -R "/usr/share/calamares/.astroarch/configs/calamares_astroarch" "/home/astronaut/.astroarch/configs/"
+cp -R "/usr/share/calamares/.astroarch/plugins/power_max_current" "/home/astronaut/.astroarch/plugins/"
+
+# Link folders to root folder
+rm -f /root/.oh-my-zsh
+ln -s /home/astronaut/.oh-my-zsh /root
+rm -f /root/.astroarch
+ln -s /home/astronaut/.astroarch /root
+rm -f /root/.zshrc
+ln -s /home/astronaut/.astroarch/configs/.zshrc /root/.zshrc
+chsh -s /usr/bin/zsh root
+
+# link to folder autostart
+ln -s /usr/share/calamares/.astroarch/configs/calamares_astroarch/AstroArch-onboarding.desktop /home/astronaut/.config/autostart/AstroArch-onboarding.desktop
+
+# Allow root access with no password to astroarch-onboarding.desktop
+rm -f /usr/share/polkit-1/actions/com.github.calamares.calamares.policy
+ln -s /usr/share/calamares/.astroarch/configs/calamares_astroarch/com.github.calamares.calamares.policy /usr/share/polkit-1/actions/com.github.calamares.calamares.policy
diff --git a/src/.astroarch/plugins/power_max_current/power_max_current.plugin.zsh b/src/.astroarch/plugins/power_max_current/power_max_current.plugin.zsh
new file mode 100644
index 0000000000..9415de8cd4
--- /dev/null
+++ b/src/.astroarch/plugins/power_max_current/power_max_current.plugin.zsh
@@ -0,0 +1,10 @@
+function power_max_current()
+{
+ if grep 'usb_max_current_enable=1' /boot/config.txt > /dev/null ; then
+ echo "Maximum current is already activated"
+ else
+ sudo sed -i '$ausb_max_current_enable=1' /boot/config.txt
+ echo "Maximum current activation for the Pi 5 USB ports is done after restart"
+ fi
+}
+
diff --git a/src/CMakeCache.txt b/src/CMakeCache.txt
new file mode 100644
index 0000000000..c9a2d75130
--- /dev/null
+++ b/src/CMakeCache.txt
@@ -0,0 +1,2945 @@
+# This is the CMakeCache file.
+# For build in directory: /home/astronaut/Projects/astroarch-onboarding/src
+# It was generated by CMake: /usr/bin/cmake
+# You can edit this file to change values found and used by cmake.
+# If you do not want to change any of the values, simply exit the editor.
+# If you do want to change a value, simply edit, save, and exit the editor.
+# The syntax for the file is as follows:
+# KEY:TYPE=VALUE
+# KEY is the name of a variable in the cache.
+# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
+# VALUE is the current value for the KEY.
+
+########################
+# EXTERNAL cache entries
+########################
+
+//Support appdata: items in PackageChooser (requires QtXml)
+BUILD_APPDATA:BOOL=OFF
+
+//Support appstream: items in PackageChooser (requires libappstream-qt)
+BUILD_APPSTREAM:BOOL=OFF
+
+//Enable crash reporting with KCrash.
+BUILD_CRASH_REPORTING:BOOL=ON
+
+//Enable schema-validation-tests
+BUILD_SCHEMA_TESTING:BOOL=ON
+
+//Build the testing tree.
+BUILD_TESTING:BOOL=ON
+
+//Value Computed by CMake
+CALAMARES_BINARY_DIR:STATIC=/home/astronaut/Projects/astroarch-onboarding/src
+
+//Value Computed by CMake
+CALAMARES_IS_TOP_LEVEL:STATIC=ON
+
+//Value Computed by CMake
+CALAMARES_SOURCE_DIR:STATIC=/home/astronaut/Projects/astroarch-onboarding
+
+//Path to a program.
+CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line
+
+//Path to a program.
+CMAKE_AR:FILEPATH=/usr/bin/ar
+
+//Choose the type of build, options are: None Debug Release RelWithDebInfo
+// MinSizeRel ...
+CMAKE_BUILD_TYPE:STRING=Debug
+
+//Enable/Disable color output during build.
+CMAKE_COLOR_MAKEFILE:BOOL=ON
+
+//CXX compiler
+CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
+
+//A wrapper around 'ar' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar
+
+//A wrapper around 'ranlib' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib
+
+//Flags used by the CXX compiler during all build types.
+CMAKE_CXX_FLAGS:STRING=
+
+//Flags used by the CXX compiler during DEBUG builds.
+CMAKE_CXX_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the CXX compiler during MINSIZEREL builds.
+CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the CXX compiler during RELEASE builds.
+CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the CXX compiler during RELWITHDEBINFO builds.
+CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//C compiler
+CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
+
+//A wrapper around 'ar' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar
+
+//A wrapper around 'ranlib' adding the appropriate '--plugin' option
+// for the GCC compiler
+CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib
+
+//Flags used by the C compiler during all build types.
+CMAKE_C_FLAGS:STRING=
+
+//Flags used by the C compiler during DEBUG builds.
+CMAKE_C_FLAGS_DEBUG:STRING=-g
+
+//Flags used by the C compiler during MINSIZEREL builds.
+CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
+
+//Flags used by the C compiler during RELEASE builds.
+CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
+
+//Flags used by the C compiler during RELWITHDEBINFO builds.
+CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
+
+//Path to a program.
+CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND
+
+//Flags used by the linker during all build types.
+CMAKE_EXE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during DEBUG builds.
+CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during MINSIZEREL builds.
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during RELEASE builds.
+CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during RELWITHDEBINFO builds.
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Enable/Disable output of compile commands during generation.
+CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=
+
+//Value Computed by CMake.
+CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/pkgRedirects
+
+//User executables (bin)
+CMAKE_INSTALL_BINDIR:PATH=bin
+
+//Installation directory for CMake files
+CMAKE_INSTALL_CMAKEDIR:PATH=lib/cmake/Calamares
+
+//Read-only architecture-independent data (DATAROOTDIR)
+CMAKE_INSTALL_DATADIR:PATH=
+
+//Read-only architecture-independent data root (share)
+CMAKE_INSTALL_DATAROOTDIR:PATH=share
+
+//Documentation root (DATAROOTDIR/doc/PROJECT_NAME)
+CMAKE_INSTALL_DOCDIR:PATH=
+
+//C header files (include)
+CMAKE_INSTALL_INCLUDEDIR:PATH=include
+
+//Info documentation (DATAROOTDIR/info)
+CMAKE_INSTALL_INFODIR:PATH=
+
+//Object code libraries (lib)
+CMAKE_INSTALL_LIBDIR:PATH=lib
+
+//Program executables (libexec)
+CMAKE_INSTALL_LIBEXECDIR:PATH=libexec
+
+//Locale-dependent data (DATAROOTDIR/locale)
+CMAKE_INSTALL_LOCALEDIR:PATH=
+
+//Modifiable single-machine data (var)
+CMAKE_INSTALL_LOCALSTATEDIR:PATH=var
+
+//Man documentation (DATAROOTDIR/man)
+CMAKE_INSTALL_MANDIR:PATH=
+
+//C header files for non-gcc (/usr/include)
+CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include
+
+//Install path prefix, prepended onto install directories.
+CMAKE_INSTALL_PREFIX:PATH=/usr
+
+//Run-time variable data (LOCALSTATEDIR/run)
+CMAKE_INSTALL_RUNSTATEDIR:PATH=
+
+//System admin executables (sbin)
+CMAKE_INSTALL_SBINDIR:PATH=sbin
+
+//Modifiable architecture-independent data (com)
+CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com
+
+//Read-only single-machine data (etc)
+CMAKE_INSTALL_SYSCONFDIR:PATH=etc
+
+//Path to a program.
+CMAKE_LINKER:FILEPATH=/usr/bin/ld
+
+//Path to a program.
+CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
+
+//Flags used by the linker during the creation of modules during
+// all build types.
+CMAKE_MODULE_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of modules during
+// DEBUG builds.
+CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of modules during
+// MINSIZEREL builds.
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of modules during
+// RELEASE builds.
+CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of modules during
+// RELWITHDEBINFO builds.
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_NM:FILEPATH=/usr/bin/nm
+
+//Path to a program.
+CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
+
+//Path to a program.
+CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
+
+//Value Computed by CMake
+CMAKE_PROJECT_DESCRIPTION:STATIC=
+
+//Value Computed by CMake
+CMAKE_PROJECT_HOMEPAGE_URL:STATIC=https://calamares.io/
+
+//Value Computed by CMake
+CMAKE_PROJECT_NAME:STATIC=CALAMARES
+
+//Value Computed by CMake
+CMAKE_PROJECT_VERSION:STATIC=3.3.5
+
+//Value Computed by CMake
+CMAKE_PROJECT_VERSION_MAJOR:STATIC=3
+
+//Value Computed by CMake
+CMAKE_PROJECT_VERSION_MINOR:STATIC=3
+
+//Value Computed by CMake
+CMAKE_PROJECT_VERSION_PATCH:STATIC=5
+
+//Value Computed by CMake
+CMAKE_PROJECT_VERSION_TWEAK:STATIC=
+
+//Path to a program.
+CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
+
+//Path to a program.
+CMAKE_READELF:FILEPATH=/usr/bin/readelf
+
+//Flags used by the linker during the creation of shared libraries
+// during all build types.
+CMAKE_SHARED_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during DEBUG builds.
+CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during MINSIZEREL builds.
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during RELEASE builds.
+CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of shared libraries
+// during RELWITHDEBINFO builds.
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//If set, runtime paths are not added when installing shared libraries,
+// but are added when building.
+CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
+
+//If set, runtime paths are not added when using shared libraries.
+CMAKE_SKIP_RPATH:BOOL=NO
+
+//Flags used by the linker during the creation of static libraries
+// during all build types.
+CMAKE_STATIC_LINKER_FLAGS:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during DEBUG builds.
+CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during MINSIZEREL builds.
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during RELEASE builds.
+CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
+
+//Flags used by the linker during the creation of static libraries
+// during RELWITHDEBINFO builds.
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
+
+//Path to a program.
+CMAKE_STRIP:FILEPATH=/usr/bin/strip
+
+//Path to a program.
+CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND
+
+//If this value is on, makefiles will be generated without the
+// .SILENT directive, and all commands will be echoed to the console
+// during the make. This is useful for debugging only. With Visual
+// Studio IDE projects all commands are done without /nologo.
+CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
+
+//Path to the coverage program that CTest uses for performing coverage
+// inspection
+COVERAGE_COMMAND:FILEPATH=/usr/bin/gcov
+
+//Extra command line flags to pass to the coverage tool
+COVERAGE_EXTRA_FLAGS:STRING=-l
+
+//Enable to build Debian packages
+CPACK_BINARY_DEB:BOOL=OFF
+
+//Enable to build FreeBSD packages
+CPACK_BINARY_FREEBSD:BOOL=OFF
+
+//Enable to build IFW packages
+CPACK_BINARY_IFW:BOOL=OFF
+
+//Enable to build NSIS packages
+CPACK_BINARY_NSIS:BOOL=OFF
+
+//Enable to build RPM packages
+CPACK_BINARY_RPM:BOOL=OFF
+
+//Enable to build STGZ packages
+CPACK_BINARY_STGZ:BOOL=ON
+
+//Enable to build TBZ2 packages
+CPACK_BINARY_TBZ2:BOOL=OFF
+
+//Enable to build TGZ packages
+CPACK_BINARY_TGZ:BOOL=ON
+
+//Enable to build TXZ packages
+CPACK_BINARY_TXZ:BOOL=OFF
+
+//Enable to build TZ packages
+CPACK_BINARY_TZ:BOOL=ON
+
+//Enable to build RPM source packages
+CPACK_SOURCE_RPM:BOOL=OFF
+
+//Enable to build TBZ2 source packages
+CPACK_SOURCE_TBZ2:BOOL=ON
+
+//Enable to build TGZ source packages
+CPACK_SOURCE_TGZ:BOOL=ON
+
+//Enable to build TXZ source packages
+CPACK_SOURCE_TXZ:BOOL=ON
+
+//Enable to build TZ source packages
+CPACK_SOURCE_TZ:BOOL=ON
+
+//Enable to build ZIP source packages
+CPACK_SOURCE_ZIP:BOOL=OFF
+
+//How many times to retry timed-out CTest submissions.
+CTEST_SUBMIT_RETRY_COUNT:STRING=3
+
+//How long to wait between timed-out CTest submissions.
+CTEST_SUBMIT_RETRY_DELAY:STRING=5
+
+//Maximum time allowed before CTest will kill the test.
+DART_TESTING_TIMEOUT:STRING=1500
+
+//Debug-friendly timezone widget.
+DEBUG_TIMEZONES:BOOL=OFF
+
+//The directory containing a CMake configuration file for ECM.
+ECM_DIR:PATH=/usr/share/ECM/cmake
+
+//Path to a program.
+FISH_EXECUTABLE:FILEPATH=FISH_EXECUTABLE-NOTFOUND
+
+//Path to a file.
+FREETYPE_INCLUDE_DIR_freetype2:PATH=/usr/include/freetype2
+
+//Path to a file.
+FREETYPE_INCLUDE_DIR_ft2build:PATH=/usr/include/freetype2
+
+//Path to a library.
+FREETYPE_LIBRARY_DEBUG:FILEPATH=FREETYPE_LIBRARY_DEBUG-NOTFOUND
+
+//Path to a library.
+FREETYPE_LIBRARY_RELEASE:FILEPATH=/usr/lib/libfreetype.so
+
+//Path to a file.
+Fontconfig_INCLUDE_DIR:PATH=/usr/include
+
+//Path to a library.
+Fontconfig_LIBRARY:FILEPATH=/usr/lib/libfontconfig.so
+
+//Path to a program.
+GETTEXT_MSGFMT_EXECUTABLE:FILEPATH=/usr/bin/msgfmt
+
+//Path to a program.
+GETTEXT_MSGMERGE_EXECUTABLE:FILEPATH=/usr/bin/msgmerge
+
+//Path to a program.
+GITCOMMAND:FILEPATH=/usr/bin/git
+
+//Install shell completions
+INSTALL_COMPLETION:BOOL=OFF
+
+//Install configuration files
+INSTALL_CONFIG:BOOL=ON
+
+//Install Polkit configuration
+INSTALL_POLKIT:BOOL=ON
+
+//application desktop files (DATAROOTDIR/applications)
+KDE_INSTALL_APPDIR:PATH=
+
+//autostart files (CONFDIR/autostart)
+KDE_INSTALL_AUTOSTARTDIR:PATH=
+
+//user executables (EXECROOTDIR/bin)
+KDE_INSTALL_BINDIR:PATH=bin
+
+//CMake packages, including config files (LIBDIR/cmake)
+KDE_INSTALL_CMAKEPACKAGEDIR:PATH=
+
+//application configuration files (SYSCONFDIR/xdg)
+KDE_INSTALL_CONFDIR:PATH=
+
+//read-only architecture-independent data (DATAROOTDIR)
+KDE_INSTALL_DATADIR:PATH=share
+
+//read-only architecture-independent data root (share)
+KDE_INSTALL_DATAROOTDIR:PATH=share
+
+//D-Bus (DATAROOTDIR/dbus-1)
+KDE_INSTALL_DBUSDIR:PATH=
+
+//D-Bus interfaces (DBUSDIR/interfaces)
+KDE_INSTALL_DBUSINTERFACEDIR:PATH=
+
+//D-Bus session services (DBUSDIR/services)
+KDE_INSTALL_DBUSSERVICEDIR:PATH=
+
+//D-Bus system services (DBUSDIR/system-services)
+KDE_INSTALL_DBUSSYSTEMSERVICEDIR:PATH=
+
+//desktop directories (DATAROOTDIR/desktop-directories)
+KDE_INSTALL_DESKTOPDIR:PATH=
+
+//documentation bundles generated using kdoctools (DATAROOTDIR/doc/HTML)
+KDE_INSTALL_DOCBUNDLEDIR:PATH=
+
+//executables and libraries ()
+KDE_INSTALL_EXECROOTDIR:PATH=
+
+//icons (DATAROOTDIR/icons)
+KDE_INSTALL_ICONDIR:PATH=
+
+//C and C++ header files (include)
+KDE_INSTALL_INCLUDEDIR:PATH=include
+
+//info documentation (DATAROOTDIR/info)
+KDE_INSTALL_INFODIR:PATH=share/info
+
+//Java AAR/JAR files for Android (jar)
+KDE_INSTALL_JARDIR:PATH=
+
+//KAppTemplate and KDevelop templates (DATAROOTDIR/kdevappwizard/templates)
+KDE_INSTALL_KAPPTEMPLATESDIR:PATH=
+
+//kconfig description files (DATAROOTDIR/config.kcfg)
+KDE_INSTALL_KCFGDIR:PATH=
+
+//kconf_update scripts (DATAROOTDIR/kconf_update)
+KDE_INSTALL_KCONFUPDATEDIR:PATH=
+
+//KDevelop file templates (DATAROOTDIR/kdevfiletemplates/templates)
+KDE_INSTALL_KFILETEMPLATESDIR:PATH=
+
+//knotify description files (DATAROOTDIR/knotifications6)
+KDE_INSTALL_KNOTIFYRCDIR:PATH=
+
+//kxmlgui .rc files (DATAROOTDIR/kxmlgui5)
+KDE_INSTALL_KXMLGUIDIR:PATH=
+
+//object code libraries (EXECROOTDIR/lib)
+KDE_INSTALL_LIBDIR:PATH=lib
+
+//executables for internal use by programs and libraries (LIBDIR/libexec)
+KDE_INSTALL_LIBEXECDIR:PATH=libexec
+
+//locale-dependent data (DATAROOTDIR/locale)
+KDE_INSTALL_LOCALEDIR:PATH=share/locale
+
+//modifiable single-machine data (var)
+KDE_INSTALL_LOCALSTATEDIR:PATH=var
+
+//Qt Logging categories files (DATAROOTDIR/qlogging-categories6)
+KDE_INSTALL_LOGGINGCATEGORIESDIR:PATH=
+
+//man documentation (DATAROOTDIR/man)
+KDE_INSTALL_MANDIR:PATH=share/man
+
+//AppStream component metadata (DATAROOTDIR/metainfo)
+KDE_INSTALL_METAINFODIR:PATH=
+
+//mime description files (DATAROOTDIR/mime/packages)
+KDE_INSTALL_MIMEDIR:PATH=
+
+//Plugins (QTPLUGINDIR)
+KDE_INSTALL_PLUGINDIR:PATH=
+
+//Installs /usr/prefix.sh that sets up the necessary environment
+// variables
+KDE_INSTALL_PREFIX_SCRIPT:BOOL=OFF
+
+//documentation bundles in QCH format (DATAROOTDIR/doc/qch)
+KDE_INSTALL_QCHDIR:PATH=
+
+//QtQuick2 imports (lib/qt6/qml)
+KDE_INSTALL_QMLDIR:PATH=
+
+//Qt plugins (lib/qt6/plugins)
+KDE_INSTALL_QTPLUGINDIR:PATH=
+
+//documentation bundles in QCH format for Qt-extending libraries
+// (/usr/share/doc/qt6)
+KDE_INSTALL_QTQCHDIR:PATH=
+
+//system admin executables (EXECROOTDIR/sbin)
+KDE_INSTALL_SBINDIR:PATH=sbin
+
+//modifiable architecture-independent data (com)
+KDE_INSTALL_SHAREDSTATEDIR:PATH=com
+
+//sound files (DATAROOTDIR/sounds)
+KDE_INSTALL_SOUNDDIR:PATH=
+
+//read-only single-machine data (/etc)
+KDE_INSTALL_SYSCONFDIR:PATH=etc
+
+//Systemd units (CMAKE_INSTALL_PREFIX/lib/systemd)
+KDE_INSTALL_SYSTEMDUNITDIR:PATH=
+
+//Systemd user units (SYSTEMDUNITDIR/user)
+KDE_INSTALL_SYSTEMDUSERUNITDIR:PATH=
+
+//templates (DATAROOTDIR/templates)
+KDE_INSTALL_TEMPLATEDIR:PATH=
+
+//Install mkspecs files, QCH files for Qt-based libs, Plugins and
+// Imports to the Qt 6 install dir
+KDE_INSTALL_USE_QT_SYS_PATHS:BOOL=ON
+
+//desktop wallpaper images (DATAROOTDIR/wallpapers)
+KDE_INSTALL_WALLPAPERDIR:PATH=
+
+//Zsh functions and autocompletion definitions (DATAROOTDIR/zsh/site-functions)
+KDE_INSTALL_ZSHAUTOCOMPLETEDIR:PATH=
+
+//The directory containing a CMake configuration file for KF6Bookmarks.
+KF6Bookmarks_DIR:PATH=/usr/lib/cmake/KF6Bookmarks
+
+//The directory containing a CMake configuration file for KF6Codecs.
+KF6Codecs_DIR:PATH=/usr/lib/cmake/KF6Codecs
+
+//The directory containing a CMake configuration file for KF6ColorScheme.
+KF6ColorScheme_DIR:PATH=/usr/lib/cmake/KF6ColorScheme
+
+//The directory containing a CMake configuration file for KF6Completion.
+KF6Completion_DIR:PATH=/usr/lib/cmake/KF6Completion
+
+//The directory containing a CMake configuration file for KF6ConfigWidgets.
+KF6ConfigWidgets_DIR:PATH=/usr/lib/cmake/KF6ConfigWidgets
+
+//The directory containing a CMake configuration file for KF6Config.
+KF6Config_DIR:PATH=/usr/lib/cmake/KF6Config
+
+//The directory containing a CMake configuration file for KF6CoreAddons.
+KF6CoreAddons_DIR:PATH=/usr/lib/cmake/KF6CoreAddons
+
+//The directory containing a CMake configuration file for KF6Crash.
+KF6Crash_DIR:PATH=/usr/lib/cmake/KF6Crash
+
+//The directory containing a CMake configuration file for KF6I18n.
+KF6I18n_DIR:PATH=/usr/lib/cmake/KF6I18n
+
+//The directory containing a CMake configuration file for KF6ItemViews.
+KF6ItemViews_DIR:PATH=/usr/lib/cmake/KF6ItemViews
+
+//The directory containing a CMake configuration file for KF6JobWidgets.
+KF6JobWidgets_DIR:PATH=/usr/lib/cmake/KF6JobWidgets
+
+//The directory containing a CMake configuration file for KF6KIO.
+KF6KIO_DIR:PATH=/usr/lib/cmake/KF6KIO
+
+//The directory containing a CMake configuration file for KF6Package.
+KF6Package_DIR:PATH=/usr/lib/cmake/KF6Package
+
+//The directory containing a CMake configuration file for KF6Parts.
+KF6Parts_DIR:PATH=/usr/lib/cmake/KF6Parts
+
+//The directory containing a CMake configuration file for KF6Service.
+KF6Service_DIR:PATH=/usr/lib/cmake/KF6Service
+
+//The directory containing a CMake configuration file for KF6Solid.
+KF6Solid_DIR:PATH=/usr/lib/cmake/KF6Solid
+
+//The directory containing a CMake configuration file for KF6WidgetsAddons.
+KF6WidgetsAddons_DIR:PATH=/usr/lib/cmake/KF6WidgetsAddons
+
+//The directory containing a CMake configuration file for KF6WindowSystem.
+KF6WindowSystem_DIR:PATH=/usr/lib/cmake/KF6WindowSystem
+
+//The directory containing a CMake configuration file for KF6XmlGui.
+KF6XmlGui_DIR:PATH=/usr/lib/cmake/KF6XmlGui
+
+//The directory containing a CMake configuration file for KF6.
+KF6_DIR:PATH=KF6_DIR-NOTFOUND
+
+//Skip processing of po files
+KF_SKIP_PO_PROCESSING:BOOL=OFF
+
+//Path to a program.
+KI18N_PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3
+
+//The directory containing a CMake configuration file for KPMcore.
+KPMcore_DIR:PATH=KPMcore_DIR-NOTFOUND
+
+//Path to a library.
+LIBPARTED_FS_RESIZE_LIBRARY:FILEPATH=/usr/lib/libparted-fs-resize.so
+
+//Path to a file.
+LIBPARTED_INCLUDE_DIR:PATH=/usr/include/parted
+
+//Path to a library.
+LIBPARTED_LIBRARY:FILEPATH=/usr/lib/libparted.so
+
+//Command to build the project
+MAKECOMMAND:STRING=/usr/bin/cmake --build . --config "${CTEST_CONFIGURATION_TYPE}"
+
+//Path to the memory checking command, used for memory error detection.
+MEMORYCHECK_COMMAND:FILEPATH=MEMORYCHECK_COMMAND-NOTFOUND
+
+//File that contains suppressions for the memory checker
+MEMORYCHECK_SUPPRESSIONS_FILE:FILEPATH=
+
+//Path to a file.
+OPENGL_EGL_INCLUDE_DIR:PATH=/usr/include
+
+//Path to a file.
+OPENGL_GLES2_INCLUDE_DIR:PATH=/usr/include
+
+//Path to a file.
+OPENGL_GLES3_INCLUDE_DIR:PATH=/usr/include
+
+//Path to a file.
+OPENGL_GLU_INCLUDE_DIR:PATH=/usr/include
+
+//Path to a file.
+OPENGL_GLX_INCLUDE_DIR:PATH=/usr/include
+
+//Path to a file.
+OPENGL_INCLUDE_DIR:PATH=/usr/include
+
+//Path to a library.
+OPENGL_egl_LIBRARY:FILEPATH=/usr/lib/libEGL.so
+
+//Path to a library.
+OPENGL_gles2_LIBRARY:FILEPATH=/usr/lib/libGLESv2.so
+
+//Path to a library.
+OPENGL_gles3_LIBRARY:FILEPATH=/usr/lib/libGLESv2.so
+
+//Path to a library.
+OPENGL_glu_LIBRARY:FILEPATH=/usr/lib/libGLU.so
+
+//Path to a library.
+OPENGL_glx_LIBRARY:FILEPATH=/usr/lib/libGLX.so
+
+//Path to a library.
+OPENGL_opengl_LIBRARY:FILEPATH=/usr/lib/libOpenGL.so
+
+//Path to a file.
+OPENGL_xmesa_INCLUDE_DIR:PATH=OPENGL_xmesa_INCLUDE_DIR-NOTFOUND
+
+//Arguments to supply to pkg-config
+PKG_CONFIG_ARGN:STRING=
+
+//pkg-config executable
+PKG_CONFIG_EXECUTABLE:FILEPATH=/usr/bin/pkg-config
+
+//Path to a program.
+PYLINT_COMMAND:FILEPATH=PYLINT_COMMAND-NOTFOUND
+
+//The directory containing a CMake configuration file for Plasma.
+Plasma_DIR:PATH=/usr/lib/cmake/Plasma
+
+//The directory containing a CMake configuration file for PolkitQt6-1.
+PolkitQt6-1_DIR:PATH=/usr/lib/cmake/PolkitQt6-1
+
+//Additional directories where find(Qt6 ...) host Qt components
+// are searched
+QT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH:STRING=
+
+//Additional directories where find(Qt6 ...) components are searched
+QT_ADDITIONAL_PACKAGES_PREFIX_PATH:STRING=
+
+//The directory containing a CMake configuration file for Qt6Concurrent.
+Qt6Concurrent_DIR:PATH=/usr/lib/cmake/Qt6Concurrent
+
+//The directory containing a CMake configuration file for Qt6CoreTools.
+Qt6CoreTools_DIR:PATH=/usr/lib/cmake/Qt6CoreTools
+
+//The directory containing a CMake configuration file for Qt6Core.
+Qt6Core_DIR:PATH=/usr/lib/cmake/Qt6Core
+
+//The directory containing a CMake configuration file for Qt6DBusTools.
+Qt6DBusTools_DIR:PATH=/usr/lib/cmake/Qt6DBusTools
+
+//The directory containing a CMake configuration file for Qt6DBus.
+Qt6DBus_DIR:PATH=/usr/lib/cmake/Qt6DBus
+
+//The directory containing a CMake configuration file for Qt6GuiTools.
+Qt6GuiTools_DIR:PATH=/usr/lib/cmake/Qt6GuiTools
+
+//The directory containing a CMake configuration file for Qt6Gui.
+Qt6Gui_DIR:PATH=/usr/lib/cmake/Qt6Gui
+
+//The directory containing a CMake configuration file for Qt6LinguistTools.
+Qt6LinguistTools_DIR:PATH=/usr/lib/cmake/Qt6LinguistTools
+
+//The directory containing a CMake configuration file for Qt6Location.
+Qt6Location_DIR:PATH=Qt6Location_DIR-NOTFOUND
+
+//The directory containing a CMake configuration file for Qt6Network.
+Qt6Network_DIR:PATH=/usr/lib/cmake/Qt6Network
+
+//The directory containing a CMake configuration file for Qt6OpenGL.
+Qt6OpenGL_DIR:PATH=/usr/lib/cmake/Qt6OpenGL
+
+//The directory containing a CMake configuration file for Qt6Positioning.
+Qt6Positioning_DIR:PATH=/usr/lib/cmake/Qt6Positioning
+
+//The directory containing a CMake configuration file for Qt6QmlBuiltins.
+Qt6QmlBuiltins_DIR:PATH=/usr/lib/cmake/Qt6QmlBuiltins
+
+//The directory containing a CMake configuration file for Qt6QmlCompilerPlusPrivate.
+Qt6QmlCompilerPlusPrivate_DIR:PATH=Qt6QmlCompilerPlusPrivate_DIR-NOTFOUND
+
+//The directory containing a CMake configuration file for Qt6QmlIntegration.
+Qt6QmlIntegration_DIR:PATH=/usr/lib/cmake/Qt6QmlIntegration
+
+//The directory containing a CMake configuration file for Qt6QmlModels.
+Qt6QmlModels_DIR:PATH=/usr/lib/cmake/Qt6QmlModels
+
+//The directory containing a CMake configuration file for Qt6QmlTools.
+Qt6QmlTools_DIR:PATH=/usr/lib/cmake/Qt6QmlTools
+
+//The directory containing a CMake configuration file for Qt6Qml.
+Qt6Qml_DIR:PATH=/usr/lib/cmake/Qt6Qml
+
+//The directory containing a CMake configuration file for Qt6QuickWidgets.
+Qt6QuickWidgets_DIR:PATH=/usr/lib/cmake/Qt6QuickWidgets
+
+//The directory containing a CMake configuration file for Qt6Quick.
+Qt6Quick_DIR:PATH=/usr/lib/cmake/Qt6Quick
+
+//The directory containing a CMake configuration file for Qt6Svg.
+Qt6Svg_DIR:PATH=/usr/lib/cmake/Qt6Svg
+
+//The directory containing a CMake configuration file for Qt6Test.
+Qt6Test_DIR:PATH=/usr/lib/cmake/Qt6Test
+
+//The directory containing a CMake configuration file for Qt6WidgetsTools.
+Qt6WidgetsTools_DIR:PATH=/usr/lib/cmake/Qt6WidgetsTools
+
+//The directory containing a CMake configuration file for Qt6Widgets.
+Qt6Widgets_DIR:PATH=/usr/lib/cmake/Qt6Widgets
+
+//The directory containing a CMake configuration file for Qt6Xml.
+Qt6Xml_DIR:PATH=/usr/lib/cmake/Qt6Xml
+
+//The directory containing a CMake configuration file for Qt6.
+Qt6_DIR:PATH=/usr/lib/cmake/Qt6
+
+//Name of the computer/site where compile is being run
+SITE:STRING=astroarch
+
+//No help, variable specified on the command line.
+SKIP_MODULES:UNINITIALIZED=bootloader displaymanager dracut dracutlukscfg dummycpp dummyprocess dummypython fsresizer fstab grubcfg initcpio initcpiocfg initramfscfg luksbootkeyfile luksopenswaphookcfg mkinitfs mount networkcfg openrcdmcryptcfg oemid partition plymouthcfg preservefiles rawfs removeuser services-openrc services-systemd tracking umount unpackfs users usersq zfs zfshostid
+
+//Select the services module to use
+USE_services:STRING=
+
+//Path to a program.
+Vulkan_GLSLANG_VALIDATOR_EXECUTABLE:FILEPATH=/bin/glslangValidator
+
+//Path to a program.
+Vulkan_GLSLC_EXECUTABLE:FILEPATH=/bin/glslc
+
+//Path to a file.
+Vulkan_INCLUDE_DIR:PATH=/usr/include
+
+//Path to a library.
+Vulkan_LIBRARY:FILEPATH=/lib/libvulkan.so
+
+//Use bundled pybind11 instead of Boost::Python
+WITH_PYBIND11:BOOL=ON
+
+//Enable Python modules API.
+WITH_PYTHON:BOOL=ON
+
+//Enable QML UI options.
+WITH_QML:BOOL=ON
+
+//Use Qt6 instead of Qt5
+WITH_QT6:BOOL=ON
+
+//Path to a file.
+X11_ICE_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_ICE_LIB:FILEPATH=/usr/lib/libICE.so
+
+//Path to a file.
+X11_SM_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_SM_LIB:FILEPATH=/usr/lib/libSM.so
+
+//Path to a file.
+X11_X11_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_X11_LIB:FILEPATH=/usr/lib/libX11.so
+
+//Path to a file.
+X11_X11_xcb_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_X11_xcb_LIB:FILEPATH=/usr/lib/libX11-xcb.so
+
+//Path to a file.
+X11_XRes_INCLUDE_PATH:PATH=X11_XRes_INCLUDE_PATH-NOTFOUND
+
+//Path to a library.
+X11_XRes_LIB:FILEPATH=X11_XRes_LIB-NOTFOUND
+
+//Path to a file.
+X11_XShm_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_XSync_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xaccessrules_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xaccessstr_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xau_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xau_LIB:FILEPATH=/usr/lib/libXau.so
+
+//Path to a file.
+X11_Xaw_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xaw_LIB:FILEPATH=/usr/lib/libXaw.so
+
+//Path to a file.
+X11_Xcomposite_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xcomposite_LIB:FILEPATH=/usr/lib/libXcomposite.so
+
+//Path to a file.
+X11_Xcursor_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xcursor_LIB:FILEPATH=/usr/lib/libXcursor.so
+
+//Path to a file.
+X11_Xdamage_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xdamage_LIB:FILEPATH=/usr/lib/libXdamage.so
+
+//Path to a file.
+X11_Xdbe_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xdmcp_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xdmcp_LIB:FILEPATH=/usr/lib/libXdmcp.so
+
+//Path to a file.
+X11_Xext_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xext_LIB:FILEPATH=/usr/lib/libXext.so
+
+//Path to a file.
+X11_Xfixes_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xfixes_LIB:FILEPATH=/usr/lib/libXfixes.so
+
+//Path to a file.
+X11_Xft_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xft_LIB:FILEPATH=/usr/lib/libXft.so
+
+//Path to a file.
+X11_Xi_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xi_LIB:FILEPATH=/usr/lib/libXi.so
+
+//Path to a file.
+X11_Xinerama_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xinerama_LIB:FILEPATH=/usr/lib/libXinerama.so
+
+//Path to a file.
+X11_Xkb_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xkblib_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xlib_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xmu_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xmu_LIB:FILEPATH=/usr/lib/libXmu.so
+
+//Path to a file.
+X11_Xpm_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xpm_LIB:FILEPATH=/usr/lib/libXpm.so
+
+//Path to a file.
+X11_Xrandr_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xrandr_LIB:FILEPATH=/usr/lib/libXrandr.so
+
+//Path to a file.
+X11_Xrender_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xrender_LIB:FILEPATH=/usr/lib/libXrender.so
+
+//Path to a file.
+X11_Xshape_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xss_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xss_LIB:FILEPATH=/usr/lib/libXss.so
+
+//Path to a file.
+X11_Xt_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xt_LIB:FILEPATH=/usr/lib/libXt.so
+
+//Path to a file.
+X11_Xtst_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xtst_LIB:FILEPATH=/usr/lib/libXtst.so
+
+//Path to a file.
+X11_Xutil_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_Xv_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xv_LIB:FILEPATH=/usr/lib/libXv.so
+
+//Path to a file.
+X11_Xxf86misc_INCLUDE_PATH:PATH=X11_Xxf86misc_INCLUDE_PATH-NOTFOUND
+
+//Path to a library.
+X11_Xxf86misc_LIB:FILEPATH=X11_Xxf86misc_LIB-NOTFOUND
+
+//Path to a file.
+X11_Xxf86vm_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_Xxf86vm_LIB:FILEPATH=/usr/lib/libXxf86vm.so
+
+//Path to a file.
+X11_dpms_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a file.
+X11_xcb_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_LIB:FILEPATH=/usr/lib/libxcb.so
+
+//Path to a file.
+X11_xcb_composite_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_composite_LIB:FILEPATH=/usr/lib/libxcb-composite.so
+
+//Path to a file.
+X11_xcb_cursor_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_cursor_LIB:FILEPATH=/usr/lib/libxcb-cursor.so
+
+//Path to a file.
+X11_xcb_damage_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_damage_LIB:FILEPATH=/usr/lib/libxcb-damage.so
+
+//Path to a file.
+X11_xcb_dpms_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_dpms_LIB:FILEPATH=/usr/lib/libxcb-dpms.so
+
+//Path to a file.
+X11_xcb_dri2_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_dri2_LIB:FILEPATH=/usr/lib/libxcb-dri2.so
+
+//Path to a file.
+X11_xcb_dri3_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_dri3_LIB:FILEPATH=/usr/lib/libxcb-dri3.so
+
+//Path to a file.
+X11_xcb_errors_INCLUDE_PATH:PATH=X11_xcb_errors_INCLUDE_PATH-NOTFOUND
+
+//Path to a library.
+X11_xcb_errors_LIB:FILEPATH=X11_xcb_errors_LIB-NOTFOUND
+
+//Path to a file.
+X11_xcb_ewmh_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_ewmh_LIB:FILEPATH=/usr/lib/libxcb-ewmh.so
+
+//Path to a file.
+X11_xcb_glx_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_glx_LIB:FILEPATH=/usr/lib/libxcb-glx.so
+
+//Path to a file.
+X11_xcb_icccm_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_icccm_LIB:FILEPATH=/usr/lib/libxcb-icccm.so
+
+//Path to a file.
+X11_xcb_image_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_image_LIB:FILEPATH=/usr/lib/libxcb-image.so
+
+//Path to a file.
+X11_xcb_keysyms_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_keysyms_LIB:FILEPATH=/usr/lib/libxcb-keysyms.so
+
+//Path to a file.
+X11_xcb_present_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_present_LIB:FILEPATH=/usr/lib/libxcb-present.so
+
+//Path to a file.
+X11_xcb_randr_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_randr_LIB:FILEPATH=/usr/lib/libxcb-randr.so
+
+//Path to a file.
+X11_xcb_record_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_record_LIB:FILEPATH=/usr/lib/libxcb-record.so
+
+//Path to a file.
+X11_xcb_render_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_render_LIB:FILEPATH=/usr/lib/libxcb-render.so
+
+//Path to a file.
+X11_xcb_render_util_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_render_util_LIB:FILEPATH=/usr/lib/libxcb-render-util.so
+
+//Path to a file.
+X11_xcb_res_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_res_LIB:FILEPATH=/usr/lib/libxcb-res.so
+
+//Path to a file.
+X11_xcb_screensaver_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_screensaver_LIB:FILEPATH=/usr/lib/libxcb-screensaver.so
+
+//Path to a file.
+X11_xcb_shape_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_shape_LIB:FILEPATH=/usr/lib/libxcb-shape.so
+
+//Path to a file.
+X11_xcb_shm_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_shm_LIB:FILEPATH=/usr/lib/libxcb-shm.so
+
+//Path to a file.
+X11_xcb_sync_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_sync_LIB:FILEPATH=/usr/lib/libxcb-sync.so
+
+//Path to a file.
+X11_xcb_util_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_util_LIB:FILEPATH=/usr/lib/libxcb-util.so
+
+//Path to a file.
+X11_xcb_xf86dri_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_xf86dri_LIB:FILEPATH=/usr/lib/libxcb-xf86dri.so
+
+//Path to a file.
+X11_xcb_xfixes_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_xfixes_LIB:FILEPATH=/usr/lib/libxcb-xfixes.so
+
+//Path to a file.
+X11_xcb_xinerama_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_xinerama_LIB:FILEPATH=/usr/lib/libxcb-xinerama.so
+
+//Path to a file.
+X11_xcb_xinput_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_xinput_LIB:FILEPATH=/usr/lib/libxcb-xinput.so
+
+//Path to a file.
+X11_xcb_xkb_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_xkb_LIB:FILEPATH=/usr/lib/libxcb-xkb.so
+
+//Path to a file.
+X11_xcb_xrm_INCLUDE_PATH:PATH=X11_xcb_xrm_INCLUDE_PATH-NOTFOUND
+
+//Path to a library.
+X11_xcb_xrm_LIB:FILEPATH=X11_xcb_xrm_LIB-NOTFOUND
+
+//Path to a file.
+X11_xcb_xtest_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_xtest_LIB:FILEPATH=/usr/lib/libxcb-xtest.so
+
+//Path to a file.
+X11_xcb_xv_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_xv_LIB:FILEPATH=/usr/lib/libxcb-xv.so
+
+//Path to a file.
+X11_xcb_xvmc_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xcb_xvmc_LIB:FILEPATH=/usr/lib/libxcb-xvmc.so
+
+//Path to a file.
+X11_xkbcommon_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xkbcommon_LIB:FILEPATH=/usr/lib/libxkbcommon.so
+
+//Path to a file.
+X11_xkbcommon_X11_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xkbcommon_X11_LIB:FILEPATH=/usr/lib/libxkbcommon-x11.so
+
+//Path to a file.
+X11_xkbfile_INCLUDE_PATH:PATH=/usr/include
+
+//Path to a library.
+X11_xkbfile_LIB:FILEPATH=/usr/lib/libxkbfile.so
+
+//Path to a file.
+XKB_INCLUDE_DIR:PATH=/usr/include
+
+//Path to a library.
+XKB_LIBRARY:FILEPATH=/usr/lib/libxkbcommon.so
+
+//Path to a file.
+YAMLCPP_INCLUDE_DIR:PATH=/usr/include
+
+//Path to a library.
+YAMLCPP_LIBRARY:FILEPATH=/usr/lib/libyaml-cpp.so
+
+//Path to a program.
+mksquashfs_PROGRAM:FILEPATH=mksquashfs_PROGRAM-NOTFOUND
+
+//Path to a library.
+pkgcfg_lib_PKG_FONTCONFIG_fontconfig:FILEPATH=/usr/lib/libfontconfig.so
+
+//Path to a library.
+pkgcfg_lib_PKG_FONTCONFIG_freetype:FILEPATH=/usr/lib/libfreetype.so
+
+//Path to a library.
+pkgcfg_lib_PKG_XKB_xkbcommon:FILEPATH=/usr/lib/libxkbcommon.so
+
+
+########################
+# INTERNAL cache entries
+########################
+
+//Dependencies for configvalidator checked
+CALAMARES_CONFIGVALIDATOR_CHECKED:INTERNAL=TRUE
+//Result of configvalidator dependency check
+CALAMARES_CONFIGVALIDATOR_RESULT:INTERNAL=1
+//ADVANCED property for variable: CMAKE_ADDR2LINE
+CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_AR
+CMAKE_AR-ADVANCED:INTERNAL=1
+//This is the directory where this CMakeCache.txt was created
+CMAKE_CACHEFILE_DIR:INTERNAL=/home/astronaut/Projects/astroarch-onboarding/src
+//Major version of cmake used to create the current loaded cache
+CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
+//Minor version of cmake used to create the current loaded cache
+CMAKE_CACHE_MINOR_VERSION:INTERNAL=30
+//Patch version of cmake used to create the current loaded cache
+CMAKE_CACHE_PATCH_VERSION:INTERNAL=3
+//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
+CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
+//Path to CMake executable.
+CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
+//Path to cpack program executable.
+CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
+//ADVANCED property for variable: CMAKE_CTEST_COMMAND
+CMAKE_CTEST_COMMAND-ADVANCED:INTERNAL=1
+//Path to ctest program executable.
+CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
+//ADVANCED property for variable: CMAKE_CXX_COMPILER
+CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
+CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
+CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS
+CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
+CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
+CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
+CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
+CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER
+CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER_AR
+CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
+CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS
+CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
+CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
+CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
+CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
+CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_DLLTOOL
+CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
+//Path to cache edit program executable.
+CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake
+//Executable file format
+CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
+CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
+CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
+CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
+CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
+CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
+//Name of external makefile project generator.
+CMAKE_EXTRA_GENERATOR:INTERNAL=
+//Name of generator.
+CMAKE_GENERATOR:INTERNAL=Unix Makefiles
+//Generator instance identifier.
+CMAKE_GENERATOR_INSTANCE:INTERNAL=
+//Name of generator platform.
+CMAKE_GENERATOR_PLATFORM:INTERNAL=
+//Name of generator toolset.
+CMAKE_GENERATOR_TOOLSET:INTERNAL=
+//Have function connect
+CMAKE_HAVE_CONNECT:INTERNAL=1
+//Have function gethostbyname
+CMAKE_HAVE_GETHOSTBYNAME:INTERNAL=1
+//Test CMAKE_HAVE_LIBC_PTHREAD
+CMAKE_HAVE_LIBC_PTHREAD:INTERNAL=1
+//Have function remove
+CMAKE_HAVE_REMOVE:INTERNAL=1
+//Have function shmat
+CMAKE_HAVE_SHMAT:INTERNAL=1
+//Source directory with the top level CMakeLists.txt file for this
+// project
+CMAKE_HOME_DIRECTORY:INTERNAL=/home/astronaut/Projects/astroarch-onboarding
+//ADVANCED property for variable: CMAKE_INSTALL_BINDIR
+CMAKE_INSTALL_BINDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_DATADIR
+CMAKE_INSTALL_DATADIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_DATAROOTDIR
+CMAKE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_DOCDIR
+CMAKE_INSTALL_DOCDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_INCLUDEDIR
+CMAKE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_INFODIR
+CMAKE_INSTALL_INFODIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LIBDIR
+CMAKE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LIBEXECDIR
+CMAKE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LOCALEDIR
+CMAKE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_LOCALSTATEDIR
+CMAKE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_MANDIR
+CMAKE_INSTALL_MANDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_OLDINCLUDEDIR
+CMAKE_INSTALL_OLDINCLUDEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_RUNSTATEDIR
+CMAKE_INSTALL_RUNSTATEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_SBINDIR
+CMAKE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_INSTALL_SHAREDSTATEDIR
+CMAKE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1
+//Install .so files without execute permission.
+CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0
+//ADVANCED property for variable: CMAKE_INSTALL_SYSCONFDIR
+CMAKE_INSTALL_SYSCONFDIR-ADVANCED:INTERNAL=1
+//Have library ICE
+CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER:INTERNAL=1
+//ADVANCED property for variable: CMAKE_LINKER
+CMAKE_LINKER-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
+CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
+CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
+CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
+CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
+CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_NM
+CMAKE_NM-ADVANCED:INTERNAL=1
+//number of local generators
+CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=34
+//ADVANCED property for variable: CMAKE_OBJCOPY
+CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_OBJDUMP
+CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
+//Platform information initialized
+CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_RANLIB
+CMAKE_RANLIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_READELF
+CMAKE_READELF-ADVANCED:INTERNAL=1
+//Path to CMake installation.
+CMAKE_ROOT:INTERNAL=/usr/share/cmake
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
+CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
+CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
+CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
+CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
+CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_SKIP_RPATH
+CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
+CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
+CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
+CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
+CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
+CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_STRIP
+CMAKE_STRIP-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CMAKE_TAPI
+CMAKE_TAPI-ADVANCED:INTERNAL=1
+//uname command
+CMAKE_UNAME:INTERNAL=/usr/bin/uname
+//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
+CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: COVERAGE_COMMAND
+COVERAGE_COMMAND-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: COVERAGE_EXTRA_FLAGS
+COVERAGE_EXTRA_FLAGS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_DEB
+CPACK_BINARY_DEB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_FREEBSD
+CPACK_BINARY_FREEBSD-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_IFW
+CPACK_BINARY_IFW-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_NSIS
+CPACK_BINARY_NSIS-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_RPM
+CPACK_BINARY_RPM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_STGZ
+CPACK_BINARY_STGZ-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_TBZ2
+CPACK_BINARY_TBZ2-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_TGZ
+CPACK_BINARY_TGZ-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_TXZ
+CPACK_BINARY_TXZ-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_BINARY_TZ
+CPACK_BINARY_TZ-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_SOURCE_RPM
+CPACK_SOURCE_RPM-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_SOURCE_TBZ2
+CPACK_SOURCE_TBZ2-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_SOURCE_TGZ
+CPACK_SOURCE_TGZ-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_SOURCE_TXZ
+CPACK_SOURCE_TXZ-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_SOURCE_TZ
+CPACK_SOURCE_TZ-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CPACK_SOURCE_ZIP
+CPACK_SOURCE_ZIP-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CTEST_SUBMIT_RETRY_COUNT
+CTEST_SUBMIT_RETRY_COUNT-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: CTEST_SUBMIT_RETRY_DELAY
+CTEST_SUBMIT_RETRY_DELAY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: DART_TESTING_TIMEOUT
+DART_TESTING_TIMEOUT-ADVANCED:INTERNAL=1
+//Details about finding Gettext
+FIND_PACKAGE_MESSAGE_DETAILS_Gettext:INTERNAL=[/usr/bin/msgmerge][/usr/bin/msgfmt][v0.22.5()]
+//Details about finding KF6Config
+FIND_PACKAGE_MESSAGE_DETAILS_KF6Config:INTERNAL=[/usr/lib/cmake/KF6Config/KF6ConfigConfig.cmake][v6.6.0()]
+//Details about finding KF6CoreAddons
+FIND_PACKAGE_MESSAGE_DETAILS_KF6CoreAddons:INTERNAL=[/usr/lib/cmake/KF6CoreAddons/KF6CoreAddonsConfig.cmake][v6.6.0()]
+//Details about finding KF6Package
+FIND_PACKAGE_MESSAGE_DETAILS_KF6Package:INTERNAL=[/usr/lib/cmake/KF6Package/KF6PackageConfig.cmake][v6.6.0()]
+//Details about finding LIBPARTED
+FIND_PACKAGE_MESSAGE_DETAILS_LIBPARTED:INTERNAL=[/usr/lib/libparted.so][/usr/include/parted][v()]
+//Details about finding OpenGL
+FIND_PACKAGE_MESSAGE_DETAILS_OpenGL:INTERNAL=[/usr/lib/libOpenGL.so][/usr/lib/libGLX.so][/usr/include][c ][v()]
+//Details about finding Python
+FIND_PACKAGE_MESSAGE_DETAILS_Python:INTERNAL=[/usr/bin/python3.12][/usr/include/python3.12][/usr/lib/libpython3.12.so][cfound components: Interpreter Development Development.Module Development.Embed ][v3.12.6(3.6)]
+//Details about finding Threads
+FIND_PACKAGE_MESSAGE_DETAILS_Threads:INTERNAL=[TRUE][v()]
+//Details about finding WrapAtomic
+FIND_PACKAGE_MESSAGE_DETAILS_WrapAtomic:INTERNAL=[1][v()]
+//Details about finding WrapOpenGL
+FIND_PACKAGE_MESSAGE_DETAILS_WrapOpenGL:INTERNAL=[ON][v()]
+//Details about finding WrapVulkanHeaders
+FIND_PACKAGE_MESSAGE_DETAILS_WrapVulkanHeaders:INTERNAL=[/usr/include][v()]
+//Details about finding X11
+FIND_PACKAGE_MESSAGE_DETAILS_X11:INTERNAL=[/usr/include][/usr/lib/libX11.so][c ][v()]
+//Details about finding XKB
+FIND_PACKAGE_MESSAGE_DETAILS_XKB:INTERNAL=[/usr/lib/libxkbcommon.so][/usr/include][v1.7.0(0.5.0)]
+//Details about finding YAMLCPP
+FIND_PACKAGE_MESSAGE_DETAILS_YAMLCPP:INTERNAL=[/usr/include][/usr/lib/libyaml-cpp.so][v(0.5.1)]
+//ADVANCED property for variable: FREETYPE_INCLUDE_DIR_freetype2
+FREETYPE_INCLUDE_DIR_freetype2-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: FREETYPE_INCLUDE_DIR_ft2build
+FREETYPE_INCLUDE_DIR_ft2build-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: FREETYPE_LIBRARY_DEBUG
+FREETYPE_LIBRARY_DEBUG-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: FREETYPE_LIBRARY_RELEASE
+FREETYPE_LIBRARY_RELEASE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: Fontconfig_INCLUDE_DIR
+Fontconfig_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: Fontconfig_LIBRARY
+Fontconfig_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: GITCOMMAND
+GITCOMMAND-ADVANCED:INTERNAL=1
+//Test HAVE_STDATOMIC
+HAVE_STDATOMIC:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_APPDIR
+KDE_INSTALL_APPDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_AUTOSTARTDIR
+KDE_INSTALL_AUTOSTARTDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_BINDIR
+KDE_INSTALL_BINDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_CMAKEPACKAGEDIR
+KDE_INSTALL_CMAKEPACKAGEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_CONFDIR
+KDE_INSTALL_CONFDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_DATADIR
+KDE_INSTALL_DATADIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_DATAROOTDIR
+KDE_INSTALL_DATAROOTDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_DBUSDIR
+KDE_INSTALL_DBUSDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_DBUSINTERFACEDIR
+KDE_INSTALL_DBUSINTERFACEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_DBUSSERVICEDIR
+KDE_INSTALL_DBUSSERVICEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_DBUSSYSTEMSERVICEDIR
+KDE_INSTALL_DBUSSYSTEMSERVICEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_DESKTOPDIR
+KDE_INSTALL_DESKTOPDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_DOCBUNDLEDIR
+KDE_INSTALL_DOCBUNDLEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_EXECROOTDIR
+KDE_INSTALL_EXECROOTDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_ICONDIR
+KDE_INSTALL_ICONDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_INCLUDEDIR
+KDE_INSTALL_INCLUDEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_INFODIR
+KDE_INSTALL_INFODIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_JARDIR
+KDE_INSTALL_JARDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_KAPPTEMPLATESDIR
+KDE_INSTALL_KAPPTEMPLATESDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_KCFGDIR
+KDE_INSTALL_KCFGDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_KCONFUPDATEDIR
+KDE_INSTALL_KCONFUPDATEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_KFILETEMPLATESDIR
+KDE_INSTALL_KFILETEMPLATESDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_KNOTIFYRCDIR
+KDE_INSTALL_KNOTIFYRCDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_KXMLGUIDIR
+KDE_INSTALL_KXMLGUIDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_LIBDIR
+KDE_INSTALL_LIBDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_LIBEXECDIR
+KDE_INSTALL_LIBEXECDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_LOCALEDIR
+KDE_INSTALL_LOCALEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_LOCALSTATEDIR
+KDE_INSTALL_LOCALSTATEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_LOGGINGCATEGORIESDIR
+KDE_INSTALL_LOGGINGCATEGORIESDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_MANDIR
+KDE_INSTALL_MANDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_METAINFODIR
+KDE_INSTALL_METAINFODIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_MIMEDIR
+KDE_INSTALL_MIMEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_PLUGINDIR
+KDE_INSTALL_PLUGINDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_QCHDIR
+KDE_INSTALL_QCHDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_QMLDIR
+KDE_INSTALL_QMLDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_QTPLUGINDIR
+KDE_INSTALL_QTPLUGINDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_QTQCHDIR
+KDE_INSTALL_QTQCHDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_SBINDIR
+KDE_INSTALL_SBINDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_SHAREDSTATEDIR
+KDE_INSTALL_SHAREDSTATEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_SOUNDDIR
+KDE_INSTALL_SOUNDDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_SYSCONFDIR
+KDE_INSTALL_SYSCONFDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_SYSTEMDUNITDIR
+KDE_INSTALL_SYSTEMDUNITDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_SYSTEMDUSERUNITDIR
+KDE_INSTALL_SYSTEMDUSERUNITDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_TEMPLATEDIR
+KDE_INSTALL_TEMPLATEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_WALLPAPERDIR
+KDE_INSTALL_WALLPAPERDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: KDE_INSTALL_ZSHAUTOCOMPLETEDIR
+KDE_INSTALL_ZSHAUTOCOMPLETEDIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: LIBPARTED_FILESYSTEM_SUPPORT
+LIBPARTED_FILESYSTEM_SUPPORT-ADVANCED:INTERNAL=1
+//Have function ped_file_system_clobber
+LIBPARTED_FILESYSTEM_SUPPORT:INTERNAL=
+//ADVANCED property for variable: LIBPARTED_FS_RESIZE_LIBRARY
+LIBPARTED_FS_RESIZE_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: LIBPARTED_FS_RESIZE_LIBRARY_SUPPORT
+LIBPARTED_FS_RESIZE_LIBRARY_SUPPORT-ADVANCED:INTERNAL=1
+//Have function ped_file_system_resize
+LIBPARTED_FS_RESIZE_LIBRARY_SUPPORT:INTERNAL=1
+//ADVANCED property for variable: LIBPARTED_INCLUDE_DIR
+LIBPARTED_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: LIBPARTED_LIBRARY
+LIBPARTED_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: MAKECOMMAND
+MAKECOMMAND-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: MEMORYCHECK_COMMAND
+MEMORYCHECK_COMMAND-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: MEMORYCHECK_SUPPRESSIONS_FILE
+MEMORYCHECK_SUPPRESSIONS_FILE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_EGL_INCLUDE_DIR
+OPENGL_EGL_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_GLES2_INCLUDE_DIR
+OPENGL_GLES2_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_GLES3_INCLUDE_DIR
+OPENGL_GLES3_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_GLU_INCLUDE_DIR
+OPENGL_GLU_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_GLX_INCLUDE_DIR
+OPENGL_GLX_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_INCLUDE_DIR
+OPENGL_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_egl_LIBRARY
+OPENGL_egl_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_gles2_LIBRARY
+OPENGL_gles2_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_gles3_LIBRARY
+OPENGL_gles3_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_glu_LIBRARY
+OPENGL_glu_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_glx_LIBRARY
+OPENGL_glx_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_opengl_LIBRARY
+OPENGL_opengl_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: OPENGL_xmesa_INCLUDE_DIR
+OPENGL_xmesa_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: PKG_CONFIG_ARGN
+PKG_CONFIG_ARGN-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE
+PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1
+PKG_FONTCONFIG_CFLAGS:INTERNAL=-I/usr/include;-I/usr/include/freetype2;-I/usr/include/libpng16;-I/usr/include/harfbuzz;-I/usr/include/glib-2.0;-I/usr/lib/glib-2.0/include;-I/usr/include/sysprof-6;-pthread
+PKG_FONTCONFIG_CFLAGS_I:INTERNAL=
+PKG_FONTCONFIG_CFLAGS_OTHER:INTERNAL=-pthread
+PKG_FONTCONFIG_FOUND:INTERNAL=1
+PKG_FONTCONFIG_INCLUDEDIR:INTERNAL=/usr/include
+PKG_FONTCONFIG_INCLUDE_DIRS:INTERNAL=/usr/include;/usr/include/freetype2;/usr/include/libpng16;/usr/include/harfbuzz;/usr/include/glib-2.0;/usr/lib/glib-2.0/include;/usr/include/sysprof-6
+PKG_FONTCONFIG_LDFLAGS:INTERNAL=-L/usr/lib;-lfontconfig;-lfreetype
+PKG_FONTCONFIG_LDFLAGS_OTHER:INTERNAL=
+PKG_FONTCONFIG_LIBDIR:INTERNAL=/usr/lib
+PKG_FONTCONFIG_LIBRARIES:INTERNAL=fontconfig;freetype
+PKG_FONTCONFIG_LIBRARY_DIRS:INTERNAL=/usr/lib
+PKG_FONTCONFIG_LIBS:INTERNAL=
+PKG_FONTCONFIG_LIBS_L:INTERNAL=
+PKG_FONTCONFIG_LIBS_OTHER:INTERNAL=
+PKG_FONTCONFIG_LIBS_PATHS:INTERNAL=
+PKG_FONTCONFIG_MODULE_NAME:INTERNAL=fontconfig
+PKG_FONTCONFIG_PREFIX:INTERNAL=/usr
+PKG_FONTCONFIG_STATIC_CFLAGS:INTERNAL=-I/usr/include;-I/usr/include/freetype2;-I/usr/include/libpng16;-I/usr/include/harfbuzz;-I/usr/include/glib-2.0;-I/usr/lib/glib-2.0/include;-I/usr/include/sysprof-6;-pthread;-DXML_STATIC
+PKG_FONTCONFIG_STATIC_CFLAGS_I:INTERNAL=
+PKG_FONTCONFIG_STATIC_CFLAGS_OTHER:INTERNAL=-pthread;-DXML_STATIC
+PKG_FONTCONFIG_STATIC_INCLUDE_DIRS:INTERNAL=/usr/include;/usr/include/freetype2;/usr/include/libpng16;/usr/include/harfbuzz;/usr/include/glib-2.0;/usr/lib/glib-2.0/include;/usr/include/sysprof-6
+PKG_FONTCONFIG_STATIC_LDFLAGS:INTERNAL=-L/usr/lib;-lfontconfig;-pthread;-lfreetype;-L/usr/lib;-lbz2;-lpng16;-lm;-lm;-lz;-lharfbuzz;-pthread;-lm;-lglib-2.0;-latomic;-lm;-lsysprof-capture-4;-pthread;-lpcre2-8;-lgraphite2;-lbrotlidec;-lbrotlicommon;-lexpat;-lm
+PKG_FONTCONFIG_STATIC_LDFLAGS_OTHER:INTERNAL=-pthread;-pthread;-pthread
+PKG_FONTCONFIG_STATIC_LIBDIR:INTERNAL=
+PKG_FONTCONFIG_STATIC_LIBRARIES:INTERNAL=fontconfig;freetype;bz2;png16;m;m;z;harfbuzz;m;glib-2.0;atomic;m;sysprof-capture-4;pcre2-8;graphite2;brotlidec;brotlicommon;expat;m
+PKG_FONTCONFIG_STATIC_LIBRARY_DIRS:INTERNAL=/usr/lib;/usr/lib
+PKG_FONTCONFIG_STATIC_LIBS:INTERNAL=
+PKG_FONTCONFIG_STATIC_LIBS_L:INTERNAL=
+PKG_FONTCONFIG_STATIC_LIBS_OTHER:INTERNAL=
+PKG_FONTCONFIG_STATIC_LIBS_PATHS:INTERNAL=
+PKG_FONTCONFIG_VERSION:INTERNAL=2.15.0
+PKG_FONTCONFIG_fontconfig_INCLUDEDIR:INTERNAL=
+PKG_FONTCONFIG_fontconfig_LIBDIR:INTERNAL=
+PKG_FONTCONFIG_fontconfig_PREFIX:INTERNAL=
+PKG_FONTCONFIG_fontconfig_VERSION:INTERNAL=
+PKG_XKB_CFLAGS:INTERNAL=-I/usr/include
+PKG_XKB_CFLAGS_I:INTERNAL=
+PKG_XKB_CFLAGS_OTHER:INTERNAL=
+PKG_XKB_FOUND:INTERNAL=1
+PKG_XKB_INCLUDEDIR:INTERNAL=/usr/include
+PKG_XKB_INCLUDE_DIRS:INTERNAL=/usr/include
+PKG_XKB_LDFLAGS:INTERNAL=-L/usr/lib;-lxkbcommon
+PKG_XKB_LDFLAGS_OTHER:INTERNAL=
+PKG_XKB_LIBDIR:INTERNAL=/usr/lib
+PKG_XKB_LIBRARIES:INTERNAL=xkbcommon
+PKG_XKB_LIBRARY_DIRS:INTERNAL=/usr/lib
+PKG_XKB_LIBS:INTERNAL=
+PKG_XKB_LIBS_L:INTERNAL=
+PKG_XKB_LIBS_OTHER:INTERNAL=
+PKG_XKB_LIBS_PATHS:INTERNAL=
+PKG_XKB_MODULE_NAME:INTERNAL=xkbcommon
+PKG_XKB_PREFIX:INTERNAL=/usr
+PKG_XKB_STATIC_CFLAGS:INTERNAL=-I/usr/include
+PKG_XKB_STATIC_CFLAGS_I:INTERNAL=
+PKG_XKB_STATIC_CFLAGS_OTHER:INTERNAL=
+PKG_XKB_STATIC_INCLUDE_DIRS:INTERNAL=/usr/include
+PKG_XKB_STATIC_LDFLAGS:INTERNAL=-L/usr/lib;-lxkbcommon
+PKG_XKB_STATIC_LDFLAGS_OTHER:INTERNAL=
+PKG_XKB_STATIC_LIBDIR:INTERNAL=
+PKG_XKB_STATIC_LIBRARIES:INTERNAL=xkbcommon
+PKG_XKB_STATIC_LIBRARY_DIRS:INTERNAL=/usr/lib
+PKG_XKB_STATIC_LIBS:INTERNAL=
+PKG_XKB_STATIC_LIBS_L:INTERNAL=
+PKG_XKB_STATIC_LIBS_OTHER:INTERNAL=
+PKG_XKB_STATIC_LIBS_PATHS:INTERNAL=
+PKG_XKB_VERSION:INTERNAL=1.7.0
+PKG_XKB_xkbcommon_INCLUDEDIR:INTERNAL=
+PKG_XKB_xkbcommon_LIBDIR:INTERNAL=
+PKG_XKB_xkbcommon_PREFIX:INTERNAL=
+PKG_XKB_xkbcommon_VERSION:INTERNAL=
+//Qt feature: abstractbutton (from target Qt6::Widgets)
+QT_FEATURE_abstractbutton:INTERNAL=ON
+//Qt feature: abstractslider (from target Qt6::Widgets)
+QT_FEATURE_abstractslider:INTERNAL=ON
+//Qt feature: accessibility (from target Qt6::Gui)
+QT_FEATURE_accessibility:INTERNAL=ON
+//Qt feature: accessibility_atspi_bridge (from target Qt6::Gui)
+QT_FEATURE_accessibility_atspi_bridge:INTERNAL=ON
+//Qt feature: action (from target Qt6::Gui)
+QT_FEATURE_action:INTERNAL=ON
+//Qt feature: aesni (from target Qt6::Core)
+QT_FEATURE_aesni:INTERNAL=OFF
+//Qt feature: alloca (from target Qt6::Core)
+QT_FEATURE_alloca:INTERNAL=ON
+//Qt feature: alloca_h (from target Qt6::Core)
+QT_FEATURE_alloca_h:INTERNAL=ON
+//Qt feature: alloca_malloc_h (from target Qt6::Core)
+QT_FEATURE_alloca_malloc_h:INTERNAL=OFF
+//Qt feature: android_style_assets (from target Qt6::Core)
+QT_FEATURE_android_style_assets:INTERNAL=OFF
+//Qt feature: animation (from target Qt6::Core)
+QT_FEATURE_animation:INTERNAL=ON
+//Qt feature: appstore_compliant (from target Qt6::Core)
+QT_FEATURE_appstore_compliant:INTERNAL=OFF
+//Qt feature: arm_crc32 (from target Qt6::Core)
+QT_FEATURE_arm_crc32:INTERNAL=OFF
+//Qt feature: arm_crypto (from target Qt6::Core)
+QT_FEATURE_arm_crypto:INTERNAL=OFF
+//Qt feature: avx (from target Qt6::Core)
+QT_FEATURE_avx:INTERNAL=OFF
+//Qt feature: avx2 (from target Qt6::Core)
+QT_FEATURE_avx2:INTERNAL=OFF
+//Qt feature: avx512bw (from target Qt6::Core)
+QT_FEATURE_avx512bw:INTERNAL=OFF
+//Qt feature: avx512cd (from target Qt6::Core)
+QT_FEATURE_avx512cd:INTERNAL=OFF
+//Qt feature: avx512dq (from target Qt6::Core)
+QT_FEATURE_avx512dq:INTERNAL=OFF
+//Qt feature: avx512er (from target Qt6::Core)
+QT_FEATURE_avx512er:INTERNAL=OFF
+//Qt feature: avx512f (from target Qt6::Core)
+QT_FEATURE_avx512f:INTERNAL=OFF
+//Qt feature: avx512ifma (from target Qt6::Core)
+QT_FEATURE_avx512ifma:INTERNAL=OFF
+//Qt feature: avx512pf (from target Qt6::Core)
+QT_FEATURE_avx512pf:INTERNAL=OFF
+//Qt feature: avx512vbmi (from target Qt6::Core)
+QT_FEATURE_avx512vbmi:INTERNAL=OFF
+//Qt feature: avx512vbmi2 (from target Qt6::Core)
+QT_FEATURE_avx512vbmi2:INTERNAL=OFF
+//Qt feature: avx512vl (from target Qt6::Core)
+QT_FEATURE_avx512vl:INTERNAL=OFF
+//Qt feature: backtrace (from target Qt6::Core)
+QT_FEATURE_backtrace:INTERNAL=ON
+//Qt feature: batch_test_support (from target Qt6::Test)
+QT_FEATURE_batch_test_support:INTERNAL=OFF
+//Qt feature: brotli (from target Qt6::Network)
+QT_FEATURE_brotli:INTERNAL=ON
+//Qt feature: buttongroup (from target Qt6::Widgets)
+QT_FEATURE_buttongroup:INTERNAL=ON
+//Qt feature: calendarwidget (from target Qt6::Widgets)
+QT_FEATURE_calendarwidget:INTERNAL=ON
+//Qt feature: cborstreamreader (from target Qt6::Core)
+QT_FEATURE_cborstreamreader:INTERNAL=ON
+//Qt feature: cborstreamwriter (from target Qt6::Core)
+QT_FEATURE_cborstreamwriter:INTERNAL=ON
+//Qt feature: checkbox (from target Qt6::Widgets)
+QT_FEATURE_checkbox:INTERNAL=ON
+//Qt feature: clipboard (from target Qt6::Gui)
+QT_FEATURE_clipboard:INTERNAL=ON
+//Qt feature: clock_gettime (from target Qt6::Core)
+QT_FEATURE_clock_gettime:INTERNAL=ON
+//Qt feature: clock_monotonic (from target Qt6::Core)
+QT_FEATURE_clock_monotonic:INTERNAL=ON
+//Qt feature: close_range (from target Qt6::Core)
+QT_FEATURE_close_range:INTERNAL=ON
+//Qt feature: colordialog (from target Qt6::Widgets)
+QT_FEATURE_colordialog:INTERNAL=ON
+//Qt feature: colornames (from target Qt6::Gui)
+QT_FEATURE_colornames:INTERNAL=ON
+//Qt feature: columnview (from target Qt6::Widgets)
+QT_FEATURE_columnview:INTERNAL=ON
+//Qt feature: combobox (from target Qt6::Widgets)
+QT_FEATURE_combobox:INTERNAL=ON
+//Qt feature: commandlineparser (from target Qt6::Core)
+QT_FEATURE_commandlineparser:INTERNAL=ON
+//Qt feature: commandlinkbutton (from target Qt6::Widgets)
+QT_FEATURE_commandlinkbutton:INTERNAL=ON
+//Qt feature: completer (from target Qt6::Widgets)
+QT_FEATURE_completer:INTERNAL=ON
+//Qt feature: concatenatetablesproxymodel (from target Qt6::Core)
+QT_FEATURE_concatenatetablesproxymodel:INTERNAL=ON
+//Qt feature: concurrent (from target Qt6::Core)
+QT_FEATURE_concurrent:INTERNAL=ON
+//Qt feature: contextmenu (from target Qt6::Widgets)
+QT_FEATURE_contextmenu:INTERNAL=ON
+//Qt feature: cpp_winrt (from target Qt6::Core)
+QT_FEATURE_cpp_winrt:INTERNAL=OFF
+//Qt feature: cross_compile (from target Qt6::Core)
+QT_FEATURE_cross_compile:INTERNAL=OFF
+//Qt feature: cssparser (from target Qt6::Gui)
+QT_FEATURE_cssparser:INTERNAL=ON
+//Qt feature: ctf (from target Qt6::Core)
+QT_FEATURE_ctf:INTERNAL=OFF
+//Qt feature: cursor (from target Qt6::Gui)
+QT_FEATURE_cursor:INTERNAL=ON
+//Qt feature: cxx11_future (from target Qt6::Core)
+QT_FEATURE_cxx11_future:INTERNAL=ON
+//Qt feature: cxx17_filesystem (from target Qt6::Core)
+QT_FEATURE_cxx17_filesystem:INTERNAL=ON
+//Qt feature: cxx20 (from target Qt6::Core)
+QT_FEATURE_cxx20:INTERNAL=OFF
+//Qt feature: cxx2a (from target Qt6::Core)
+QT_FEATURE_cxx2a:INTERNAL=OFF
+//Qt feature: cxx2b (from target Qt6::Core)
+QT_FEATURE_cxx2b:INTERNAL=OFF
+//Qt feature: datawidgetmapper (from target Qt6::Widgets)
+QT_FEATURE_datawidgetmapper:INTERNAL=ON
+//Qt feature: datestring (from target Qt6::Core)
+QT_FEATURE_datestring:INTERNAL=ON
+//Qt feature: datetimeedit (from target Qt6::Widgets)
+QT_FEATURE_datetimeedit:INTERNAL=ON
+//Qt feature: datetimeparser (from target Qt6::Core)
+QT_FEATURE_datetimeparser:INTERNAL=ON
+//Qt feature: dbus (from target Qt6::Core)
+QT_FEATURE_dbus:INTERNAL=ON
+//Qt feature: dbus_linked (from target Qt6::Core)
+QT_FEATURE_dbus_linked:INTERNAL=ON
+//Qt feature: debug (from target Qt6::Core)
+QT_FEATURE_debug:INTERNAL=OFF
+//Qt feature: debug_and_release (from target Qt6::Core)
+QT_FEATURE_debug_and_release:INTERNAL=OFF
+//Qt feature: desktopservices (from target Qt6::Gui)
+QT_FEATURE_desktopservices:INTERNAL=ON
+//Qt feature: developer_build (from target Qt6::Core)
+QT_FEATURE_developer_build:INTERNAL=OFF
+//Qt feature: dial (from target Qt6::Widgets)
+QT_FEATURE_dial:INTERNAL=ON
+//Qt feature: dialog (from target Qt6::Widgets)
+QT_FEATURE_dialog:INTERNAL=ON
+//Qt feature: dialogbuttonbox (from target Qt6::Widgets)
+QT_FEATURE_dialogbuttonbox:INTERNAL=ON
+//Qt feature: direct2d (from target Qt6::Gui)
+QT_FEATURE_direct2d:INTERNAL=OFF
+//Qt feature: direct2d1_1 (from target Qt6::Gui)
+QT_FEATURE_direct2d1_1:INTERNAL=OFF
+//Qt feature: directfb (from target Qt6::Gui)
+QT_FEATURE_directfb:INTERNAL=OFF
+//Qt feature: directwrite (from target Qt6::Gui)
+QT_FEATURE_directwrite:INTERNAL=OFF
+//Qt feature: directwrite3 (from target Qt6::Gui)
+QT_FEATURE_directwrite3:INTERNAL=OFF
+//Qt feature: dladdr (from target Qt6::Core)
+QT_FEATURE_dladdr:INTERNAL=ON
+//Qt feature: dlopen (from target Qt6::Core)
+QT_FEATURE_dlopen:INTERNAL=ON
+//Qt feature: dnslookup (from target Qt6::Network)
+QT_FEATURE_dnslookup:INTERNAL=ON
+//Qt feature: dockwidget (from target Qt6::Widgets)
+QT_FEATURE_dockwidget:INTERNAL=ON
+//Qt feature: dom (from target Qt6::Xml)
+QT_FEATURE_dom:INTERNAL=ON
+//Qt feature: doubleconversion (from target Qt6::Core)
+QT_FEATURE_doubleconversion:INTERNAL=ON
+//Qt feature: draganddrop (from target Qt6::Gui)
+QT_FEATURE_draganddrop:INTERNAL=ON
+//Qt feature: drm_atomic (from target Qt6::Gui)
+QT_FEATURE_drm_atomic:INTERNAL=ON
+//Qt feature: dtls (from target Qt6::Network)
+QT_FEATURE_dtls:INTERNAL=ON
+//Qt feature: dynamicgl (from target Qt6::Gui)
+QT_FEATURE_dynamicgl:INTERNAL=OFF
+//Qt feature: easingcurve (from target Qt6::Core)
+QT_FEATURE_easingcurve:INTERNAL=ON
+//Qt feature: effects (from target Qt6::Widgets)
+QT_FEATURE_effects:INTERNAL=ON
+//Qt feature: egl (from target Qt6::Gui)
+QT_FEATURE_egl:INTERNAL=ON
+//Qt feature: egl_x11 (from target Qt6::Gui)
+QT_FEATURE_egl_x11:INTERNAL=ON
+//Qt feature: eglfs (from target Qt6::Gui)
+QT_FEATURE_eglfs:INTERNAL=ON
+//Qt feature: eglfs_brcm (from target Qt6::Gui)
+QT_FEATURE_eglfs_brcm:INTERNAL=OFF
+//Qt feature: eglfs_egldevice (from target Qt6::Gui)
+QT_FEATURE_eglfs_egldevice:INTERNAL=ON
+//Qt feature: eglfs_gbm (from target Qt6::Gui)
+QT_FEATURE_eglfs_gbm:INTERNAL=ON
+//Qt feature: eglfs_mali (from target Qt6::Gui)
+QT_FEATURE_eglfs_mali:INTERNAL=OFF
+//Qt feature: eglfs_openwfd (from target Qt6::Gui)
+QT_FEATURE_eglfs_openwfd:INTERNAL=OFF
+//Qt feature: eglfs_rcar (from target Qt6::Gui)
+QT_FEATURE_eglfs_rcar:INTERNAL=OFF
+//Qt feature: eglfs_viv (from target Qt6::Gui)
+QT_FEATURE_eglfs_viv:INTERNAL=OFF
+//Qt feature: eglfs_viv_wl (from target Qt6::Gui)
+QT_FEATURE_eglfs_viv_wl:INTERNAL=OFF
+//Qt feature: eglfs_vsp2 (from target Qt6::Gui)
+QT_FEATURE_eglfs_vsp2:INTERNAL=OFF
+//Qt feature: eglfs_x11 (from target Qt6::Gui)
+QT_FEATURE_eglfs_x11:INTERNAL=ON
+//Qt feature: elf_private_full_version (from target Qt6::Core)
+QT_FEATURE_elf_private_full_version:INTERNAL=OFF
+//Qt feature: enable_new_dtags (from target Qt6::Core)
+QT_FEATURE_enable_new_dtags:INTERNAL=ON
+//Qt feature: errormessage (from target Qt6::Widgets)
+QT_FEATURE_errormessage:INTERNAL=ON
+//Qt feature: etw (from target Qt6::Core)
+QT_FEATURE_etw:INTERNAL=OFF
+//Qt feature: evdev (from target Qt6::Gui)
+QT_FEATURE_evdev:INTERNAL=ON
+//Qt feature: f16c (from target Qt6::Core)
+QT_FEATURE_f16c:INTERNAL=OFF
+//Qt feature: filedialog (from target Qt6::Widgets)
+QT_FEATURE_filedialog:INTERNAL=ON
+//Qt feature: filesystemiterator (from target Qt6::Core)
+QT_FEATURE_filesystemiterator:INTERNAL=ON
+//Qt feature: filesystemmodel (from target Qt6::Gui)
+QT_FEATURE_filesystemmodel:INTERNAL=ON
+//Qt feature: filesystemwatcher (from target Qt6::Core)
+QT_FEATURE_filesystemwatcher:INTERNAL=ON
+//Qt feature: fontcombobox (from target Qt6::Widgets)
+QT_FEATURE_fontcombobox:INTERNAL=ON
+//Qt feature: fontconfig (from target Qt6::Gui)
+QT_FEATURE_fontconfig:INTERNAL=ON
+//Qt feature: fontdialog (from target Qt6::Widgets)
+QT_FEATURE_fontdialog:INTERNAL=ON
+//Qt feature: force_asserts (from target Qt6::Core)
+QT_FEATURE_force_asserts:INTERNAL=OFF
+//Qt feature: force_debug_info (from target Qt6::Core)
+QT_FEATURE_force_debug_info:INTERNAL=ON
+//Qt feature: forkfd_pidfd (from target Qt6::Core)
+QT_FEATURE_forkfd_pidfd:INTERNAL=ON
+//Qt feature: formlayout (from target Qt6::Widgets)
+QT_FEATURE_formlayout:INTERNAL=ON
+//Qt feature: framework (from target Qt6::Core)
+QT_FEATURE_framework:INTERNAL=OFF
+//Qt feature: freetype (from target Qt6::Gui)
+QT_FEATURE_freetype:INTERNAL=ON
+//Qt feature: fscompleter (from target Qt6::Widgets)
+QT_FEATURE_fscompleter:INTERNAL=ON
+//Qt feature: futimens (from target Qt6::Core)
+QT_FEATURE_futimens:INTERNAL=ON
+//Qt feature: future (from target Qt6::Core)
+QT_FEATURE_future:INTERNAL=ON
+//Qt feature: gbm (from target Qt6::Gui)
+QT_FEATURE_gbm:INTERNAL=ON
+//Qt feature: gc_binaries (from target Qt6::Core)
+QT_FEATURE_gc_binaries:INTERNAL=OFF
+//Qt feature: gestures (from target Qt6::Core)
+QT_FEATURE_gestures:INTERNAL=ON
+//Qt feature: getauxval (from target Qt6::Core)
+QT_FEATURE_getauxval:INTERNAL=ON
+//Qt feature: getentropy (from target Qt6::Core)
+QT_FEATURE_getentropy:INTERNAL=ON
+//Qt feature: getifaddrs (from target Qt6::Network)
+QT_FEATURE_getifaddrs:INTERNAL=OFF
+//Qt feature: gif (from target Qt6::Gui)
+QT_FEATURE_gif:INTERNAL=ON
+//Qt feature: glib (from target Qt6::Core)
+QT_FEATURE_glib:INTERNAL=ON
+//Qt feature: graphicseffect (from target Qt6::Widgets)
+QT_FEATURE_graphicseffect:INTERNAL=ON
+//Qt feature: graphicsframecapture (from target Qt6::Gui)
+QT_FEATURE_graphicsframecapture:INTERNAL=OFF
+//Qt feature: graphicsview (from target Qt6::Widgets)
+QT_FEATURE_graphicsview:INTERNAL=ON
+//Qt feature: groupbox (from target Qt6::Widgets)
+QT_FEATURE_groupbox:INTERNAL=ON
+//Qt feature: gssapi (from target Qt6::Network)
+QT_FEATURE_gssapi:INTERNAL=ON
+//Qt feature: gtk3 (from target Qt6::Widgets)
+QT_FEATURE_gtk3:INTERNAL=ON
+//Qt feature: gui (from target Qt6::Core)
+QT_FEATURE_gui:INTERNAL=ON
+//Qt feature: gypsy (from target Qt6::Positioning)
+QT_FEATURE_gypsy:INTERNAL=OFF
+//Qt feature: harfbuzz (from target Qt6::Gui)
+QT_FEATURE_harfbuzz:INTERNAL=ON
+//Qt feature: highdpiscaling (from target Qt6::Gui)
+QT_FEATURE_highdpiscaling:INTERNAL=ON
+//Qt feature: hijricalendar (from target Qt6::Core)
+QT_FEATURE_hijricalendar:INTERNAL=ON
+//Qt feature: http (from target Qt6::Network)
+QT_FEATURE_http:INTERNAL=ON
+//Qt feature: ico (from target Qt6::Gui)
+QT_FEATURE_ico:INTERNAL=ON
+//Qt feature: icu (from target Qt6::Core)
+QT_FEATURE_icu:INTERNAL=ON
+//Qt feature: identityproxymodel (from target Qt6::Core)
+QT_FEATURE_identityproxymodel:INTERNAL=ON
+//Qt feature: im (from target Qt6::Gui)
+QT_FEATURE_im:INTERNAL=ON
+//Qt feature: image_heuristic_mask (from target Qt6::Gui)
+QT_FEATURE_image_heuristic_mask:INTERNAL=ON
+//Qt feature: image_text (from target Qt6::Gui)
+QT_FEATURE_image_text:INTERNAL=ON
+//Qt feature: imageformat_bmp (from target Qt6::Gui)
+QT_FEATURE_imageformat_bmp:INTERNAL=ON
+//Qt feature: imageformat_jpeg (from target Qt6::Gui)
+QT_FEATURE_imageformat_jpeg:INTERNAL=ON
+//Qt feature: imageformat_png (from target Qt6::Gui)
+QT_FEATURE_imageformat_png:INTERNAL=ON
+//Qt feature: imageformat_ppm (from target Qt6::Gui)
+QT_FEATURE_imageformat_ppm:INTERNAL=ON
+//Qt feature: imageformat_xbm (from target Qt6::Gui)
+QT_FEATURE_imageformat_xbm:INTERNAL=ON
+//Qt feature: imageformat_xpm (from target Qt6::Gui)
+QT_FEATURE_imageformat_xpm:INTERNAL=ON
+//Qt feature: imageformatplugin (from target Qt6::Gui)
+QT_FEATURE_imageformatplugin:INTERNAL=ON
+//Qt feature: imageio_text_loading (from target Qt6::Gui)
+QT_FEATURE_imageio_text_loading:INTERNAL=ON
+//Qt feature: inotify (from target Qt6::Core)
+QT_FEATURE_inotify:INTERNAL=ON
+//Qt feature: inputdialog (from target Qt6::Widgets)
+QT_FEATURE_inputdialog:INTERNAL=ON
+//Qt feature: integrityfb (from target Qt6::Gui)
+QT_FEATURE_integrityfb:INTERNAL=OFF
+//Qt feature: integrityhid (from target Qt6::Gui)
+QT_FEATURE_integrityhid:INTERNAL=OFF
+//Qt feature: intelcet (from target Qt6::Core)
+QT_FEATURE_intelcet:INTERNAL=OFF
+//Qt feature: ipv6ifname (from target Qt6::Network)
+QT_FEATURE_ipv6ifname:INTERNAL=OFF
+//Qt feature: islamiccivilcalendar (from target Qt6::Core)
+QT_FEATURE_islamiccivilcalendar:INTERNAL=ON
+//Qt feature: itemmodel (from target Qt6::Core)
+QT_FEATURE_itemmodel:INTERNAL=ON
+//Qt feature: itemmodeltester (from target Qt6::Test)
+QT_FEATURE_itemmodeltester:INTERNAL=ON
+//Qt feature: itemviews (from target Qt6::Widgets)
+QT_FEATURE_itemviews:INTERNAL=ON
+//Qt feature: jalalicalendar (from target Qt6::Core)
+QT_FEATURE_jalalicalendar:INTERNAL=ON
+//Qt feature: journald (from target Qt6::Core)
+QT_FEATURE_journald:INTERNAL=ON
+//Qt feature: jpeg (from target Qt6::Gui)
+QT_FEATURE_jpeg:INTERNAL=ON
+//Qt feature: keysequenceedit (from target Qt6::Widgets)
+QT_FEATURE_keysequenceedit:INTERNAL=ON
+//Qt feature: kms (from target Qt6::Gui)
+QT_FEATURE_kms:INTERNAL=ON
+//Qt feature: label (from target Qt6::Widgets)
+QT_FEATURE_label:INTERNAL=ON
+//Qt feature: largefile (from target Qt6::Core)
+QT_FEATURE_largefile:INTERNAL=ON
+//Qt feature: lcdnumber (from target Qt6::Widgets)
+QT_FEATURE_lcdnumber:INTERNAL=ON
+//Qt feature: libinput (from target Qt6::Gui)
+QT_FEATURE_libinput:INTERNAL=ON
+//Qt feature: libinput_axis_api (from target Qt6::Gui)
+QT_FEATURE_libinput_axis_api:INTERNAL=ON
+//Qt feature: libinput_hires_wheel_support (from target Qt6::Gui)
+QT_FEATURE_libinput_hires_wheel_support:INTERNAL=ON
+//Qt feature: libproxy (from target Qt6::Network)
+QT_FEATURE_libproxy:INTERNAL=ON
+//Qt feature: library (from target Qt6::Core)
+QT_FEATURE_library:INTERNAL=ON
+//Qt feature: libresolv (from target Qt6::Network)
+QT_FEATURE_libresolv:INTERNAL=ON
+//Qt feature: libudev (from target Qt6::Core)
+QT_FEATURE_libudev:INTERNAL=ON
+//Qt feature: lineedit (from target Qt6::Widgets)
+QT_FEATURE_lineedit:INTERNAL=ON
+//Qt feature: linkat (from target Qt6::Core)
+QT_FEATURE_linkat:INTERNAL=ON
+//Qt feature: linux_netlink (from target Qt6::Network)
+QT_FEATURE_linux_netlink:INTERNAL=ON
+//Qt feature: linuxfb (from target Qt6::Gui)
+QT_FEATURE_linuxfb:INTERNAL=ON
+//Qt feature: listview (from target Qt6::Widgets)
+QT_FEATURE_listview:INTERNAL=ON
+//Qt feature: listwidget (from target Qt6::Widgets)
+QT_FEATURE_listwidget:INTERNAL=ON
+//Qt feature: localserver (from target Qt6::Network)
+QT_FEATURE_localserver:INTERNAL=ON
+//Qt feature: lttng (from target Qt6::Core)
+QT_FEATURE_lttng:INTERNAL=OFF
+//Qt feature: mainwindow (from target Qt6::Widgets)
+QT_FEATURE_mainwindow:INTERNAL=ON
+//Qt feature: mdiarea (from target Qt6::Widgets)
+QT_FEATURE_mdiarea:INTERNAL=ON
+//Qt feature: menu (from target Qt6::Widgets)
+QT_FEATURE_menu:INTERNAL=ON
+//Qt feature: menubar (from target Qt6::Widgets)
+QT_FEATURE_menubar:INTERNAL=ON
+//Qt feature: messagebox (from target Qt6::Widgets)
+QT_FEATURE_messagebox:INTERNAL=ON
+//Qt feature: mimetype (from target Qt6::Core)
+QT_FEATURE_mimetype:INTERNAL=ON
+//Qt feature: mimetype_database (from target Qt6::Core)
+QT_FEATURE_mimetype_database:INTERNAL=ON
+//Qt feature: mips_dsp (from target Qt6::Core)
+QT_FEATURE_mips_dsp:INTERNAL=OFF
+//Qt feature: mips_dspr2 (from target Qt6::Core)
+QT_FEATURE_mips_dspr2:INTERNAL=OFF
+//Qt feature: movie (from target Qt6::Gui)
+QT_FEATURE_movie:INTERNAL=ON
+//Qt feature: mtdev (from target Qt6::Gui)
+QT_FEATURE_mtdev:INTERNAL=ON
+//Qt feature: multiprocess (from target Qt6::Gui)
+QT_FEATURE_multiprocess:INTERNAL=ON
+//Qt feature: neon (from target Qt6::Core)
+QT_FEATURE_neon:INTERNAL=ON
+//Qt feature: network (from target Qt6::Core)
+QT_FEATURE_network:INTERNAL=ON
+//Qt feature: networkdiskcache (from target Qt6::Network)
+QT_FEATURE_networkdiskcache:INTERNAL=ON
+//Qt feature: networkinterface (from target Qt6::Network)
+QT_FEATURE_networkinterface:INTERNAL=ON
+//Qt feature: networklistmanager (from target Qt6::Network)
+QT_FEATURE_networklistmanager:INTERNAL=OFF
+//Qt feature: networkproxy (from target Qt6::Network)
+QT_FEATURE_networkproxy:INTERNAL=ON
+//Qt feature: no_direct_extern_access (from target Qt6::Core)
+QT_FEATURE_no_direct_extern_access:INTERNAL=OFF
+//Qt feature: ocsp (from target Qt6::Network)
+QT_FEATURE_ocsp:INTERNAL=ON
+//Qt feature: opengl (from target Qt6::Gui)
+QT_FEATURE_opengl:INTERNAL=ON
+//Qt feature: opengles2 (from target Qt6::Gui)
+QT_FEATURE_opengles2:INTERNAL=OFF
+//Qt feature: opengles3 (from target Qt6::Gui)
+QT_FEATURE_opengles3:INTERNAL=OFF
+//Qt feature: opengles31 (from target Qt6::Gui)
+QT_FEATURE_opengles31:INTERNAL=OFF
+//Qt feature: opengles32 (from target Qt6::Gui)
+QT_FEATURE_opengles32:INTERNAL=OFF
+//Qt feature: openssl (from target Qt6::Core)
+QT_FEATURE_openssl:INTERNAL=ON
+//Qt feature: openssl_hash (from target Qt6::Core)
+QT_FEATURE_openssl_hash:INTERNAL=OFF
+//Qt feature: openssl_linked (from target Qt6::Core)
+QT_FEATURE_openssl_linked:INTERNAL=ON
+//Qt feature: opensslv11 (from target Qt6::Core)
+QT_FEATURE_opensslv11:INTERNAL=OFF
+//Qt feature: opensslv30 (from target Qt6::Core)
+QT_FEATURE_opensslv30:INTERNAL=ON
+//Qt feature: openvg (from target Qt6::Gui)
+QT_FEATURE_openvg:INTERNAL=OFF
+//Qt feature: pcre2 (from target Qt6::Core)
+QT_FEATURE_pcre2:INTERNAL=ON
+//Qt feature: pdf (from target Qt6::Gui)
+QT_FEATURE_pdf:INTERNAL=ON
+//Qt feature: permissions (from target Qt6::Core)
+QT_FEATURE_permissions:INTERNAL=ON
+//Qt feature: picture (from target Qt6::Gui)
+QT_FEATURE_picture:INTERNAL=ON
+//Qt feature: pkg_config (from target Qt6::Core)
+QT_FEATURE_pkg_config:INTERNAL=ON
+//Qt feature: plugin_manifest (from target Qt6::Core)
+QT_FEATURE_plugin_manifest:INTERNAL=ON
+//Qt feature: png (from target Qt6::Gui)
+QT_FEATURE_png:INTERNAL=ON
+//Qt feature: poll_exit_on_error (from target Qt6::Core)
+QT_FEATURE_poll_exit_on_error:INTERNAL=OFF
+//Qt feature: poll_poll (from target Qt6::Core)
+QT_FEATURE_poll_poll:INTERNAL=OFF
+//Qt feature: poll_pollts (from target Qt6::Core)
+QT_FEATURE_poll_pollts:INTERNAL=OFF
+//Qt feature: poll_ppoll (from target Qt6::Core)
+QT_FEATURE_poll_ppoll:INTERNAL=ON
+//Qt feature: poll_select (from target Qt6::Core)
+QT_FEATURE_poll_select:INTERNAL=OFF
+//Qt feature: posix_fallocate (from target Qt6::Core)
+QT_FEATURE_posix_fallocate:INTERNAL=ON
+//Qt feature: posix_sem (from target Qt6::Core)
+QT_FEATURE_posix_sem:INTERNAL=ON
+//Qt feature: posix_shm (from target Qt6::Core)
+QT_FEATURE_posix_shm:INTERNAL=ON
+//Qt feature: precompile_header (from target Qt6::Core)
+QT_FEATURE_precompile_header:INTERNAL=ON
+//Qt feature: printsupport (from target Qt6::Core)
+QT_FEATURE_printsupport:INTERNAL=ON
+//Qt feature: private_tests (from target Qt6::Core)
+QT_FEATURE_private_tests:INTERNAL=OFF
+//Qt feature: process (from target Qt6::Core)
+QT_FEATURE_process:INTERNAL=ON
+//Qt feature: processenvironment (from target Qt6::Core)
+QT_FEATURE_processenvironment:INTERNAL=ON
+//Qt feature: progressbar (from target Qt6::Widgets)
+QT_FEATURE_progressbar:INTERNAL=ON
+//Qt feature: progressdialog (from target Qt6::Widgets)
+QT_FEATURE_progressdialog:INTERNAL=ON
+//Qt feature: proxymodel (from target Qt6::Core)
+QT_FEATURE_proxymodel:INTERNAL=ON
+//Qt feature: publicsuffix_qt (from target Qt6::Network)
+QT_FEATURE_publicsuffix_qt:INTERNAL=ON
+//Qt feature: publicsuffix_system (from target Qt6::Network)
+QT_FEATURE_publicsuffix_system:INTERNAL=ON
+//Qt feature: pushbutton (from target Qt6::Widgets)
+QT_FEATURE_pushbutton:INTERNAL=ON
+//Qt feature: qml_animation (from target Qt6::Qml)
+QT_FEATURE_qml_animation:INTERNAL=ON
+//Qt feature: qml_debug (from target Qt6::Qml)
+QT_FEATURE_qml_debug:INTERNAL=ON
+//Qt feature: qml_delegate_model (from target Qt6::QmlModels)
+QT_FEATURE_qml_delegate_model:INTERNAL=ON
+//Qt feature: qml_itemmodel (from target Qt6::Qml)
+QT_FEATURE_qml_itemmodel:INTERNAL=ON
+//Qt feature: qml_jit (from target Qt6::Qml)
+QT_FEATURE_qml_jit:INTERNAL=ON
+//Qt feature: qml_list_model (from target Qt6::QmlModels)
+QT_FEATURE_qml_list_model:INTERNAL=ON
+//Qt feature: qml_locale (from target Qt6::Qml)
+QT_FEATURE_qml_locale:INTERNAL=ON
+//Qt feature: qml_network (from target Qt6::Qml)
+QT_FEATURE_qml_network:INTERNAL=ON
+//Qt feature: qml_object_model (from target Qt6::QmlModels)
+QT_FEATURE_qml_object_model:INTERNAL=ON
+//Qt feature: qml_preview (from target Qt6::Qml)
+QT_FEATURE_qml_preview:INTERNAL=ON
+//Qt feature: qml_profiler (from target Qt6::Qml)
+QT_FEATURE_qml_profiler:INTERNAL=ON
+//Qt feature: qml_python (from target Qt6::Qml)
+QT_FEATURE_qml_python:INTERNAL=ON
+//Qt feature: qml_ssl (from target Qt6::Qml)
+QT_FEATURE_qml_ssl:INTERNAL=ON
+//Qt feature: qml_table_model (from target Qt6::QmlModels)
+QT_FEATURE_qml_table_model:INTERNAL=ON
+//Qt feature: qml_worker_script (from target Qt6::Qml)
+QT_FEATURE_qml_worker_script:INTERNAL=ON
+//Qt feature: qml_xml_http_request (from target Qt6::Qml)
+QT_FEATURE_qml_xml_http_request:INTERNAL=ON
+//Qt feature: qml_xmllistmodel (from target Qt6::Qml)
+QT_FEATURE_qml_xmllistmodel:INTERNAL=ON
+//Qt feature: qqnx_imf (from target Qt6::Gui)
+QT_FEATURE_qqnx_imf:INTERNAL=OFF
+//Qt feature: qqnx_pps (from target Qt6::Core)
+QT_FEATURE_qqnx_pps:INTERNAL=OFF
+//Qt feature: quick_animatedimage (from target Qt6::Quick)
+QT_FEATURE_quick_animatedimage:INTERNAL=ON
+//Qt feature: quick_canvas (from target Qt6::Quick)
+QT_FEATURE_quick_canvas:INTERNAL=ON
+//Qt feature: quick_designer (from target Qt6::Quick)
+QT_FEATURE_quick_designer:INTERNAL=ON
+//Qt feature: quick_draganddrop (from target Qt6::Quick)
+QT_FEATURE_quick_draganddrop:INTERNAL=ON
+//Qt feature: quick_flipable (from target Qt6::Quick)
+QT_FEATURE_quick_flipable:INTERNAL=ON
+//Qt feature: quick_gridview (from target Qt6::Quick)
+QT_FEATURE_quick_gridview:INTERNAL=ON
+//Qt feature: quick_itemview (from target Qt6::Quick)
+QT_FEATURE_quick_itemview:INTERNAL=ON
+//Qt feature: quick_listview (from target Qt6::Quick)
+QT_FEATURE_quick_listview:INTERNAL=ON
+//Qt feature: quick_particles (from target Qt6::Quick)
+QT_FEATURE_quick_particles:INTERNAL=ON
+//Qt feature: quick_path (from target Qt6::Quick)
+QT_FEATURE_quick_path:INTERNAL=ON
+//Qt feature: quick_pathview (from target Qt6::Quick)
+QT_FEATURE_quick_pathview:INTERNAL=ON
+//Qt feature: quick_pixmap_cache_threaded_download (from target
+// Qt6::Quick)
+QT_FEATURE_quick_pixmap_cache_threaded_download:INTERNAL=ON
+//Qt feature: quick_positioners (from target Qt6::Quick)
+QT_FEATURE_quick_positioners:INTERNAL=ON
+//Qt feature: quick_repeater (from target Qt6::Quick)
+QT_FEATURE_quick_repeater:INTERNAL=ON
+//Qt feature: quick_shadereffect (from target Qt6::Quick)
+QT_FEATURE_quick_shadereffect:INTERNAL=ON
+//Qt feature: quick_sprite (from target Qt6::Quick)
+QT_FEATURE_quick_sprite:INTERNAL=ON
+//Qt feature: quick_tableview (from target Qt6::Quick)
+QT_FEATURE_quick_tableview:INTERNAL=ON
+//Qt feature: quick_treeview (from target Qt6::Quick)
+QT_FEATURE_quick_treeview:INTERNAL=ON
+//Qt feature: quick_viewtransitions (from target Qt6::Quick)
+QT_FEATURE_quick_viewtransitions:INTERNAL=ON
+//Qt feature: radiobutton (from target Qt6::Widgets)
+QT_FEATURE_radiobutton:INTERNAL=ON
+//Qt feature: raster_64bit (from target Qt6::Gui)
+QT_FEATURE_raster_64bit:INTERNAL=ON
+//Qt feature: raster_fp (from target Qt6::Gui)
+QT_FEATURE_raster_fp:INTERNAL=ON
+//Qt feature: rdrnd (from target Qt6::Core)
+QT_FEATURE_rdrnd:INTERNAL=OFF
+//Qt feature: rdseed (from target Qt6::Core)
+QT_FEATURE_rdseed:INTERNAL=OFF
+//Qt feature: reduce_exports (from target Qt6::Core)
+QT_FEATURE_reduce_exports:INTERNAL=ON
+//Qt feature: reduce_relocations (from target Qt6::Core)
+QT_FEATURE_reduce_relocations:INTERNAL=OFF
+//Qt feature: regularexpression (from target Qt6::Core)
+QT_FEATURE_regularexpression:INTERNAL=ON
+//Qt feature: relocatable (from target Qt6::Core)
+QT_FEATURE_relocatable:INTERNAL=ON
+//Qt feature: renameat2 (from target Qt6::Core)
+QT_FEATURE_renameat2:INTERNAL=ON
+//Qt feature: res_setservers (from target Qt6::Network)
+QT_FEATURE_res_setservers:INTERNAL=OFF
+//Qt feature: resizehandler (from target Qt6::Widgets)
+QT_FEATURE_resizehandler:INTERNAL=ON
+//Qt feature: rpath (from target Qt6::Core)
+QT_FEATURE_rpath:INTERNAL=ON
+//Qt feature: rubberband (from target Qt6::Widgets)
+QT_FEATURE_rubberband:INTERNAL=ON
+//Qt feature: schannel (from target Qt6::Network)
+QT_FEATURE_schannel:INTERNAL=OFF
+//Qt feature: scrollarea (from target Qt6::Widgets)
+QT_FEATURE_scrollarea:INTERNAL=ON
+//Qt feature: scrollbar (from target Qt6::Widgets)
+QT_FEATURE_scrollbar:INTERNAL=ON
+//Qt feature: scroller (from target Qt6::Widgets)
+QT_FEATURE_scroller:INTERNAL=ON
+//Qt feature: sctp (from target Qt6::Network)
+QT_FEATURE_sctp:INTERNAL=OFF
+//Qt feature: securetransport (from target Qt6::Network)
+QT_FEATURE_securetransport:INTERNAL=OFF
+//Qt feature: separate_debug_info (from target Qt6::Core)
+QT_FEATURE_separate_debug_info:INTERNAL=OFF
+//Qt feature: sessionmanager (from target Qt6::Gui)
+QT_FEATURE_sessionmanager:INTERNAL=ON
+//Qt feature: settings (from target Qt6::Core)
+QT_FEATURE_settings:INTERNAL=ON
+//Qt feature: sha3_fast (from target Qt6::Core)
+QT_FEATURE_sha3_fast:INTERNAL=ON
+//Qt feature: shani (from target Qt6::Core)
+QT_FEATURE_shani:INTERNAL=OFF
+//Qt feature: shared (from target Qt6::Core)
+QT_FEATURE_shared:INTERNAL=ON
+//Qt feature: sharedmemory (from target Qt6::Core)
+QT_FEATURE_sharedmemory:INTERNAL=ON
+//Qt feature: shortcut (from target Qt6::Core)
+QT_FEATURE_shortcut:INTERNAL=ON
+//Qt feature: signaling_nan (from target Qt6::Core)
+QT_FEATURE_signaling_nan:INTERNAL=ON
+//Qt feature: simulator_and_device (from target Qt6::Core)
+QT_FEATURE_simulator_and_device:INTERNAL=OFF
+//Qt feature: sizegrip (from target Qt6::Widgets)
+QT_FEATURE_sizegrip:INTERNAL=ON
+//Qt feature: slider (from target Qt6::Widgets)
+QT_FEATURE_slider:INTERNAL=ON
+//Qt feature: slog2 (from target Qt6::Core)
+QT_FEATURE_slog2:INTERNAL=OFF
+//Qt feature: socks5 (from target Qt6::Network)
+QT_FEATURE_socks5:INTERNAL=ON
+//Qt feature: sortfilterproxymodel (from target Qt6::Core)
+QT_FEATURE_sortfilterproxymodel:INTERNAL=ON
+//Qt feature: spinbox (from target Qt6::Widgets)
+QT_FEATURE_spinbox:INTERNAL=ON
+//Qt feature: splashscreen (from target Qt6::Widgets)
+QT_FEATURE_splashscreen:INTERNAL=ON
+//Qt feature: splitter (from target Qt6::Widgets)
+QT_FEATURE_splitter:INTERNAL=ON
+//Qt feature: sql (from target Qt6::Core)
+QT_FEATURE_sql:INTERNAL=ON
+//Qt feature: sse2 (from target Qt6::Core)
+QT_FEATURE_sse2:INTERNAL=OFF
+//Qt feature: sse3 (from target Qt6::Core)
+QT_FEATURE_sse3:INTERNAL=OFF
+//Qt feature: sse4_1 (from target Qt6::Core)
+QT_FEATURE_sse4_1:INTERNAL=OFF
+//Qt feature: sse4_2 (from target Qt6::Core)
+QT_FEATURE_sse4_2:INTERNAL=OFF
+//Qt feature: ssl (from target Qt6::Network)
+QT_FEATURE_ssl:INTERNAL=ON
+//Qt feature: sspi (from target Qt6::Network)
+QT_FEATURE_sspi:INTERNAL=OFF
+//Qt feature: ssse3 (from target Qt6::Core)
+QT_FEATURE_ssse3:INTERNAL=OFF
+//Qt feature: stack_protector_strong (from target Qt6::Core)
+QT_FEATURE_stack_protector_strong:INTERNAL=OFF
+//Qt feature: stackedwidget (from target Qt6::Widgets)
+QT_FEATURE_stackedwidget:INTERNAL=ON
+//Qt feature: standarditemmodel (from target Qt6::Gui)
+QT_FEATURE_standarditemmodel:INTERNAL=ON
+//Qt feature: static (from target Qt6::Core)
+QT_FEATURE_static:INTERNAL=OFF
+//Qt feature: statusbar (from target Qt6::Widgets)
+QT_FEATURE_statusbar:INTERNAL=ON
+//Qt feature: statustip (from target Qt6::Widgets)
+QT_FEATURE_statustip:INTERNAL=ON
+//Qt feature: std_atomic64 (from target Qt6::Core)
+QT_FEATURE_std_atomic64:INTERNAL=ON
+//Qt feature: stdlib_libcpp (from target Qt6::Core)
+QT_FEATURE_stdlib_libcpp:INTERNAL=OFF
+//Qt feature: stringlistmodel (from target Qt6::Core)
+QT_FEATURE_stringlistmodel:INTERNAL=ON
+//Qt feature: style_android (from target Qt6::Widgets)
+QT_FEATURE_style_android:INTERNAL=OFF
+//Qt feature: style_fusion (from target Qt6::Widgets)
+QT_FEATURE_style_fusion:INTERNAL=ON
+//Qt feature: style_mac (from target Qt6::Widgets)
+QT_FEATURE_style_mac:INTERNAL=OFF
+//Qt feature: style_stylesheet (from target Qt6::Widgets)
+QT_FEATURE_style_stylesheet:INTERNAL=ON
+//Qt feature: style_windows (from target Qt6::Widgets)
+QT_FEATURE_style_windows:INTERNAL=ON
+//Qt feature: style_windows11 (from target Qt6::Widgets)
+QT_FEATURE_style_windows11:INTERNAL=OFF
+//Qt feature: style_windowsvista (from target Qt6::Widgets)
+QT_FEATURE_style_windowsvista:INTERNAL=OFF
+//Qt feature: syntaxhighlighter (from target Qt6::Widgets)
+QT_FEATURE_syntaxhighlighter:INTERNAL=ON
+//Qt feature: syslog (from target Qt6::Core)
+QT_FEATURE_syslog:INTERNAL=OFF
+//Qt feature: system_doubleconversion (from target Qt6::Core)
+QT_FEATURE_system_doubleconversion:INTERNAL=ON
+//Qt feature: system_freetype (from target Qt6::Gui)
+QT_FEATURE_system_freetype:INTERNAL=ON
+//Qt feature: system_harfbuzz (from target Qt6::Gui)
+QT_FEATURE_system_harfbuzz:INTERNAL=ON
+//Qt feature: system_jpeg (from target Qt6::Gui)
+QT_FEATURE_system_jpeg:INTERNAL=ON
+//Qt feature: system_libb2 (from target Qt6::Core)
+QT_FEATURE_system_libb2:INTERNAL=ON
+//Qt feature: system_pcre2 (from target Qt6::Core)
+QT_FEATURE_system_pcre2:INTERNAL=ON
+//Qt feature: system_png (from target Qt6::Gui)
+QT_FEATURE_system_png:INTERNAL=ON
+//Qt feature: system_proxies (from target Qt6::Network)
+QT_FEATURE_system_proxies:INTERNAL=ON
+//Qt feature: system_textmarkdownreader (from target Qt6::Gui)
+QT_FEATURE_system_textmarkdownreader:INTERNAL=ON
+//Qt feature: system_xcb_xinput (from target Qt6::Gui)
+QT_FEATURE_system_xcb_xinput:INTERNAL=ON
+//Qt feature: system_zlib (from target Qt6::Core)
+QT_FEATURE_system_zlib:INTERNAL=ON
+//Qt feature: systemsemaphore (from target Qt6::Core)
+QT_FEATURE_systemsemaphore:INTERNAL=ON
+//Qt feature: systemtrayicon (from target Qt6::Gui)
+QT_FEATURE_systemtrayicon:INTERNAL=ON
+//Qt feature: sysv_sem (from target Qt6::Core)
+QT_FEATURE_sysv_sem:INTERNAL=ON
+//Qt feature: sysv_shm (from target Qt6::Core)
+QT_FEATURE_sysv_shm:INTERNAL=ON
+//Qt feature: tabbar (from target Qt6::Widgets)
+QT_FEATURE_tabbar:INTERNAL=ON
+//Qt feature: tabletevent (from target Qt6::Gui)
+QT_FEATURE_tabletevent:INTERNAL=ON
+//Qt feature: tableview (from target Qt6::Widgets)
+QT_FEATURE_tableview:INTERNAL=ON
+//Qt feature: tablewidget (from target Qt6::Widgets)
+QT_FEATURE_tablewidget:INTERNAL=ON
+//Qt feature: tabwidget (from target Qt6::Widgets)
+QT_FEATURE_tabwidget:INTERNAL=ON
+//Qt feature: temporaryfile (from target Qt6::Core)
+QT_FEATURE_temporaryfile:INTERNAL=ON
+//Qt feature: testlib (from target Qt6::Core)
+QT_FEATURE_testlib:INTERNAL=ON
+//Qt feature: testlib_selfcover (from target Qt6::Test)
+QT_FEATURE_testlib_selfcover:INTERNAL=OFF
+//Qt feature: textbrowser (from target Qt6::Widgets)
+QT_FEATURE_textbrowser:INTERNAL=ON
+//Qt feature: textdate (from target Qt6::Core)
+QT_FEATURE_textdate:INTERNAL=ON
+//Qt feature: textedit (from target Qt6::Widgets)
+QT_FEATURE_textedit:INTERNAL=ON
+//Qt feature: texthtmlparser (from target Qt6::Gui)
+QT_FEATURE_texthtmlparser:INTERNAL=ON
+//Qt feature: textmarkdownreader (from target Qt6::Gui)
+QT_FEATURE_textmarkdownreader:INTERNAL=ON
+//Qt feature: textmarkdownwriter (from target Qt6::Gui)
+QT_FEATURE_textmarkdownwriter:INTERNAL=ON
+//Qt feature: textodfwriter (from target Qt6::Gui)
+QT_FEATURE_textodfwriter:INTERNAL=ON
+//Qt feature: thread (from target Qt6::Core)
+QT_FEATURE_thread:INTERNAL=ON
+//Qt feature: threadsafe_cloexec (from target Qt6::Core)
+QT_FEATURE_threadsafe_cloexec:INTERNAL=ON
+//Qt feature: timezone (from target Qt6::Core)
+QT_FEATURE_timezone:INTERNAL=ON
+//Qt feature: toolbar (from target Qt6::Widgets)
+QT_FEATURE_toolbar:INTERNAL=ON
+//Qt feature: toolbox (from target Qt6::Widgets)
+QT_FEATURE_toolbox:INTERNAL=ON
+//Qt feature: toolbutton (from target Qt6::Widgets)
+QT_FEATURE_toolbutton:INTERNAL=ON
+//Qt feature: tooltip (from target Qt6::Widgets)
+QT_FEATURE_tooltip:INTERNAL=ON
+//Qt feature: topleveldomain (from target Qt6::Network)
+QT_FEATURE_topleveldomain:INTERNAL=ON
+//Qt feature: translation (from target Qt6::Core)
+QT_FEATURE_translation:INTERNAL=ON
+//Qt feature: transposeproxymodel (from target Qt6::Core)
+QT_FEATURE_transposeproxymodel:INTERNAL=ON
+//Qt feature: treeview (from target Qt6::Widgets)
+QT_FEATURE_treeview:INTERNAL=ON
+//Qt feature: treewidget (from target Qt6::Widgets)
+QT_FEATURE_treewidget:INTERNAL=ON
+//Qt feature: tslib (from target Qt6::Gui)
+QT_FEATURE_tslib:INTERNAL=ON
+//Qt feature: tuiotouch (from target Qt6::Gui)
+QT_FEATURE_tuiotouch:INTERNAL=ON
+//Qt feature: udpsocket (from target Qt6::Network)
+QT_FEATURE_udpsocket:INTERNAL=ON
+//Qt feature: undocommand (from target Qt6::Gui)
+QT_FEATURE_undocommand:INTERNAL=ON
+//Qt feature: undogroup (from target Qt6::Gui)
+QT_FEATURE_undogroup:INTERNAL=ON
+//Qt feature: undostack (from target Qt6::Gui)
+QT_FEATURE_undostack:INTERNAL=ON
+//Qt feature: undoview (from target Qt6::Widgets)
+QT_FEATURE_undoview:INTERNAL=ON
+//Qt feature: use_bfd_linker (from target Qt6::Core)
+QT_FEATURE_use_bfd_linker:INTERNAL=OFF
+//Qt feature: use_gold_linker (from target Qt6::Core)
+QT_FEATURE_use_gold_linker:INTERNAL=OFF
+//Qt feature: use_lld_linker (from target Qt6::Core)
+QT_FEATURE_use_lld_linker:INTERNAL=OFF
+//Qt feature: use_mold_linker (from target Qt6::Core)
+QT_FEATURE_use_mold_linker:INTERNAL=OFF
+//Qt feature: vaes (from target Qt6::Core)
+QT_FEATURE_vaes:INTERNAL=OFF
+//Qt feature: valgrind (from target Qt6::Test)
+QT_FEATURE_valgrind:INTERNAL=ON
+//Qt feature: validator (from target Qt6::Gui)
+QT_FEATURE_validator:INTERNAL=ON
+//Qt feature: vkgen (from target Qt6::Gui)
+QT_FEATURE_vkgen:INTERNAL=ON
+//Qt feature: vkkhrdisplay (from target Qt6::Gui)
+QT_FEATURE_vkkhrdisplay:INTERNAL=ON
+//Qt feature: vnc (from target Qt6::Gui)
+QT_FEATURE_vnc:INTERNAL=ON
+//Qt feature: vsp2 (from target Qt6::Gui)
+QT_FEATURE_vsp2:INTERNAL=OFF
+//Qt feature: vulkan (from target Qt6::Gui)
+QT_FEATURE_vulkan:INTERNAL=ON
+//Qt feature: wasm_exceptions (from target Qt6::Core)
+QT_FEATURE_wasm_exceptions:INTERNAL=OFF
+//Qt feature: wasm_simd128 (from target Qt6::Core)
+QT_FEATURE_wasm_simd128:INTERNAL=OFF
+//Qt feature: wayland (from target Qt6::Gui)
+QT_FEATURE_wayland:INTERNAL=ON
+//Qt feature: whatsthis (from target Qt6::Gui)
+QT_FEATURE_whatsthis:INTERNAL=ON
+//Qt feature: wheelevent (from target Qt6::Gui)
+QT_FEATURE_wheelevent:INTERNAL=ON
+//Qt feature: widgets (from target Qt6::Core)
+QT_FEATURE_widgets:INTERNAL=ON
+//Qt feature: widgettextcontrol (from target Qt6::Widgets)
+QT_FEATURE_widgettextcontrol:INTERNAL=ON
+//Qt feature: winrt_geolocation (from target Qt6::Positioning)
+QT_FEATURE_winrt_geolocation:INTERNAL=OFF
+//Qt feature: wizard (from target Qt6::Widgets)
+QT_FEATURE_wizard:INTERNAL=ON
+//Qt feature: x86intrin (from target Qt6::Core)
+QT_FEATURE_x86intrin:INTERNAL=OFF
+//Qt feature: xcb (from target Qt6::Gui)
+QT_FEATURE_xcb:INTERNAL=ON
+//Qt feature: xcb_egl_plugin (from target Qt6::Gui)
+QT_FEATURE_xcb_egl_plugin:INTERNAL=ON
+//Qt feature: xcb_glx (from target Qt6::Gui)
+QT_FEATURE_xcb_glx:INTERNAL=ON
+//Qt feature: xcb_glx_plugin (from target Qt6::Gui)
+QT_FEATURE_xcb_glx_plugin:INTERNAL=ON
+//Qt feature: xcb_native_painting (from target Qt6::Gui)
+QT_FEATURE_xcb_native_painting:INTERNAL=OFF
+//Qt feature: xcb_sm (from target Qt6::Gui)
+QT_FEATURE_xcb_sm:INTERNAL=ON
+//Qt feature: xcb_xlib (from target Qt6::Gui)
+QT_FEATURE_xcb_xlib:INTERNAL=ON
+//Qt feature: xkbcommon (from target Qt6::Gui)
+QT_FEATURE_xkbcommon:INTERNAL=ON
+//Qt feature: xkbcommon_x11 (from target Qt6::Gui)
+QT_FEATURE_xkbcommon_x11:INTERNAL=ON
+//Qt feature: xlib (from target Qt6::Gui)
+QT_FEATURE_xlib:INTERNAL=ON
+//Qt feature: xml (from target Qt6::Core)
+QT_FEATURE_xml:INTERNAL=ON
+//Qt feature: xmlstream (from target Qt6::Core)
+QT_FEATURE_xmlstream:INTERNAL=ON
+//Qt feature: xmlstreamreader (from target Qt6::Core)
+QT_FEATURE_xmlstreamreader:INTERNAL=ON
+//Qt feature: xmlstreamwriter (from target Qt6::Core)
+QT_FEATURE_xmlstreamwriter:INTERNAL=ON
+//Qt feature: xrender (from target Qt6::Gui)
+QT_FEATURE_xrender:INTERNAL=OFF
+//Qt feature: zstd (from target Qt6::Core)
+QT_FEATURE_zstd:INTERNAL=ON
+//ADVANCED property for variable: SITE
+SITE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: Vulkan_GLSLANG_VALIDATOR_EXECUTABLE
+Vulkan_GLSLANG_VALIDATOR_EXECUTABLE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: Vulkan_GLSLC_EXECUTABLE
+Vulkan_GLSLC_EXECUTABLE-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: Vulkan_INCLUDE_DIR
+Vulkan_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: Vulkan_LIBRARY
+Vulkan_LIBRARY-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_ICE_INCLUDE_PATH
+X11_ICE_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_ICE_LIB
+X11_ICE_LIB-ADVANCED:INTERNAL=1
+//Have library /usr/lib/libX11.so;/usr/lib/libXext.so
+X11_LIB_X11_SOLO:INTERNAL=1
+//ADVANCED property for variable: X11_SM_INCLUDE_PATH
+X11_SM_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_SM_LIB
+X11_SM_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_X11_INCLUDE_PATH
+X11_X11_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_X11_LIB
+X11_X11_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_X11_xcb_INCLUDE_PATH
+X11_X11_xcb_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_X11_xcb_LIB
+X11_X11_xcb_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_XRes_INCLUDE_PATH
+X11_XRes_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_XRes_LIB
+X11_XRes_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_XShm_INCLUDE_PATH
+X11_XShm_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_XSync_INCLUDE_PATH
+X11_XSync_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xaccessrules_INCLUDE_PATH
+X11_Xaccessrules_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xaccessstr_INCLUDE_PATH
+X11_Xaccessstr_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xau_INCLUDE_PATH
+X11_Xau_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xau_LIB
+X11_Xau_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xaw_INCLUDE_PATH
+X11_Xaw_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xaw_LIB
+X11_Xaw_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xcomposite_INCLUDE_PATH
+X11_Xcomposite_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xcomposite_LIB
+X11_Xcomposite_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xcursor_INCLUDE_PATH
+X11_Xcursor_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xcursor_LIB
+X11_Xcursor_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xdamage_INCLUDE_PATH
+X11_Xdamage_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xdamage_LIB
+X11_Xdamage_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xdbe_INCLUDE_PATH
+X11_Xdbe_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xdmcp_INCLUDE_PATH
+X11_Xdmcp_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xdmcp_LIB
+X11_Xdmcp_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xext_INCLUDE_PATH
+X11_Xext_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xext_LIB
+X11_Xext_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xfixes_INCLUDE_PATH
+X11_Xfixes_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xfixes_LIB
+X11_Xfixes_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xft_INCLUDE_PATH
+X11_Xft_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xft_LIB
+X11_Xft_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xi_INCLUDE_PATH
+X11_Xi_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xi_LIB
+X11_Xi_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xinerama_INCLUDE_PATH
+X11_Xinerama_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xinerama_LIB
+X11_Xinerama_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xkb_INCLUDE_PATH
+X11_Xkb_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xkblib_INCLUDE_PATH
+X11_Xkblib_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xlib_INCLUDE_PATH
+X11_Xlib_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xmu_INCLUDE_PATH
+X11_Xmu_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xmu_LIB
+X11_Xmu_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xpm_INCLUDE_PATH
+X11_Xpm_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xpm_LIB
+X11_Xpm_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xrandr_INCLUDE_PATH
+X11_Xrandr_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xrandr_LIB
+X11_Xrandr_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xrender_INCLUDE_PATH
+X11_Xrender_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xrender_LIB
+X11_Xrender_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xshape_INCLUDE_PATH
+X11_Xshape_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xss_INCLUDE_PATH
+X11_Xss_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xss_LIB
+X11_Xss_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xt_INCLUDE_PATH
+X11_Xt_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xt_LIB
+X11_Xt_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xtst_INCLUDE_PATH
+X11_Xtst_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xtst_LIB
+X11_Xtst_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xutil_INCLUDE_PATH
+X11_Xutil_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xv_INCLUDE_PATH
+X11_Xv_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xv_LIB
+X11_Xv_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xxf86misc_INCLUDE_PATH
+X11_Xxf86misc_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xxf86misc_LIB
+X11_Xxf86misc_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xxf86vm_INCLUDE_PATH
+X11_Xxf86vm_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_Xxf86vm_LIB
+X11_Xxf86vm_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_dpms_INCLUDE_PATH
+X11_dpms_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_INCLUDE_PATH
+X11_xcb_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_LIB
+X11_xcb_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_composite_INCLUDE_PATH
+X11_xcb_composite_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_composite_LIB
+X11_xcb_composite_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_cursor_INCLUDE_PATH
+X11_xcb_cursor_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_cursor_LIB
+X11_xcb_cursor_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_damage_INCLUDE_PATH
+X11_xcb_damage_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_damage_LIB
+X11_xcb_damage_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_dpms_INCLUDE_PATH
+X11_xcb_dpms_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_dpms_LIB
+X11_xcb_dpms_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_dri2_INCLUDE_PATH
+X11_xcb_dri2_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_dri2_LIB
+X11_xcb_dri2_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_dri3_INCLUDE_PATH
+X11_xcb_dri3_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_dri3_LIB
+X11_xcb_dri3_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_errors_INCLUDE_PATH
+X11_xcb_errors_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_errors_LIB
+X11_xcb_errors_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_ewmh_INCLUDE_PATH
+X11_xcb_ewmh_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_ewmh_LIB
+X11_xcb_ewmh_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_glx_INCLUDE_PATH
+X11_xcb_glx_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_glx_LIB
+X11_xcb_glx_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_icccm_INCLUDE_PATH
+X11_xcb_icccm_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_icccm_LIB
+X11_xcb_icccm_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_image_INCLUDE_PATH
+X11_xcb_image_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_image_LIB
+X11_xcb_image_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_keysyms_INCLUDE_PATH
+X11_xcb_keysyms_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_keysyms_LIB
+X11_xcb_keysyms_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_present_INCLUDE_PATH
+X11_xcb_present_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_present_LIB
+X11_xcb_present_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_randr_INCLUDE_PATH
+X11_xcb_randr_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_randr_LIB
+X11_xcb_randr_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_record_INCLUDE_PATH
+X11_xcb_record_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_record_LIB
+X11_xcb_record_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_render_INCLUDE_PATH
+X11_xcb_render_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_render_LIB
+X11_xcb_render_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_render_util_INCLUDE_PATH
+X11_xcb_render_util_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_render_util_LIB
+X11_xcb_render_util_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_res_INCLUDE_PATH
+X11_xcb_res_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_res_LIB
+X11_xcb_res_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_screensaver_INCLUDE_PATH
+X11_xcb_screensaver_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_screensaver_LIB
+X11_xcb_screensaver_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_shape_INCLUDE_PATH
+X11_xcb_shape_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_shape_LIB
+X11_xcb_shape_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_shm_INCLUDE_PATH
+X11_xcb_shm_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_shm_LIB
+X11_xcb_shm_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_sync_INCLUDE_PATH
+X11_xcb_sync_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_sync_LIB
+X11_xcb_sync_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_util_INCLUDE_PATH
+X11_xcb_util_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_util_LIB
+X11_xcb_util_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xf86dri_INCLUDE_PATH
+X11_xcb_xf86dri_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xf86dri_LIB
+X11_xcb_xf86dri_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xfixes_INCLUDE_PATH
+X11_xcb_xfixes_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xfixes_LIB
+X11_xcb_xfixes_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xinerama_INCLUDE_PATH
+X11_xcb_xinerama_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xinerama_LIB
+X11_xcb_xinerama_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xinput_INCLUDE_PATH
+X11_xcb_xinput_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xinput_LIB
+X11_xcb_xinput_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xkb_LIB
+X11_xcb_xkb_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xrm_INCLUDE_PATH
+X11_xcb_xrm_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xrm_LIB
+X11_xcb_xrm_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xtest_INCLUDE_PATH
+X11_xcb_xtest_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xtest_LIB
+X11_xcb_xtest_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xv_INCLUDE_PATH
+X11_xcb_xv_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xv_LIB
+X11_xcb_xv_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xvmc_INCLUDE_PATH
+X11_xcb_xvmc_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xcb_xvmc_LIB
+X11_xcb_xvmc_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xkbcommon_INCLUDE_PATH
+X11_xkbcommon_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xkbcommon_LIB
+X11_xkbcommon_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xkbcommon_X11_INCLUDE_PATH
+X11_xkbcommon_X11_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xkbcommon_X11_LIB
+X11_xkbcommon_X11_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xkbfile_INCLUDE_PATH
+X11_xkbfile_INCLUDE_PATH-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: X11_xkbfile_LIB
+X11_xkbfile_LIB-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: YAMLCPP_INCLUDE_DIR
+YAMLCPP_INCLUDE_DIR-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: YAMLCPP_LIBRARY
+YAMLCPP_LIBRARY-ADVANCED:INTERNAL=1
+//linker supports push/pop state
+_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
+//CMAKE_INSTALL_PREFIX during last run
+_GNUInstallDirs_LAST_CMAKE_INSTALL_PREFIX:INTERNAL=/usr
+//Compiler reason failure
+_Python_Compiler_REASON_FAILURE:INTERNAL=
+_Python_DEVELOPMENT_EMBED_SIGNATURE:INTERNAL=be87c1fece396c3b77de1ca48e7ba4df
+_Python_DEVELOPMENT_MODULE_SIGNATURE:INTERNAL=e176b05b75342c1dd2b5202bb344a689
+//Development reason failure
+_Python_Development_REASON_FAILURE:INTERNAL=
+//Path to a program.
+_Python_EXECUTABLE:INTERNAL=/usr/bin/python3.12
+//Path to a file.
+_Python_INCLUDE_DIR:INTERNAL=/usr/include/python3.12
+//Python Properties
+_Python_INTERPRETER_PROPERTIES:INTERNAL=Python;3;12;6;64;;cpython-312-aarch64-linux-gnu;abi3;/usr/lib/python3.12;/usr/lib/python3.12;/usr/lib/python3.12/site-packages;/usr/lib/python3.12/site-packages
+_Python_INTERPRETER_SIGNATURE:INTERNAL=0b516266b7ed9a0986c924c82c2c3a08
+//Interpreter reason failure
+_Python_Interpreter_REASON_FAILURE:INTERNAL=
+//Path to a library.
+_Python_LIBRARY_RELEASE:INTERNAL=/usr/lib/libpython3.12.so
+//NumPy reason failure
+_Python_NumPy_REASON_FAILURE:INTERNAL=
+_Qt6_LINGUIST_TOOLS_DIR:INTERNAL=/usr/lib/cmake/Qt6LinguistTools
+__pkg_config_arguments_PKG_FONTCONFIG:INTERNAL=QUIET;fontconfig
+__pkg_config_arguments_PKG_XKB:INTERNAL=QUIET;xkbcommon
+__pkg_config_checked_PKG_FONTCONFIG:INTERNAL=1
+__pkg_config_checked_PKG_XKB:INTERNAL=1
+__qt_qml_macros_module_base_dir:INTERNAL=/usr/lib/cmake/Qt6Qml
+//ADVANCED property for variable: pkgcfg_lib_PKG_FONTCONFIG_fontconfig
+pkgcfg_lib_PKG_FONTCONFIG_fontconfig-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: pkgcfg_lib_PKG_FONTCONFIG_freetype
+pkgcfg_lib_PKG_FONTCONFIG_freetype-ADVANCED:INTERNAL=1
+//ADVANCED property for variable: pkgcfg_lib_PKG_XKB_xkbcommon
+pkgcfg_lib_PKG_XKB_xkbcommon-ADVANCED:INTERNAL=1
+prefix_result:INTERNAL=/usr/lib
+
diff --git a/src/CMakeFiles/3.30.3/CMakeCCompiler.cmake b/src/CMakeFiles/3.30.3/CMakeCCompiler.cmake
new file mode 100644
index 0000000000..5437b440e3
--- /dev/null
+++ b/src/CMakeFiles/3.30.3/CMakeCCompiler.cmake
@@ -0,0 +1,81 @@
+set(CMAKE_C_COMPILER "/usr/bin/cc")
+set(CMAKE_C_COMPILER_ARG1 "")
+set(CMAKE_C_COMPILER_ID "GNU")
+set(CMAKE_C_COMPILER_VERSION "14.1.1")
+set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_C_COMPILER_WRAPPER "")
+set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17")
+set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON")
+set(CMAKE_C_STANDARD_LATEST "23")
+set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23")
+set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
+set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
+set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
+set(CMAKE_C17_COMPILE_FEATURES "c_std_17")
+set(CMAKE_C23_COMPILE_FEATURES "c_std_23")
+
+set(CMAKE_C_PLATFORM_ID "Linux")
+set(CMAKE_C_SIMULATE_ID "")
+set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU")
+set(CMAKE_C_SIMULATE_VERSION "")
+
+
+
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_LINKER_LINK "")
+set(CMAKE_LINKER_LLD "")
+set(CMAKE_C_COMPILER_LINKER "/usr/bin/ld")
+set(CMAKE_C_COMPILER_LINKER_ID "GNU")
+set(CMAKE_C_COMPILER_LINKER_VERSION 2.42.0)
+set(CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT GNU)
+set(CMAKE_MT "")
+set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
+set(CMAKE_COMPILER_IS_GNUCC 1)
+set(CMAKE_C_COMPILER_LOADED 1)
+set(CMAKE_C_COMPILER_WORKS TRUE)
+set(CMAKE_C_ABI_COMPILED TRUE)
+
+set(CMAKE_C_COMPILER_ENV_VAR "CC")
+
+set(CMAKE_C_COMPILER_ID_RUN 1)
+set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
+set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
+set(CMAKE_C_LINKER_PREFERENCE 10)
+set(CMAKE_C_LINKER_DEPFILE_SUPPORTED FALSE)
+
+# Save compiler ABI information.
+set(CMAKE_C_SIZEOF_DATA_PTR "8")
+set(CMAKE_C_COMPILER_ABI "ELF")
+set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")
+set(CMAKE_C_LIBRARY_ARCHITECTURE "")
+
+if(CMAKE_C_SIZEOF_DATA_PTR)
+ set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_C_COMPILER_ABI)
+ set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
+endif()
+
+if(CMAKE_C_LIBRARY_ARCHITECTURE)
+ set(CMAKE_LIBRARY_ARCHITECTURE "")
+endif()
+
+set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
+ set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include;/usr/local/include;/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include-fixed;/usr/include")
+set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
+set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1;/usr/lib;/lib")
+set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
diff --git a/src/CMakeFiles/3.30.3/CMakeCXXCompiler.cmake b/src/CMakeFiles/3.30.3/CMakeCXXCompiler.cmake
new file mode 100644
index 0000000000..57df1ed6e8
--- /dev/null
+++ b/src/CMakeFiles/3.30.3/CMakeCXXCompiler.cmake
@@ -0,0 +1,105 @@
+set(CMAKE_CXX_COMPILER "/usr/bin/c++")
+set(CMAKE_CXX_COMPILER_ARG1 "")
+set(CMAKE_CXX_COMPILER_ID "GNU")
+set(CMAKE_CXX_COMPILER_VERSION "14.1.1")
+set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
+set(CMAKE_CXX_COMPILER_WRAPPER "")
+set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17")
+set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON")
+set(CMAKE_CXX_STANDARD_LATEST "26")
+set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23;cxx_std_26")
+set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
+set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
+set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
+set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
+set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
+set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23")
+set(CMAKE_CXX26_COMPILE_FEATURES "cxx_std_26")
+
+set(CMAKE_CXX_PLATFORM_ID "Linux")
+set(CMAKE_CXX_SIMULATE_ID "")
+set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU")
+set(CMAKE_CXX_SIMULATE_VERSION "")
+
+
+
+
+set(CMAKE_AR "/usr/bin/ar")
+set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar")
+set(CMAKE_RANLIB "/usr/bin/ranlib")
+set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib")
+set(CMAKE_LINKER "/usr/bin/ld")
+set(CMAKE_LINKER_LINK "")
+set(CMAKE_LINKER_LLD "")
+set(CMAKE_CXX_COMPILER_LINKER "/usr/bin/ld")
+set(CMAKE_CXX_COMPILER_LINKER_ID "GNU")
+set(CMAKE_CXX_COMPILER_LINKER_VERSION 2.42.0)
+set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT GNU)
+set(CMAKE_MT "")
+set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
+set(CMAKE_COMPILER_IS_GNUCXX 1)
+set(CMAKE_CXX_COMPILER_LOADED 1)
+set(CMAKE_CXX_COMPILER_WORKS TRUE)
+set(CMAKE_CXX_ABI_COMPILED TRUE)
+
+set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
+
+set(CMAKE_CXX_COMPILER_ID_RUN 1)
+set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m)
+set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
+
+foreach (lang IN ITEMS C OBJC OBJCXX)
+ if (CMAKE_${lang}_COMPILER_ID_RUN)
+ foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
+ list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
+ endforeach()
+ endif()
+endforeach()
+
+set(CMAKE_CXX_LINKER_PREFERENCE 30)
+set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
+set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED FALSE)
+
+# Save compiler ABI information.
+set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
+set(CMAKE_CXX_COMPILER_ABI "ELF")
+set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")
+set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
+
+if(CMAKE_CXX_SIZEOF_DATA_PTR)
+ set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
+endif()
+
+if(CMAKE_CXX_COMPILER_ABI)
+ set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
+endif()
+
+if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
+ set(CMAKE_LIBRARY_ARCHITECTURE "")
+endif()
+
+set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
+if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
+ set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
+endif()
+
+
+
+
+
+set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/14.1.1;/usr/include/c++/14.1.1/aarch64-unknown-linux-gnu;/usr/include/c++/14.1.1/backward;/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include;/usr/local/include;/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include-fixed;/usr/include")
+set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc")
+set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1;/usr/lib;/lib")
+set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
+set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "")
+
+set(CMAKE_CXX_COMPILER_IMPORT_STD "")
+### Imported target for C++23 standard library
+set(CMAKE_CXX23_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Unsupported generator: Unix Makefiles")
+
+
+### Imported target for C++26 standard library
+set(CMAKE_CXX26_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Unsupported generator: Unix Makefiles")
+
+
+
diff --git a/src/CMakeFiles/3.30.3/CMakeDetermineCompilerABI_C.bin b/src/CMakeFiles/3.30.3/CMakeDetermineCompilerABI_C.bin
new file mode 100755
index 0000000000..9ad2b4f858
Binary files /dev/null and b/src/CMakeFiles/3.30.3/CMakeDetermineCompilerABI_C.bin differ
diff --git a/src/CMakeFiles/3.30.3/CMakeDetermineCompilerABI_CXX.bin b/src/CMakeFiles/3.30.3/CMakeDetermineCompilerABI_CXX.bin
new file mode 100755
index 0000000000..a85d75e225
Binary files /dev/null and b/src/CMakeFiles/3.30.3/CMakeDetermineCompilerABI_CXX.bin differ
diff --git a/src/CMakeFiles/3.30.3/CMakeSystem.cmake b/src/CMakeFiles/3.30.3/CMakeSystem.cmake
new file mode 100644
index 0000000000..c5a681db85
--- /dev/null
+++ b/src/CMakeFiles/3.30.3/CMakeSystem.cmake
@@ -0,0 +1,15 @@
+set(CMAKE_HOST_SYSTEM "Linux-6.6.51-3-rpi")
+set(CMAKE_HOST_SYSTEM_NAME "Linux")
+set(CMAKE_HOST_SYSTEM_VERSION "6.6.51-3-rpi")
+set(CMAKE_HOST_SYSTEM_PROCESSOR "aarch64")
+
+
+
+set(CMAKE_SYSTEM "Linux-6.6.51-3-rpi")
+set(CMAKE_SYSTEM_NAME "Linux")
+set(CMAKE_SYSTEM_VERSION "6.6.51-3-rpi")
+set(CMAKE_SYSTEM_PROCESSOR "aarch64")
+
+set(CMAKE_CROSSCOMPILING "FALSE")
+
+set(CMAKE_SYSTEM_LOADED 1)
diff --git a/src/CMakeFiles/3.30.3/CompilerIdC/CMakeCCompilerId.c b/src/CMakeFiles/3.30.3/CompilerIdC/CMakeCCompilerId.c
new file mode 100644
index 0000000000..8d8bb038bb
--- /dev/null
+++ b/src/CMakeFiles/3.30.3/CompilerIdC/CMakeCCompilerId.c
@@ -0,0 +1,904 @@
+#ifdef __cplusplus
+# error "A C++ compiler has been selected for C."
+#endif
+
+#if defined(__18CXX)
+# define ID_VOID_MAIN
+#endif
+#if defined(__CLASSIC_C__)
+/* cv-qualifiers did not exist in K&R C */
+# define const
+# define volatile
+#endif
+
+#if !defined(__has_include)
+/* If the compiler does not have __has_include, pretend the answer is
+ always no. */
+# define __has_include(x) 0
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+ Version date components: YYYY=Year, MM=Month, DD=Day */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+# endif
+ /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
+ except that a few beta releases use the old format with V=2021. */
+# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
+# endif
+# else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
+ /* The third version component from --version is an update index,
+ but no macro is provided for it. */
+# define COMPILER_VERSION_PATCH DEC(0)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+ /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
+# define COMPILER_ID "IntelLLVM"
+#if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+#endif
+/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
+ * later. Look for 6 digit vs. 8 digit version number to decide encoding.
+ * VVVV is no smaller than the current year when a version is released.
+ */
+#if __INTEL_LLVM_COMPILER < 1000000L
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
+#else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
+#endif
+#if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+#elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+#endif
+#if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+#endif
+#if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+#endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+ /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+ /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+ /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_C)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_C >= 0x5100
+ /* __SUNPRO_C = 0xVRRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
+# else
+ /* __SUNPRO_CC = 0xVRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
+# endif
+
+#elif defined(__HP_cc)
+# define COMPILER_ID "HP"
+ /* __HP_cc = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
+
+#elif defined(__DECC)
+# define COMPILER_ID "Compaq"
+ /* __DECC_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
+
+#elif defined(__IBMC__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+ /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+
+#elif defined(__open_xl__) && defined(__clang__)
+# define COMPILER_ID "IBMClang"
+# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
+# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
+# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
+
+
+#elif defined(__ibmxl__) && defined(__clang__)
+# define COMPILER_ID "XLClang"
+# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
+# define COMPILER_ID "XL"
+ /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+
+#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
+# define COMPILER_ID "VisualAge"
+ /* __IBMC__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
+
+#elif defined(__NVCOMPILER)
+# define COMPILER_ID "NVHPC"
+# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
+# if defined(__NVCOMPILER_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
+# endif
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(__clang__) && defined(__cray__)
+# define COMPILER_ID "CrayClang"
+# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
+# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
+# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+ /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
+
+#elif defined(__CLANG_FUJITSU)
+# define COMPILER_ID "FujitsuClang"
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(__FUJITSU)
+# define COMPILER_ID "Fujitsu"
+# if defined(__FCC_version__)
+# define COMPILER_VERSION __FCC_version__
+# elif defined(__FCC_major__)
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# endif
+# if defined(__fcc_version)
+# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
+# elif defined(__FCC_VERSION)
+# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
+# endif
+
+
+#elif defined(__ghs__)
+# define COMPILER_ID "GHS"
+/* __GHS_VERSION_NUMBER = VVVVRP */
+# ifdef __GHS_VERSION_NUMBER
+# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
+# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
+# endif
+
+#elif defined(__TASKING__)
+# define COMPILER_ID "Tasking"
+ # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
+ # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
+# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
+
+#elif defined(__ORANGEC__)
+# define COMPILER_ID "OrangeC"
+# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
+# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
+
+#elif defined(__TINYC__)
+# define COMPILER_ID "TinyCC"
+
+#elif defined(__BCC__)
+# define COMPILER_ID "Bruce"
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__ARMCC_VERSION) && !defined(__clang__)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+ /* __ARMCC_VERSION = VRRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#else
+ /* __ARMCC_VERSION = VRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#endif
+
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
+# define COMPILER_ID "ARMClang"
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
+# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
+
+#elif defined(__clang__) && defined(__ti__)
+# define COMPILER_ID "TIClang"
+ # define COMPILER_VERSION_MAJOR DEC(__ti_major__)
+ # define COMPILER_VERSION_MINOR DEC(__ti_minor__)
+ # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__)
+# define COMPILER_VERSION_INTERNAL DEC(__ti_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
+# define COMPILER_ID "LCC"
+# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
+# if defined(__LCC_MINOR__)
+# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
+# endif
+# if defined(__GNUC__) && defined(__GNUC_MINOR__)
+# define SIMULATE_ID "GNU"
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+# endif
+
+#elif defined(__GNUC__)
+# define COMPILER_ID "GNU"
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# if defined(__GNUC_MINOR__)
+# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+ /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+# if _MSC_VER >= 1400
+ /* _MSC_FULL_VER = VVRRPPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+# else
+ /* _MSC_FULL_VER = VVRRPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+# endif
+# endif
+# if defined(_MSC_BUILD)
+# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(_ADI_COMPILER)
+# define COMPILER_ID "ADSP"
+#if defined(__VERSIONNUM__)
+ /* __VERSIONNUM__ = 0xVVRRPPTT */
+# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
+# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
+# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
+# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+# if defined(__VER__) && defined(__ICCARM__)
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
+# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
+# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# endif
+
+#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
+# define COMPILER_ID "SDCC"
+# if defined(__SDCC_VERSION_MAJOR)
+# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
+# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
+# else
+ /* SDCC = VRP */
+# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
+# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+ identification macro. Try to identify the platform and guess that
+ it is the native compiler. */
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name. */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__MSYS__)
+# define PLATFORM_ID "MSYS"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+# define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+# define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+# define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+# define PLATFORM_ID "Windows3x"
+
+# elif defined(__VXWORKS__)
+# define PLATFORM_ID "VxWorks"
+
+# else /* unknown platform */
+# define PLATFORM_ID
+# endif
+
+#elif defined(__INTEGRITY)
+# if defined(INT_178B)
+# define PLATFORM_ID "Integrity178"
+
+# else /* regular Integrity */
+# define PLATFORM_ID "Integrity"
+# endif
+
+# elif defined(_ADI_COMPILER)
+# define PLATFORM_ID "ADSP"
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+ the architecture of the compiler being used. This is because
+ the compilers do not have flags that can change the architecture,
+ but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+# define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_ARM64EC)
+# define ARCHITECTURE_ID "ARM64EC"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+# define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+# if _M_ARM == 4
+# define ARCHITECTURE_ID "ARMV4I"
+# elif _M_ARM == 5
+# define ARCHITECTURE_ID "ARMV5I"
+# else
+# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+# endif
+
+# elif defined(_M_MIPS)
+# define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+# define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+# define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCRX__)
+# define ARCHITECTURE_ID "RX"
+
+# elif defined(__ICCRH850__)
+# define ARCHITECTURE_ID "RH850"
+
+# elif defined(__ICCRL78__)
+# define ARCHITECTURE_ID "RL78"
+
+# elif defined(__ICCRISCV__)
+# define ARCHITECTURE_ID "RISCV"
+
+# elif defined(__ICCAVR__)
+# define ARCHITECTURE_ID "AVR"
+
+# elif defined(__ICC430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__ICCV850__)
+# define ARCHITECTURE_ID "V850"
+
+# elif defined(__ICC8051__)
+# define ARCHITECTURE_ID "8051"
+
+# elif defined(__ICCSTM8__)
+# define ARCHITECTURE_ID "STM8"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__ghs__)
+# if defined(__PPC64__)
+# define ARCHITECTURE_ID "PPC64"
+
+# elif defined(__ppc__)
+# define ARCHITECTURE_ID "PPC"
+
+# elif defined(__ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__x86_64__)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(__i386__)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__clang__) && defined(__ti__)
+# if defined(__ARM_ARCH)
+# define ARCHITECTURE_ID "Arm"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__TI_COMPILER_VERSION__)
+# if defined(__TI_ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__MSP430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__TMS320C28XX__)
+# define ARCHITECTURE_ID "TMS320C28x"
+
+# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
+# define ARCHITECTURE_ID "TMS320C6x"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+# elif defined(__ADSPSHARC__)
+# define ARCHITECTURE_ID "SHARC"
+
+# elif defined(__ADSPBLACKFIN__)
+# define ARCHITECTURE_ID "Blackfin"
+
+#elif defined(__TASKING__)
+
+# if defined(__CTC__) || defined(__CPTC__)
+# define ARCHITECTURE_ID "TriCore"
+
+# elif defined(__CMCS__)
+# define ARCHITECTURE_ID "MCS"
+
+# elif defined(__CARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__CARC__)
+# define ARCHITECTURE_ID "ARC"
+
+# elif defined(__C51__)
+# define ARCHITECTURE_ID "8051"
+
+# elif defined(__CPCP__)
+# define ARCHITECTURE_ID "PCP"
+
+# else
+# define ARCHITECTURE_ID ""
+# endif
+
+#else
+# define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals. */
+#define DEC(n) \
+ ('0' + (((n) / 10000000)%10)), \
+ ('0' + (((n) / 1000000)%10)), \
+ ('0' + (((n) / 100000)%10)), \
+ ('0' + (((n) / 10000)%10)), \
+ ('0' + (((n) / 1000)%10)), \
+ ('0' + (((n) / 100)%10)), \
+ ('0' + (((n) / 10)%10)), \
+ ('0' + ((n) % 10))
+
+/* Convert integer to hex digit literals. */
+#define HEX(n) \
+ ('0' + ((n)>>28 & 0xF)), \
+ ('0' + ((n)>>24 & 0xF)), \
+ ('0' + ((n)>>20 & 0xF)), \
+ ('0' + ((n)>>16 & 0xF)), \
+ ('0' + ((n)>>12 & 0xF)), \
+ ('0' + ((n)>>8 & 0xF)), \
+ ('0' + ((n)>>4 & 0xF)), \
+ ('0' + ((n) & 0xF))
+
+/* Construct a string literal encoding the version number. */
+#ifdef COMPILER_VERSION
+char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
+
+/* Construct a string literal encoding the version number components. */
+#elif defined(COMPILER_VERSION_MAJOR)
+char const info_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+ COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+ '.', COMPILER_VERSION_MINOR,
+# ifdef COMPILER_VERSION_PATCH
+ '.', COMPILER_VERSION_PATCH,
+# ifdef COMPILER_VERSION_TWEAK
+ '.', COMPILER_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+ 'i','n','t','e','r','n','a','l','[',
+ COMPILER_VERSION_INTERNAL,']','\0'};
+#elif defined(COMPILER_VERSION_INTERNAL_STR)
+char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+ SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+ '.', SIMULATE_VERSION_MINOR,
+# ifdef SIMULATE_VERSION_PATCH
+ '.', SIMULATE_VERSION_PATCH,
+# ifdef SIMULATE_VERSION_TWEAK
+ '.', SIMULATE_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+#define C_STD_99 199901L
+#define C_STD_11 201112L
+#define C_STD_17 201710L
+#define C_STD_23 202311L
+
+#ifdef __STDC_VERSION__
+# define C_STD __STDC_VERSION__
+#endif
+
+#if !defined(__STDC__) && !defined(__clang__)
+# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
+# define C_VERSION "90"
+# else
+# define C_VERSION
+# endif
+#elif C_STD > C_STD_17
+# define C_VERSION "23"
+#elif C_STD > C_STD_11
+# define C_VERSION "17"
+#elif C_STD > C_STD_99
+# define C_VERSION "11"
+#elif C_STD >= C_STD_99
+# define C_VERSION "99"
+#else
+# define C_VERSION "90"
+#endif
+const char* info_language_standard_default =
+ "INFO" ":" "standard_default[" C_VERSION "]";
+
+const char* info_language_extensions_default = "INFO" ":" "extensions_default["
+#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
+ defined(__TI_COMPILER_VERSION__)) && \
+ !defined(__STRICT_ANSI__)
+ "ON"
+#else
+ "OFF"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+#ifdef ID_VOID_MAIN
+void main() {}
+#else
+# if defined(__CLASSIC_C__)
+int main(argc, argv) int argc; char *argv[];
+# else
+int main(int argc, char* argv[])
+# endif
+{
+ int require = 0;
+ require += info_compiler[argc];
+ require += info_platform[argc];
+ require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+ require += info_version[argc];
+#endif
+#ifdef COMPILER_VERSION_INTERNAL
+ require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+ require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+ require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+ require += info_cray[argc];
+#endif
+ require += info_language_standard_default[argc];
+ require += info_language_extensions_default[argc];
+ (void)argv;
+ return require;
+}
+#endif
diff --git a/src/CMakeFiles/3.30.3/CompilerIdC/a.out b/src/CMakeFiles/3.30.3/CompilerIdC/a.out
new file mode 100755
index 0000000000..922ae53762
Binary files /dev/null and b/src/CMakeFiles/3.30.3/CompilerIdC/a.out differ
diff --git a/src/CMakeFiles/3.30.3/CompilerIdCXX/CMakeCXXCompilerId.cpp b/src/CMakeFiles/3.30.3/CompilerIdCXX/CMakeCXXCompilerId.cpp
new file mode 100644
index 0000000000..da6c824af3
--- /dev/null
+++ b/src/CMakeFiles/3.30.3/CompilerIdCXX/CMakeCXXCompilerId.cpp
@@ -0,0 +1,919 @@
+/* This source file must have a .cpp extension so that all C++ compilers
+ recognize the extension without flags. Borland does not know .cxx for
+ example. */
+#ifndef __cplusplus
+# error "A C compiler has been selected for C++."
+#endif
+
+#if !defined(__has_include)
+/* If the compiler does not have __has_include, pretend the answer is
+ always no. */
+# define __has_include(x) 0
+#endif
+
+
+/* Version number components: V=Version, R=Revision, P=Patch
+ Version date components: YYYY=Year, MM=Month, DD=Day */
+
+#if defined(__INTEL_COMPILER) || defined(__ICC)
+# define COMPILER_ID "Intel"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+# endif
+ /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
+ except that a few beta releases use the old format with V=2021. */
+# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
+# if defined(__INTEL_COMPILER_UPDATE)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
+# else
+# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
+# endif
+# else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
+ /* The third version component from --version is an update index,
+ but no macro is provided for it. */
+# define COMPILER_VERSION_PATCH DEC(0)
+# endif
+# if defined(__INTEL_COMPILER_BUILD_DATE)
+ /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
+# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
+# endif
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
+# define COMPILER_ID "IntelLLVM"
+#if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_ID "GNU"
+#endif
+/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
+ * later. Look for 6 digit vs. 8 digit version number to decide encoding.
+ * VVVV is no smaller than the current year when a version is released.
+ */
+#if __INTEL_LLVM_COMPILER < 1000000L
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
+#else
+# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
+# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
+#endif
+#if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+#endif
+#if defined(__GNUC__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+#elif defined(__GNUG__)
+# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
+#endif
+#if defined(__GNUC_MINOR__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+#endif
+#if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+#endif
+
+#elif defined(__PATHCC__)
+# define COMPILER_ID "PathScale"
+# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
+# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
+# if defined(__PATHCC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
+# endif
+
+#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
+# define COMPILER_ID "Embarcadero"
+# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
+# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
+# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
+
+#elif defined(__BORLANDC__)
+# define COMPILER_ID "Borland"
+ /* __BORLANDC__ = 0xVRR */
+# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
+# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
+
+#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
+# define COMPILER_ID "Watcom"
+ /* __WATCOMC__ = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__WATCOMC__)
+# define COMPILER_ID "OpenWatcom"
+ /* __WATCOMC__ = VVRP + 1100 */
+# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
+# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
+# if (__WATCOMC__ % 10) > 0
+# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
+# endif
+
+#elif defined(__SUNPRO_CC)
+# define COMPILER_ID "SunPro"
+# if __SUNPRO_CC >= 0x5100
+ /* __SUNPRO_CC = 0xVRRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
+# else
+ /* __SUNPRO_CC = 0xVRP */
+# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
+# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
+# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
+# endif
+
+#elif defined(__HP_aCC)
+# define COMPILER_ID "HP"
+ /* __HP_aCC = VVRRPP */
+# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
+# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
+# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
+
+#elif defined(__DECCXX)
+# define COMPILER_ID "Compaq"
+ /* __DECCXX_VER = VVRRTPPPP */
+# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
+# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
+# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
+
+#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
+# define COMPILER_ID "zOS"
+ /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
+
+#elif defined(__open_xl__) && defined(__clang__)
+# define COMPILER_ID "IBMClang"
+# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
+# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
+# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
+
+
+#elif defined(__ibmxl__) && defined(__clang__)
+# define COMPILER_ID "XLClang"
+# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
+# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
+# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
+# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
+
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
+# define COMPILER_ID "XL"
+ /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
+
+#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
+# define COMPILER_ID "VisualAge"
+ /* __IBMCPP__ = VRP */
+# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
+# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
+
+#elif defined(__NVCOMPILER)
+# define COMPILER_ID "NVHPC"
+# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
+# if defined(__NVCOMPILER_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
+# endif
+
+#elif defined(__PGI)
+# define COMPILER_ID "PGI"
+# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
+# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
+# if defined(__PGIC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
+# endif
+
+#elif defined(__clang__) && defined(__cray__)
+# define COMPILER_ID "CrayClang"
+# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
+# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
+# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(_CRAYC)
+# define COMPILER_ID "Cray"
+# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
+# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
+
+#elif defined(__TI_COMPILER_VERSION__)
+# define COMPILER_ID "TI"
+ /* __TI_COMPILER_VERSION__ = VVVRRRPPP */
+# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
+# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
+# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
+
+#elif defined(__CLANG_FUJITSU)
+# define COMPILER_ID "FujitsuClang"
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# define COMPILER_VERSION_INTERNAL_STR __clang_version__
+
+
+#elif defined(__FUJITSU)
+# define COMPILER_ID "Fujitsu"
+# if defined(__FCC_version__)
+# define COMPILER_VERSION __FCC_version__
+# elif defined(__FCC_major__)
+# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
+# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
+# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
+# endif
+# if defined(__fcc_version)
+# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
+# elif defined(__FCC_VERSION)
+# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
+# endif
+
+
+#elif defined(__ghs__)
+# define COMPILER_ID "GHS"
+/* __GHS_VERSION_NUMBER = VVVVRP */
+# ifdef __GHS_VERSION_NUMBER
+# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
+# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
+# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
+# endif
+
+#elif defined(__TASKING__)
+# define COMPILER_ID "Tasking"
+ # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
+ # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
+# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
+
+#elif defined(__ORANGEC__)
+# define COMPILER_ID "OrangeC"
+# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
+# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
+# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
+
+#elif defined(__SCO_VERSION__)
+# define COMPILER_ID "SCO"
+
+#elif defined(__ARMCC_VERSION) && !defined(__clang__)
+# define COMPILER_ID "ARMCC"
+#if __ARMCC_VERSION >= 1000000
+ /* __ARMCC_VERSION = VRRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#else
+ /* __ARMCC_VERSION = VRPPPP */
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
+#endif
+
+
+#elif defined(__clang__) && defined(__apple_build_version__)
+# define COMPILER_ID "AppleClang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
+
+#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
+# define COMPILER_ID "ARMClang"
+ # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
+ # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
+ # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
+# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
+
+#elif defined(__clang__) && defined(__ti__)
+# define COMPILER_ID "TIClang"
+ # define COMPILER_VERSION_MAJOR DEC(__ti_major__)
+ # define COMPILER_VERSION_MINOR DEC(__ti_minor__)
+ # define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__)
+# define COMPILER_VERSION_INTERNAL DEC(__ti_version__)
+
+#elif defined(__clang__)
+# define COMPILER_ID "Clang"
+# if defined(_MSC_VER)
+# define SIMULATE_ID "MSVC"
+# endif
+# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
+# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
+# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
+# if defined(_MSC_VER)
+ /* _MSC_VER = VVRR */
+# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
+# endif
+
+#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
+# define COMPILER_ID "LCC"
+# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
+# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
+# if defined(__LCC_MINOR__)
+# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
+# endif
+# if defined(__GNUC__) && defined(__GNUC_MINOR__)
+# define SIMULATE_ID "GNU"
+# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
+# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
+# if defined(__GNUC_PATCHLEVEL__)
+# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+# endif
+
+#elif defined(__GNUC__) || defined(__GNUG__)
+# define COMPILER_ID "GNU"
+# if defined(__GNUC__)
+# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
+# else
+# define COMPILER_VERSION_MAJOR DEC(__GNUG__)
+# endif
+# if defined(__GNUC_MINOR__)
+# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
+# endif
+# if defined(__GNUC_PATCHLEVEL__)
+# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
+# endif
+
+#elif defined(_MSC_VER)
+# define COMPILER_ID "MSVC"
+ /* _MSC_VER = VVRR */
+# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
+# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
+# if defined(_MSC_FULL_VER)
+# if _MSC_VER >= 1400
+ /* _MSC_FULL_VER = VVRRPPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
+# else
+ /* _MSC_FULL_VER = VVRRPPPP */
+# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
+# endif
+# endif
+# if defined(_MSC_BUILD)
+# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
+# endif
+
+#elif defined(_ADI_COMPILER)
+# define COMPILER_ID "ADSP"
+#if defined(__VERSIONNUM__)
+ /* __VERSIONNUM__ = 0xVVRRPPTT */
+# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
+# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
+# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
+# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
+#endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# define COMPILER_ID "IAR"
+# if defined(__VER__) && defined(__ICCARM__)
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
+# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
+# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
+# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
+# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
+# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
+# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
+# endif
+
+
+/* These compilers are either not known or too old to define an
+ identification macro. Try to identify the platform and guess that
+ it is the native compiler. */
+#elif defined(__hpux) || defined(__hpua)
+# define COMPILER_ID "HP"
+
+#else /* unknown compiler */
+# define COMPILER_ID ""
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
+#ifdef SIMULATE_ID
+char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
+#endif
+
+#ifdef __QNXNTO__
+char const* qnxnto = "INFO" ":" "qnxnto[]";
+#endif
+
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
+#endif
+
+#define STRINGIFY_HELPER(X) #X
+#define STRINGIFY(X) STRINGIFY_HELPER(X)
+
+/* Identify known platforms by name. */
+#if defined(__linux) || defined(__linux__) || defined(linux)
+# define PLATFORM_ID "Linux"
+
+#elif defined(__MSYS__)
+# define PLATFORM_ID "MSYS"
+
+#elif defined(__CYGWIN__)
+# define PLATFORM_ID "Cygwin"
+
+#elif defined(__MINGW32__)
+# define PLATFORM_ID "MinGW"
+
+#elif defined(__APPLE__)
+# define PLATFORM_ID "Darwin"
+
+#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
+# define PLATFORM_ID "Windows"
+
+#elif defined(__FreeBSD__) || defined(__FreeBSD)
+# define PLATFORM_ID "FreeBSD"
+
+#elif defined(__NetBSD__) || defined(__NetBSD)
+# define PLATFORM_ID "NetBSD"
+
+#elif defined(__OpenBSD__) || defined(__OPENBSD)
+# define PLATFORM_ID "OpenBSD"
+
+#elif defined(__sun) || defined(sun)
+# define PLATFORM_ID "SunOS"
+
+#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
+# define PLATFORM_ID "AIX"
+
+#elif defined(__hpux) || defined(__hpux__)
+# define PLATFORM_ID "HP-UX"
+
+#elif defined(__HAIKU__)
+# define PLATFORM_ID "Haiku"
+
+#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
+# define PLATFORM_ID "BeOS"
+
+#elif defined(__QNX__) || defined(__QNXNTO__)
+# define PLATFORM_ID "QNX"
+
+#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
+# define PLATFORM_ID "Tru64"
+
+#elif defined(__riscos) || defined(__riscos__)
+# define PLATFORM_ID "RISCos"
+
+#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
+# define PLATFORM_ID "SINIX"
+
+#elif defined(__UNIX_SV__)
+# define PLATFORM_ID "UNIX_SV"
+
+#elif defined(__bsdos__)
+# define PLATFORM_ID "BSDOS"
+
+#elif defined(_MPRAS) || defined(MPRAS)
+# define PLATFORM_ID "MP-RAS"
+
+#elif defined(__osf) || defined(__osf__)
+# define PLATFORM_ID "OSF1"
+
+#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
+# define PLATFORM_ID "SCO_SV"
+
+#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
+# define PLATFORM_ID "ULTRIX"
+
+#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
+# define PLATFORM_ID "Xenix"
+
+#elif defined(__WATCOMC__)
+# if defined(__LINUX__)
+# define PLATFORM_ID "Linux"
+
+# elif defined(__DOS__)
+# define PLATFORM_ID "DOS"
+
+# elif defined(__OS2__)
+# define PLATFORM_ID "OS2"
+
+# elif defined(__WINDOWS__)
+# define PLATFORM_ID "Windows3x"
+
+# elif defined(__VXWORKS__)
+# define PLATFORM_ID "VxWorks"
+
+# else /* unknown platform */
+# define PLATFORM_ID
+# endif
+
+#elif defined(__INTEGRITY)
+# if defined(INT_178B)
+# define PLATFORM_ID "Integrity178"
+
+# else /* regular Integrity */
+# define PLATFORM_ID "Integrity"
+# endif
+
+# elif defined(_ADI_COMPILER)
+# define PLATFORM_ID "ADSP"
+
+#else /* unknown platform */
+# define PLATFORM_ID
+
+#endif
+
+/* For windows compilers MSVC and Intel we can determine
+ the architecture of the compiler being used. This is because
+ the compilers do not have flags that can change the architecture,
+ but rather depend on which compiler is being used
+*/
+#if defined(_WIN32) && defined(_MSC_VER)
+# if defined(_M_IA64)
+# define ARCHITECTURE_ID "IA64"
+
+# elif defined(_M_ARM64EC)
+# define ARCHITECTURE_ID "ARM64EC"
+
+# elif defined(_M_X64) || defined(_M_AMD64)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# elif defined(_M_ARM64)
+# define ARCHITECTURE_ID "ARM64"
+
+# elif defined(_M_ARM)
+# if _M_ARM == 4
+# define ARCHITECTURE_ID "ARMV4I"
+# elif _M_ARM == 5
+# define ARCHITECTURE_ID "ARMV5I"
+# else
+# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
+# endif
+
+# elif defined(_M_MIPS)
+# define ARCHITECTURE_ID "MIPS"
+
+# elif defined(_M_SH)
+# define ARCHITECTURE_ID "SHx"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__WATCOMC__)
+# if defined(_M_I86)
+# define ARCHITECTURE_ID "I86"
+
+# elif defined(_M_IX86)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCRX__)
+# define ARCHITECTURE_ID "RX"
+
+# elif defined(__ICCRH850__)
+# define ARCHITECTURE_ID "RH850"
+
+# elif defined(__ICCRL78__)
+# define ARCHITECTURE_ID "RL78"
+
+# elif defined(__ICCRISCV__)
+# define ARCHITECTURE_ID "RISCV"
+
+# elif defined(__ICCAVR__)
+# define ARCHITECTURE_ID "AVR"
+
+# elif defined(__ICC430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__ICCV850__)
+# define ARCHITECTURE_ID "V850"
+
+# elif defined(__ICC8051__)
+# define ARCHITECTURE_ID "8051"
+
+# elif defined(__ICCSTM8__)
+# define ARCHITECTURE_ID "STM8"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__ghs__)
+# if defined(__PPC64__)
+# define ARCHITECTURE_ID "PPC64"
+
+# elif defined(__ppc__)
+# define ARCHITECTURE_ID "PPC"
+
+# elif defined(__ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__x86_64__)
+# define ARCHITECTURE_ID "x64"
+
+# elif defined(__i386__)
+# define ARCHITECTURE_ID "X86"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__clang__) && defined(__ti__)
+# if defined(__ARM_ARCH)
+# define ARCHITECTURE_ID "Arm"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+#elif defined(__TI_COMPILER_VERSION__)
+# if defined(__TI_ARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__MSP430__)
+# define ARCHITECTURE_ID "MSP430"
+
+# elif defined(__TMS320C28XX__)
+# define ARCHITECTURE_ID "TMS320C28x"
+
+# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
+# define ARCHITECTURE_ID "TMS320C6x"
+
+# else /* unknown architecture */
+# define ARCHITECTURE_ID ""
+# endif
+
+# elif defined(__ADSPSHARC__)
+# define ARCHITECTURE_ID "SHARC"
+
+# elif defined(__ADSPBLACKFIN__)
+# define ARCHITECTURE_ID "Blackfin"
+
+#elif defined(__TASKING__)
+
+# if defined(__CTC__) || defined(__CPTC__)
+# define ARCHITECTURE_ID "TriCore"
+
+# elif defined(__CMCS__)
+# define ARCHITECTURE_ID "MCS"
+
+# elif defined(__CARM__)
+# define ARCHITECTURE_ID "ARM"
+
+# elif defined(__CARC__)
+# define ARCHITECTURE_ID "ARC"
+
+# elif defined(__C51__)
+# define ARCHITECTURE_ID "8051"
+
+# elif defined(__CPCP__)
+# define ARCHITECTURE_ID "PCP"
+
+# else
+# define ARCHITECTURE_ID ""
+# endif
+
+#else
+# define ARCHITECTURE_ID
+#endif
+
+/* Convert integer to decimal digit literals. */
+#define DEC(n) \
+ ('0' + (((n) / 10000000)%10)), \
+ ('0' + (((n) / 1000000)%10)), \
+ ('0' + (((n) / 100000)%10)), \
+ ('0' + (((n) / 10000)%10)), \
+ ('0' + (((n) / 1000)%10)), \
+ ('0' + (((n) / 100)%10)), \
+ ('0' + (((n) / 10)%10)), \
+ ('0' + ((n) % 10))
+
+/* Convert integer to hex digit literals. */
+#define HEX(n) \
+ ('0' + ((n)>>28 & 0xF)), \
+ ('0' + ((n)>>24 & 0xF)), \
+ ('0' + ((n)>>20 & 0xF)), \
+ ('0' + ((n)>>16 & 0xF)), \
+ ('0' + ((n)>>12 & 0xF)), \
+ ('0' + ((n)>>8 & 0xF)), \
+ ('0' + ((n)>>4 & 0xF)), \
+ ('0' + ((n) & 0xF))
+
+/* Construct a string literal encoding the version number. */
+#ifdef COMPILER_VERSION
+char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
+
+/* Construct a string literal encoding the version number components. */
+#elif defined(COMPILER_VERSION_MAJOR)
+char const info_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
+ COMPILER_VERSION_MAJOR,
+# ifdef COMPILER_VERSION_MINOR
+ '.', COMPILER_VERSION_MINOR,
+# ifdef COMPILER_VERSION_PATCH
+ '.', COMPILER_VERSION_PATCH,
+# ifdef COMPILER_VERSION_TWEAK
+ '.', COMPILER_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct a string literal encoding the internal version number. */
+#ifdef COMPILER_VERSION_INTERNAL
+char const info_version_internal[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
+ 'i','n','t','e','r','n','a','l','[',
+ COMPILER_VERSION_INTERNAL,']','\0'};
+#elif defined(COMPILER_VERSION_INTERNAL_STR)
+char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
+#endif
+
+/* Construct a string literal encoding the version number components. */
+#ifdef SIMULATE_VERSION_MAJOR
+char const info_simulate_version[] = {
+ 'I', 'N', 'F', 'O', ':',
+ 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
+ SIMULATE_VERSION_MAJOR,
+# ifdef SIMULATE_VERSION_MINOR
+ '.', SIMULATE_VERSION_MINOR,
+# ifdef SIMULATE_VERSION_PATCH
+ '.', SIMULATE_VERSION_PATCH,
+# ifdef SIMULATE_VERSION_TWEAK
+ '.', SIMULATE_VERSION_TWEAK,
+# endif
+# endif
+# endif
+ ']','\0'};
+#endif
+
+/* Construct the string literal in pieces to prevent the source from
+ getting matched. Store it in a pointer rather than an array
+ because some compilers will just produce instructions to fill the
+ array rather than assigning a pointer to a static array. */
+char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
+char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
+
+
+
+#define CXX_STD_98 199711L
+#define CXX_STD_11 201103L
+#define CXX_STD_14 201402L
+#define CXX_STD_17 201703L
+#define CXX_STD_20 202002L
+#define CXX_STD_23 202302L
+
+#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG)
+# if _MSVC_LANG > CXX_STD_17
+# define CXX_STD _MSVC_LANG
+# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
+# define CXX_STD CXX_STD_20
+# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17
+# define CXX_STD CXX_STD_20
+# elif _MSVC_LANG > CXX_STD_14
+# define CXX_STD CXX_STD_17
+# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi)
+# define CXX_STD CXX_STD_14
+# elif defined(__INTEL_CXX11_MODE__)
+# define CXX_STD CXX_STD_11
+# else
+# define CXX_STD CXX_STD_98
+# endif
+#elif defined(_MSC_VER) && defined(_MSVC_LANG)
+# if _MSVC_LANG > __cplusplus
+# define CXX_STD _MSVC_LANG
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif defined(__NVCOMPILER)
+# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
+# define CXX_STD CXX_STD_20
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif defined(__INTEL_COMPILER) || defined(__PGI)
+# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes)
+# define CXX_STD CXX_STD_17
+# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
+# define CXX_STD CXX_STD_14
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__)
+# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
+# define CXX_STD CXX_STD_14
+# else
+# define CXX_STD __cplusplus
+# endif
+#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__)
+# define CXX_STD CXX_STD_11
+#else
+# define CXX_STD __cplusplus
+#endif
+
+const char* info_language_standard_default = "INFO" ":" "standard_default["
+#if CXX_STD > CXX_STD_23
+ "26"
+#elif CXX_STD > CXX_STD_20
+ "23"
+#elif CXX_STD > CXX_STD_17
+ "20"
+#elif CXX_STD > CXX_STD_14
+ "17"
+#elif CXX_STD > CXX_STD_11
+ "14"
+#elif CXX_STD >= CXX_STD_11
+ "11"
+#else
+ "98"
+#endif
+"]";
+
+const char* info_language_extensions_default = "INFO" ":" "extensions_default["
+#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
+ defined(__TI_COMPILER_VERSION__)) && \
+ !defined(__STRICT_ANSI__)
+ "ON"
+#else
+ "OFF"
+#endif
+"]";
+
+/*--------------------------------------------------------------------------*/
+
+int main(int argc, char* argv[])
+{
+ int require = 0;
+ require += info_compiler[argc];
+ require += info_platform[argc];
+ require += info_arch[argc];
+#ifdef COMPILER_VERSION_MAJOR
+ require += info_version[argc];
+#endif
+#ifdef COMPILER_VERSION_INTERNAL
+ require += info_version_internal[argc];
+#endif
+#ifdef SIMULATE_ID
+ require += info_simulate[argc];
+#endif
+#ifdef SIMULATE_VERSION_MAJOR
+ require += info_simulate_version[argc];
+#endif
+#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
+ require += info_cray[argc];
+#endif
+ require += info_language_standard_default[argc];
+ require += info_language_extensions_default[argc];
+ (void)argv;
+ return require;
+}
diff --git a/src/CMakeFiles/3.30.3/CompilerIdCXX/a.out b/src/CMakeFiles/3.30.3/CompilerIdCXX/a.out
new file mode 100755
index 0000000000..34d7e13c6b
Binary files /dev/null and b/src/CMakeFiles/3.30.3/CompilerIdCXX/a.out differ
diff --git a/src/CMakeFiles/CMakeConfigureLog.yaml b/src/CMakeFiles/CMakeConfigureLog.yaml
new file mode 100644
index 0000000000..8d40785326
--- /dev/null
+++ b/src/CMakeFiles/CMakeConfigureLog.yaml
@@ -0,0 +1,921 @@
+
+---
+events:
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CMakeDetermineSystem.cmake:205 (message)"
+ - "CMakeLists.txt:67 (project)"
+ message: |
+ The system is: Linux - 6.6.51-3-rpi - aarch64
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
+ - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
+ - "/usr/share/cmake/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)"
+ - "CMakeLists.txt:67 (project)"
+ message: |
+ Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
+ Compiler: /usr/bin/cc
+ Build flags:
+ Id flags:
+
+ The output was:
+ 0
+
+
+ Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
+
+ The C compiler identification is GNU, found in:
+ /home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/3.30.3/CompilerIdC/a.out
+
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
+ - "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
+ - "/usr/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)"
+ - "CMakeLists.txt:67 (project)"
+ message: |
+ Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
+ Compiler: /usr/bin/c++
+ Build flags:
+ Id flags:
+
+ The output was:
+ 0
+
+
+ Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
+
+ The CXX compiler identification is GNU, found in:
+ /home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/3.30.3/CompilerIdCXX/a.out
+
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)"
+ - "/usr/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:67 (project)"
+ checks:
+ - "Detecting C compiler ABI info"
+ directories:
+ source: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-xuKJvC"
+ binary: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-xuKJvC"
+ cmakeVariables:
+ CMAKE_C_FLAGS: ""
+ CMAKE_C_FLAGS_DEBUG: "-g"
+ CMAKE_EXE_LINKER_FLAGS: ""
+ buildResult:
+ variable: "CMAKE_C_ABI_COMPILED"
+ cached: true
+ stdout: |
+ Change Dir: '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-xuKJvC'
+
+ Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_ea157/fast
+ /usr/bin/make -f CMakeFiles/cmTC_ea157.dir/build.make CMakeFiles/cmTC_ea157.dir/build
+ make[1]: Entering directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-xuKJvC'
+ Building C object CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o
+ /usr/bin/cc -v -o CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c
+ Using built-in specs.
+ COLLECT_GCC=/usr/bin/cc
+ Target: aarch64-unknown-linux-gnu
+ Configured with: /build/gcc/src/gcc/configure --enable-languages=c,c++,d,fortran,go,lto,m2,objc,obj-c++,rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://github.com/archlinuxarm/PKGBUILDs/issues --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-linker-build-id --enable-lto --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-multilib --disable-werror --host=aarch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu --with-arch=armv8-a --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419
+ Thread model: posix
+ Supported LTO compression algorithms: zlib zstd
+ gcc version 14.1.1 20240507 (GCC)
+ COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o' '-c' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_ea157.dir/'
+ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/cc1 -quiet -v /usr/share/cmake/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_ea157.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -march=armv8-a -mlittle-endian -mabi=lp64 -version -o /tmp/ccCCxyBG.s
+ GNU C17 (GCC) version 14.1.1 20240507 (aarch64-unknown-linux-gnu)
+ compiled by GNU C version 14.1.1 20240507, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.27-GMP
+
+ GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ ignoring nonexistent directory "/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../aarch64-unknown-linux-gnu/include"
+ #include "..." search starts here:
+ #include <...> search starts here:
+ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include
+ /usr/local/include
+ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include-fixed
+ /usr/include
+ End of search list.
+ Compiler executable checksum: acadb17ae3fed4dd0ac306981472b216
+ COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o' '-c' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_ea157.dir/'
+ as -v -EL -march=armv8-a -mabi=lp64 -o CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o /tmp/ccCCxyBG.s
+ GNU assembler version 2.42.0 (aarch64-unknown-linux-gnu) using BFD version (GNU Binutils) 2.42.0
+ COMPILER_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/
+ LIBRARY_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../:/lib/:/usr/lib/
+ COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o' '-c' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.'
+ Linking C executable cmTC_ea157
+ /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ea157.dir/link.txt --verbose=1
+ /usr/bin/cc -v -Wl,-v CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o -o cmTC_ea157
+ Using built-in specs.
+ COLLECT_GCC=/usr/bin/cc
+ COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/lto-wrapper
+ Target: aarch64-unknown-linux-gnu
+ Configured with: /build/gcc/src/gcc/configure --enable-languages=c,c++,d,fortran,go,lto,m2,objc,obj-c++,rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://github.com/archlinuxarm/PKGBUILDs/issues --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-linker-build-id --enable-lto --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-multilib --disable-werror --host=aarch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu --with-arch=armv8-a --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419
+ Thread model: posix
+ Supported LTO compression algorithms: zlib zstd
+ gcc version 14.1.1 20240507 (GCC)
+ COMPILER_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/
+ LIBRARY_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../:/lib/:/usr/lib/
+ COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_ea157' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'cmTC_ea157.'
+ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/collect2 -plugin /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccU5PuYv.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-835769 --fix-cortex-a53-843419 -pie -o cmTC_ea157 /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/Scrt1.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crti.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtbeginS.o -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1 -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../.. -v CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtendS.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crtn.o
+ collect2 version 14.1.1 20240507
+ /usr/bin/ld -plugin /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccU5PuYv.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-835769 --fix-cortex-a53-843419 -pie -o cmTC_ea157 /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/Scrt1.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crti.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtbeginS.o -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1 -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../.. -v CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtendS.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crtn.o
+ GNU ld (GNU Binutils) 2.42.0
+ COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_ea157' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'cmTC_ea157.'
+ make[1]: Leaving directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-xuKJvC'
+
+ exitCode: 0
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:182 (message)"
+ - "/usr/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:67 (project)"
+ message: |
+ Parsed C implicit include dir info: rv=done
+ found start of include info
+ found start of implicit include info
+ add: [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include]
+ add: [/usr/local/include]
+ add: [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include-fixed]
+ add: [/usr/include]
+ end of search list found
+ collapse include dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include] ==> [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include]
+ collapse include dir [/usr/local/include] ==> [/usr/local/include]
+ collapse include dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include-fixed] ==> [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include-fixed]
+ collapse include dir [/usr/include] ==> [/usr/include]
+ implicit include dirs: [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include;/usr/local/include;/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include-fixed;/usr/include]
+
+
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:218 (message)"
+ - "/usr/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:67 (project)"
+ message: |
+ Parsed C implicit link information:
+ link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
+ linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)]
+ ignore line: [Change Dir: '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-xuKJvC']
+ ignore line: []
+ ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_ea157/fast]
+ ignore line: [/usr/bin/make -f CMakeFiles/cmTC_ea157.dir/build.make CMakeFiles/cmTC_ea157.dir/build]
+ ignore line: [make[1]: Entering directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-xuKJvC']
+ ignore line: [Building C object CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o]
+ ignore line: [/usr/bin/cc -v -o CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c]
+ ignore line: [Using built-in specs.]
+ ignore line: [COLLECT_GCC=/usr/bin/cc]
+ ignore line: [Target: aarch64-unknown-linux-gnu]
+ ignore line: [Configured with: /build/gcc/src/gcc/configure --enable-languages=c c++ d fortran go lto m2 objc obj-c++ rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://github.com/archlinuxarm/PKGBUILDs/issues --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-linker-build-id --enable-lto --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-multilib --disable-werror --host=aarch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu --with-arch=armv8-a --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419]
+ ignore line: [Thread model: posix]
+ ignore line: [Supported LTO compression algorithms: zlib zstd]
+ ignore line: [gcc version 14.1.1 20240507 (GCC) ]
+ ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o' '-c' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_ea157.dir/']
+ ignore line: [ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/cc1 -quiet -v /usr/share/cmake/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_ea157.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -march=armv8-a -mlittle-endian -mabi=lp64 -version -o /tmp/ccCCxyBG.s]
+ ignore line: [GNU C17 (GCC) version 14.1.1 20240507 (aarch64-unknown-linux-gnu)]
+ ignore line: [ compiled by GNU C version 14.1.1 20240507 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.27-GMP]
+ ignore line: []
+ ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+ ignore line: [ignoring nonexistent directory "/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../aarch64-unknown-linux-gnu/include"]
+ ignore line: [#include "..." search starts here:]
+ ignore line: [#include <...> search starts here:]
+ ignore line: [ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include]
+ ignore line: [ /usr/local/include]
+ ignore line: [ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include-fixed]
+ ignore line: [ /usr/include]
+ ignore line: [End of search list.]
+ ignore line: [Compiler executable checksum: acadb17ae3fed4dd0ac306981472b216]
+ ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o' '-c' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_ea157.dir/']
+ ignore line: [ as -v -EL -march=armv8-a -mabi=lp64 -o CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o /tmp/ccCCxyBG.s]
+ ignore line: [GNU assembler version 2.42.0 (aarch64-unknown-linux-gnu) using BFD version (GNU Binutils) 2.42.0]
+ ignore line: [COMPILER_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/]
+ ignore line: [LIBRARY_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../:/lib/:/usr/lib/]
+ ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o' '-c' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.']
+ ignore line: [Linking C executable cmTC_ea157]
+ ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ea157.dir/link.txt --verbose=1]
+ ignore line: [/usr/bin/cc -v -Wl -v CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o -o cmTC_ea157]
+ ignore line: [Using built-in specs.]
+ ignore line: [COLLECT_GCC=/usr/bin/cc]
+ ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/lto-wrapper]
+ ignore line: [Target: aarch64-unknown-linux-gnu]
+ ignore line: [Configured with: /build/gcc/src/gcc/configure --enable-languages=c c++ d fortran go lto m2 objc obj-c++ rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://github.com/archlinuxarm/PKGBUILDs/issues --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-linker-build-id --enable-lto --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-multilib --disable-werror --host=aarch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu --with-arch=armv8-a --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419]
+ ignore line: [Thread model: posix]
+ ignore line: [Supported LTO compression algorithms: zlib zstd]
+ ignore line: [gcc version 14.1.1 20240507 (GCC) ]
+ ignore line: [COMPILER_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/]
+ ignore line: [LIBRARY_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../:/lib/:/usr/lib/]
+ ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_ea157' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'cmTC_ea157.']
+ link line: [ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/collect2 -plugin /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccU5PuYv.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-835769 --fix-cortex-a53-843419 -pie -o cmTC_ea157 /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/Scrt1.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crti.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtbeginS.o -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1 -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../.. -v CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtendS.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crtn.o]
+ arg [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/collect2] ==> ignore
+ arg [-plugin] ==> ignore
+ arg [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/liblto_plugin.so] ==> ignore
+ arg [-plugin-opt=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/lto-wrapper] ==> ignore
+ arg [-plugin-opt=-fresolution=/tmp/ccU5PuYv.res] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+ arg [-plugin-opt=-pass-through=-lc] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+ arg [--build-id] ==> ignore
+ arg [--eh-frame-hdr] ==> ignore
+ arg [--hash-style=gnu] ==> ignore
+ arg [-dynamic-linker] ==> ignore
+ arg [/lib/ld-linux-aarch64.so.1] ==> ignore
+ arg [-X] ==> ignore
+ arg [-EL] ==> ignore
+ arg [-maarch64linux] ==> ignore
+ arg [--fix-cortex-a53-835769] ==> ignore
+ arg [--fix-cortex-a53-843419] ==> ignore
+ arg [-pie] ==> ignore
+ arg [-o] ==> ignore
+ arg [cmTC_ea157] ==> ignore
+ arg [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/Scrt1.o] ==> obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/Scrt1.o]
+ arg [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crti.o] ==> obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crti.o]
+ arg [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtbeginS.o] ==> obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtbeginS.o]
+ arg [-L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1] ==> dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1]
+ arg [-L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib] ==> dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib]
+ arg [-L/lib/../lib] ==> dir [/lib/../lib]
+ arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+ arg [-L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../..] ==> dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../..]
+ arg [-v] ==> ignore
+ arg [CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o] ==> ignore
+ arg [-lgcc] ==> lib [gcc]
+ arg [--push-state] ==> ignore
+ arg [--as-needed] ==> ignore
+ arg [-lgcc_s] ==> lib [gcc_s]
+ arg [--pop-state] ==> ignore
+ arg [-lc] ==> lib [c]
+ arg [-lgcc] ==> lib [gcc]
+ arg [--push-state] ==> ignore
+ arg [--as-needed] ==> ignore
+ arg [-lgcc_s] ==> lib [gcc_s]
+ arg [--pop-state] ==> ignore
+ arg [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtendS.o] ==> obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtendS.o]
+ arg [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crtn.o] ==> obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crtn.o]
+ ignore line: [collect2 version 14.1.1 20240507]
+ ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccU5PuYv.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-835769 --fix-cortex-a53-843419 -pie -o cmTC_ea157 /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/Scrt1.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crti.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtbeginS.o -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1 -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../.. -v CMakeFiles/cmTC_ea157.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtendS.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crtn.o]
+ linker tool for 'C': /usr/bin/ld
+ collapse obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/Scrt1.o] ==> [/usr/lib/Scrt1.o]
+ collapse obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crti.o] ==> [/usr/lib/crti.o]
+ collapse obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crtn.o] ==> [/usr/lib/crtn.o]
+ collapse library dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1] ==> [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1]
+ collapse library dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib] ==> [/usr/lib]
+ collapse library dir [/lib/../lib] ==> [/lib]
+ collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+ collapse library dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../..] ==> [/usr/lib]
+ implicit libs: [gcc;gcc_s;c;gcc;gcc_s]
+ implicit objs: [/usr/lib/Scrt1.o;/usr/lib/crti.o;/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtbeginS.o;/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtendS.o;/usr/lib/crtn.o]
+ implicit dirs: [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1;/usr/lib;/lib]
+ implicit fwks: []
+
+
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)"
+ - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)"
+ - "/usr/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:67 (project)"
+ message: |
+ Running the C compiler's linker: "/usr/bin/ld" "-v"
+ GNU ld (GNU Binutils) 2.42.0
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)"
+ - "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:67 (project)"
+ checks:
+ - "Detecting CXX compiler ABI info"
+ directories:
+ source: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-QEr3yV"
+ binary: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-QEr3yV"
+ cmakeVariables:
+ CMAKE_CXX_FLAGS: ""
+ CMAKE_CXX_FLAGS_DEBUG: "-g"
+ CMAKE_CXX_SCAN_FOR_MODULES: "OFF"
+ CMAKE_EXE_LINKER_FLAGS: ""
+ buildResult:
+ variable: "CMAKE_CXX_ABI_COMPILED"
+ cached: true
+ stdout: |
+ Change Dir: '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-QEr3yV'
+
+ Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_53014/fast
+ /usr/bin/make -f CMakeFiles/cmTC_53014.dir/build.make CMakeFiles/cmTC_53014.dir/build
+ make[1]: Entering directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-QEr3yV'
+ Building CXX object CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o
+ /usr/bin/c++ -v -o CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp
+ Using built-in specs.
+ COLLECT_GCC=/usr/bin/c++
+ Target: aarch64-unknown-linux-gnu
+ Configured with: /build/gcc/src/gcc/configure --enable-languages=c,c++,d,fortran,go,lto,m2,objc,obj-c++,rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://github.com/archlinuxarm/PKGBUILDs/issues --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-linker-build-id --enable-lto --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-multilib --disable-werror --host=aarch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu --with-arch=armv8-a --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419
+ Thread model: posix
+ Supported LTO compression algorithms: zlib zstd
+ gcc version 14.1.1 20240507 (GCC)
+ COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_53014.dir/'
+ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/cc1plus -quiet -v -D_GNU_SOURCE /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_53014.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -march=armv8-a -mlittle-endian -mabi=lp64 -version -o /tmp/ccxtk329.s
+ GNU C++17 (GCC) version 14.1.1 20240507 (aarch64-unknown-linux-gnu)
+ compiled by GNU C version 14.1.1 20240507, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.27-GMP
+
+ GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
+ ignoring nonexistent directory "/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../aarch64-unknown-linux-gnu/include"
+ #include "..." search starts here:
+ #include <...> search starts here:
+ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../include/c++/14.1.1
+ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../include/c++/14.1.1/aarch64-unknown-linux-gnu
+ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../include/c++/14.1.1/backward
+ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include
+ /usr/local/include
+ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include-fixed
+ /usr/include
+ End of search list.
+ Compiler executable checksum: 9c4cb1e8e48363ac8f8cc0225491ed21
+ COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_53014.dir/'
+ as -v -EL -march=armv8-a -mabi=lp64 -o CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccxtk329.s
+ GNU assembler version 2.42.0 (aarch64-unknown-linux-gnu) using BFD version (GNU Binutils) 2.42.0
+ COMPILER_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/
+ LIBRARY_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../:/lib/:/usr/lib/
+ COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.'
+ Linking CXX executable cmTC_53014
+ /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_53014.dir/link.txt --verbose=1
+ /usr/bin/c++ -v -Wl,-v CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_53014
+ Using built-in specs.
+ COLLECT_GCC=/usr/bin/c++
+ COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/lto-wrapper
+ Target: aarch64-unknown-linux-gnu
+ Configured with: /build/gcc/src/gcc/configure --enable-languages=c,c++,d,fortran,go,lto,m2,objc,obj-c++,rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://github.com/archlinuxarm/PKGBUILDs/issues --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-linker-build-id --enable-lto --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-multilib --disable-werror --host=aarch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu --with-arch=armv8-a --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419
+ Thread model: posix
+ Supported LTO compression algorithms: zlib zstd
+ gcc version 14.1.1 20240507 (GCC)
+ COMPILER_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/
+ LIBRARY_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../:/lib/:/usr/lib/
+ COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_53014' '-shared-libgcc' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'cmTC_53014.'
+ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/collect2 -plugin /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDV6aBY.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-835769 --fix-cortex-a53-843419 -pie -o cmTC_53014 /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/Scrt1.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crti.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtbeginS.o -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1 -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../.. -v CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtendS.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crtn.o
+ collect2 version 14.1.1 20240507
+ /usr/bin/ld -plugin /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDV6aBY.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-835769 --fix-cortex-a53-843419 -pie -o cmTC_53014 /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/Scrt1.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crti.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtbeginS.o -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1 -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../.. -v CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtendS.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crtn.o
+ GNU ld (GNU Binutils) 2.42.0
+ COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_53014' '-shared-libgcc' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'cmTC_53014.'
+ make[1]: Leaving directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-QEr3yV'
+
+ exitCode: 0
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:182 (message)"
+ - "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:67 (project)"
+ message: |
+ Parsed CXX implicit include dir info: rv=done
+ found start of include info
+ found start of implicit include info
+ add: [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../include/c++/14.1.1]
+ add: [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../include/c++/14.1.1/aarch64-unknown-linux-gnu]
+ add: [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../include/c++/14.1.1/backward]
+ add: [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include]
+ add: [/usr/local/include]
+ add: [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include-fixed]
+ add: [/usr/include]
+ end of search list found
+ collapse include dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../include/c++/14.1.1] ==> [/usr/include/c++/14.1.1]
+ collapse include dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../include/c++/14.1.1/aarch64-unknown-linux-gnu] ==> [/usr/include/c++/14.1.1/aarch64-unknown-linux-gnu]
+ collapse include dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../include/c++/14.1.1/backward] ==> [/usr/include/c++/14.1.1/backward]
+ collapse include dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include] ==> [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include]
+ collapse include dir [/usr/local/include] ==> [/usr/local/include]
+ collapse include dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include-fixed] ==> [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include-fixed]
+ collapse include dir [/usr/include] ==> [/usr/include]
+ implicit include dirs: [/usr/include/c++/14.1.1;/usr/include/c++/14.1.1/aarch64-unknown-linux-gnu;/usr/include/c++/14.1.1/backward;/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include;/usr/local/include;/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include-fixed;/usr/include]
+
+
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:218 (message)"
+ - "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:67 (project)"
+ message: |
+ Parsed CXX implicit link information:
+ link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
+ linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)]
+ ignore line: [Change Dir: '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-QEr3yV']
+ ignore line: []
+ ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_53014/fast]
+ ignore line: [/usr/bin/make -f CMakeFiles/cmTC_53014.dir/build.make CMakeFiles/cmTC_53014.dir/build]
+ ignore line: [make[1]: Entering directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-QEr3yV']
+ ignore line: [Building CXX object CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o]
+ ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp]
+ ignore line: [Using built-in specs.]
+ ignore line: [COLLECT_GCC=/usr/bin/c++]
+ ignore line: [Target: aarch64-unknown-linux-gnu]
+ ignore line: [Configured with: /build/gcc/src/gcc/configure --enable-languages=c c++ d fortran go lto m2 objc obj-c++ rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://github.com/archlinuxarm/PKGBUILDs/issues --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-linker-build-id --enable-lto --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-multilib --disable-werror --host=aarch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu --with-arch=armv8-a --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419]
+ ignore line: [Thread model: posix]
+ ignore line: [Supported LTO compression algorithms: zlib zstd]
+ ignore line: [gcc version 14.1.1 20240507 (GCC) ]
+ ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_53014.dir/']
+ ignore line: [ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/cc1plus -quiet -v -D_GNU_SOURCE /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_53014.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -march=armv8-a -mlittle-endian -mabi=lp64 -version -o /tmp/ccxtk329.s]
+ ignore line: [GNU C++17 (GCC) version 14.1.1 20240507 (aarch64-unknown-linux-gnu)]
+ ignore line: [ compiled by GNU C version 14.1.1 20240507 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.27-GMP]
+ ignore line: []
+ ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
+ ignore line: [ignoring nonexistent directory "/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../aarch64-unknown-linux-gnu/include"]
+ ignore line: [#include "..." search starts here:]
+ ignore line: [#include <...> search starts here:]
+ ignore line: [ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../include/c++/14.1.1]
+ ignore line: [ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../include/c++/14.1.1/aarch64-unknown-linux-gnu]
+ ignore line: [ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../include/c++/14.1.1/backward]
+ ignore line: [ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include]
+ ignore line: [ /usr/local/include]
+ ignore line: [ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/include-fixed]
+ ignore line: [ /usr/include]
+ ignore line: [End of search list.]
+ ignore line: [Compiler executable checksum: 9c4cb1e8e48363ac8f8cc0225491ed21]
+ ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_53014.dir/']
+ ignore line: [ as -v -EL -march=armv8-a -mabi=lp64 -o CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccxtk329.s]
+ ignore line: [GNU assembler version 2.42.0 (aarch64-unknown-linux-gnu) using BFD version (GNU Binutils) 2.42.0]
+ ignore line: [COMPILER_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/]
+ ignore line: [LIBRARY_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../:/lib/:/usr/lib/]
+ ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.']
+ ignore line: [Linking CXX executable cmTC_53014]
+ ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_53014.dir/link.txt --verbose=1]
+ ignore line: [/usr/bin/c++ -v -Wl -v CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_53014]
+ ignore line: [Using built-in specs.]
+ ignore line: [COLLECT_GCC=/usr/bin/c++]
+ ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/lto-wrapper]
+ ignore line: [Target: aarch64-unknown-linux-gnu]
+ ignore line: [Configured with: /build/gcc/src/gcc/configure --enable-languages=c c++ d fortran go lto m2 objc obj-c++ rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://github.com/archlinuxarm/PKGBUILDs/issues --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-linker-build-id --enable-lto --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-multilib --disable-werror --host=aarch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu --with-arch=armv8-a --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419]
+ ignore line: [Thread model: posix]
+ ignore line: [Supported LTO compression algorithms: zlib zstd]
+ ignore line: [gcc version 14.1.1 20240507 (GCC) ]
+ ignore line: [COMPILER_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/]
+ ignore line: [LIBRARY_PATH=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../:/lib/:/usr/lib/]
+ ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_53014' '-shared-libgcc' '-march=armv8-a' '-mlittle-endian' '-mabi=lp64' '-dumpdir' 'cmTC_53014.']
+ link line: [ /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/collect2 -plugin /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDV6aBY.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-835769 --fix-cortex-a53-843419 -pie -o cmTC_53014 /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/Scrt1.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crti.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtbeginS.o -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1 -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../.. -v CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtendS.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crtn.o]
+ arg [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/collect2] ==> ignore
+ arg [-plugin] ==> ignore
+ arg [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/liblto_plugin.so] ==> ignore
+ arg [-plugin-opt=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/lto-wrapper] ==> ignore
+ arg [-plugin-opt=-fresolution=/tmp/ccDV6aBY.res] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+ arg [-plugin-opt=-pass-through=-lc] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
+ arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
+ arg [--build-id] ==> ignore
+ arg [--eh-frame-hdr] ==> ignore
+ arg [--hash-style=gnu] ==> ignore
+ arg [-dynamic-linker] ==> ignore
+ arg [/lib/ld-linux-aarch64.so.1] ==> ignore
+ arg [-X] ==> ignore
+ arg [-EL] ==> ignore
+ arg [-maarch64linux] ==> ignore
+ arg [--fix-cortex-a53-835769] ==> ignore
+ arg [--fix-cortex-a53-843419] ==> ignore
+ arg [-pie] ==> ignore
+ arg [-o] ==> ignore
+ arg [cmTC_53014] ==> ignore
+ arg [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/Scrt1.o] ==> obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/Scrt1.o]
+ arg [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crti.o] ==> obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crti.o]
+ arg [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtbeginS.o] ==> obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtbeginS.o]
+ arg [-L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1] ==> dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1]
+ arg [-L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib] ==> dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib]
+ arg [-L/lib/../lib] ==> dir [/lib/../lib]
+ arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
+ arg [-L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../..] ==> dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../..]
+ arg [-v] ==> ignore
+ arg [CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
+ arg [-lstdc++] ==> lib [stdc++]
+ arg [-lm] ==> lib [m]
+ arg [-lgcc_s] ==> lib [gcc_s]
+ arg [-lgcc] ==> lib [gcc]
+ arg [-lc] ==> lib [c]
+ arg [-lgcc_s] ==> lib [gcc_s]
+ arg [-lgcc] ==> lib [gcc]
+ arg [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtendS.o] ==> obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtendS.o]
+ arg [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crtn.o] ==> obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crtn.o]
+ ignore line: [collect2 version 14.1.1 20240507]
+ ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccDV6aBY.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -dynamic-linker /lib/ld-linux-aarch64.so.1 -X -EL -maarch64linux --fix-cortex-a53-835769 --fix-cortex-a53-843419 -pie -o cmTC_53014 /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/Scrt1.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crti.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtbeginS.o -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1 -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../.. -v CMakeFiles/cmTC_53014.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtendS.o /usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crtn.o]
+ linker tool for 'CXX': /usr/bin/ld
+ collapse obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/Scrt1.o] ==> [/usr/lib/Scrt1.o]
+ collapse obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crti.o] ==> [/usr/lib/crti.o]
+ collapse obj [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib/crtn.o] ==> [/usr/lib/crtn.o]
+ collapse library dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1] ==> [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1]
+ collapse library dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../../../lib] ==> [/usr/lib]
+ collapse library dir [/lib/../lib] ==> [/lib]
+ collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
+ collapse library dir [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/../../..] ==> [/usr/lib]
+ implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
+ implicit objs: [/usr/lib/Scrt1.o;/usr/lib/crti.o;/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtbeginS.o;/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1/crtendS.o;/usr/lib/crtn.o]
+ implicit dirs: [/usr/lib/gcc/aarch64-unknown-linux-gnu/14.1.1;/usr/lib;/lib]
+ implicit fwks: []
+
+
+ -
+ kind: "message-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)"
+ - "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)"
+ - "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
+ - "CMakeLists.txt:67 (project)"
+ message: |
+ Running the CXX compiler's linker: "/usr/bin/ld" "-v"
+ GNU ld (GNU Binutils) 2.42.0
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/Internal/CheckSourceCompiles.cmake:101 (try_compile)"
+ - "/usr/share/cmake/Modules/CheckCSourceCompiles.cmake:52 (cmake_check_source_compiles)"
+ - "/usr/share/cmake/Modules/FindThreads.cmake:97 (CHECK_C_SOURCE_COMPILES)"
+ - "/usr/share/cmake/Modules/FindThreads.cmake:163 (_threads_check_libc)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/Qt6/QtPublicDependencyHelpers.cmake:36 (find_dependency)"
+ - "/usr/lib/cmake/Qt6/Qt6Dependencies.cmake:27 (_qt_internal_find_third_party_dependencies)"
+ - "/usr/lib/cmake/Qt6/Qt6Config.cmake:134 (include)"
+ - "CMakeLists.txt:320 (find_package)"
+ checks:
+ - "Performing Test CMAKE_HAVE_LIBC_PTHREAD"
+ directories:
+ source: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-oCGOms"
+ binary: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-oCGOms"
+ cmakeVariables:
+ CMAKE_C_FLAGS: " -Wall"
+ CMAKE_C_FLAGS_DEBUG: "-Og -g"
+ CMAKE_EXE_LINKER_FLAGS: ""
+ CMAKE_MODULE_PATH: "/home/astronaut/Projects/astroarch-onboarding/CMakeModules;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin"
+ buildResult:
+ variable: "CMAKE_HAVE_LIBC_PTHREAD"
+ cached: true
+ stdout: |
+ Change Dir: '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-oCGOms'
+
+ Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_3dc31/fast
+ /usr/bin/make -f CMakeFiles/cmTC_3dc31.dir/build.make CMakeFiles/cmTC_3dc31.dir/build
+ make[1]: Entering directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-oCGOms'
+ Building C object CMakeFiles/cmTC_3dc31.dir/src.c.o
+ /usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -Wall -std=gnu99 -o CMakeFiles/cmTC_3dc31.dir/src.c.o -c /home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-oCGOms/src.c
+ Linking C executable cmTC_3dc31
+ /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_3dc31.dir/link.txt --verbose=1
+ /usr/bin/cc -Wall CMakeFiles/cmTC_3dc31.dir/src.c.o -o cmTC_3dc31
+ make[1]: Leaving directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-oCGOms'
+
+ exitCode: 0
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/Internal/CheckSourceCompiles.cmake:101 (try_compile)"
+ - "/usr/share/cmake/Modules/CheckCXXSourceCompiles.cmake:52 (cmake_check_source_compiles)"
+ - "/usr/lib/cmake/Qt6/FindWrapAtomic.cmake:36 (check_cxx_source_compiles)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/Qt6/QtPublicDependencyHelpers.cmake:36 (find_dependency)"
+ - "/usr/lib/cmake/Qt6Core/Qt6CoreDependencies.cmake:33 (_qt_internal_find_third_party_dependencies)"
+ - "/usr/lib/cmake/Qt6Core/Qt6CoreConfig.cmake:55 (include)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/Qt6/QtPublicDependencyHelpers.cmake:111 (find_dependency)"
+ - "/usr/lib/cmake/Qt6Concurrent/Qt6ConcurrentDependencies.cmake:42 (_qt_internal_find_qt_dependencies)"
+ - "/usr/lib/cmake/Qt6Concurrent/Qt6ConcurrentConfig.cmake:53 (include)"
+ - "/usr/lib/cmake/Qt6/Qt6Config.cmake:179 (find_package)"
+ - "CMakeLists.txt:320 (find_package)"
+ checks:
+ - "Performing Test HAVE_STDATOMIC"
+ directories:
+ source: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-LDDGEL"
+ binary: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-LDDGEL"
+ cmakeVariables:
+ CMAKE_CXX_FLAGS: " -Wall -Werror=return-type -Wnon-virtual-dtor -Woverloaded-virtual -fdiagnostics-color=auto"
+ CMAKE_CXX_FLAGS_DEBUG: "-Og -g -g"
+ CMAKE_EXE_LINKER_FLAGS: ""
+ CMAKE_MODULE_PATH: "/home/astronaut/Projects/astroarch-onboarding/CMakeModules;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin"
+ buildResult:
+ variable: "HAVE_STDATOMIC"
+ cached: true
+ stdout: |
+ Change Dir: '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-LDDGEL'
+
+ Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_af775/fast
+ /usr/bin/make -f CMakeFiles/cmTC_af775.dir/build.make CMakeFiles/cmTC_af775.dir/build
+ make[1]: Entering directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-LDDGEL'
+ Building CXX object CMakeFiles/cmTC_af775.dir/src.cxx.o
+ /usr/bin/c++ -DHAVE_STDATOMIC -Wall -Werror=return-type -Wnon-virtual-dtor -Woverloaded-virtual -fdiagnostics-color=auto -std=gnu++17 -o CMakeFiles/cmTC_af775.dir/src.cxx.o -c /home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-LDDGEL/src.cxx
+ Linking CXX executable cmTC_af775
+ /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_af775.dir/link.txt --verbose=1
+ /usr/bin/c++ -Wall -Werror=return-type -Wnon-virtual-dtor -Woverloaded-virtual -fdiagnostics-color=auto CMakeFiles/cmTC_af775.dir/src.cxx.o -o cmTC_af775
+ make[1]: Leaving directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-LDDGEL'
+
+ exitCode: 0
+...
+
+---
+events:
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CheckLibraryExists.cmake:69 (try_compile)"
+ - "/usr/share/cmake/Modules/FindX11.cmake:693 (check_library_exists)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6WindowSystem/KF6WindowSystemConfig.cmake:41 (find_dependency)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6KIO/KF6KIOConfig.cmake:50 (find_dependency)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6Parts/KF6PartsConfig.cmake:38 (find_dependency)"
+ - "src/modules/interactiveterminal/CMakeLists.txt:7 (find_package)"
+ checks:
+ - "Looking for XOpenDisplay in /usr/lib/libX11.so;/usr/lib/libXext.so"
+ directories:
+ source: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-MM0hEU"
+ binary: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-MM0hEU"
+ cmakeVariables:
+ CMAKE_C_FLAGS: " -Wall"
+ CMAKE_C_FLAGS_DEBUG: "-Og -g"
+ CMAKE_EXE_LINKER_FLAGS: ""
+ CMAKE_MODULE_PATH: "/home/astronaut/Projects/astroarch-onboarding/CMakeModules;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin"
+ buildResult:
+ variable: "X11_LIB_X11_SOLO"
+ cached: true
+ stdout: |
+ Change Dir: '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-MM0hEU'
+
+ Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_959e5/fast
+ /usr/bin/make -f CMakeFiles/cmTC_959e5.dir/build.make CMakeFiles/cmTC_959e5.dir/build
+ make[1]: Entering directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-MM0hEU'
+ Building C object CMakeFiles/cmTC_959e5.dir/CheckFunctionExists.c.o
+ /usr/bin/cc -Wall -DCHECK_FUNCTION_EXISTS=XOpenDisplay -std=gnu99 -o CMakeFiles/cmTC_959e5.dir/CheckFunctionExists.c.o -c /home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-MM0hEU/CheckFunctionExists.c
+ Linking C executable cmTC_959e5
+ /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_959e5.dir/link.txt --verbose=1
+ /usr/bin/cc -Wall -DCHECK_FUNCTION_EXISTS=XOpenDisplay CMakeFiles/cmTC_959e5.dir/CheckFunctionExists.c.o -o cmTC_959e5 /usr/lib/libX11.so /usr/lib/libXext.so
+ make[1]: Leaving directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-MM0hEU'
+
+ exitCode: 0
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CheckFunctionExists.cmake:86 (try_compile)"
+ - "/usr/share/cmake/Modules/FindX11.cmake:708 (check_function_exists)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6WindowSystem/KF6WindowSystemConfig.cmake:41 (find_dependency)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6KIO/KF6KIOConfig.cmake:50 (find_dependency)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6Parts/KF6PartsConfig.cmake:38 (find_dependency)"
+ - "src/modules/interactiveterminal/CMakeLists.txt:7 (find_package)"
+ checks:
+ - "Looking for gethostbyname"
+ directories:
+ source: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-ltjJIt"
+ binary: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-ltjJIt"
+ cmakeVariables:
+ CMAKE_C_FLAGS: " -Wall"
+ CMAKE_C_FLAGS_DEBUG: "-Og -g"
+ CMAKE_EXE_LINKER_FLAGS: ""
+ CMAKE_MODULE_PATH: "/home/astronaut/Projects/astroarch-onboarding/CMakeModules;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin"
+ buildResult:
+ variable: "CMAKE_HAVE_GETHOSTBYNAME"
+ cached: true
+ stdout: |
+ Change Dir: '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-ltjJIt'
+
+ Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_22a15/fast
+ /usr/bin/make -f CMakeFiles/cmTC_22a15.dir/build.make CMakeFiles/cmTC_22a15.dir/build
+ make[1]: Entering directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-ltjJIt'
+ Building C object CMakeFiles/cmTC_22a15.dir/CheckFunctionExists.c.o
+ /usr/bin/cc -Wall -DCHECK_FUNCTION_EXISTS=gethostbyname -std=gnu99 -o CMakeFiles/cmTC_22a15.dir/CheckFunctionExists.c.o -c /home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-ltjJIt/CheckFunctionExists.c
+ Linking C executable cmTC_22a15
+ /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_22a15.dir/link.txt --verbose=1
+ /usr/bin/cc -Wall -DCHECK_FUNCTION_EXISTS=gethostbyname CMakeFiles/cmTC_22a15.dir/CheckFunctionExists.c.o -o cmTC_22a15
+ make[1]: Leaving directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-ltjJIt'
+
+ exitCode: 0
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CheckFunctionExists.cmake:86 (try_compile)"
+ - "/usr/share/cmake/Modules/FindX11.cmake:722 (check_function_exists)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6WindowSystem/KF6WindowSystemConfig.cmake:41 (find_dependency)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6KIO/KF6KIOConfig.cmake:50 (find_dependency)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6Parts/KF6PartsConfig.cmake:38 (find_dependency)"
+ - "src/modules/interactiveterminal/CMakeLists.txt:7 (find_package)"
+ checks:
+ - "Looking for connect"
+ directories:
+ source: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-j4jKUm"
+ binary: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-j4jKUm"
+ cmakeVariables:
+ CMAKE_C_FLAGS: " -Wall"
+ CMAKE_C_FLAGS_DEBUG: "-Og -g"
+ CMAKE_EXE_LINKER_FLAGS: ""
+ CMAKE_MODULE_PATH: "/home/astronaut/Projects/astroarch-onboarding/CMakeModules;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin"
+ buildResult:
+ variable: "CMAKE_HAVE_CONNECT"
+ cached: true
+ stdout: |
+ Change Dir: '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-j4jKUm'
+
+ Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_750e4/fast
+ /usr/bin/make -f CMakeFiles/cmTC_750e4.dir/build.make CMakeFiles/cmTC_750e4.dir/build
+ make[1]: Entering directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-j4jKUm'
+ Building C object CMakeFiles/cmTC_750e4.dir/CheckFunctionExists.c.o
+ /usr/bin/cc -Wall -DCHECK_FUNCTION_EXISTS=connect -std=gnu99 -o CMakeFiles/cmTC_750e4.dir/CheckFunctionExists.c.o -c /home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-j4jKUm/CheckFunctionExists.c
+ Linking C executable cmTC_750e4
+ /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_750e4.dir/link.txt --verbose=1
+ /usr/bin/cc -Wall -DCHECK_FUNCTION_EXISTS=connect CMakeFiles/cmTC_750e4.dir/CheckFunctionExists.c.o -o cmTC_750e4
+ make[1]: Leaving directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-j4jKUm'
+
+ exitCode: 0
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CheckFunctionExists.cmake:86 (try_compile)"
+ - "/usr/share/cmake/Modules/FindX11.cmake:731 (check_function_exists)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6WindowSystem/KF6WindowSystemConfig.cmake:41 (find_dependency)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6KIO/KF6KIOConfig.cmake:50 (find_dependency)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6Parts/KF6PartsConfig.cmake:38 (find_dependency)"
+ - "src/modules/interactiveterminal/CMakeLists.txt:7 (find_package)"
+ checks:
+ - "Looking for remove"
+ directories:
+ source: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-qFOIZy"
+ binary: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-qFOIZy"
+ cmakeVariables:
+ CMAKE_C_FLAGS: " -Wall"
+ CMAKE_C_FLAGS_DEBUG: "-Og -g"
+ CMAKE_EXE_LINKER_FLAGS: ""
+ CMAKE_MODULE_PATH: "/home/astronaut/Projects/astroarch-onboarding/CMakeModules;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin"
+ buildResult:
+ variable: "CMAKE_HAVE_REMOVE"
+ cached: true
+ stdout: |
+ Change Dir: '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-qFOIZy'
+
+ Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_ce0a6/fast
+ /usr/bin/make -f CMakeFiles/cmTC_ce0a6.dir/build.make CMakeFiles/cmTC_ce0a6.dir/build
+ make[1]: Entering directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-qFOIZy'
+ Building C object CMakeFiles/cmTC_ce0a6.dir/CheckFunctionExists.c.o
+ /usr/bin/cc -Wall -DCHECK_FUNCTION_EXISTS=remove -std=gnu99 -o CMakeFiles/cmTC_ce0a6.dir/CheckFunctionExists.c.o -c /home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-qFOIZy/CheckFunctionExists.c
+ Linking C executable cmTC_ce0a6
+ /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ce0a6.dir/link.txt --verbose=1
+ /usr/bin/cc -Wall -DCHECK_FUNCTION_EXISTS=remove CMakeFiles/cmTC_ce0a6.dir/CheckFunctionExists.c.o -o cmTC_ce0a6
+ make[1]: Leaving directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-qFOIZy'
+
+ exitCode: 0
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CheckFunctionExists.cmake:86 (try_compile)"
+ - "/usr/share/cmake/Modules/FindX11.cmake:740 (check_function_exists)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6WindowSystem/KF6WindowSystemConfig.cmake:41 (find_dependency)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6KIO/KF6KIOConfig.cmake:50 (find_dependency)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6Parts/KF6PartsConfig.cmake:38 (find_dependency)"
+ - "src/modules/interactiveterminal/CMakeLists.txt:7 (find_package)"
+ checks:
+ - "Looking for shmat"
+ directories:
+ source: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-B1juhF"
+ binary: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-B1juhF"
+ cmakeVariables:
+ CMAKE_C_FLAGS: " -Wall"
+ CMAKE_C_FLAGS_DEBUG: "-Og -g"
+ CMAKE_EXE_LINKER_FLAGS: ""
+ CMAKE_MODULE_PATH: "/home/astronaut/Projects/astroarch-onboarding/CMakeModules;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin"
+ buildResult:
+ variable: "CMAKE_HAVE_SHMAT"
+ cached: true
+ stdout: |
+ Change Dir: '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-B1juhF'
+
+ Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_906ba/fast
+ /usr/bin/make -f CMakeFiles/cmTC_906ba.dir/build.make CMakeFiles/cmTC_906ba.dir/build
+ make[1]: Entering directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-B1juhF'
+ Building C object CMakeFiles/cmTC_906ba.dir/CheckFunctionExists.c.o
+ /usr/bin/cc -Wall -DCHECK_FUNCTION_EXISTS=shmat -std=gnu99 -o CMakeFiles/cmTC_906ba.dir/CheckFunctionExists.c.o -c /home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-B1juhF/CheckFunctionExists.c
+ Linking C executable cmTC_906ba
+ /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_906ba.dir/link.txt --verbose=1
+ /usr/bin/cc -Wall -DCHECK_FUNCTION_EXISTS=shmat CMakeFiles/cmTC_906ba.dir/CheckFunctionExists.c.o -o cmTC_906ba
+ make[1]: Leaving directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-B1juhF'
+
+ exitCode: 0
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CheckLibraryExists.cmake:69 (try_compile)"
+ - "/usr/share/cmake/Modules/FindX11.cmake:750 (check_library_exists)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6WindowSystem/KF6WindowSystemConfig.cmake:41 (find_dependency)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6KIO/KF6KIOConfig.cmake:50 (find_dependency)"
+ - "/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake:76 (find_package)"
+ - "/usr/lib/cmake/KF6Parts/KF6PartsConfig.cmake:38 (find_dependency)"
+ - "src/modules/interactiveterminal/CMakeLists.txt:7 (find_package)"
+ checks:
+ - "Looking for IceConnectionNumber in ICE"
+ directories:
+ source: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-oEqAlG"
+ binary: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-oEqAlG"
+ cmakeVariables:
+ CMAKE_C_FLAGS: " -Wall"
+ CMAKE_C_FLAGS_DEBUG: "-Og -g"
+ CMAKE_EXE_LINKER_FLAGS: ""
+ CMAKE_MODULE_PATH: "/home/astronaut/Projects/astroarch-onboarding/CMakeModules;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin"
+ buildResult:
+ variable: "CMAKE_LIB_ICE_HAS_ICECONNECTIONNUMBER"
+ cached: true
+ stdout: |
+ Change Dir: '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-oEqAlG'
+
+ Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_9ed18/fast
+ /usr/bin/make -f CMakeFiles/cmTC_9ed18.dir/build.make CMakeFiles/cmTC_9ed18.dir/build
+ make[1]: Entering directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-oEqAlG'
+ Building C object CMakeFiles/cmTC_9ed18.dir/CheckFunctionExists.c.o
+ /usr/bin/cc -Wall -DCHECK_FUNCTION_EXISTS=IceConnectionNumber -std=gnu99 -o CMakeFiles/cmTC_9ed18.dir/CheckFunctionExists.c.o -c /home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-oEqAlG/CheckFunctionExists.c
+ Linking C executable cmTC_9ed18
+ /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9ed18.dir/link.txt --verbose=1
+ /usr/bin/cc -Wall -DCHECK_FUNCTION_EXISTS=IceConnectionNumber CMakeFiles/cmTC_9ed18.dir/CheckFunctionExists.c.o -o cmTC_9ed18 -lICE
+ make[1]: Leaving directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-oEqAlG'
+
+ exitCode: 0
+...
+
+---
+events:
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CheckFunctionExists.cmake:86 (try_compile)"
+ - "CMakeModules/FindLIBPARTED.cmake:55 (CHECK_FUNCTION_EXISTS)"
+ - "src/modules/welcome/CMakeLists.txt:8 (find_package)"
+ checks:
+ - "Looking for ped_file_system_clobber"
+ directories:
+ source: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-rRdKM6"
+ binary: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-rRdKM6"
+ cmakeVariables:
+ CMAKE_C_FLAGS: ""
+ CMAKE_C_FLAGS_DEBUG: "-Og -g"
+ CMAKE_EXE_LINKER_FLAGS: ""
+ CMAKE_MODULE_PATH: "/usr/share/ECM/modules/;/usr/share/ECM/find-modules/;/usr/share/ECM/kde-modules/;/home/astronaut/Projects/astroarch-onboarding/CMakeModules;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin"
+ buildResult:
+ variable: "LIBPARTED_FILESYSTEM_SUPPORT"
+ cached: true
+ stdout: |
+ Change Dir: '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-rRdKM6'
+
+ Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_ed571/fast
+ /usr/bin/make -f CMakeFiles/cmTC_ed571.dir/build.make CMakeFiles/cmTC_ed571.dir/build
+ make[1]: Entering directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-rRdKM6'
+ Building C object CMakeFiles/cmTC_ed571.dir/CheckFunctionExists.c.o
+ /usr/bin/cc -I/usr/include/parted -DCHECK_FUNCTION_EXISTS=ped_file_system_clobber -std=gnu99 -o CMakeFiles/cmTC_ed571.dir/CheckFunctionExists.c.o -c /home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-rRdKM6/CheckFunctionExists.c
+ Linking C executable cmTC_ed571
+ /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ed571.dir/link.txt --verbose=1
+ /usr/bin/cc -DCHECK_FUNCTION_EXISTS=ped_file_system_clobber CMakeFiles/cmTC_ed571.dir/CheckFunctionExists.c.o -o cmTC_ed571 /usr/lib/libparted.so /usr/lib/libparted-fs-resize.so
+ /usr/bin/ld: CMakeFiles/cmTC_ed571.dir/CheckFunctionExists.c.o: in function `main':
+ CheckFunctionExists.c:(.text+0x10): undefined reference to `ped_file_system_clobber'
+ collect2: error: ld returned 1 exit status
+ make[1]: *** [CMakeFiles/cmTC_ed571.dir/build.make:101: cmTC_ed571] Error 1
+ make[1]: Leaving directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-rRdKM6'
+ make: *** [Makefile:127: cmTC_ed571/fast] Error 2
+
+ exitCode: 2
+ -
+ kind: "try_compile-v1"
+ backtrace:
+ - "/usr/share/cmake/Modules/CheckFunctionExists.cmake:86 (try_compile)"
+ - "CMakeModules/FindLIBPARTED.cmake:56 (CHECK_FUNCTION_EXISTS)"
+ - "src/modules/welcome/CMakeLists.txt:8 (find_package)"
+ checks:
+ - "Looking for ped_file_system_resize"
+ directories:
+ source: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-DLHpqE"
+ binary: "/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-DLHpqE"
+ cmakeVariables:
+ CMAKE_C_FLAGS: ""
+ CMAKE_C_FLAGS_DEBUG: "-Og -g"
+ CMAKE_EXE_LINKER_FLAGS: ""
+ CMAKE_MODULE_PATH: "/usr/share/ECM/modules/;/usr/share/ECM/find-modules/;/usr/share/ECM/kde-modules/;/home/astronaut/Projects/astroarch-onboarding/CMakeModules;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin"
+ buildResult:
+ variable: "LIBPARTED_FS_RESIZE_LIBRARY_SUPPORT"
+ cached: true
+ stdout: |
+ Change Dir: '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-DLHpqE'
+
+ Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_8dbc2/fast
+ /usr/bin/make -f CMakeFiles/cmTC_8dbc2.dir/build.make CMakeFiles/cmTC_8dbc2.dir/build
+ make[1]: Entering directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-DLHpqE'
+ Building C object CMakeFiles/cmTC_8dbc2.dir/CheckFunctionExists.c.o
+ /usr/bin/cc -I/usr/include/parted -DCHECK_FUNCTION_EXISTS=ped_file_system_resize -std=gnu99 -o CMakeFiles/cmTC_8dbc2.dir/CheckFunctionExists.c.o -c /home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-DLHpqE/CheckFunctionExists.c
+ Linking C executable cmTC_8dbc2
+ /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_8dbc2.dir/link.txt --verbose=1
+ /usr/bin/cc -DCHECK_FUNCTION_EXISTS=ped_file_system_resize CMakeFiles/cmTC_8dbc2.dir/CheckFunctionExists.c.o -o cmTC_8dbc2 /usr/lib/libparted.so /usr/lib/libparted-fs-resize.so
+ make[1]: Leaving directory '/home/astronaut/Projects/astroarch-onboarding/src/CMakeFiles/CMakeScratch/TryCompile-DLHpqE'
+
+ exitCode: 0
+...
diff --git a/src/CMakeFiles/cmake.check_cache b/src/CMakeFiles/cmake.check_cache
new file mode 100644
index 0000000000..3dccd73172
--- /dev/null
+++ b/src/CMakeFiles/cmake.check_cache
@@ -0,0 +1 @@
+# This file is generated by cmake for dependency checking of the CMakeCache.txt file
diff --git a/src/CPackConfig.cmake b/src/CPackConfig.cmake
new file mode 100644
index 0000000000..8867b8af4b
--- /dev/null
+++ b/src/CPackConfig.cmake
@@ -0,0 +1,83 @@
+# This file will be configured to contain variables for CPack. These variables
+# should be set in the CMake list file of the project before CPack module is
+# included. The list of available CPACK_xxx variables and their associated
+# documentation may be obtained using
+# cpack --help-variable-list
+#
+# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
+# and some are specific to a generator
+# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
+# usually begin with CPACK__xxxx.
+
+
+set(CPACK_BINARY_DEB "OFF")
+set(CPACK_BINARY_FREEBSD "OFF")
+set(CPACK_BINARY_IFW "OFF")
+set(CPACK_BINARY_NSIS "OFF")
+set(CPACK_BINARY_RPM "OFF")
+set(CPACK_BINARY_STGZ "ON")
+set(CPACK_BINARY_TBZ2 "OFF")
+set(CPACK_BINARY_TGZ "ON")
+set(CPACK_BINARY_TXZ "OFF")
+set(CPACK_BINARY_TZ "ON")
+set(CPACK_BUILD_SOURCE_DIRS "/home/astronaut/Projects/astroarch-onboarding;/home/astronaut/Projects/astroarch-onboarding/src")
+set(CPACK_CMAKE_GENERATOR "Unix Makefiles")
+set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
+set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
+set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake/Templates/CPack.GenericDescription.txt")
+set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "CALAMARES built using CMake")
+set(CPACK_GENERATOR "STGZ;TGZ;TZ")
+set(CPACK_INNOSETUP_ARCHITECTURE "x64")
+set(CPACK_INSTALL_CMAKE_PROJECTS "/home/astronaut/Projects/astroarch-onboarding/src;CALAMARES;ALL;/")
+set(CPACK_INSTALL_PREFIX "/usr")
+set(CPACK_MODULE_PATH "/usr/share/ECM/modules/;/usr/share/ECM/find-modules/;/usr/share/ECM/kde-modules/;/home/astronaut/Projects/astroarch-onboarding/CMakeModules;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin")
+set(CPACK_NSIS_DISPLAY_NAME "CALAMARES 3.3.5")
+set(CPACK_NSIS_INSTALLER_ICON_CODE "")
+set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
+set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
+set(CPACK_NSIS_PACKAGE_NAME "CALAMARES 3.3.5")
+set(CPACK_NSIS_UNINSTALL_NAME "Uninstall")
+set(CPACK_OBJCOPY_EXECUTABLE "/usr/bin/objcopy")
+set(CPACK_OBJDUMP_EXECUTABLE "/usr/bin/objdump")
+set(CPACK_OUTPUT_CONFIG_FILE "/home/astronaut/Projects/astroarch-onboarding/src/CPackConfig.cmake")
+set(CPACK_PACKAGE_DEFAULT_LOCATION "/")
+set(CPACK_PACKAGE_DESCRIPTION "Calamares is a Linux system installer, intended for Linux distributions to use on their ISOs and other bootable media to install the distribution to the end-user's computer. Calamares can also be used as an OEM configuration tool. It is modular, extensible and highly-configurable for Linux distributions from all five major Linux families.")
+set(CPACK_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake/Templates/CPack.GenericDescription.txt")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A Linux system installer")
+set(CPACK_PACKAGE_FILE_NAME "CALAMARES-3.3.5-Linux")
+set(CPACK_PACKAGE_HOMEPAGE_URL "https://calamares.io/")
+set(CPACK_PACKAGE_ICON "data/images/squid.png")
+set(CPACK_PACKAGE_INSTALL_DIRECTORY "CALAMARES 3.3.5")
+set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "CALAMARES 3.3.5")
+set(CPACK_PACKAGE_NAME "CALAMARES")
+set(CPACK_PACKAGE_RELOCATABLE "true")
+set(CPACK_PACKAGE_VENDOR "calamares")
+set(CPACK_PACKAGE_VERSION "3.3.5")
+set(CPACK_PACKAGE_VERSION_MAJOR "3")
+set(CPACK_PACKAGE_VERSION_MINOR "3")
+set(CPACK_PACKAGE_VERSION_PATCH "5")
+set(CPACK_READELF_EXECUTABLE "/usr/bin/readelf")
+set(CPACK_RESOURCE_FILE_LICENSE "/usr/share/cmake/Templates/CPack.GenericLicense.txt")
+set(CPACK_RESOURCE_FILE_README "/usr/share/cmake/Templates/CPack.GenericDescription.txt")
+set(CPACK_RESOURCE_FILE_WELCOME "/usr/share/cmake/Templates/CPack.GenericWelcome.txt")
+set(CPACK_SET_DESTDIR "OFF")
+set(CPACK_SOURCE_GENERATOR "TBZ2;TGZ;TXZ;TZ")
+set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "/home/astronaut/Projects/astroarch-onboarding/src/CPackSourceConfig.cmake")
+set(CPACK_SOURCE_RPM "OFF")
+set(CPACK_SOURCE_TBZ2 "ON")
+set(CPACK_SOURCE_TGZ "ON")
+set(CPACK_SOURCE_TXZ "ON")
+set(CPACK_SOURCE_TZ "ON")
+set(CPACK_SOURCE_ZIP "OFF")
+set(CPACK_SYSTEM_NAME "Linux")
+set(CPACK_THREADS "1")
+set(CPACK_TOPLEVEL_TAG "Linux")
+set(CPACK_WIX_SIZEOF_VOID_P "8")
+
+if(NOT CPACK_PROPERTIES_FILE)
+ set(CPACK_PROPERTIES_FILE "/home/astronaut/Projects/astroarch-onboarding/src/CPackProperties.cmake")
+endif()
+
+if(EXISTS ${CPACK_PROPERTIES_FILE})
+ include(${CPACK_PROPERTIES_FILE})
+endif()
diff --git a/src/CPackSourceConfig.cmake b/src/CPackSourceConfig.cmake
new file mode 100644
index 0000000000..4a360083bf
--- /dev/null
+++ b/src/CPackSourceConfig.cmake
@@ -0,0 +1,91 @@
+# This file will be configured to contain variables for CPack. These variables
+# should be set in the CMake list file of the project before CPack module is
+# included. The list of available CPACK_xxx variables and their associated
+# documentation may be obtained using
+# cpack --help-variable-list
+#
+# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
+# and some are specific to a generator
+# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
+# usually begin with CPACK__xxxx.
+
+
+set(CPACK_BINARY_DEB "OFF")
+set(CPACK_BINARY_FREEBSD "OFF")
+set(CPACK_BINARY_IFW "OFF")
+set(CPACK_BINARY_NSIS "OFF")
+set(CPACK_BINARY_RPM "OFF")
+set(CPACK_BINARY_STGZ "ON")
+set(CPACK_BINARY_TBZ2 "OFF")
+set(CPACK_BINARY_TGZ "ON")
+set(CPACK_BINARY_TXZ "OFF")
+set(CPACK_BINARY_TZ "ON")
+set(CPACK_BUILD_SOURCE_DIRS "/home/astronaut/Projects/astroarch-onboarding;/home/astronaut/Projects/astroarch-onboarding/src")
+set(CPACK_CMAKE_GENERATOR "Unix Makefiles")
+set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
+set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
+set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake/Templates/CPack.GenericDescription.txt")
+set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "CALAMARES built using CMake")
+set(CPACK_GENERATOR "TBZ2;TGZ;TXZ;TZ")
+set(CPACK_IGNORE_FILES "/CVS/;/\\.svn/;/\\.bzr/;/\\.hg/;/\\.git/;\\.swp\$;\\.#;/#")
+set(CPACK_INNOSETUP_ARCHITECTURE "x64")
+set(CPACK_INSTALLED_DIRECTORIES "/home/astronaut/Projects/astroarch-onboarding;/")
+set(CPACK_INSTALL_CMAKE_PROJECTS "")
+set(CPACK_INSTALL_PREFIX "/usr")
+set(CPACK_MODULE_PATH "/usr/share/ECM/modules/;/usr/share/ECM/find-modules/;/usr/share/ECM/kde-modules/;/home/astronaut/Projects/astroarch-onboarding/CMakeModules;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin;/usr/lib/cmake/Qt6;/usr/lib/cmake/Qt6/3rdparty/extra-cmake-modules/find-modules;/usr/lib/cmake/Qt6/3rdparty/kwin")
+set(CPACK_NSIS_DISPLAY_NAME "CALAMARES 3.3.5")
+set(CPACK_NSIS_INSTALLER_ICON_CODE "")
+set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
+set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES")
+set(CPACK_NSIS_PACKAGE_NAME "CALAMARES 3.3.5")
+set(CPACK_NSIS_UNINSTALL_NAME "Uninstall")
+set(CPACK_OBJCOPY_EXECUTABLE "/usr/bin/objcopy")
+set(CPACK_OBJDUMP_EXECUTABLE "/usr/bin/objdump")
+set(CPACK_OUTPUT_CONFIG_FILE "/home/astronaut/Projects/astroarch-onboarding/src/CPackConfig.cmake")
+set(CPACK_PACKAGE_DEFAULT_LOCATION "/")
+set(CPACK_PACKAGE_DESCRIPTION "Calamares is a Linux system installer, intended for Linux distributions to use on their ISOs and other bootable media to install the distribution to the end-user's computer. Calamares can also be used as an OEM configuration tool. It is modular, extensible and highly-configurable for Linux distributions from all five major Linux families.")
+set(CPACK_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake/Templates/CPack.GenericDescription.txt")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A Linux system installer")
+set(CPACK_PACKAGE_FILE_NAME "CALAMARES-3.3.5-Source")
+set(CPACK_PACKAGE_HOMEPAGE_URL "https://calamares.io/")
+set(CPACK_PACKAGE_ICON "data/images/squid.png")
+set(CPACK_PACKAGE_INSTALL_DIRECTORY "CALAMARES 3.3.5")
+set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "CALAMARES 3.3.5")
+set(CPACK_PACKAGE_NAME "CALAMARES")
+set(CPACK_PACKAGE_RELOCATABLE "true")
+set(CPACK_PACKAGE_VENDOR "calamares")
+set(CPACK_PACKAGE_VERSION "3.3.5")
+set(CPACK_PACKAGE_VERSION_MAJOR "3")
+set(CPACK_PACKAGE_VERSION_MINOR "3")
+set(CPACK_PACKAGE_VERSION_PATCH "5")
+set(CPACK_READELF_EXECUTABLE "/usr/bin/readelf")
+set(CPACK_RESOURCE_FILE_LICENSE "/usr/share/cmake/Templates/CPack.GenericLicense.txt")
+set(CPACK_RESOURCE_FILE_README "/usr/share/cmake/Templates/CPack.GenericDescription.txt")
+set(CPACK_RESOURCE_FILE_WELCOME "/usr/share/cmake/Templates/CPack.GenericWelcome.txt")
+set(CPACK_RPM_PACKAGE_SOURCES "ON")
+set(CPACK_SET_DESTDIR "OFF")
+set(CPACK_SOURCE_GENERATOR "TBZ2;TGZ;TXZ;TZ")
+set(CPACK_SOURCE_IGNORE_FILES "/CVS/;/\\.svn/;/\\.bzr/;/\\.hg/;/\\.git/;\\.swp\$;\\.#;/#")
+set(CPACK_SOURCE_INSTALLED_DIRECTORIES "/home/astronaut/Projects/astroarch-onboarding;/")
+set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "/home/astronaut/Projects/astroarch-onboarding/src/CPackSourceConfig.cmake")
+set(CPACK_SOURCE_PACKAGE_FILE_NAME "CALAMARES-3.3.5-Source")
+set(CPACK_SOURCE_RPM "OFF")
+set(CPACK_SOURCE_TBZ2 "ON")
+set(CPACK_SOURCE_TGZ "ON")
+set(CPACK_SOURCE_TOPLEVEL_TAG "Linux-Source")
+set(CPACK_SOURCE_TXZ "ON")
+set(CPACK_SOURCE_TZ "ON")
+set(CPACK_SOURCE_ZIP "OFF")
+set(CPACK_STRIP_FILES "")
+set(CPACK_SYSTEM_NAME "Linux")
+set(CPACK_THREADS "1")
+set(CPACK_TOPLEVEL_TAG "Linux-Source")
+set(CPACK_WIX_SIZEOF_VOID_P "8")
+
+if(NOT CPACK_PROPERTIES_FILE)
+ set(CPACK_PROPERTIES_FILE "/home/astronaut/Projects/astroarch-onboarding/src/CPackProperties.cmake")
+endif()
+
+if(EXISTS ${CPACK_PROPERTIES_FILE})
+ include(${CPACK_PROPERTIES_FILE})
+endif()
diff --git a/src/CalamaresConfig.cmake b/src/CalamaresConfig.cmake
new file mode 100644
index 0000000000..b27103033c
--- /dev/null
+++ b/src/CalamaresConfig.cmake
@@ -0,0 +1,134 @@
+# SPDX-FileCopyrightText: 2014 Teo Mrnjavac
+# SPDX-FileCopyrightText: 2020 Adriaan de Groot
+# SPDX-License-Identifier: BSD-2-Clause
+#
+# Note that Calamares itself is GPL-3.0-or-later: the above license
+# applies to **this** CMake file.
+#
+# Config file for the Calamares package
+#
+# The following IMPORTED targets are defined:
+# - Calamares::calamares - the core library
+# - Calamares::calamaresui - the UI (and QML) library
+#
+# For legacy use it defines the following variables:
+# - Calamares_INCLUDE_DIRS - include directories for Calamares
+# - Calamares_LIB_DIRS - library directories
+# - Calamares_LIBRARIES - libraries to link against
+
+
+####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() #######
+####### Any changes to this file will be overwritten by the next CMake run ####
+####### The input file was CalamaresConfig.cmake.in ########
+
+get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
+
+# Use original install prefix when loaded through a "/usr move"
+# cross-prefix symbolic link such as /lib -> /usr/lib.
+get_filename_component(_realCurr "${CMAKE_CURRENT_LIST_DIR}" REALPATH)
+get_filename_component(_realOrig "/usr/lib/cmake/Calamares" REALPATH)
+if(_realCurr STREQUAL _realOrig)
+ set(PACKAGE_PREFIX_DIR "/usr")
+endif()
+unset(_realOrig)
+unset(_realCurr)
+
+macro(set_and_check _var _file)
+ set(${_var} "${_file}")
+ if(NOT EXISTS "${_file}")
+ message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
+ endif()
+endmacro()
+
+macro(check_required_components _NAME)
+ foreach(comp ${${_NAME}_FIND_COMPONENTS})
+ if(NOT ${_NAME}_${comp}_FOUND)
+ if(${_NAME}_FIND_REQUIRED_${comp})
+ set(${_NAME}_FOUND FALSE)
+ endif()
+ endif()
+ endforeach()
+endmacro()
+
+####################################################################################
+
+### Versioning and IMPORTED targets
+#
+#
+include(${CMAKE_CURRENT_LIST_DIR}/CalamaresConfigVersion.cmake)
+include(${CMAKE_CURRENT_LIST_DIR}/CalamaresTargets.cmake)
+if (NOT TARGET Calamares::calamares OR NOT TARGET Calamares::calamaresui)
+ message(FATAL_ERROR "Calamares found with missing CMake targets")
+endif()
+
+# Need various CMake files that are installed alongside this one.
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
+
+### Dependencies
+#
+# The libraries can depend on a variety of Qt and KDE Frameworks
+# components, so accumulate them and find (just once).
+#
+macro(accumulate_deps outvar target namespace)
+ string(LENGTH ${namespace} _nslen)
+ get_target_property(_libs ${target} INTERFACE_LINK_LIBRARIES)
+ foreach(_lib ${_libs})
+ if (_lib MATCHES ^${namespace})
+ string(SUBSTRING ${_lib} ${_nslen} -1 _component)
+ list(APPEND ${outvar} ${_component})
+ endif()
+ endforeach()
+endmacro()
+
+set(Calamares_WITH_QT6 ON)
+if(Calamares_WITH_QT6)
+ set(qtname "Qt6")
+else()
+ set(qtname "Qt5")
+endif()
+
+# Qt infrastructure for translations is required
+set(qt_required Core Widgets LinguistTools)
+accumulate_deps(qt_required Calamares::calamares ${qtname}::)
+accumulate_deps(qt_required Calamares::calamaresui ${qtname}::)
+find_package(${qtname} CONFIG REQUIRED ${qt_required})
+
+set(kf5_required "")
+accumulate_deps(kf5_required Calamares::calamares ${kfname}::)
+accumulate_deps(kf5_required Calamares::calamaresui ${kfname}::)
+if(kf5_required)
+ find_package(ECM ${ECM_VERSION} NO_MODULE)
+ if( ECM_FOUND )
+ list(INSERT CMAKE_MODULE_PATH 0 ${ECM_MODULE_PATH})
+ find_package(${kfname} REQUIRED COMPONENTS ${kf5_required})
+ endif()
+endif()
+
+find_package(YAMLCPP REQUIRED)
+
+### Legacy support
+#
+#
+set(Calamares_LIB_DIRS "${PACKAGE_PREFIX_DIR}/lib")
+set(Calamares_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/include")
+set(Calamares_LIBRARIES Calamares::calamares)
+
+### CMake support
+#
+#
+include(CalamaresAddBrandingSubdirectory)
+include(CalamaresAddLibrary)
+include(CalamaresAddModuleSubdirectory)
+include(CalamaresAddPlugin)
+
+# These are feature-settings that affect consumers of Calamares
+# libraries as well; without Python-support in the libs, for instance,
+# there's no point in having a Python plugin.
+#
+# This list should match the one in libcalamares/CalamaresConfig.h,
+# which is the C++-language side of the same configuration.
+set(Calamares_WITH_PYTHON ON)
+set(Calamares_WITH_PYBIND11 ON)
+set(Calamares_WITH_BOOST_PYTHON )
+set(Calamares_WITH_QML ON)
+set(Calamares_WITH_QT6 ON)
diff --git a/src/CalamaresConfigVersion.cmake b/src/CalamaresConfigVersion.cmake
new file mode 100644
index 0000000000..84d7d2d711
--- /dev/null
+++ b/src/CalamaresConfigVersion.cmake
@@ -0,0 +1,65 @@
+# This is a basic version file for the Config-mode of find_package().
+# It is used by write_basic_package_version_file() as input file for configure_file()
+# to create a version-file which can be installed along a config.cmake file.
+#
+# The created file sets PACKAGE_VERSION_EXACT if the current version string and
+# the requested version string are exactly the same and it sets
+# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version,
+# but only if the requested major version is the same as the current one.
+# The variable CVF_VERSION must be set before calling configure_file().
+
+
+set(PACKAGE_VERSION "3.3.5")
+
+if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+else()
+
+ if("3.3.5" MATCHES "^([0-9]+)\\.")
+ set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
+ string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
+ endif()
+ else()
+ set(CVF_VERSION_MAJOR "3.3.5")
+ endif()
+
+ if(PACKAGE_FIND_VERSION_RANGE)
+ # both endpoints of the range must have the expected major version
+ math (EXPR CVF_VERSION_MAJOR_NEXT "${CVF_VERSION_MAJOR} + 1")
+ if (NOT PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR
+ OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX_MAJOR STREQUAL CVF_VERSION_MAJOR)
+ OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX VERSION_LESS_EQUAL CVF_VERSION_MAJOR_NEXT)))
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+ elseif(PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR
+ AND ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS_EQUAL PACKAGE_FIND_VERSION_MAX)
+ OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MAX)))
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ else()
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+ endif()
+ else()
+ if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR)
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ else()
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+ endif()
+
+ if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
+ set(PACKAGE_VERSION_EXACT TRUE)
+ endif()
+ endif()
+endif()
+
+
+# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
+if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "")
+ return()
+endif()
+
+# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
+if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8")
+ math(EXPR installedBits "8 * 8")
+ set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
+ set(PACKAGE_VERSION_UNSUITABLE TRUE)
+endif()
diff --git a/src/DartConfiguration.tcl b/src/DartConfiguration.tcl
new file mode 100644
index 0000000000..a2b850c989
--- /dev/null
+++ b/src/DartConfiguration.tcl
@@ -0,0 +1,109 @@
+# This file is configured by CMake automatically as DartConfiguration.tcl
+# If you choose not to use CMake, this file may be hand configured, by
+# filling in the required variables.
+
+
+# Configuration directories and files
+SourceDirectory: /home/astronaut/Projects/astroarch-onboarding
+BuildDirectory: /home/astronaut/Projects/astroarch-onboarding/src
+
+# Where to place the cost data store
+CostDataFile:
+
+# Site is something like machine.domain, i.e. pragmatic.crd
+Site: astroarch
+
+# Build name is osname-revision-compiler, i.e. Linux-2.4.2-2smp-c++
+BuildName: Linux-c++
+
+# Subprojects
+LabelsForSubprojects:
+
+# Submission information
+SubmitURL: http://
+SubmitInactivityTimeout:
+
+# Dashboard start time
+NightlyStartTime: 00:00:00 EDT
+
+# Commands for the build/test/submit cycle
+ConfigureCommand: "/usr/bin/cmake" "/home/astronaut/Projects/astroarch-onboarding"
+MakeCommand: /usr/bin/cmake --build . --config "${CTEST_CONFIGURATION_TYPE}"
+DefaultCTestConfigurationType: Release
+
+# version control
+UpdateVersionOnly:
+
+# CVS options
+# Default is "-d -P -A"
+CVSCommand:
+CVSUpdateOptions:
+
+# Subversion options
+SVNCommand:
+SVNOptions:
+SVNUpdateOptions:
+
+# Git options
+GITCommand: /usr/bin/git
+GITInitSubmodules:
+GITUpdateOptions:
+GITUpdateCustom:
+
+# Perforce options
+P4Command:
+P4Client:
+P4Options:
+P4UpdateOptions:
+P4UpdateCustom:
+
+# Generic update command
+UpdateCommand: /usr/bin/git
+UpdateOptions:
+UpdateType: git
+
+# Compiler info
+Compiler: /usr/bin/c++
+CompilerVersion: 14.1.1
+
+# Dynamic analysis (MemCheck)
+PurifyCommand:
+ValgrindCommand:
+ValgrindCommandOptions:
+DrMemoryCommand:
+DrMemoryCommandOptions:
+CudaSanitizerCommand:
+CudaSanitizerCommandOptions:
+MemoryCheckType:
+MemoryCheckSanitizerOptions:
+MemoryCheckCommand: MEMORYCHECK_COMMAND-NOTFOUND
+MemoryCheckCommandOptions:
+MemoryCheckSuppressionFile:
+
+# Coverage
+CoverageCommand: /usr/bin/gcov
+CoverageExtraFlags: -l
+
+# Testing options
+# TimeOut is the amount of time in seconds to wait for processes
+# to complete during testing. After TimeOut seconds, the
+# process will be summarily terminated.
+# Currently set to 25 minutes
+TimeOut: 1500
+
+# During parallel testing CTest will not start a new test if doing
+# so would cause the system load to exceed this value.
+TestLoad:
+
+TLSVerify:
+TLSVersion:
+
+UseLaunchers:
+CurlOptions:
+# warning, if you add new options here that have to do with submit,
+# you have to update cmCTestSubmitCommand.cxx
+
+# For CTest submissions that timeout, these options
+# specify behavior for retrying the submission
+CTestSubmitRetryDelay: 5
+CTestSubmitRetryCount: 3
diff --git a/src/branding/astroarch/branding.desc b/src/branding/astroarch/branding.desc
index 3211ea89f0..ccea759879 100644
--- a/src/branding/astroarch/branding.desc
+++ b/src/branding/astroarch/branding.desc
@@ -123,10 +123,10 @@ navigation: widget
strings:
productName: astroarch
shortProductName: astroarch
- version: 1.9
- shortVersion: 1.9
- versionedName: AstroArch 1.9
- shortVersionedName: AstroArch 1.9
+ version: 1
+ shortVersion: 1
+ versionedName: AstroArch
+ shortVersionedName: AstroArch
bootloaderEntryName: AstroArch
productUrl: https://github.com/devDucks/astroarch
supportUrl: https://discord.gg/uJEQCZKBT8
@@ -203,7 +203,9 @@ style:
# slideshow: "show.qml"
# To configure images, like the filenames (here, as an inline list):
# slideshow: [ "/etc/calamares/slideshow/0.png", "/etc/logo.png" ]
-slideshow: "show.qml"
+#slideshow: "show.qml"
+slideshow: [ "/usr/share/calamares/branding/astroarch/slide1.png", "/usr/share/calamares/branding/astroarch/slide2.jpg", "/usr/share/calamares/branding/astroarch/slide3.jpg", "/usr/share/calamares/branding/astroarch/slide4.jpg", "/usr/share/calamares/branding/astroarch/slide5.jpg", "/usr/share/calamares/branding/astroarch/slide6.png", "/usr/share/calamares/branding/astroarch/slide7.png", "/usr/share/calamares/branding/astroarch/slide8.jpg", "/usr/share/calamares/branding/astroarch/slide9.jpg", "/usr/share/calamares/branding/astroarch/slide10.png" ]
+
# There are two available APIs for a QML slideshow:
# - 1 (the default) loads the entire slideshow when the installation-
diff --git a/src/branding/astroarch/show.qml b/src/branding/astroarch/show.qml
index f4c50e629f..7c5d577c4f 100644
--- a/src/branding/astroarch/show.qml
+++ b/src/branding/astroarch/show.qml
@@ -32,7 +32,7 @@ Presentation
Image {
id: background
- source: "squid.png"
+ source: "slide1.jpg"
width: 200; height: 200
fillMode: Image.PreserveAspectFit
anchors.centerIn: parent
diff --git a/src/branding/astroarch/slide1.png b/src/branding/astroarch/slide1.png
new file mode 100644
index 0000000000..cea13876c1
Binary files /dev/null and b/src/branding/astroarch/slide1.png differ
diff --git a/src/branding/astroarch/slide10.png b/src/branding/astroarch/slide10.png
new file mode 100644
index 0000000000..30615f4080
Binary files /dev/null and b/src/branding/astroarch/slide10.png differ
diff --git a/src/branding/astroarch/slide2.jpg b/src/branding/astroarch/slide2.jpg
new file mode 100644
index 0000000000..e80a4a47de
Binary files /dev/null and b/src/branding/astroarch/slide2.jpg differ
diff --git a/src/branding/astroarch/slide3.jpg b/src/branding/astroarch/slide3.jpg
new file mode 100644
index 0000000000..1b1f4c691a
Binary files /dev/null and b/src/branding/astroarch/slide3.jpg differ
diff --git a/src/branding/astroarch/slide4.jpg b/src/branding/astroarch/slide4.jpg
new file mode 100644
index 0000000000..e125d25d1c
Binary files /dev/null and b/src/branding/astroarch/slide4.jpg differ
diff --git a/src/branding/astroarch/slide5.jpg b/src/branding/astroarch/slide5.jpg
new file mode 100644
index 0000000000..df2ed37fb8
Binary files /dev/null and b/src/branding/astroarch/slide5.jpg differ
diff --git a/src/branding/astroarch/slide6.png b/src/branding/astroarch/slide6.png
new file mode 100644
index 0000000000..cea13876c1
Binary files /dev/null and b/src/branding/astroarch/slide6.png differ
diff --git a/src/branding/astroarch/slide7.png b/src/branding/astroarch/slide7.png
new file mode 100644
index 0000000000..9197fd3b0e
Binary files /dev/null and b/src/branding/astroarch/slide7.png differ
diff --git a/src/branding/astroarch/slide8.jpg b/src/branding/astroarch/slide8.jpg
new file mode 100644
index 0000000000..a2d610e92b
Binary files /dev/null and b/src/branding/astroarch/slide8.jpg differ
diff --git a/src/branding/astroarch/slide9.jpg b/src/branding/astroarch/slide9.jpg
new file mode 100644
index 0000000000..13a7b9c0e5
Binary files /dev/null and b/src/branding/astroarch/slide9.jpg differ
diff --git a/src/cmake_uninstall.cmake b/src/cmake_uninstall.cmake
new file mode 100644
index 0000000000..7c6beea838
--- /dev/null
+++ b/src/cmake_uninstall.cmake
@@ -0,0 +1,24 @@
+# SPDX-FileCopyrightText: 2014 Teo Mrnjavac
+# SPDX-License-Identifier: BSD-2-Clause
+
+IF(NOT EXISTS "/home/astronaut/Projects/astroarch-onboarding/src/install_manifest.txt")
+ MESSAGE(FATAL_ERROR "Cannot find install manifest: \"/home/astronaut/Projects/astroarch-onboarding/src/install_manifest.txt\"")
+ENDIF(NOT EXISTS "/home/astronaut/Projects/astroarch-onboarding/src/install_manifest.txt")
+
+FILE(READ "/home/astronaut/Projects/astroarch-onboarding/src/install_manifest.txt" files)
+STRING(REGEX REPLACE "\n" ";" files "${files}")
+FOREACH(file ${files})
+ MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
+ IF(EXISTS "$ENV{DESTDIR}${file}")
+ EXEC_PROGRAM(
+ "/usr/bin/cmake" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
+ OUTPUT_VARIABLE rm_out
+ RETURN_VALUE rm_retval
+ )
+ IF(NOT "${rm_retval}" STREQUAL 0)
+ MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
+ ENDIF(NOT "${rm_retval}" STREQUAL 0)
+ ELSE(EXISTS "$ENV{DESTDIR}${file}")
+ MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
+ ENDIF(EXISTS "$ENV{DESTDIR}${file}")
+ENDFOREACH(file)
diff --git a/src/lang/calamares-i18n.qrc b/src/lang/calamares-i18n.qrc
new file mode 100644
index 0000000000..9c2a4fb6f0
--- /dev/null
+++ b/src/lang/calamares-i18n.qrc
@@ -0,0 +1,80 @@
+
+
+
+
+calamares_ar.qm
+calamares_as.qm
+calamares_ast.qm
+calamares_az.qm
+calamares_az_AZ.qm
+calamares_be.qm
+calamares_bg.qm
+calamares_bn.qm
+calamares_ca.qm
+calamares_ca@valencia.qm
+calamares_cs_CZ.qm
+calamares_da.qm
+calamares_de.qm
+calamares_el.qm
+calamares_en.qm
+tz_en.qm
+kb_en.qm
+calamares_en_GB.qm
+calamares_eo.qm
+calamares_es.qm
+calamares_es_AR.qm
+calamares_es_MX.qm
+calamares_et.qm
+calamares_eu.qm
+calamares_fa.qm
+calamares_fi_FI.qm
+calamares_fr.qm
+calamares_fur.qm
+calamares_gl.qm
+calamares_he.qm
+calamares_hi.qm
+calamares_hr.qm
+calamares_hu.qm
+calamares_id.qm
+calamares_is.qm
+calamares_it_IT.qm
+calamares_ja.qm
+calamares_ka.qm
+calamares_ko.qm
+calamares_lt.qm
+calamares_ml.qm
+calamares_mr.qm
+calamares_nb.qm
+calamares_nl.qm
+tz_nl.qm
+calamares_oc.qm
+calamares_pl.qm
+calamares_pt_BR.qm
+calamares_pt_PT.qm
+calamares_ro.qm
+calamares_ru.qm
+tz_ru.qm
+calamares_si.qm
+calamares_sk.qm
+calamares_sl.qm
+calamares_sq.qm
+calamares_sr.qm
+calamares_sr@latin.qm
+calamares_sv.qm
+tz_sv.qm
+calamares_tg.qm
+tz_tg.qm
+kb_tg.qm
+calamares_th.qm
+calamares_tr_TR.qm
+calamares_uk.qm
+tz_uk.qm
+calamares_vi.qm
+tz_vi.qm
+calamares_zh_CN.qm
+calamares_zh_TW.qm
+
+
+
diff --git a/src/libcalamaresui/ViewManager.cpp b/src/libcalamaresui/ViewManager.cpp
index 2fd7f45c14..5f303874b2 100644
--- a/src/libcalamaresui/ViewManager.cpp
+++ b/src/libcalamaresui/ViewManager.cpp
@@ -399,7 +399,7 @@ ViewManager::updateButtonLabels()
{
const auto* const settings = Calamares::Settings::instance();
- QString nextIsInstallationStep = settings->isSetupMode() ? tr( "&Set Up", "@button" ) : tr( "&Install", "@button" );
+ QString nextIsInstallationStep = settings->isSetupMode() ? tr( "&Configure", "@button" ) : tr( "&Configure", "@button" );
QString quitOnCompleteTooltip = settings->isSetupMode()
? tr( "Setup is complete. Close the setup program.", "@tooltip" )
: tr( "The installation is complete. Close the installer.", "@tooltip" );
diff --git a/src/modules/bootloader/bootloader.conf b/src/modules/bootloader/bootloader.conf
deleted file mode 100644
index 9679f6696c..0000000000
--- a/src/modules/bootloader/bootloader.conf
+++ /dev/null
@@ -1,83 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# Bootloader configuration. The bootloader is installed to allow
-# the system to start (and pick one of the installed operating
-# systems to run).
-#
-# Take note that Debian-derivatives that use unmodified GRUB EFI packages
-# should specifically set *efiBootloaderId* to "debian" because that is
-# hard-coded in `grubx64.efi`.
----
-# A variable from global storage which overrides the value of efiBootLoader
-#efiBootLoaderVar: "packagechooser_bootloader"
-
-# Define which bootloader you want to use for EFI installations
-# Possible options are 'grub', 'sb-shim', 'refind` and 'systemd-boot'.
-efiBootLoader: "grub"
-
-# systemd-boot configuration files settings
-
-# kernelSearchPath is the path relative to the root of the install to search for kernels
-# A kernel is identified by finding files which match regular expression, kernelPattern
-kernelSearchPath: "/usr/lib/modules"
-kernelPattern: "^vmlinuz.*"
-
-# loaderEntries is an array of options to add to loader.conf for systemd-boot
-# please note that the "default" option is added programmatically
-loaderEntries:
- - "timeout 5"
- - "console-mode keep"
-
-# systemd-boot and refind support custom kernel params
-kernelParams: [ "quiet" ]
-
-# A list of kernel names that refind should accept as kernels
-#refindKernelList: [ "linux","linux-lts","linux-zen","linux-hardened" ]
-
-# GRUB 2 binary names and boot directory
-# Some distributions (e.g. Fedora) use grub2-* (resp. /boot/grub2/) names.
-# These names are also used when using sb-shim, since that needs some
-# GRUB functionality (notably grub-probe) to work. As needed, you may use
-# complete paths like `/usr/bin/efibootmgr` for the executables.
-#
-grubInstall: "grub-install"
-grubMkconfig: "grub-mkconfig"
-grubCfg: "/boot/grub/grub.cfg"
-grubProbe: "grub-probe"
-efiBootMgr: "efibootmgr"
-
-# Optionally set the bootloader ID to use for EFI. This is passed to
-# grub-install --bootloader-id.
-#
-# If not set here, the value from bootloaderEntryName from branding.desc
-# is used, with problematic characters (space and slash) replaced.
-#
-# The ID is also used as a directory name within the EFI environment,
-# and the bootloader is copied from /boot/efi/EFI// . When
-# setting the option here, keep in mind that the name is sanitized
-# (problematic characters, see above, are replaced).
-#
-# There are some special words possible at the end of *efiBootloaderId*:
-# ${SERIAL} can be used to obtain a uniquely-numbered suffix
-# that is added to the Id (yielding, e.g., `dirname1` or `dirname72`)
-# ${RANDOM} can be used to obtain a unique 4-digit hex suffix
-# ${PHRASE} can be used to obtain a unique 1-to-3-word suffix
-# from a dictionary of space-themed words
-# These words must be at the **end** of the *efiBootloaderId* value.
-# There must also be at most one of them. If there is none, no suffix-
-# processing is done and the *efiBootloaderId* is used unchanged.
-#
-# NOTE: Debian derivatives that use the unmodified Debian GRUB EFI
-# packages may need to set this to "debian" because that is
-# hard-coded in `grubx64.efi`.
-#
-# efiBootloaderId: "dirname"
-
-# Optionally install a copy of the GRUB EFI bootloader as the EFI
-# fallback loader (either bootia32.efi or bootx64.efi depending on
-# the system). This may be needed on certain systems (Intel DH87MC
-# seems to be the only one). If you set this to false, take care
-# to add another module to optionally install the fallback on those
-# boards that need it.
-installEFIFallback: true
diff --git a/src/modules/bootloader/bootloader.schema.yaml b/src/modules/bootloader/bootloader.schema.yaml
deleted file mode 100644
index 2b01bae956..0000000000
--- a/src/modules/bootloader/bootloader.schema.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-FileCopyrightText: 2020 Adriaan de Groot
-# SPDX-License-Identifier: GPL-3.0-or-later
----
-$schema: https://json-schema.org/schema#
-$id: https://calamares.io/schemas/bootloader
-additionalProperties: false
-type: object
-properties:
- efiBootLoaderVar: { type: string }
- efiBootLoader: { type: string }
- kernelSearchPath: { type: string }
- kernelName: { type: string }
- kernelParams: { type: array, items: { type: string } }
- kernelPattern: { type: string }
- loaderEntries: { type: array, items: { type: string } }
- refindKernelList: { type: array, items: { type: string } }
-
- # Programs
- grubInstall: { type: string }
- grubMkconfig: { type: string }
- grubCfg: { type: string }
- grubProbe: { type: string }
- efiBootMgr: { type: string }
-
- efiBootloaderId: { type: string }
- installEFIFallback: { type: boolean }
diff --git a/src/modules/bootloader/main.py b/src/modules/bootloader/main.py
deleted file mode 100644
index 1899028396..0000000000
--- a/src/modules/bootloader/main.py
+++ /dev/null
@@ -1,931 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2014 Aurélien Gâteau
-# SPDX-FileCopyrightText: 2014 Anke Boersma
-# SPDX-FileCopyrightText: 2014 Daniel Hillenbrand
-# SPDX-FileCopyrightText: 2014 Benjamin Vaudour
-# SPDX-FileCopyrightText: 2014-2019 Kevin Kofler
-# SPDX-FileCopyrightText: 2015-2018 Philip Mueller
-# SPDX-FileCopyrightText: 2016-2017 Teo Mrnjavac
-# SPDX-FileCopyrightText: 2017 Alf Gaida
-# SPDX-FileCopyrightText: 2017-2019 Adriaan de Groot
-# SPDX-FileCopyrightText: 2017 Gabriel Craciunescu
-# SPDX-FileCopyrightText: 2017 Ben Green
-# SPDX-FileCopyrightText: 2021 Neal Gompa
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# Calamares is Free Software: see the License-Identifier above.
-#
-
-import fileinput
-import os
-import re
-import shutil
-import subprocess
-
-import libcalamares
-
-from libcalamares.utils import check_target_env_call
-
-import gettext
-
-_ = gettext.translation("calamares-python",
- localedir=libcalamares.utils.gettext_path(),
- languages=libcalamares.utils.gettext_languages(),
- fallback=True).gettext
-
-# This is the sanitizer used all over to tidy up filenames
-# to make identifiers (or to clean up names to make filenames).
-file_name_sanitizer = str.maketrans(" /()", "_-__")
-
-
-def pretty_name():
- return _("Install bootloader.")
-
-
-def get_uuid():
- """
- Checks and passes 'uuid' to other routine.
-
- :return:
- """
- partitions = libcalamares.globalstorage.value("partitions")
-
- for partition in partitions:
- if partition["mountPoint"] == "/":
- libcalamares.utils.debug("Root partition uuid: \"{!s}\"".format(partition["uuid"]))
- return partition["uuid"]
-
- return ""
-
-
-def get_kernel_line(kernel_type):
- """
- Passes 'kernel_line' to other routine based on configuration file.
-
- :param kernel_type:
- :return:
- """
- if kernel_type == "fallback":
- if "fallbackKernelLine" in libcalamares.job.configuration:
- return libcalamares.job.configuration["fallbackKernelLine"]
- else:
- return " (fallback)"
- else:
- if "kernelLine" in libcalamares.job.configuration:
- return libcalamares.job.configuration["kernelLine"]
- else:
- return ""
-
-
-def get_zfs_root():
- """
- Looks in global storage to find the zfs root
-
- :return: A string containing the path to the zfs root or None if it is not found
- """
-
- zfs = libcalamares.globalstorage.value("zfsDatasets")
-
- if not zfs:
- libcalamares.utils.warning("Failed to locate zfs dataset list")
- return None
-
- # Find the root dataset
- for dataset in zfs:
- try:
- if dataset["mountpoint"] == "/":
- return dataset["zpool"] + "/" + dataset["dsName"]
- except KeyError:
- # This should be impossible
- libcalamares.utils.warning("Internal error handling zfs dataset")
- raise
-
- return None
-
-
-def is_btrfs_root(partition):
- """ Returns True if the partition object refers to a btrfs root filesystem
-
- :param partition: A partition map from global storage
- :return: True if btrfs and root, False otherwise
- """
- return partition["mountPoint"] == "/" and partition["fs"] == "btrfs"
-
-
-def is_zfs_root(partition):
- """ Returns True if the partition object refers to a zfs root filesystem
-
- :param partition: A partition map from global storage
- :return: True if zfs and root, False otherwise
- """
- return partition["mountPoint"] == "/" and partition["fs"] == "zfs"
-
-
-def get_kernel_params(uuid):
- kernel_params = libcalamares.job.configuration.get("kernelParams", ["quiet"])
- kernel_params.append("rw")
-
- partitions = libcalamares.globalstorage.value("partitions")
- swap_uuid = ""
- swap_outer_mappername = None
- swap_outer_uuid = None
-
- cryptdevice_params = []
-
- has_dracut = libcalamares.utils.target_env_call(["sh", "-c", "which dracut"]) == 0
- uses_systemd_hook = libcalamares.utils.target_env_call(["sh", "-c",
- "grep -q \"^HOOKS.*systemd\" /etc/mkinitcpio.conf"]) == 0
- use_systemd_naming = has_dracut or uses_systemd_hook
-
-
- # Take over swap settings:
- # - unencrypted swap partition sets swap_uuid
- # - encrypted root sets cryptdevice_params
- for partition in partitions:
- if partition["fs"] == "linuxswap" and not partition.get("claimed", None):
- # Skip foreign swap
- continue
- has_luks = "luksMapperName" in partition
- if partition["fs"] == "linuxswap" and not has_luks:
- swap_uuid = partition["uuid"]
-
- if partition["fs"] == "linuxswap" and has_luks:
- swap_outer_mappername = partition["luksMapperName"]
- swap_outer_uuid = partition["luksUuid"]
-
- if partition["mountPoint"] == "/" and has_luks:
- if use_systemd_naming:
- cryptdevice_params = [f"rd.luks.uuid={partition['luksUuid']}"]
- else:
- cryptdevice_params = [f"cryptdevice=UUID={partition['luksUuid']}:{partition['luksMapperName']}"]
- cryptdevice_params.append(f"root=/dev/mapper/{partition['luksMapperName']}")
-
- # btrfs and zfs handling
- for partition in partitions:
- # If a btrfs root subvolume wasn't set, it means the root is directly on the partition
- # and this option isn't needed
- if is_btrfs_root(partition):
- btrfs_root_subvolume = libcalamares.globalstorage.value("btrfsRootSubvolume")
- if btrfs_root_subvolume:
- kernel_params.append("rootflags=subvol=" + btrfs_root_subvolume)
-
- # zfs needs to be told the location of the root dataset
- if is_zfs_root(partition):
- zfs_root_path = get_zfs_root()
- if zfs_root_path is not None:
- kernel_params.append("root=ZFS=" + zfs_root_path)
- else:
- # Something is really broken if we get to this point
- libcalamares.utils.warning("Internal error handling zfs dataset")
- raise Exception("Internal zfs data missing, please contact your distribution")
-
- if cryptdevice_params:
- kernel_params.extend(cryptdevice_params)
- else:
- kernel_params.append("root=UUID={!s}".format(uuid))
-
- if swap_uuid:
- kernel_params.append("resume=UUID={!s}".format(swap_uuid))
-
- if use_systemd_naming and swap_outer_uuid:
- kernel_params.append(f"rd.luks.uuid={swap_outer_uuid}")
-
- if swap_outer_mappername:
- kernel_params.append(f"resume=/dev/mapper/{swap_outer_mappername}")
-
- return kernel_params
-
-
-def create_systemd_boot_conf(installation_root_path, efi_dir, uuid, kernel, kernel_version):
- """
- Creates systemd-boot configuration files based on given parameters.
-
- :param installation_root_path: A string containing the absolute path to the root of the installation
- :param efi_dir: A string containing the path to the efi dir relative to the root of the installation
- :param uuid: A string containing the UUID of the root volume
- :param kernel: A string containing the path to the kernel relative to the root of the installation
- :param kernel_version: The kernel version string
- """
-
- # Get the kernel params and write them to /etc/kernel/cmdline
- # This file is used by kernel-install
- kernel_params = " ".join(get_kernel_params(uuid))
- kernel_cmdline_path = os.path.join(installation_root_path, "etc", "kernel")
- os.makedirs(kernel_cmdline_path, exist_ok=True)
- with open(os.path.join(kernel_cmdline_path, "cmdline"), "w") as cmdline_file:
- cmdline_file.write(kernel_params)
-
- libcalamares.utils.debug(f"Configuring kernel version {kernel_version}")
-
- # get the machine-id
- with open(os.path.join(installation_root_path, "etc", "machine-id"), 'r') as machineid_file:
- machine_id = machineid_file.read().rstrip('\n')
-
- # Ensure the directory exists
- machine_dir = os.path.join(installation_root_path + efi_dir, machine_id)
- os.makedirs(machine_dir, exist_ok=True)
-
- # Call kernel-install for each kernel
- libcalamares.utils.target_env_process_output(["kernel-install",
- "add",
- kernel_version,
- os.path.join("/", kernel)])
-
-
-def create_loader(loader_path, installation_root_path):
- """
- Writes configuration for loader.
-
- :param loader_path: The absolute path to the loader.conf file
- :param installation_root_path: The path to the root of the target installation
- """
-
- # get the machine-id
- with open(os.path.join(installation_root_path, "etc", "machine-id"), 'r') as machineid_file:
- machine_id = machineid_file.read().rstrip('\n')
-
- try:
- loader_entries = libcalamares.job.configuration["loaderEntries"]
- except KeyError:
- libcalamares.utils.debug("No aditional loader entries found in config")
- loader_entries = []
- pass
-
- lines = [f"default {machine_id}*"]
-
- lines.extend(loader_entries)
-
- with open(loader_path, 'w') as loader_file:
- for line in lines:
- loader_file.write(line + "\n")
-
-
-class SuffixIterator(object):
- """
- Wrapper for one of the "generator" classes below to behave like
- a proper Python iterator. The iterator is initialized with a
- maximum number of attempts to generate a new suffix.
- """
-
- def __init__(self, attempts, generator):
- self.generator = generator
- self.attempts = attempts
- self.counter = 0
-
- def __iter__(self):
- return self
-
- def __next__(self):
- self.counter += 1
- if self.counter <= self.attempts:
- return self.generator.next()
- raise StopIteration
-
-
-class serialEfi(object):
- """
- EFI Id generator that appends a serial number to the given name.
- """
-
- def __init__(self, name):
- self.name = name
- # So the first call to next() will bump it to 0
- self.counter = -1
-
- def next(self):
- self.counter += 1
- if self.counter > 0:
- return "{!s}{!s}".format(self.name, self.counter)
- else:
- return self.name
-
-
-def render_in_base(value, base_values, length=-1):
- """
- Renders @p value in base-N, where N is the number of
- items in @p base_values. When rendering, use the items
- of @p base_values (e.g. use "0123456789" to get regular decimal
- rendering, or "ABCDEFGHIJ" for letters-as-numbers 'encoding').
-
- If length is positive, pads out to at least that long with
- leading "zeroes", whatever base_values[0] is.
- """
- if value < 0:
- raise ValueError("Cannot render negative values")
- if len(base_values) < 2:
- raise ValueError("Insufficient items for base-N rendering")
- if length < 1:
- length = 1
- digits = []
- base = len(base_values)
- while value > 0:
- place = value % base
- value = value // base
- digits.append(base_values[place])
- while len(digits) < length:
- digits.append(base_values[0])
- return "".join(reversed(digits))
-
-
-class randomEfi(object):
- """
- EFI Id generator that appends a random 4-digit hex number to the given name.
- """
-
- def __init__(self, name):
- self.name = name
- # So the first call to next() will bump it to 0
- self.counter = -1
-
- def next(self):
- self.counter += 1
- if self.counter > 0:
- import random
- v = random.randint(0, 65535) # 16 bits
- return "{!s}{!s}".format(self.name, render_in_base(v, "0123456789ABCDEF", 4))
- else:
- return self.name
-
-
-class phraseEfi(object):
- """
- EFI Id generator that appends a random phrase to the given name.
- """
- words = ("Sun", "Moon", "Mars", "Soyuz", "Falcon", "Kuaizhou", "Gaganyaan")
-
- def __init__(self, name):
- self.name = name
- # So the first call to next() will bump it to 0
- self.counter = -1
-
- def next(self):
- self.counter += 1
- if self.counter > 0:
- import random
- desired_length = 1 + self.counter // 5
- v = random.randint(0, len(self.words) ** desired_length)
- return "{!s}{!s}".format(self.name, render_in_base(v, self.words))
- else:
- return self.name
-
-
-def get_efi_suffix_generator(name):
- """
- Handle EFI bootloader Ids with ${} for suffix-processing.
- """
- if "${" not in name:
- raise ValueError("Misplaced call to get_efi_suffix_generator, no ${}")
- if not name.endswith("}"):
- raise ValueError("Misplaced call to get_efi_suffix_generator, no trailing ${}")
- if name.count("${") > 1:
- raise ValueError("EFI ID {!r} contains multiple generators".format(name))
- import re
- prefix, generator_name = re.match("(.*)\${([^}]*)}$", name).groups()
- if generator_name not in ("SERIAL", "RANDOM", "PHRASE"):
- raise ValueError("EFI suffix {!r} is unknown".format(generator_name))
-
- generator = None
- if generator_name == "SERIAL":
- generator = serialEfi(prefix)
- elif generator_name == "RANDOM":
- generator = randomEfi(prefix)
- elif generator_name == "PHRASE":
- generator = phraseEfi(prefix)
- if generator is None:
- raise ValueError("EFI suffix {!r} is unsupported".format(generator_name))
-
- return generator
-
-
-def change_efi_suffix(efi_directory, bootloader_id):
- """
- Returns a label based on @p bootloader_id that is usable within
- @p efi_directory. If there is a ${} suffix marker
- in the given id, tries to generate a unique label.
- """
- if bootloader_id.endswith("}") and "${" in bootloader_id:
- # Do 10 attempts with any suffix generator
- g = SuffixIterator(10, get_efi_suffix_generator(bootloader_id))
- else:
- # Just one attempt
- g = [bootloader_id]
-
- for candidate_name in g:
- if not os.path.exists(os.path.join(efi_directory, candidate_name)):
- return candidate_name
- return bootloader_id
-
-
-def efi_label(efi_directory):
- """
- Returns a sanitized label, possibly unique, that can be
- used within @p efi_directory.
- """
- if "efiBootloaderId" in libcalamares.job.configuration:
- efi_bootloader_id = change_efi_suffix(efi_directory, libcalamares.job.configuration["efiBootloaderId"])
- else:
- branding = libcalamares.globalstorage.value("branding")
- efi_bootloader_id = branding["bootloaderEntryName"]
-
- return efi_bootloader_id.translate(file_name_sanitizer)
-
-
-def efi_word_size():
- # get bitness of the underlying UEFI
- try:
- sysfile = open("/sys/firmware/efi/fw_platform_size", "r")
- efi_bitness = sysfile.read(2)
- except Exception:
- # if the kernel is older than 4.0, the UEFI bitness likely isn't
- # exposed to the userspace so we assume a 64 bit UEFI here
- efi_bitness = "64"
- return efi_bitness
-
-
-def efi_boot_next():
- """
- Tell EFI to definitely boot into the just-installed
- system next time.
- """
- boot_mgr = libcalamares.job.configuration["efiBootMgr"]
- boot_entry = None
- efi_bootvars = subprocess.check_output([boot_mgr], universal_newlines=True)
- for line in efi_bootvars.split('\n'):
- if not line:
- continue
- words = line.split()
- if len(words) >= 2 and words[0] == "BootOrder:":
- boot_entry = words[1].split(',')[0]
- break
- if boot_entry:
- subprocess.call([boot_mgr, "-n", boot_entry])
-
-
-def get_kernels(installation_root_path):
- """
- Gets a list of kernels and associated values for each kernel. This will work as is for many distros.
- If not, it should be safe to modify it to better support your distro
-
- :param installation_root_path: A string with the absolute path to the root of the installation
-
- Returns a list of 3-tuples
-
- Each 3-tuple contains the kernel, kernel_type and kernel_version
- """
- try:
- kernel_search_path = libcalamares.job.configuration["kernelSearchPath"]
- except KeyError:
- libcalamares.utils.warning("No kernel pattern found in configuration, using '/usr/lib/modules'")
- kernel_search_path = "/usr/lib/modules"
- pass
-
- kernel_list = []
-
- try:
- kernel_pattern = libcalamares.job.configuration["kernelPattern"]
- except KeyError:
- libcalamares.utils.warning("No kernel pattern found in configuration, using 'vmlinuz'")
- kernel_pattern = "vmlinuz"
- pass
-
- # find all the installed kernels
- for root, dirs, files in os.walk(os.path.join(installation_root_path, kernel_search_path.lstrip('/'))):
- for file in files:
- if re.search(kernel_pattern, file):
- rel_root = os.path.relpath(root, installation_root_path)
- kernel_list.append((os.path.join(rel_root, file), "default", os.path.basename(root)))
-
- return kernel_list
-
-
-def install_clr_boot_manager():
- """
- Installs clr-boot-manager as the bootloader for EFI systems
- """
- libcalamares.utils.debug("Bootloader: clr-boot-manager")
-
- installation_root_path = libcalamares.globalstorage.value("rootMountPoint")
- kernel_config_path = os.path.join(installation_root_path, "etc", "kernel")
- os.makedirs(kernel_config_path, exist_ok=True)
- cmdline_path = os.path.join(kernel_config_path, "cmdline")
-
- # Get the kernel params
- uuid = get_uuid()
- kernel_params = " ".join(get_kernel_params(uuid))
-
- # Write out the cmdline file for clr-boot-manager
- with open(cmdline_path, "w") as cmdline_file:
- cmdline_file.write(kernel_params)
-
- check_target_env_call(["clr-boot-manager", "update"])
-
-
-def install_systemd_boot(efi_directory):
- """
- Installs systemd-boot as bootloader for EFI setups.
-
- :param efi_directory:
- """
- libcalamares.utils.debug("Bootloader: systemd-boot")
- installation_root_path = libcalamares.globalstorage.value("rootMountPoint")
- install_efi_directory = installation_root_path + efi_directory
- uuid = get_uuid()
- loader_path = os.path.join(install_efi_directory,
- "loader",
- "loader.conf")
- subprocess.call(["bootctl",
- "--path={!s}".format(install_efi_directory),
- "install"])
-
- for (kernel, kernel_type, kernel_version) in get_kernels(installation_root_path):
- create_systemd_boot_conf(installation_root_path,
- efi_directory,
- uuid,
- kernel,
- kernel_version)
-
- create_loader(loader_path, installation_root_path)
-
-
-def get_grub_efi_parameters():
- """
- Returns a 3-tuple of suitable parameters for GRUB EFI installation,
- depending on the host machine architecture. The return is
- - target name
- - grub.efi name
- - boot.efi name
- all three are strings. May return None if there is no suitable
- set for the current machine. May return unsuitable values if the
- host architecture is unknown (e.g. defaults to x86_64).
- """
- import platform
- efi_bitness = efi_word_size()
- cpu_type = platform.machine()
-
- if efi_bitness == "32":
- # Assume all 32-bitters are legacy x86
- return "i386-efi", "grubia32.efi", "bootia32.efi"
- elif efi_bitness == "64" and cpu_type == "aarch64":
- return "arm64-efi", "grubaa64.efi", "bootaa64.efi"
- elif efi_bitness == "64" and cpu_type == "loongarch64":
- return "loongarch64-efi", "grubloongarch64.efi", "bootloongarch64.efi"
- elif efi_bitness == "64":
- # If it's not ARM, must by AMD64
- return "x86_64-efi", "grubx64.efi", "bootx64.efi"
- libcalamares.utils.warning(
- "Could not find GRUB parameters for bits {b} and cpu {c}".format(b=repr(efi_bitness), c=repr(cpu_type)))
- return None
-
-
-def run_grub_mkconfig(partitions, output_file):
- """
- Runs grub-mkconfig in the target environment
-
- :param partitions: The partitions list from global storage
- :param output_file: A string containing the path to the generating grub config file
- :return:
- """
-
- # zfs needs an environment variable set for grub-mkconfig
- if any([is_zfs_root(partition) for partition in partitions]):
- check_target_env_call(["sh", "-c", "ZPOOL_VDEV_NAME_PATH=1 " +
- libcalamares.job.configuration["grubMkconfig"] + " -o " + output_file])
- else:
- # The input file /etc/default/grub should already be filled out by the
- # grubcfg job module.
- check_target_env_call([libcalamares.job.configuration["grubMkconfig"], "-o", output_file])
-
-
-def run_grub_install(fw_type, partitions, efi_directory):
- """
- Runs grub-install in the target environment
-
- :param fw_type: A string which is "efi" for UEFI installs. Any other value results in a BIOS install
- :param partitions: The partitions list from global storage
- :param efi_directory: The path of the efi directory relative to the root of the install
- :return:
- """
-
- is_zfs = any([is_zfs_root(partition) for partition in partitions])
-
- # zfs needs an environment variable set for grub
- if is_zfs:
- check_target_env_call(["sh", "-c", "echo ZPOOL_VDEV_NAME_PATH=1 >> /etc/environment"])
-
- if fw_type == "efi":
- assert efi_directory is not None
- efi_bootloader_id = efi_label(efi_directory)
- efi_target, efi_grub_file, efi_boot_file = get_grub_efi_parameters()
-
- if is_zfs:
- check_target_env_call(["sh", "-c", "ZPOOL_VDEV_NAME_PATH=1 " + libcalamares.job.configuration["grubInstall"]
- + " --target=" + efi_target + " --efi-directory=" + efi_directory
- + " --bootloader-id=" + efi_bootloader_id + " --force"])
- else:
- check_target_env_call([libcalamares.job.configuration["grubInstall"],
- "--target=" + efi_target,
- "--efi-directory=" + efi_directory,
- "--bootloader-id=" + efi_bootloader_id,
- "--force"])
- else:
- assert efi_directory is None
- if libcalamares.globalstorage.value("bootLoader") is None:
- return
-
- boot_loader = libcalamares.globalstorage.value("bootLoader")
- if boot_loader["installPath"] is None:
- return
-
- if is_zfs:
- check_target_env_call(["sh", "-c", "ZPOOL_VDEV_NAME_PATH=1 "
- + libcalamares.job.configuration["grubInstall"]
- + " --target=i386-pc --recheck --force "
- + boot_loader["installPath"]])
- else:
- check_target_env_call([libcalamares.job.configuration["grubInstall"],
- "--target=i386-pc",
- "--recheck",
- "--force",
- boot_loader["installPath"]])
-
-
-def install_grub(efi_directory, fw_type):
- """
- Installs grub as bootloader, either in pc or efi mode.
-
- :param efi_directory:
- :param fw_type:
- """
- # get the partition from global storage
- partitions = libcalamares.globalstorage.value("partitions")
- if not partitions:
- libcalamares.utils.warning(_("Failed to install grub, no partitions defined in global storage"))
- return
-
- if fw_type == "efi":
- libcalamares.utils.debug("Bootloader: grub (efi)")
- installation_root_path = libcalamares.globalstorage.value("rootMountPoint")
- install_efi_directory = installation_root_path + efi_directory
-
- if not os.path.isdir(install_efi_directory):
- os.makedirs(install_efi_directory)
-
- efi_bootloader_id = efi_label(efi_directory)
-
- efi_target, efi_grub_file, efi_boot_file = get_grub_efi_parameters()
-
- run_grub_install(fw_type, partitions, efi_directory)
-
- # VFAT is weird, see issue CAL-385
- install_efi_directory_firmware = (vfat_correct_case(
- install_efi_directory,
- "EFI"))
- if not os.path.exists(install_efi_directory_firmware):
- os.makedirs(install_efi_directory_firmware)
-
- # there might be several values for the boot directory
- # most usual they are boot, Boot, BOOT
-
- install_efi_boot_directory = (vfat_correct_case(
- install_efi_directory_firmware,
- "boot"))
- if not os.path.exists(install_efi_boot_directory):
- os.makedirs(install_efi_boot_directory)
-
- # Workaround for some UEFI firmwares
- fallback = "installEFIFallback"
- libcalamares.utils.debug("UEFI Fallback: " + str(libcalamares.job.configuration.get(fallback, "")))
- if libcalamares.job.configuration.get(fallback, True):
- libcalamares.utils.debug(" .. installing '{!s}' fallback firmware".format(efi_boot_file))
- efi_file_source = os.path.join(install_efi_directory_firmware,
- efi_bootloader_id,
- efi_grub_file)
- efi_file_target = os.path.join(install_efi_boot_directory, efi_boot_file)
-
- shutil.copy2(efi_file_source, efi_file_target)
- else:
- libcalamares.utils.debug("Bootloader: grub (bios)")
- run_grub_install(fw_type, partitions, None)
-
- run_grub_mkconfig(partitions, libcalamares.job.configuration["grubCfg"])
-
-
-def install_secureboot(efi_directory):
- """
- Installs the secureboot shim in the system by calling efibootmgr.
- """
- efi_bootloader_id = efi_label(efi_directory)
-
- installation_root_path = libcalamares.globalstorage.value("rootMountPoint")
- install_efi_directory = installation_root_path + efi_directory
-
- if efi_word_size() == "64":
- install_efi_bin = "shimx64.efi"
- elif efi_word_size() == "32":
- install_efi_bin = "shimia32.efi"
- else:
- libcalamares.utils.warning(f"Unknown efi word size of {efi_word_size()} found")
- return None
-
- # Copied, roughly, from openSUSE's install script,
- # and pythonified. *disk* is something like /dev/sda,
- # while *drive* may return "(disk/dev/sda,gpt1)" ..
- # we're interested in the numbers in the second part
- # of that tuple.
- efi_drive = subprocess.check_output([
- libcalamares.job.configuration["grubProbe"],
- "-t", "drive", "--device-map=", install_efi_directory]).decode("ascii")
- efi_disk = subprocess.check_output([
- libcalamares.job.configuration["grubProbe"],
- "-t", "disk", "--device-map=", install_efi_directory]).decode("ascii")
-
- efi_drive_partition = efi_drive.replace("(", "").replace(")", "").split(",")[1]
- # Get the first run of digits from the partition
- efi_partition_number = None
- c = 0
- start = None
- while c < len(efi_drive_partition):
- if efi_drive_partition[c].isdigit() and start is None:
- start = c
- if not efi_drive_partition[c].isdigit() and start is not None:
- efi_partition_number = efi_drive_partition[start:c]
- break
- c += 1
- if efi_partition_number is None:
- raise ValueError("No partition number found for %s" % install_efi_directory)
-
- subprocess.call([
- libcalamares.job.configuration["efiBootMgr"],
- "-c",
- "-w",
- "-L", efi_bootloader_id,
- "-d", efi_disk,
- "-p", efi_partition_number,
- "-l", install_efi_directory + "/" + install_efi_bin])
-
- efi_boot_next()
-
- # The input file /etc/default/grub should already be filled out by the
- # grubcfg job module.
- check_target_env_call([libcalamares.job.configuration["grubMkconfig"],
- "-o", os.path.join(efi_directory, "EFI",
- efi_bootloader_id, "grub.cfg")])
-
-
-def vfat_correct_case(parent, name):
- for candidate in os.listdir(parent):
- if name.lower() == candidate.lower():
- return os.path.join(parent, candidate)
- return os.path.join(parent, name)
-
-
-def efi_partitions(efi_boot_path):
- """
- The (one) partition mounted on @p efi_boot_path, or an empty list.
- """
- return [p for p in libcalamares.globalstorage.value("partitions") if p["mountPoint"] == efi_boot_path]
-
-
-def update_refind_config(efi_directory, installation_root_path):
- """
- :param efi_directory: The path to the efi directory relative to the root
- :param installation_root_path: The path to the root of the installation
- """
- try:
- kernel_list = libcalamares.job.configuration["refindKernelList"]
- except KeyError:
- libcalamares.utils.warning('refindKernelList not set. Skipping updating refind.conf')
- return
-
- # Update the config in the file
- for line in fileinput.input(installation_root_path + efi_directory + "/EFI/refind/refind.conf", inplace=True):
- line = line.strip()
- if line.startswith("#extra_kernel_version_strings") or line.startswith("extra_kernel_version_strings"):
- line = line.lstrip("#")
- for kernel in kernel_list:
- if kernel not in line:
- line += "," + kernel
- print(line)
-
-
-def install_refind(efi_directory):
- try:
- installation_root_path = libcalamares.globalstorage.value("rootMountPoint")
- except KeyError:
- libcalamares.utils.warning('Global storage value "rootMountPoint" missing')
-
- install_efi_directory = installation_root_path + efi_directory
- uuid = get_uuid()
- kernel_params = " ".join(get_kernel_params(uuid))
- conf_path = os.path.join(installation_root_path, "boot/refind_linux.conf")
-
- check_target_env_call(["refind-install"])
-
- with open(conf_path, "r") as refind_file:
- filedata = [x.strip() for x in refind_file.readlines()]
-
- with open(conf_path, 'w') as refind_file:
- for line in filedata:
- if line.startswith('"Boot with standard options"'):
- line = f'"Boot with standard options" "{kernel_params}"'
- elif line.startswith('"Boot to single-user mode"'):
- line = f'"Boot to single-user mode" "{kernel_params}" single'
- refind_file.write(line + "\n")
-
- update_refind_config(efi_directory, installation_root_path)
-
-
-def prepare_bootloader(fw_type):
- """
- Prepares bootloader.
- Based on value 'efi_boot_loader', it either calls systemd-boot
- or grub to be installed.
-
- :param fw_type:
- :return:
- """
-
- # Get the boot loader selection from global storage if it is set in the config file
- try:
- gs_name = libcalamares.job.configuration["efiBootLoaderVar"]
- if libcalamares.globalstorage.contains(gs_name):
- efi_boot_loader = libcalamares.globalstorage.value(gs_name)
- else:
- libcalamares.utils.warning(
- f"Specified global storage value not found in global storage")
- return None
- except KeyError:
- # If the conf value for using global storage is not set, use the setting from the config file.
- try:
- efi_boot_loader = libcalamares.job.configuration["efiBootLoader"]
- except KeyError:
- if fw_type == "efi":
- libcalamares.utils.warning("Configuration missing both efiBootLoader and efiBootLoaderVar on an EFI "
- "system, bootloader not installed")
- return
- else:
- pass
-
- # If the user has selected not to install bootloader, bail out here
- if efi_boot_loader.casefold() == "none":
- libcalamares.utils.debug("Skipping bootloader installation since no bootloader was selected")
- return None
-
- efi_directory = libcalamares.globalstorage.value("efiSystemPartition")
-
- if efi_boot_loader == "clr-boot-manager":
- if fw_type != "efi":
- # Grub has to be installed first on non-EFI systems
- install_grub(efi_directory, fw_type)
- install_clr_boot_manager()
- elif efi_boot_loader == "systemd-boot" and fw_type == "efi":
- install_systemd_boot(efi_directory)
- elif efi_boot_loader == "sb-shim" and fw_type == "efi":
- install_secureboot(efi_directory)
- elif efi_boot_loader == "refind" and fw_type == "efi":
- install_refind(efi_directory)
- elif efi_boot_loader == "grub" or fw_type != "efi":
- install_grub(efi_directory, fw_type)
- else:
- libcalamares.utils.debug("WARNING: the combination of "
- "boot-loader '{!s}' and firmware '{!s}' "
- "is not supported.".format(efi_boot_loader, fw_type))
-
-
-def run():
- """
- Starts procedure and passes 'fw_type' to other routine.
-
- :return:
- """
-
- fw_type = libcalamares.globalstorage.value("firmwareType")
-
- if libcalamares.globalstorage.value("bootLoader") is None and fw_type != "efi":
- libcalamares.utils.warning("Non-EFI system, and no bootloader is set.")
- return None
-
- partitions = libcalamares.globalstorage.value("partitions")
- if fw_type == "efi":
- efi_system_partition = libcalamares.globalstorage.value("efiSystemPartition")
- esp_found = [p for p in partitions if p["mountPoint"] == efi_system_partition]
- if not esp_found:
- libcalamares.utils.warning("EFI system, but nothing mounted on {!s}".format(efi_system_partition))
- return None
-
- try:
- prepare_bootloader(fw_type)
- except subprocess.CalledProcessError as e:
- libcalamares.utils.warning(str(e))
- libcalamares.utils.debug("stdout:" + str(e.stdout))
- libcalamares.utils.debug("stderr:" + str(e.stderr))
- return (_("Bootloader installation error"),
- _("The bootloader could not be installed. The installation command
{!s}
returned error "
- "code {!s}.")
- .format(e.cmd, e.returncode))
-
- return None
diff --git a/src/modules/bootloader/module.desc b/src/modules/bootloader/module.desc
deleted file mode 100644
index 44a1c0ee56..0000000000
--- a/src/modules/bootloader/module.desc
+++ /dev/null
@@ -1,10 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
----
-type: "job"
-interface: "python"
-name: "bootloader"
-script: "main.py"
-# The partition module sets up the EFI firmware type
-# global key, which is used to decide how to install.
-requiredModules: [ "partition" ]
diff --git a/src/modules/bootloader/test.yaml b/src/modules/bootloader/test.yaml
deleted file mode 100644
index 4623b55f7d..0000000000
--- a/src/modules/bootloader/test.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-rootMountPoint: /tmp/mount
-bootLoader:
- installPath: /dev/sdb
-branding:
- shortProductName: "Generic Distro"
diff --git a/src/modules/bootloader/tests/CMakeTests.txt b/src/modules/bootloader/tests/CMakeTests.txt
deleted file mode 100644
index e13529258d..0000000000
--- a/src/modules/bootloader/tests/CMakeTests.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# We have tests to exercise some of the module internals.
-# Those tests conventionally live in Python files here in the tests/ directory. Add them.
-add_test(
- NAME test-bootloader-efiname
- COMMAND env PYTHONPATH=.: python3 ${CMAKE_CURRENT_LIST_DIR}/test-bootloader-efiname.py
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
-)
diff --git a/src/modules/bootloader/tests/test-bootloader-efiname.py b/src/modules/bootloader/tests/test-bootloader-efiname.py
deleted file mode 100644
index 4756fd7fd9..0000000000
--- a/src/modules/bootloader/tests/test-bootloader-efiname.py
+++ /dev/null
@@ -1,67 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# Calamares Boilerplate
-import libcalamares
-libcalamares.globalstorage = libcalamares.GlobalStorage(None)
-libcalamares.globalstorage.insert("testing", True)
-
-# Module prep-work
-from src.modules.bootloader import main
-
-# Specific Bootloader test
-g = main.get_efi_suffix_generator("derp${SERIAL}")
-assert g is not None
-assert g.next() == "derp" # First time, no suffix
-for n in range(9):
- print(g.next())
-# We called next() 10 times in total, starting from 0
-assert g.next() == "derp10"
-
-g = main.get_efi_suffix_generator("derp${RANDOM}")
-assert g is not None
-for n in range(10):
- print(g.next())
-# it's random, nothing to assert
-
-g = main.get_efi_suffix_generator("derp${PHRASE}")
-assert g is not None
-for n in range(10):
- print(g.next())
-# it's random, nothing to assert
-
-# Check invalid things
-try:
- g = main.get_efi_suffix_generator("derp")
- raise TypeError("Shouldn't get generator (no indicator)")
-except ValueError as e:
- pass
-
-try:
- g = main.get_efi_suffix_generator("derp${HEX}")
- raise TypeError("Shouldn't get generator (unknown indicator)")
-except ValueError as e:
- pass
-
-try:
- g = main.get_efi_suffix_generator("derp${SERIAL}x")
- raise TypeError("Shouldn't get generator (trailing garbage)")
-except ValueError as e:
- pass
-
-try:
- g = main.get_efi_suffix_generator("derp${SERIAL}${RANDOM}")
- raise TypeError("Shouldn't get generator (multiple indicators)")
-except ValueError as e:
- pass
-
-
-# Try the generator (assuming no calamares- test files exist in /tmp)
-import os
-assert "calamares-single" == main.change_efi_suffix("/tmp", "calamares-single")
-assert "calamares-serial" == main.change_efi_suffix("/tmp", "calamares-serial${SERIAL}")
-try:
- os.makedirs("/tmp/calamares-serial", exist_ok=True)
- assert "calamares-serial1" == main.change_efi_suffix("/tmp", "calamares-serial${SERIAL}")
-finally:
- os.rmdir("/tmp/calamares-serial")
diff --git a/src/modules/contextualprocess/contextualprocess.conf b/src/modules/contextualprocess/contextualprocess.conf
index ba8a8bf1d9..1a599ff7ff 100644
--- a/src/modules/contextualprocess/contextualprocess.conf
+++ b/src/modules/contextualprocess/contextualprocess.conf
@@ -48,15 +48,57 @@
# as can be given to the *script* key in the shellprocess module.
# See shellprocess.conf for documentation on valid values.
---
-dontChroot: false
-firmwareType:
- efi:
- - "-pkg remove efi-firmware"
- - command: "-mkinitramfsrd -abgn"
- timeout: 120 # This is slow
- bios: "-pkg remove bios-firmware"
- "": "/bin/false no-firmware-type-set"
- "*": "/bin/false some-other-firmware-value"
-"branding.shortVersion":
- "2020.2": "/bin/false february"
- "2019.4": "/bin/true april"
+dontChroot: true
+#firmwareType:
+# efi:
+# - "-pkg remove efi-firmware"
+# - command: "-mkinitramfsrd -abgn"
+# timeout: 120 # This is slow
+# bios: "-pkg remove bios-firmware"
+# "": "/bin/false no-firmware-type-set"
+# "*": "/bin/false some-other-firmware-value"
+#"branding.shortVersion":
+# "2020.2": "/bin/false february"
+# "2019.4": "/bin/true april"
+#"packagechooser_packagechooserq":
+"packagechooser_kstars_indi":
+ "kstars_indi_stable":
+ - command: "-/bin/zsh -i -c use-astro-stable"
+ timeout: 40
+ "kstars_indi_bleeding_edge":
+ - command: "-/bin/zsh -i -c use-astro-bleeding-edge"
+ timeout: 40
+
+"packagechooser_power":
+ "power_max_current":
+ - command: "-/bin/zsh -i -c power_max_current"
+ timeout: 40
+ "power_standard":
+ timeout: 40
+
+"packagechooser_gps":
+ "gps_on":
+ - command: "-/bin/zsh -i -c gps_on"
+ timeout: 40
+ "gps_ublox_on":
+ - command: "-/bin/zsh -i -c gps_ublox_on"
+ timeout: 40
+ "gps_off":
+ - command: "-/bin/zsh -i -c gps_off"
+ timeout: 40
+
+"packagechooser_ftp":
+ "ftp_on":
+ - command: "-/bin/zsh -i -c ftp_on"
+ timeout: 40
+ "ftp_off":
+ - command: "-/bin/zsh -i -c ftp_off"
+ timeout: 40
+
+"packagechooser_bluetooth":
+ "bluetooth_on":
+ - command: "-/bin/zsh -i -c bluetooth_on"
+ timeout: 40
+ "bluetooth_off":
+ - command: "-/bin/zsh -i -c bluetooth_off"
+ timeout: 40
diff --git a/src/modules/displaymanager/displaymanager.conf b/src/modules/displaymanager/displaymanager.conf
deleted file mode 100644
index d0a6a35919..0000000000
--- a/src/modules/displaymanager/displaymanager.conf
+++ /dev/null
@@ -1,80 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# Configure one or more display managers (e.g. SDDM)
-# with a "best effort" approach.
-#
-# This module also sets up autologin, if the feature is enabled in
-# globalstorage (where it would come from the users page).
----
-# The DM module attempts to set up all the DMs found in this list, in the
-# precise order listed. The displaymanagers list can also be set in
-# globalstorage, and in that case it overrides the setting here.
-#
-# If *sysconfigSetup* is set to *true* (see below, only relevant for
-# openSUSE derivatives) then this list is ignored and only sysconfig
-# is attempted. You can also list "sysconfig" in this list instead.
-#
-displaymanagers:
- - slim
- - sddm
- - lightdm
- - gdm
- - mdm
- - lxdm
- - greetd
-
-# Enable the following settings to force a desktop environment
-# in your displaymanager configuration file. This will attempt
-# to configure the given DE (without checking if it is installed).
-# The DM configuration for each potential DM may **or may not**
-# support configuring a default DE, so the keys are mandatory
-# but their interpretation is up to the DM configuration.
-#
-# Subkeys of *defaultDesktopEnvironment* are (all mandatory):
-# - *executable* a full path to an executable
-# - *desktopFile* a .desktop filename
-#
-# If this is **not** set, then Calamares will look for installed
-# DE's and pick the first one it finds that is actually installed.
-#
-# If this **is** set, and the *executable* key doesn't point to
-# an installed file, then the .desktop file's TryExec key is
-# used instead.
-#
-
-#defaultDesktopEnvironment:
-# executable: "startkde"
-# desktopFile: "plasma"
-
-#If true, try to ensure that the user, group, /var directory etc. for the
-#display manager are set up correctly. This is normally done by the distribution
-#packages, and best left to them. Therefore, it is disabled by default.
-basicSetup: false
-
-# If true, setup autologin for openSUSE. This only makes sense on openSUSE
-# derivatives or other systems where /etc/sysconfig/displaymanager exists.
-#
-# The preferred way to pick sysconfig is to just list it in the
-# *displaymanagers* list (as the only one).
-#
-sysconfigSetup: false
-
-# Some DMs have specific settings. These can be customized here.
-#
-# greetd has configurable user and group; the user and group is created if it
-# does not exist, and the user is set as default-session user.
-#
-# Some greeters for greetd (e.g gtkgreet or regreet) have support for a user's GTK CSS style to change appearance.
-#
-# lightdm has a list of greeters to look for, preferring them in order if
-# they are installed (if not, picks the alphabetically first greeter that is installed).
-#
-greetd:
- greeter_user: "tom_bombadil"
- greeter_group: "wheel"
- greeter_css_location: "/etc/greetd/style.css"
-lightdm:
- preferred_greeters: ["lightdm-greeter.desktop", "slick-greeter.desktop"]
-sddm:
- configuration_file: "/etc/sddm.conf"
diff --git a/src/modules/displaymanager/displaymanager.schema.yaml b/src/modules/displaymanager/displaymanager.schema.yaml
deleted file mode 100644
index dcd2baa31e..0000000000
--- a/src/modules/displaymanager/displaymanager.schema.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-FileCopyrightText: 2020 Adriaan de Groot
-# SPDX-License-Identifier: GPL-3.0-or-later
----
-$schema: https://json-schema.org/schema#
-$id: https://calamares.io/schemas/displaymanager
-additionalProperties: false
-type: object
-properties:
- displaymanagers:
- type: array
- items:
- type: string
- enum: [slim, sddm, lightdm, gdm, mdm, lxdm, greetd]
- minItems: 1 # Must be non-empty, if present at all
- defaultDesktopEnvironment:
- type: object
- properties:
- executable: { type: string }
- desktopFile: { type: string }
- required: [ executable, desktopFile ]
- basicSetup: { type: boolean, default: false }
- sysconfigSetup: { type: boolean, default: false }
- greetd:
- type: object
- properties:
- greeter_user: { type: string }
- greeter_group: { type: string }
- greeter_css_location: { type: string }
- additionalProperties: false
- lightdm:
- type: object
- properties:
- preferred_greeters: { type: array, items: { type: string } }
- additionalProperties: false
- sddm:
- type: object
- properties:
- configuration_file: { type: string }
- additionalProperties: false
diff --git a/src/modules/displaymanager/main.py b/src/modules/displaymanager/main.py
deleted file mode 100644
index 7ec6af774f..0000000000
--- a/src/modules/displaymanager/main.py
+++ /dev/null
@@ -1,1030 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2014-2018 Philip Müller
-# SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac
-# SPDX-FileCopyrightText: 2014 Kevin Kofler
-# SPDX-FileCopyrightText: 2017 Alf Gaida
-# SPDX-FileCopyrightText: 2017 Bernhard Landauer
-# SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot
-# SPDX-FileCopyrightText: 2019 Dominic Hayes
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# Calamares is Free Software: see the License-Identifier above.
-#
-
-import abc
-import os
-import libcalamares
-
-from libcalamares.utils import gettext_path, gettext_languages
-
-import gettext
-_translation = gettext.translation("calamares-python",
- localedir=gettext_path(),
- languages=gettext_languages(),
- fallback=True)
-_ = _translation.gettext
-_n = _translation.ngettext
-
-class DesktopEnvironment:
- """
- Desktop Environment -- some utility functions for a desktop
- environment (e.g. finding out if it is installed). This
- is independent of the *Display Manager*, which is what
- we're configuring in this module.
- """
- def __init__(self, exec, desktop):
- self.executable = exec
- self.desktop_file = desktop
-
- def _search_executable(self, root_mount_point, pathname):
- """
- Search for @p pathname within @p root_mount_point .
- If the pathname is absolute, just check there inside
- the target, otherwise earch in a sort-of-sensible $PATH.
-
- Returns the full (including @p root_mount_point) path
- to that executable, or None.
- """
- if pathname.startswith("/"):
- path = [""]
- else:
- path = ["/bin/", "/usr/bin/", "/sbin/", "/usr/local/bin/"]
-
- for p in path:
- absolute_path = "{!s}{!s}{!s}".format(root_mount_point, p, pathname)
- if os.path.exists(absolute_path):
- return absolute_path
- return None
-
- def _search_tryexec(self, root_mount_point, absolute_desktop_file):
- """
- Check @p absolute_desktop_file for a TryExec line and, if that is
- found, search for the command (executable pathname) within
- @p root_mount_point. The .desktop file must live within the
- target root.
-
- Returns the full (including @p root_mount_point) for the executable
- from TryExec, or None.
- """
- assert absolute_desktop_file.startswith(root_mount_point)
- with open(absolute_desktop_file, "r") as f:
- for tryexec_line in [x for x in f.readlines() if x.startswith("TryExec")]:
- try:
- key, value = tryexec_line.split("=")
- if key.strip() == "TryExec":
- return self._search_executable(root_mount_point, value.strip())
- except:
- pass
- return None
-
- def find_executable(self, root_mount_point):
- """
- Returns the full path of the configured executable within @p root_mount_point,
- or None if it isn't found. May search in a semi-sensible $PATH.
- """
- return self._search_executable(root_mount_point, self.executable)
-
- def find_desktop_file(self, root_mount_point):
- """
- Returns the full path of the .desktop file within @p root_mount_point,
- or None if it isn't found. Searches both X11 and Wayland sessions.
- """
- x11_sessions = "{!s}/usr/share/xsessions/{!s}.desktop".format(root_mount_point, self.desktop_file)
- wayland_sessions = "{!s}/usr/share/wayland-sessions/{!s}.desktop".format(root_mount_point, self.desktop_file)
- for candidate in (x11_sessions, wayland_sessions):
- if os.path.exists(candidate):
- return candidate
- return None
-
- def is_installed(self, root_mount_point):
- """
- Check if this environment is installed in the
- target system at @p root_mount_point.
- """
- desktop_file = self.find_desktop_file(root_mount_point)
- if desktop_file is None:
- return False
-
- return (self.find_executable(root_mount_point) is not None or
- self._search_tryexec(root_mount_point, desktop_file) is not None)
-
- def update_from_desktop_file(self, root_mount_point):
- """
- Find thie DE in the target system at @p root_mount_point.
- This can update the *executable* configuration value if
- the configured executable isn't found but the TryExec line
- from the .desktop file is.
-
- The .desktop file is mandatory for a DE.
-
- Returns True if the DE is installed.
- """
- desktop_file = self.find_desktop_file(root_mount_point)
- if desktop_file is None:
- return False
-
- executable_file = self.find_executable(root_mount_point)
- if executable_file is not None:
- # .desktop found and executable as well.
- return True
-
- executable_file = self._search_tryexec(root_mount_point, desktop_file)
- if executable_file is not None:
- # Found from the .desktop file, so update own executable config
- if root_mount_point and executable_file.startswith(root_mount_point):
- executable_file = executable_file[len(root_mount_point):]
- if not executable_file:
- # Somehow chopped down to nothing
- return False
-
- if executable_file[0] != "/":
- executable_file = "/" + executable_file
- self.executable = executable_file
- return True
- # This is to double-check
- return self.is_installed(root_mount_point)
-
-
-# This is the list of desktop environments that Calamares looks
-# for; if no default environment is **explicitly** configured
-# in the `displaymanager.conf` then the first one from this list
-# that is found, is used.
-#
-# Each DE has a sample executable to look for, and a .desktop filename.
-# If the executable exists, the DE is assumed to be installed
-# and to use the given .desktop filename.
-#
-# If the .desktop file exists and contains a TryExec line and that
-# TryExec executable exists (searched in /bin, /usr/bin, /sbin and
-# /usr/local/bin) then the DE is assumed to be installed
-# and to use that .desktop filename.
-desktop_environments = [
- DesktopEnvironment('/usr/bin/startplasma-x11', 'plasma'), # KDE Plasma 5.17+
- DesktopEnvironment('/usr/bin/startkde', 'plasma'), # KDE Plasma 5
- DesktopEnvironment('/usr/bin/startkde', 'kde-plasma'), # KDE Plasma 4
- DesktopEnvironment(
- '/usr/bin/budgie-desktop', 'budgie-desktop' # Budgie v10
- ),
- DesktopEnvironment(
- '/usr/bin/budgie-session', 'budgie-desktop' # Budgie v8
- ),
- DesktopEnvironment('/usr/bin/gnome-session', 'gnome'),
- DesktopEnvironment('/usr/bin/cinnamon-session-cinnamon', 'cinnamon'),
- DesktopEnvironment('/usr/bin/mate-session', 'mate'),
- DesktopEnvironment('/usr/bin/enlightenment_start', 'enlightenment'),
- DesktopEnvironment('/usr/bin/lxsession', 'LXDE'),
- DesktopEnvironment('/usr/bin/startlxde', 'LXDE'),
- DesktopEnvironment('/usr/bin/lxqt-session', 'lxqt'),
- DesktopEnvironment('/usr/bin/pekwm', 'pekwm'),
- DesktopEnvironment('/usr/bin/pantheon-session', 'pantheon'),
- DesktopEnvironment('/usr/bin/startdde', 'deepin'),
- DesktopEnvironment('/usr/bin/startxfce4', 'xfce'),
- DesktopEnvironment('/usr/bin/openbox-session', 'openbox'),
- DesktopEnvironment('/usr/bin/i3', 'i3'),
- DesktopEnvironment('/usr/bin/awesome', 'awesome'),
- DesktopEnvironment('/usr/bin/bspwm', 'bspwm'),
- DesktopEnvironment('/usr/bin/herbstluftwm', 'herbstluftwm'),
- DesktopEnvironment('/usr/bin/qtile', 'qtile'),
- DesktopEnvironment('/usr/bin/xmonad', 'xmonad'),
- DesktopEnvironment('/usr/bin/dwm', 'dwm'),
- DesktopEnvironment('/usr/bin/jwm', 'jwm'),
- DesktopEnvironment('/usr/bin/icewm-session', 'icewm-session'),
- DesktopEnvironment('/usr/bin/fvwm3', 'fvwm3'),
- DesktopEnvironment('/usr/bin/sway', 'sway'),
- DesktopEnvironment('/usr/bin/ukui-session', 'ukui'),
- DesktopEnvironment('/usr/bin/cutefish-session', 'cutefish-xsession'),
- DesktopEnvironment('/usr/bin/river', 'river'),
- DesktopEnvironment('/usr/bin/Hyprland', 'hyprland'),
-]
-
-
-def find_desktop_environment(root_mount_point):
- """
- Checks which desktop environment is currently installed.
-
- :param root_mount_point:
- :return:
- """
- libcalamares.utils.debug("Using rootMountPoint {!r}".format(root_mount_point))
- for desktop_environment in desktop_environments:
- if desktop_environment.is_installed(root_mount_point):
- libcalamares.utils.debug(".. selected DE {!s}".format(desktop_environment.desktop_file))
- return desktop_environment
- return None
-
-
-class DisplayManager(metaclass=abc.ABCMeta):
- """
- Display Manager -- a base class for DM configuration.
- """
- name = None
- executable = None
-
- def __init__(self, root_mount_point):
- self.root_mount_point = root_mount_point
-
- def have_dm(self):
- """
- Is this DM installed in the target system?
- The default implementation checks for `executable`
- in the target system.
- """
- if self.executable is None:
- return False
-
- bin_path = "{!s}/usr/bin/{!s}".format(self.root_mount_point, self.executable)
- sbin_path = "{!s}/usr/sbin/{!s}".format(self.root_mount_point, self.executable)
- return os.path.exists(bin_path) or os.path.exists(sbin_path)
-
- # The four abstract methods below are called in the order listed here.
- # They must all be implemented by subclasses, but not all of them
- # actually do something for all DMs.
-
- @abc.abstractmethod
- def basic_setup(self):
- """
- Do basic setup (e.g. users, groups, directory creation) for this DM.
- """
- # Some implementations do nothing
-
- @abc.abstractmethod
- def desktop_environment_setup(self, desktop_environment):
- """
- Configure the given @p desktop_environment as the default one, in
- the configuration files for this DM.
- """
- # Many implementations do nothing
-
- @abc.abstractmethod
- def greeter_setup(self):
- """
- Additional setup for the greeter.
- """
- # Most implementations do nothing
-
- @abc.abstractmethod
- def set_autologin(self, username, do_autologin, default_desktop_environment):
- """
- Configure the DM inside the given @p root_mount_point with
- autologin (if @p do_autologin is True) for the given @p username.
- If the DM supports it, set the default DE to @p default_desktop_environment
- as well.
- """
-
-
-class DMmdm(DisplayManager):
- name = "mdm"
- executable = "mdm"
-
- def set_autologin(self, username, do_autologin, default_desktop_environment):
- # Systems with MDM as Desktop Manager
- mdm_conf_path = os.path.join(self.root_mount_point, "etc/mdm/custom.conf")
-
- if os.path.exists(mdm_conf_path):
- with open(mdm_conf_path, 'r') as mdm_conf:
- text = mdm_conf.readlines()
-
- with open(mdm_conf_path, 'w') as mdm_conf:
- for line in text:
- if 'AutomaticLogin=' in line:
- line = ""
- if 'AutomaticLoginEnable=True' in line:
- line = ""
- if '[daemon]' in line:
- if do_autologin:
- line = (
- "[daemon]\n"
- "AutomaticLogin={!s}\n"
- "AutomaticLoginEnable=True\n".format(username)
- )
- else:
- line = (
- "[daemon]\n"
- "AutomaticLoginEnable=False\n"
- )
-
- mdm_conf.write(line)
- else:
- with open(mdm_conf_path, 'w') as mdm_conf:
- mdm_conf.write(
- '# Calamares - Configure automatic login for user\n'
- )
- mdm_conf.write('[daemon]\n')
-
- if do_autologin:
- mdm_conf.write("AutomaticLogin={!s}\n".format(username))
- mdm_conf.write('AutomaticLoginEnable=True\n')
- else:
- mdm_conf.write('AutomaticLoginEnable=False\n')
-
- def basic_setup(self):
- if libcalamares.utils.target_env_call(
- ['getent', 'group', 'mdm']
- ) != 0:
- libcalamares.utils.target_env_call(
- ['groupadd', '-g', '128', 'mdm']
- )
-
- if libcalamares.utils.target_env_call(
- ['getent', 'passwd', 'mdm']
- ) != 0:
- libcalamares.utils.target_env_call(
- ['useradd',
- '-c', '"Linux Mint Display Manager"',
- '-u', '128',
- '-g', 'mdm',
- '-d', '/var/lib/mdm',
- '-s', '/usr/bin/nologin',
- 'mdm'
- ]
- )
-
- libcalamares.utils.target_env_call(
- ['passwd', '-l', 'mdm']
- )
- libcalamares.utils.target_env_call(
- ['chown', 'root:mdm', '/var/lib/mdm']
- )
- libcalamares.utils.target_env_call(
- ['chmod', '1770', '/var/lib/mdm']
- )
-
- def desktop_environment_setup(self, default_desktop_environment):
- os.system(
- "sed -i \"s|default.desktop|{!s}.desktop|g\" "
- "{!s}/etc/mdm/custom.conf".format(
- default_desktop_environment.desktop_file,
- self.root_mount_point
- )
- )
-
- def greeter_setup(self):
- pass
-
-
-class DMgdm(DisplayManager):
- name = "gdm"
- executable = "gdm"
- config = None # Set by have_dm()
-
- def have_dm(self):
- """
- GDM exists with different executable names, so search
- for one of them and use it.
- """
- for executable, config in (
- ( "gdm", "etc/gdm/custom.conf" ),
- ( "gdm3", "etc/gdm3/daemon.conf" )
- ):
- bin_path = "{!s}/usr/bin/{!s}".format(self.root_mount_point, executable)
- sbin_path = "{!s}/usr/sbin/{!s}".format(self.root_mount_point, executable)
- if os.path.exists(bin_path) or os.path.exists(sbin_path):
- # Keep the found-executable name around for later
- self.executable = executable
- self.config = config
- return True
-
- return False
-
- def set_autologin(self, username, do_autologin, default_desktop_environment):
- if self.config is None:
- raise ValueError( "No config file for GDM has been set." )
-
- # Systems with GDM as Desktop Manager
- gdm_conf_path = os.path.join(self.root_mount_point, self.config)
-
- if os.path.exists(gdm_conf_path):
- with open(gdm_conf_path, 'r') as gdm_conf:
- text = gdm_conf.readlines()
-
- with open(gdm_conf_path, 'w') as gdm_conf:
- for line in text:
- if 'AutomaticLogin=' in line:
- line = ""
- if 'AutomaticLoginEnable=True' in line:
- line = ""
- if '[daemon]' in line:
- if do_autologin:
- line = (
- "[daemon]\n"
- "AutomaticLogin={!s}\n"
- "AutomaticLoginEnable=True\n".format(username)
- )
- else:
- line = "[daemon]\nAutomaticLoginEnable=False\n"
-
- gdm_conf.write(line)
- else:
- with open(gdm_conf_path, 'w') as gdm_conf:
- gdm_conf.write(
- '# Calamares - Enable automatic login for user\n'
- )
- gdm_conf.write('[daemon]\n')
-
- if do_autologin:
- gdm_conf.write("AutomaticLogin={!s}\n".format(username))
- gdm_conf.write('AutomaticLoginEnable=True\n')
- else:
- gdm_conf.write('AutomaticLoginEnable=False\n')
-
- if (do_autologin):
- accountservice_dir = "{!s}/var/lib/AccountsService/users".format(
- self.root_mount_point
- )
- userfile_path = "{!s}/{!s}".format(accountservice_dir, username)
- if os.path.exists(accountservice_dir):
- with open(userfile_path, "w") as userfile:
- userfile.write("[User]\n")
-
- if default_desktop_environment is not None:
- userfile.write("XSession={!s}\n".format(
- default_desktop_environment.desktop_file))
-
- userfile.write("Icon=\n")
-
- def basic_setup(self):
- if libcalamares.utils.target_env_call(
- ['getent', 'group', 'gdm']
- ) != 0:
- libcalamares.utils.target_env_call(
- ['groupadd', '-g', '120', 'gdm']
- )
-
- if libcalamares.utils.target_env_call(
- ['getent', 'passwd', 'gdm']
- ) != 0:
- libcalamares.utils.target_env_call(
- ['useradd',
- '-c', '"Gnome Display Manager"',
- '-u', '120',
- '-g', 'gdm',
- '-d', '/var/lib/gdm',
- '-s', '/usr/bin/nologin',
- 'gdm'
- ]
- )
-
- libcalamares.utils.target_env_call(
- ['passwd', '-l', 'gdm']
- )
- libcalamares.utils.target_env_call(
- ['chown', '-R', 'gdm:gdm', '/var/lib/gdm']
- )
-
- def desktop_environment_setup(self, desktop_environment):
- pass
-
- def greeter_setup(self):
- pass
-
-
-class DMlxdm(DisplayManager):
- name = "lxdm"
- executable = "lxdm"
-
- def set_autologin(self, username, do_autologin, default_desktop_environment):
- # Systems with LXDM as Desktop Manager
- lxdm_conf_path = os.path.join(self.root_mount_point, "etc/lxdm/lxdm.conf")
- text = []
-
- if os.path.exists(lxdm_conf_path):
- with open(lxdm_conf_path, 'r') as lxdm_conf:
- text = lxdm_conf.readlines()
-
- with open(lxdm_conf_path, 'w') as lxdm_conf:
- for line in text:
- if 'autologin=' in line:
- if do_autologin:
- line = "autologin={!s}\n".format(username)
- else:
- line = "# autologin=\n"
-
- lxdm_conf.write(line)
- else:
- return (
- _("Cannot write LXDM configuration file"),
- _("LXDM config file {!s} does not exist").format(lxdm_conf_path)
- )
-
- def basic_setup(self):
- if libcalamares.utils.target_env_call(
- ['getent', 'group', 'lxdm']
- ) != 0:
- libcalamares.utils.target_env_call(
- ['groupadd', '--system', 'lxdm']
- )
-
- libcalamares.utils.target_env_call(
- ['chgrp', '-R', 'lxdm', '/var/lib/lxdm']
- )
- libcalamares.utils.target_env_call(
- ['chgrp', 'lxdm', '/etc/lxdm/lxdm.conf']
- )
- libcalamares.utils.target_env_call(
- ['chmod', '+r', '/etc/lxdm/lxdm.conf']
- )
-
- def desktop_environment_setup(self, default_desktop_environment):
- os.system(
- "sed -i -e \"s|^.*session=.*|session={!s}|\" "
- "{!s}/etc/lxdm/lxdm.conf".format(
- default_desktop_environment.executable,
- self.root_mount_point
- )
- )
-
- def greeter_setup(self):
- pass
-
-
-class DMlightdm(DisplayManager):
- name = "lightdm"
- executable = "lightdm"
-
- # Can be overridden in the .conf file. With no value it won't match any
- # desktop file in the xgreeters directory and instead we end up picking
- # the alphabetically first file there.
- preferred_greeters = []
-
- def set_autologin(self, username, do_autologin, default_desktop_environment):
- # Systems with LightDM as Desktop Manager
- # Ideally, we should use configparser for the ini conf file,
- # but we just do a simple text replacement for now, as it
- # worksforme(tm)
- lightdm_conf_path = os.path.join(
- self.root_mount_point, "etc/lightdm/lightdm.conf"
- )
- text = []
- addseat = False
- loopcount = 0
-
- if os.path.exists(lightdm_conf_path):
- with open(lightdm_conf_path, 'r') as lightdm_conf:
- text = lightdm_conf.readlines()
- # Check to make sure [SeatDefaults] or [Seat:*] is in the config,
- # otherwise we'll risk malforming the config
- addseat = '[SeatDefaults]' not in text and '[Seat:*]' not in text
-
- with open(lightdm_conf_path, 'w') as lightdm_conf:
- if addseat:
- # Prepend Seat line to start of file rather than leaving it without one
- # This keeps the config from being malformed for LightDM
- text = ["[Seat:*]\n"] + text
- for line in text:
- if 'autologin-user=' in line:
- if do_autologin:
- line = "autologin-user={!s}\n".format(username)
- else:
- line = "#autologin-user=\n"
-
- lightdm_conf.write(line)
- else:
- try:
- # Create a new lightdm.conf file; this is documented to be
- # read last, after everything in lightdm.conf.d/
- with open(lightdm_conf_path, 'w') as lightdm_conf:
- if do_autologin:
- lightdm_conf.write(
- "[Seat:*]\nautologin-user={!s}\n".format(username))
- else:
- lightdm_conf.write(
- "[Seat:*]\n#autologin-user=\n")
- except FileNotFoundError:
- return (
- _("Cannot write LightDM configuration file"),
- _("LightDM config file {!s} does not exist").format(lightdm_conf_path)
- )
-
- def basic_setup(self):
- libcalamares.utils.target_env_call(
- ['mkdir', '-p', '/run/lightdm']
- )
-
- if libcalamares.utils.target_env_call(
- ['getent', 'group', 'lightdm']
- ) != 0:
- libcalamares.utils.target_env_call(
- ['groupadd', '-g', '620', 'lightdm']
- )
-
- if libcalamares.utils.target_env_call(
- ['getent', 'passwd', 'lightdm']
- ) != 0:
- libcalamares.utils.target_env_call(
- ['useradd', '-c',
- '"LightDM Display Manager"',
- '-u', '620',
- '-g', 'lightdm',
- '-d', '/var/run/lightdm',
- '-s', '/usr/bin/nologin',
- 'lightdm'
- ]
- )
-
- libcalamares.utils.target_env_call(['passwd', '-l', 'lightdm'])
- libcalamares.utils.target_env_call(['chown', '-R', 'lightdm:lightdm', '/run/lightdm'])
- libcalamares.utils.target_env_call(['chmod', '+r' '/etc/lightdm/lightdm.conf'])
-
- def desktop_environment_setup(self, default_desktop_environment):
- os.system(
- "sed -i -e \"s/^.*user-session=.*/user-session={!s}/\" "
- "{!s}/etc/lightdm/lightdm.conf".format(
- default_desktop_environment.desktop_file,
- self.root_mount_point
- )
- )
-
- def find_preferred_greeter(self):
- """
- On Debian, lightdm-greeter.desktop is typically a symlink managed
- by update-alternatives pointing to /etc/alternatives/lightdm-greeter
- which is also a symlink to a real .desktop file back in /usr/share/xgreeters/
-
- Returns a path *into the mounted target* of the preferred greeter -- usually
- a .desktop file that specifies where the actual executable is. May return
- None to indicate nothing-was-found.
- """
- greeters_dir = "usr/share/xgreeters"
- greeters_target_path = os.path.join(self.root_mount_point, greeters_dir)
- available_names = os.listdir(greeters_target_path)
- available_names.sort()
- desktop_names = [n for n in self.preferred_greeters if n in available_names] # Preferred ones
- if desktop_names:
- return desktop_names[0]
- desktop_names = [n for n in available_names if n.endswith(".desktop")] # .. otherwise any .desktop
- if desktop_names:
- return desktop_names[0]
- return None
-
- def greeter_setup(self):
- lightdm_conf_path = os.path.join(self.root_mount_point, "etc/lightdm/lightdm.conf")
- greeter_name = self.find_preferred_greeter()
-
- if greeter_name is not None:
- greeter = os.path.basename(greeter_name) # Follow symlinks, hope they are not absolute
- if greeter.endswith('.desktop'):
- greeter = greeter[:-8] # Remove ".desktop" from end
-
- libcalamares.utils.debug("found greeter {!s}".format(greeter))
- os.system(
- "sed -i -e \"s/^.*greeter-session=.*"
- "/greeter-session={!s}/\" {!s}".format(
- greeter,
- lightdm_conf_path
- )
- )
- libcalamares.utils.debug("{!s} configured as greeter.".format(greeter))
- else:
- libcalamares.utils.error("No greeter found at all, preferred {!s}".format(self.preferred_greeters))
- return (
- _("Cannot configure LightDM"),
- _("No LightDM greeter installed.")
- )
-
-
-class DMslim(DisplayManager):
- name = "slim"
- executable = "slim"
-
- def set_autologin(self, username, do_autologin, default_desktop_environment):
- # Systems with Slim as Desktop Manager
- slim_conf_path = os.path.join(self.root_mount_point, "etc/slim.conf")
- text = []
-
- if os.path.exists(slim_conf_path):
- with open(slim_conf_path, 'r') as slim_conf:
- text = slim_conf.readlines()
-
- with open(slim_conf_path, 'w') as slim_conf:
- for line in text:
- if 'auto_login' in line:
- if do_autologin:
- line = 'auto_login yes\n'
- else:
- line = 'auto_login no\n'
-
- if do_autologin and 'default_user' in line:
- line = "default_user {!s}\n".format(username)
-
- slim_conf.write(line)
- else:
- return (
- _("Cannot write SLIM configuration file"),
- _("SLIM config file {!s} does not exist").format(slim_conf_path)
- )
-
-
- def basic_setup(self):
- pass
-
- def desktop_environment_setup(self, desktop_environment):
- pass
-
- def greeter_setup(self):
- pass
-
-
-class DMsddm(DisplayManager):
- name = "sddm"
- executable = "sddm"
-
- configuration_file = "etc/sddm.conf"
-
- def set_autologin(self, username, do_autologin, default_desktop_environment):
- import configparser
-
- # Systems with Sddm as Desktop Manager
- sddm_conf_path = os.path.join(self.root_mount_point, self.configuration_file)
-
- sddm_config = configparser.ConfigParser(strict=False)
- # Make everything case sensitive
- sddm_config.optionxform = str
-
- if os.path.isfile(sddm_conf_path):
- sddm_config.read(sddm_conf_path)
-
- if 'Autologin' not in sddm_config:
- sddm_config.add_section('Autologin')
-
- if do_autologin:
- sddm_config.set('Autologin', 'User', username)
- elif sddm_config.has_option('Autologin', 'User'):
- sddm_config.remove_option('Autologin', 'User')
-
- if default_desktop_environment is not None:
- sddm_config.set(
- 'Autologin',
- 'Session',
- default_desktop_environment.desktop_file
- )
-
- with open(sddm_conf_path, 'w') as sddm_config_file:
- sddm_config.write(sddm_config_file, space_around_delimiters=False)
-
-
- def basic_setup(self):
- pass
-
- def desktop_environment_setup(self, desktop_environment):
- pass
-
- def greeter_setup(self):
- pass
-
-
-class DMgreetd(DisplayManager):
- name = "greetd"
- executable = "greetd"
- greeter_user = "greeter"
- greeter_group = "greetd"
- greeter_css_location = None
- config_data = {}
-
- def os_path(self, path):
- return os.path.join(self.root_mount_point, path)
-
- def config_path(self):
- return self.os_path("etc/greetd/config.toml")
-
- def environments_path(self):
- return self.os_path("etc/greetd/environments")
-
- def config_load(self):
- import toml
-
- if (os.path.exists(self.config_path())):
- with open(self.config_path(), "r") as f:
- self.config_data = toml.load(f)
-
- self.config_data['terminal'] = dict(vt = "next")
-
- default_session_group = self.config_data.get('default_session', None)
- if not default_session_group:
- self.config_data['default_session'] = {}
-
- self.config_data['default_session']['user'] = self.greeter_user
-
- return self.config_data
-
- def config_write(self):
- import toml
- with open(self.config_path(), "w") as f:
- toml.dump(self.config_data, f)
-
- def basic_setup(self):
- if libcalamares.utils.target_env_call(
- ['getent', 'group', self.greeter_group]
- ) != 0:
- libcalamares.utils.target_env_call(
- ['groupadd', self.greeter_group]
- )
-
- if libcalamares.utils.target_env_call(
- ['getent', 'passwd', self.greeter_user]
- ) != 0:
- libcalamares.utils.target_env_call(
- ['useradd',
- '-c', '"Greeter User"',
- '-g', self.greeter_group,
- '-s', '/bin/bash',
- self.greeter_user
- ]
- )
-
- def desktop_environment_setup(self, default_desktop_environment):
- with open(self.environments_path(), 'w') as envs_file:
- envs_file.write(default_desktop_environment.executable)
- envs_file.write("\n")
-
- def greeter_setup(self):
- pass
-
- def set_autologin(self, username, do_autologin, default_desktop_environment):
- self.config_load()
-
- de_command = default_desktop_environment.executable
- if os.path.exists(self.os_path("usr/bin/gtkgreet")) and os.path.exists(self.os_path("usr/bin/cage")):
- self.config_data['default_session']['command'] = "cage -d -s -- gtkgreet"
- if self.greeter_css_location:
- self.config_data['default_session']['command'] += f" -s {self.greeter_css_location}"
- elif os.path.exists(self.os_path("usr/bin/tuigreet")):
- tuigreet_base_cmd = "tuigreet --remember --time --issue --asterisks --cmd "
- self.config_data['default_session']['command'] = tuigreet_base_cmd + de_command
- elif os.path.exists(self.os_path("usr/bin/ddlm")):
- self.config_data['default_session']['command'] = "ddlm --target " + de_command
- else:
- self.config_data['default_session']['command'] = "agreety --cmd " + de_command
-
- if do_autologin:
- # Log in as user, with given DE
- self.config_data['initial_session'] = dict(command = de_command, user = username)
- elif 'initial_session' in self.config_data:
- # No autologin, remove any autologin that was copied from the live ISO
- del self.config_data['initial_session']
-
- self.config_write()
-
-
-class DMsysconfig(DisplayManager):
- name = "sysconfig"
- executable = None
-
- def set_autologin(self, username, do_autologin, default_desktop_environment):
- dmauto = "DISPLAYMANAGER_AUTOLOGIN"
-
- os.system(
- "sed -i -e 's|^{!s}=.*|{!s}=\"{!s}\"|' "
- "{!s}/etc/sysconfig/displaymanager".format(
- dmauto, dmauto,
- username if do_autologin else "",
- self.root_mount_point
- )
- )
-
-
- def basic_setup(self):
- pass
-
- def desktop_environment_setup(self, desktop_environment):
- pass
-
- def greeter_setup(self):
- pass
-
- # For openSUSE-derivatives, there is only sysconfig to configure,
- # and no special DM configuration for it. Instead, check that
- # sysconfig is available in the target.
- def have_dm(self):
- config = "{!s}/etc/sysconfig/displaymanager".format(self.root_mount_point)
- return os.path.exists(config)
-
-
-# Collect all the subclasses of DisplayManager defined above,
-# and index them based on the name property of each class.
-display_managers = [
- (c.name, c)
- for c in globals().values()
- if type(c) is abc.ABCMeta and issubclass(c, DisplayManager) and c.name
-]
-
-
-def run():
- """
- Configure display managers.
-
- We acquire a list of displaymanagers, either from config or (overridden)
- from globalstorage. This module will try to set up (including autologin)
- all the displaymanagers in the list, in that specific order. Most distros
- will probably only ship one displaymanager.
- If a displaymanager is in the list but not installed, a debugging message
- is printed and the entry ignored.
- """
- # Get configuration settings for display managers
- displaymanagers = None
- if "displaymanagers" in libcalamares.job.configuration:
- displaymanagers = libcalamares.job.configuration["displaymanagers"]
-
- if libcalamares.globalstorage.contains("displayManagers"):
- displaymanagers = libcalamares.globalstorage.value("displayManagers")
-
- if ("sysconfigSetup" in libcalamares.job.configuration
- and libcalamares.job.configuration["sysconfigSetup"]):
- displaymanagers = ["sysconfig"]
-
- if not displaymanagers:
- return (
- _("No display managers selected for the displaymanager module."),
- _("The displaymanagers list is empty or undefined in both "
- "globalstorage and displaymanager.conf.")
- )
-
- # Get instances that are actually installed
- root_mount_point = libcalamares.globalstorage.value("rootMountPoint")
- dm_impl = []
- dm_names = displaymanagers[:]
- for dm in dm_names:
- # Find the implementation class
- dm_instance = None
- impl = [ cls for name, cls in display_managers if name == dm ]
- if len(impl) == 1:
- dm_instance = impl[0](root_mount_point)
- if dm_instance.have_dm():
- dm_impl.append(dm_instance)
- else:
- dm_instance = None
- else:
- libcalamares.utils.debug("{!s} has {!s} implementation classes.".format(dm, len(impl)))
-
- if dm_instance is None:
- libcalamares.utils.debug("{!s} selected but not installed".format(dm))
- if dm in displaymanagers:
- displaymanagers.remove(dm)
-
- if not dm_impl:
- libcalamares.utils.warning(
- "No display managers selected for the displaymanager module. "
- "The list is empty after checking for installed display managers."
- )
- return None
-
- # Pick up remaining settings
- if "defaultDesktopEnvironment" in libcalamares.job.configuration:
- entry = libcalamares.job.configuration["defaultDesktopEnvironment"]
- default_desktop_environment = DesktopEnvironment(
- entry["executable"], entry["desktopFile"]
- )
- # Adjust if executable is bad, but desktopFile isn't.
- if not default_desktop_environment.update_from_desktop_file(root_mount_point):
- libcalamares.utils.warning(
- "The configured default desktop environment, {!s}, "
- "can not be found.".format(default_desktop_environment.desktop_file))
- else:
- default_desktop_environment = find_desktop_environment(
- root_mount_point
- )
-
- if "basicSetup" in libcalamares.job.configuration:
- enable_basic_setup = libcalamares.job.configuration["basicSetup"]
- else:
- enable_basic_setup = False
-
- username = libcalamares.globalstorage.value("autoLoginUser")
- if username is not None:
- do_autologin = True
- libcalamares.utils.debug("Setting up autologin for user {!s}.".format(username))
- else:
- do_autologin = False
- libcalamares.utils.debug("Unsetting autologin.")
-
- libcalamares.globalstorage.insert("displayManagers", displaymanagers)
-
- # Do the actual configuration and collect messages
- dm_setup_message = []
- for dm in dm_impl:
- dm_specific_configuration = libcalamares.job.configuration.get(dm.name, None)
- if dm_specific_configuration and isinstance(dm_specific_configuration, dict):
- for k, v in dm_specific_configuration.items():
- if hasattr(dm, k):
- setattr(dm, k, v)
- dm_message = None
- if enable_basic_setup:
- dm_message = dm.basic_setup()
- if default_desktop_environment is not None and dm_message is None:
- dm_message = dm.desktop_environment_setup(default_desktop_environment)
- if dm_message is None:
- dm_message = dm.greeter_setup()
- if dm_message is None:
- dm_message = dm.set_autologin(username, do_autologin, default_desktop_environment)
-
- if dm_message is not None:
- dm_setup_message.append("{!s}: {!s}".format(*dm_message))
-
- if dm_setup_message:
- return (
- _("Display manager configuration was incomplete"),
- "\n".join(dm_setup_message)
- )
diff --git a/src/modules/displaymanager/module.desc b/src/modules/displaymanager/module.desc
deleted file mode 100644
index a589418792..0000000000
--- a/src/modules/displaymanager/module.desc
+++ /dev/null
@@ -1,7 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
----
-type: "job"
-name: "displaymanager"
-interface: "python"
-script: "main.py"
diff --git a/src/modules/displaymanager/tests/1.global b/src/modules/displaymanager/tests/1.global
deleted file mode 100644
index ee06ccfe1e..0000000000
--- a/src/modules/displaymanager/tests/1.global
+++ /dev/null
@@ -1,3 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-rootMountPoint: /tmp
diff --git a/src/modules/displaymanager/tests/CMakeTests.txt b/src/modules/displaymanager/tests/CMakeTests.txt
deleted file mode 100644
index 70e3d580d5..0000000000
--- a/src/modules/displaymanager/tests/CMakeTests.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# We have tests to load (some) of the DMs specifically, to test their
-# configuration code. Those tests conventionally live in Python
-# files here in the tests/ directory. Add them.
-foreach(_dmname greetd sddm)
- add_test(
- NAME configure-displaymanager-${_dmname}
- COMMAND env PYTHONPATH=.: python3 ${CMAKE_CURRENT_LIST_DIR}/test-dm-${_dmname}.py
- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
- )
-endforeach()
diff --git a/src/modules/displaymanager/tests/test-dm-greetd.py b/src/modules/displaymanager/tests/test-dm-greetd.py
deleted file mode 100644
index e2682afc7c..0000000000
--- a/src/modules/displaymanager/tests/test-dm-greetd.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# Calamares Boilerplate
-import libcalamares
-libcalamares.globalstorage = libcalamares.GlobalStorage(None)
-libcalamares.globalstorage.insert("testing", True)
-
-# Module prep-work
-from src.modules.displaymanager import main
-default_desktop_environment = main.DesktopEnvironment("startplasma-x11", "kde-plasma.desktop")
-
-import os
-os.makedirs("/tmp/etc/greetd/", exist_ok=True)
-try:
- os.remove("/tmp/etc/greetd/config.toml")
-except FileNotFoundError as e:
- pass
-
-try:
- import toml
-except ImportError:
- # This is a failure of the test-environment.
- import sys
- print("Can't find module toml.", file=sys.stderr)
- sys.exit(0)
-
-# Specific DM test
-d = main.DMgreetd("/tmp")
-d.set_autologin("d", True, default_desktop_environment)
-# .. and again (this time checks load/save)
-d.set_autologin("d", True, default_desktop_environment)
-d.set_autologin("d", True, default_desktop_environment)
diff --git a/src/modules/displaymanager/tests/test-dm-sddm.py b/src/modules/displaymanager/tests/test-dm-sddm.py
deleted file mode 100644
index b5c334948e..0000000000
--- a/src/modules/displaymanager/tests/test-dm-sddm.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# Calamares Boilerplate
-import libcalamares
-libcalamares.globalstorage = libcalamares.GlobalStorage(None)
-libcalamares.globalstorage.insert("testing", True)
-
-# Module prep-work
-from src.modules.displaymanager import main
-default_desktop_environment = main.DesktopEnvironment("startplasma-x11", "kde-plasma.desktop")
-
-# Specific DM test
-d = main.DMsddm("/tmp")
-d.set_autologin("d", True, default_desktop_environment)
-# .. and again (this time checks load/save)
-d.set_autologin("d", True, default_desktop_environment)
-d.set_autologin("d", True, default_desktop_environment)
diff --git a/src/modules/dracut/dracut.conf b/src/modules/dracut/dracut.conf
deleted file mode 100644
index ba1a7b08cb..0000000000
--- a/src/modules/dracut/dracut.conf
+++ /dev/null
@@ -1,10 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# Run dracut(8) with an optional kernel name
----
-# Dracut defaults to setting initramfs-.img
-# If you want to specify another filename for the resulting image,
-# set a custom name, including the path
-#
-initramfsName: /boot/initramfs-freebsd.img
diff --git a/src/modules/dracut/dracut.schema.yaml b/src/modules/dracut/dracut.schema.yaml
deleted file mode 100644
index d6008e1bf5..0000000000
--- a/src/modules/dracut/dracut.schema.yaml
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-FileCopyrightText: 2022 Anke Boersma
-# SPDX-License-Identifier: GPL-3.0-or-later
----
-$schema: https://json-schema.org/schema#
-$id: https://calamares.io/schemas/dracut
-additionalProperties: false
-type: object
-properties:
- initramfsName: { type: string }
diff --git a/src/modules/dracut/main.py b/src/modules/dracut/main.py
deleted file mode 100644
index 85e6f3e7ff..0000000000
--- a/src/modules/dracut/main.py
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2014-2015 Philip Müller
-# SPDX-FileCopyrightText: 2014 Teo Mrnjavac
-# SPDX-FileCopyrightText: 2017 Alf Gaida
-# SPDX-FileCopyrightText: 2019 Adriaan de Groot
-# SPDX-FileCopyrightText: 2022 Anke Boersma
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# Calamares is Free Software: see the License-Identifier above.
-#
-import subprocess
-
-import libcalamares
-from libcalamares.utils import target_env_process_output
-
-
-import gettext
-_ = gettext.translation("calamares-python",
- localedir=libcalamares.utils.gettext_path(),
- languages=libcalamares.utils.gettext_languages(),
- fallback=True).gettext
-
-
-def pretty_name():
- return _("Creating initramfs with dracut.")
-
-
-def run_dracut():
- """
- Creates initramfs, even when initramfs already exists.
-
- :return:
- """
- try:
- initramfs_name = libcalamares.job.configuration['initramfsName']
- target_env_process_output(['dracut', '-f', initramfs_name])
- except KeyError:
- try:
- target_env_process_output(['dracut', '-f'])
- except subprocess.CalledProcessError as cpe:
- libcalamares.utils.warning(f"Dracut failed with output: {cpe.output}")
- return cpe.returncode
- except subprocess.CalledProcessError as cpe:
- libcalamares.utils.warning(f"Dracut failed with output: {cpe.output}")
- return cpe.returncode
-
- return 0
-
-
-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"),
- _(f"Dracut failed to run on the target with return code: {return_code}"))
diff --git a/src/modules/dracut/module.desc b/src/modules/dracut/module.desc
deleted file mode 100644
index 9029bf66b1..0000000000
--- a/src/modules/dracut/module.desc
+++ /dev/null
@@ -1,7 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
----
-type: "job"
-name: "dracut"
-interface: "python"
-script: "main.py"
diff --git a/src/modules/dracutlukscfg/CMakeLists.txt b/src/modules/dracutlukscfg/CMakeLists.txt
deleted file mode 100644
index 85efccc0ce..0000000000
--- a/src/modules/dracutlukscfg/CMakeLists.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2020 Adriaan de Groot
-# SPDX-License-Identifier: BSD-2-Clause
-#
-calamares_add_plugin(dracutlukscfg
- TYPE job
- EXPORT_MACRO PLUGINDLLEXPORT_PRO
- SOURCES
- DracutLuksCfgJob.cpp
- SHARED_LIB
- NO_CONFIG
-)
diff --git a/src/modules/dracutlukscfg/DracutLuksCfgJob.cpp b/src/modules/dracutlukscfg/DracutLuksCfgJob.cpp
deleted file mode 100644
index 6bc87e2c46..0000000000
--- a/src/modules/dracutlukscfg/DracutLuksCfgJob.cpp
+++ /dev/null
@@ -1,159 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2016 Kevin Kofler
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#include "DracutLuksCfgJob.h"
-
-#include
-#include
-#include
-#include
-
-#include "CalamaresVersion.h"
-#include "GlobalStorage.h"
-#include "JobQueue.h"
-
-#include "utils/Logger.h"
-
-static const QLatin1String CONFIG_FILE( "/etc/dracut.conf.d/calamares-luks.conf" );
-
-static const char 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 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 CONFIG_FILE_CRYPTTAB_LINE[] = "# force installing /etc/crypttab even if hostonly=\"no\"\n"
- "install_items+=\" /etc/crypttab \"\n";
-
-static const QLatin1String
- CONFIG_FILE_SWAPLINE( "# enable automatic resume from swap\nadd_device+=\" /dev/disk/by-uuid/%1 \"\n" );
-
-static QString
-rootMountPoint()
-{
- Calamares::GlobalStorage* globalStorage = Calamares::JobQueue::instance()->globalStorage();
- return globalStorage->value( QStringLiteral( "rootMountPoint" ) ).toString();
-}
-
-static QVariantList
-partitions()
-{
- Calamares::GlobalStorage* globalStorage = Calamares::JobQueue::instance()->globalStorage();
- return globalStorage->value( QStringLiteral( "partitions" ) ).toList();
-}
-
-static bool
-isRootEncrypted()
-{
- const QVariantList partitions = ::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
-hasUnencryptedSeparateBoot()
-{
- const QVariantList partitions = ::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
-swapOuterUuid()
-{
- const QVariantList partitions = ::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( "Writing LUKS configuration for Dracut to %1…", "@status" ).arg( CONFIG_FILE );
- }
- else
- {
- return tr( "Skipping writing LUKS configuration for Dracut: \"/\" partition is not encrypted", "@info" );
- }
-}
-
-
-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", "@error" ).arg( realConfigFilePath ) );
- }
- QTextStream outStream( &configFile );
- outStream << CONFIG_FILE_HEADER
- << ( hasUnencryptedSeparateBoot() ? CONFIG_FILE_CRYPTTAB_LINE : CONFIG_FILE_CRYPTTAB_KEYFILE_LINE );
- const QString swapOuterUuid = ::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 --git a/src/modules/dracutlukscfg/DracutLuksCfgJob.h b/src/modules/dracutlukscfg/DracutLuksCfgJob.h
deleted file mode 100644
index 33029f93a0..0000000000
--- a/src/modules/dracutlukscfg/DracutLuksCfgJob.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2016 Kevin Kofler
- * SPDX-FileCopyrightText: 2017 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#ifndef DRACUTLUKSCFGJOB_H
-#define DRACUTLUKSCFGJOB_H
-
-#include
-#include
-
-#include "CppJob.h"
-
-#include "utils/PluginFactory.h"
-
-#include "DllMacro.h"
-
-class PLUGINDLLEXPORT DracutLuksCfgJob : public Calamares::CppJob
-{
- Q_OBJECT
-
-public:
- explicit DracutLuksCfgJob( QObject* parent = nullptr );
- ~DracutLuksCfgJob() override;
-
- QString prettyName() const override;
-
- Calamares::JobResult exec() override;
-
-private:
-};
-
-CALAMARES_PLUGIN_FACTORY_DECLARATION( DracutLuksCfgJobFactory )
-
-#endif // DRACUTLUKSCFGJOB_H
diff --git a/src/modules/dummycpp/CMakeLists.txt b/src/modules/dummycpp/CMakeLists.txt
deleted file mode 100644
index b822a03be1..0000000000
--- a/src/modules/dummycpp/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2020 Adriaan de Groot
-# SPDX-License-Identifier: BSD-2-Clause
-#
-calamares_add_plugin(dummycpp
- TYPE job
- EXPORT_MACRO PLUGINDLLEXPORT_PRO
- SOURCES
- DummyCppJob.cpp
- SHARED_LIB
-)
diff --git a/src/modules/dummycpp/DummyCppJob.cpp b/src/modules/dummycpp/DummyCppJob.cpp
deleted file mode 100644
index ba8e6ce523..0000000000
--- a/src/modules/dummycpp/DummyCppJob.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2014 Teo Mrnjavac (original dummypython code)
- * SPDX-FileCopyrightText: 2016 Kevin Kofler
- * SPDX-FileCopyrightText: 2018 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#include "DummyCppJob.h"
-
-#include
-#include
-
-#include "CalamaresVersion.h"
-#include "GlobalStorage.h"
-#include "JobQueue.h"
-
-#include "compat/Variant.h"
-#include "utils/Logger.h"
-#include "utils/System.h"
-
-DummyCppJob::DummyCppJob( QObject* parent )
- : Calamares::CppJob( parent )
-{
-}
-
-DummyCppJob::~DummyCppJob() {}
-
-QString
-DummyCppJob::prettyName() const
-{
- return tr( "Performing dummy C++ job…", "@status" );
-}
-
-static QString variantListToString( const QVariantList& variantList );
-static QString variantMapToString( const QVariantMap& variantMap );
-static QString variantHashToString( const QVariantHash& variantHash );
-
-static QString
-variantToString( const QVariant& variant )
-{
- if ( Calamares::typeOf( variant ) == Calamares::MapVariantType )
- {
- return variantMapToString( variant.toMap() );
- }
- else if ( Calamares::typeOf( variant ) == Calamares::HashVariantType )
- {
- return variantHashToString( variant.toHash() );
- }
- else if ( ( Calamares::typeOf( variant ) == Calamares::ListVariantType )
- || ( Calamares::typeOf( variant ) == Calamares::StringListVariantType ) )
- {
- return variantListToString( variant.toList() );
- }
- else
- {
- return variant.toString();
- }
-}
-
-static QString
-variantListToString( const QVariantList& variantList )
-{
- QStringList result;
- for ( const QVariant& variant : variantList )
- {
- result.append( variantToString( variant ) );
- }
- return '{' + result.join( ',' ) + '}';
-}
-
-static QString
-variantMapToString( const QVariantMap& variantMap )
-{
- QStringList result;
- for ( auto it = variantMap.constBegin(); it != variantMap.constEnd(); ++it )
- {
- result.append( it.key() + '=' + variantToString( it.value() ) );
- }
- return '[' + result.join( ',' ) + ']';
-}
-
-static QString
-variantHashToString( const QVariantHash& variantHash )
-{
- QStringList result;
- for ( auto it = variantHash.constBegin(); it != variantHash.constEnd(); ++it )
- {
- result.append( it.key() + '=' + variantToString( it.value() ) );
- }
- return '<' + result.join( ',' ) + '>';
-}
-
-Calamares::JobResult
-DummyCppJob::exec()
-{
- // Ported from dummypython
- Calamares::System::runCommand( Calamares::System::RunLocation::RunInHost,
- QStringList() << "/bin/sh"
- << "-c"
- << "touch ~/calamares-dummycpp" );
- QString accumulator = QDateTime::currentDateTimeUtc().toString( Qt::ISODate ) + '\n';
- accumulator += QStringLiteral( "Calamares version: " ) + CALAMARES_VERSION_SHORT + '\n';
- accumulator += QStringLiteral( "This job's name: " ) + prettyName() + '\n';
- accumulator += QStringLiteral( "Configuration map: %1\n" ).arg( variantMapToString( m_configurationMap ) );
- accumulator += QStringLiteral( " *** globalstorage test ***\n" );
- Calamares::GlobalStorage* globalStorage = Calamares::JobQueue::instance()->globalStorage();
- accumulator += QStringLiteral( "lala: " )
- + ( globalStorage->contains( "lala" ) ? QStringLiteral( "true" ) : QStringLiteral( "false" ) ) + '\n';
- accumulator += QStringLiteral( "foo: " )
- + ( globalStorage->contains( "foo" ) ? QStringLiteral( "true" ) : QStringLiteral( "false" ) ) + '\n';
- accumulator += QStringLiteral( "count: " ) + QString::number( globalStorage->count() ) + '\n';
- globalStorage->insert( "item2", "value2" );
- globalStorage->insert( "item3", 3 );
- accumulator += QStringLiteral( "keys: %1\n" ).arg( globalStorage->keys().join( ',' ) );
- accumulator += QStringLiteral( "remove: %1\n" ).arg( QString::number( globalStorage->remove( "item2" ) ) );
- accumulator += QStringLiteral( "values: %1 %2 %3\n" )
- .arg( globalStorage->value( "foo" ).toString(),
- globalStorage->value( "item2" ).toString(),
- globalStorage->value( "item3" ).toString() );
-
- emit progress( 0.1 );
- cDebug() << "[DUMMYCPP]: " << accumulator;
-
- globalStorage->debugDump();
- emit progress( 0.5 );
-
- QThread::sleep( 3 );
-
- return Calamares::JobResult::ok();
-}
-
-void
-DummyCppJob::setConfigurationMap( const QVariantMap& configurationMap )
-{
- m_configurationMap = configurationMap;
-}
-
-CALAMARES_PLUGIN_FACTORY_DEFINITION( DummyCppJobFactory, registerPlugin< DummyCppJob >(); )
diff --git a/src/modules/dummycpp/DummyCppJob.h b/src/modules/dummycpp/DummyCppJob.h
deleted file mode 100644
index 5271a73a50..0000000000
--- a/src/modules/dummycpp/DummyCppJob.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2016 Kevin Kofler
- * SPDX-FileCopyrightText: 2017 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#ifndef DUMMYCPPJOB_H
-#define DUMMYCPPJOB_H
-
-#include
-#include
-
-#include "CppJob.h"
-
-#include "utils/PluginFactory.h"
-
-#include "DllMacro.h"
-
-class PLUGINDLLEXPORT DummyCppJob : public Calamares::CppJob
-{
- Q_OBJECT
-
-public:
- explicit DummyCppJob( QObject* parent = nullptr );
- ~DummyCppJob() override;
-
- QString prettyName() const override;
-
- Calamares::JobResult exec() override;
-
- void setConfigurationMap( const QVariantMap& configurationMap ) override;
-
-private:
- QVariantMap m_configurationMap;
-};
-
-CALAMARES_PLUGIN_FACTORY_DECLARATION( DummyCppJobFactory )
-
-#endif // DUMMYCPPJOB_H
diff --git a/src/modules/dummycpp/dummycpp.conf b/src/modules/dummycpp/dummycpp.conf
deleted file mode 100644
index b00a428253..0000000000
--- a/src/modules/dummycpp/dummycpp.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# This is a dummy (example) module for C++ Jobs.
-#
-# The code is the documentation for the configuration file.
----
-syntax: "YAML map of anything"
-example:
- whats_this: "module-specific configuration"
- from_where: "dummycpp.conf"
-a_list:
- - "item1"
- - "item2"
- - "item3"
- - "item4"
-a_list_of_maps:
- - name: "an Item"
- contents:
- - "an element"
- - "another element"
- - name: "another item"
- contents:
- - "not much"
diff --git a/src/modules/dummycpp/module.desc b/src/modules/dummycpp/module.desc
deleted file mode 100644
index bc768a17ad..0000000000
--- a/src/modules/dummycpp/module.desc
+++ /dev/null
@@ -1,22 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-# Module metadata file for dummycpp job
-#
-# The metadata for C++ (qtplugin) plugins is almost never interesting:
-# the CMakeLists.txt should be using calamares_add_plugin() which will
-# generate the metadata file during the build. Only C++ plugins that
-# have strange settings should have a module.desc (non-C++ plugins,
-# on the other hand, must have one, since they don't have CMakeLists.txt).
-#
-# Syntax is YAML 1.2
-#
-# All four keys are mandatory. For C++ (qtplugin) modules, the interface
-# value must be "qtplugin"; type is one of "job" or "view"; the name
-# is the machine-identifier for the module and the load value should
-# be the filename of the library that contains the implementation.
-#
----
-type: "job"
-name: "dummycpp"
-interface: "qtplugin"
-load: "libcalamares_job_dummycpp.so"
diff --git a/src/modules/dummyprocess/module.desc b/src/modules/dummyprocess/module.desc
deleted file mode 100644
index a329b77256..0000000000
--- a/src/modules/dummyprocess/module.desc
+++ /dev/null
@@ -1,11 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-# Module metadata file for dummy process jobmodule
-# Syntax is YAML 1.2
----
-type: "job"
-name: "dummyprocess"
-interface: "process"
-chroot: false
-command: "/bin/sh -c \"sleep 5 ; touch ~/calamares-dummyprocess\""
-timeout: 8
diff --git a/src/modules/dummypython/dummypython.conf b/src/modules/dummypython/dummypython.conf
deleted file mode 100644
index 6ea50c5d12..0000000000
--- a/src/modules/dummypython/dummypython.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# This is a dummy (example) module for a Python Job Module.
-#
-# The code is the documentation for the configuration file.
----
-syntax: "YAML map of anything"
-example:
- whats_this: "module-specific configuration"
- from_where: "dummypython.conf"
-a_list:
- - "item1"
- - "item2"
- - "item3"
- - "item4"
-a_list_of_maps:
- - name: "an Item"
- contents:
- - "an element"
- - "another element"
- - name: "another item"
- contents:
- - "not much"
diff --git a/src/modules/dummypython/main.py b/src/modules/dummypython/main.py
deleted file mode 100644
index 65621dd1d1..0000000000
--- a/src/modules/dummypython/main.py
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2014 Teo Mrnjavac
-# SPDX-FileCopyrightText: 2017 Alf Gaida
-# SPDX-FileCopyrightText: 2017 Adriaan de Groot
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# Calamares is Free Software: see the License-Identifier above.
-#
-
-"""
-=== Example Python jobmodule.
-
-A Python jobmodule is a Python program which imports libcalamares and
-has a function run() as entry point. run() must return None if everything
-went well, or a tuple (str,str) with an error message and description
-if something went wrong.
-"""
-
-import libcalamares
-import os
-from time import gmtime, strftime, sleep
-
-import gettext
-_ = gettext.translation("calamares-python",
- localedir=libcalamares.utils.gettext_path(),
- languages=libcalamares.utils.gettext_languages(),
- fallback=True).gettext
-
-
-def pretty_name():
- return _("Dummy python job.")
-
-status = _("Dummy python step {}").format(0)
-
-def pretty_status_message():
- return status
-
-def run():
- """Dummy python job."""
- libcalamares.utils.debug(f"Calamares version: {libcalamares.VERSION} date: {strftime('%Y-%m-%d %H:%M:%S', gmtime())}")
- libcalamares.utils.debug(f"Job name : {libcalamares.job.pretty_name}")
- libcalamares.utils.debug(f"Job path : {libcalamares.job.working_path}")
-
- libcalamares.utils.debug(f"LocaleDir : {libcalamares.utils.gettext_path()}")
- libcalamares.utils.debug(f"Languages : {libcalamares.utils.gettext_languages()}")
-
- os.system("/bin/sh -c \"touch ~/calamares-dummypython\"")
-
- libcalamares.utils.debug("*** JOB CONFIGURATION ***")
- for k, v in libcalamares.job.configuration.items():
- libcalamares.utils.debug(f" {k}={v}")
-
- libcalamares.utils.debug("*** GLOBAL STORAGE ***")
- for k in libcalamares.globalstorage.keys():
- libcalamares.utils.debug(f" {k}={libcalamares.globalstorage.value(k)}")
-
- libcalamares.utils.debug("*** GLOBAL STORAGE BOGUS KEYS ***")
- #
- # This is a demonstration of issue #2237, load this module
- # with the dummypython/tests/1.global configuration, e.g.
- # ./loadmodule -g ../src/modules/dummypython/tests/1.global dummypython
- # in the build directory.
- #
- for k in ("nonexistent", "empty", "numeric", "boolvalue"):
- if libcalamares.globalstorage.value(k) is None:
- libcalamares.utils.debug(f"NONE {k}={libcalamares.globalstorage.value(k)}")
- else:
- libcalamares.utils.debug(f" {k}={libcalamares.globalstorage.value(k)}")
-
- libcalamares.utils.debug("*** GLOBAL STORAGE MODIFICATION ***")
- libcalamares.globalstorage.insert("item2", "value2")
- libcalamares.globalstorage.insert("item3", 3)
- accumulator = "keys: {}\n".format(str(libcalamares.globalstorage.keys()))
- libcalamares.utils.debug(accumulator)
-
- accumulator = "remove: {}\n".format(
- str(libcalamares.globalstorage.remove("item2")))
- accumulator += "values: {} {} {}\n".format(
- str(libcalamares.globalstorage.value("foo")),
- str(libcalamares.globalstorage.value("item2")),
- str(libcalamares.globalstorage.value("item3")))
- libcalamares.utils.debug(accumulator)
-
- libcalamares.utils.debug("*** ACTIVITY ***")
-
- sleep(1)
-
- million = 1000000
- for i in range(million):
- libcalamares.job.setprogress(i / million)
-
- try:
- configlist = list(libcalamares.job.configuration["a_list"])
- except KeyError:
- configlist = ["no list"]
-
- global status
- c = 1
- for k in configlist:
- status = _("Dummy python step {}").format(str(c) + ":" + repr(k))
- libcalamares.utils.debug(_("Dummy python step {}").format(str(k)))
- sleep(1)
- libcalamares.job.setprogress(c * 1.0 / (len(configlist)+1))
- c += 1
-
- sleep(3)
-
- # To indicate an error, return a tuple of:
- # (message, detailed-error-message)
- return None
diff --git a/src/modules/dummypython/module.desc b/src/modules/dummypython/module.desc
deleted file mode 100644
index 52c1d09d28..0000000000
--- a/src/modules/dummypython/module.desc
+++ /dev/null
@@ -1,9 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-# Module metadata file for dummy python jobmodule
-# Syntax is YAML 1.2
----
-type: "job"
-name: "dummypython"
-interface: "python"
-script: "main.py"
diff --git a/src/modules/dummypython/tests/1.global b/src/modules/dummypython/tests/1.global
deleted file mode 100644
index d0d194e6b8..0000000000
--- a/src/modules/dummypython/tests/1.global
+++ /dev/null
@@ -1,6 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
----
-firmwareType: bios
-bootLoader: grub
-empty:
diff --git a/src/modules/finished/finished.conf b/src/modules/finished/finished.conf
index 7abfb36f15..b0647fe2e0 100644
--- a/src/modules/finished/finished.conf
+++ b/src/modules/finished/finished.conf
@@ -34,7 +34,7 @@
# This is new behavior.
#
# The three combinations of legacy values are still supported.
-restartNowMode: user-unchecked
+restartNowMode: user-checked
# If the checkbox is shown, and the checkbox is checked, then when
# Calamares exits from the finished-page it will run this command.
diff --git a/src/modules/finishedq/CMakeLists.txt b/src/modules/finishedq/CMakeLists.txt
deleted file mode 100644
index 278feb5cfe..0000000000
--- a/src/modules/finishedq/CMakeLists.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2021 Anke Boersma
-# SPDX-License-Identifier: BSD-2-Clause
-#
-if(NOT WITH_QML)
- calamares_skip_module( "finishedq (QML is not supported in this build)" )
- return()
-endif()
-
-find_package(${qtname} ${QT_VERSION} CONFIG COMPONENTS DBus Network)
-if(NOT TARGET ${qtname}::DBus OR NOT TARGET ${qtname}::Network)
- calamares_skip_module( "finishedq (missing DBus or Network)" )
- return()
-endif()
-
-set(_finished ${CMAKE_CURRENT_SOURCE_DIR}/../finished)
-include_directories(${_finished})
-
-calamares_add_plugin(finishedq
- TYPE viewmodule
- EXPORT_MACRO PLUGINDLLEXPORT_PRO
- SOURCES
- FinishedQmlViewStep.cpp
- ${_finished}/Config.cpp
- RESOURCES
- finishedq${QT_VERSION_SUFFIX}.qrc
- LINK_PRIVATE_LIBRARIES
- ${qtname}::DBus
- SHARED_LIB
-)
diff --git a/src/modules/finishedq/FinishedQmlViewStep.cpp b/src/modules/finishedq/FinishedQmlViewStep.cpp
deleted file mode 100644
index bf605acf7e..0000000000
--- a/src/modules/finishedq/FinishedQmlViewStep.cpp
+++ /dev/null
@@ -1,92 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac
- * SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot
- * SPDX-FileCopyrightText: 2019 Collabora Ltd
- * SPDX-FileCopyrightText: 2021 Anke Boersma
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#include "FinishedQmlViewStep.h"
-
-#include "Config.h"
-
-#include "JobQueue.h"
-#include
-
-CALAMARES_PLUGIN_FACTORY_DEFINITION( FinishedQmlViewStepFactory, registerPlugin< FinishedQmlViewStep >(); )
-
-FinishedQmlViewStep::FinishedQmlViewStep( QObject* parent )
- : Calamares::QmlViewStep( parent )
- , m_config( new Config( this ) )
-{
- auto jq = Calamares::JobQueue::instance();
- connect( jq, &Calamares::JobQueue::failed, m_config, &Config::onInstallationFailed );
-
- emit nextStatusChanged( true );
-}
-
-QString
-FinishedQmlViewStep::prettyName() const
-{
- return tr( "Finish", "@label" );
-}
-
-bool
-FinishedQmlViewStep::isNextEnabled() const
-{
- return false;
-}
-
-
-bool
-FinishedQmlViewStep::isBackEnabled() const
-{
- return false;
-}
-
-
-bool
-FinishedQmlViewStep::isAtBeginning() const
-{
- return true;
-}
-
-
-bool
-FinishedQmlViewStep::isAtEnd() const
-{
- return true;
-}
-
-
-void
-FinishedQmlViewStep::onActivate()
-{
- m_config->doNotify();
- connect( qApp, &QApplication::aboutToQuit, m_config, qOverload<>( &Config::doRestart ) );
- QmlViewStep::onActivate();
-}
-
-
-Calamares::JobList
-FinishedQmlViewStep::jobs() const
-{
- return Calamares::JobList();
-}
-
-QObject*
-FinishedQmlViewStep::getConfig()
-{
- return m_config;
-}
-
-void
-FinishedQmlViewStep::setConfigurationMap( const QVariantMap& configurationMap )
-{
- m_config->setConfigurationMap( configurationMap );
- Calamares::QmlViewStep::setConfigurationMap( configurationMap );
-}
diff --git a/src/modules/finishedq/FinishedQmlViewStep.h b/src/modules/finishedq/FinishedQmlViewStep.h
deleted file mode 100644
index 7bcf0e67f1..0000000000
--- a/src/modules/finishedq/FinishedQmlViewStep.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac
- * SPDX-FileCopyrightText: 2019 Adriaan de Groot
- * SPDX-FileCopyrightText: 2021 Anke Boersma
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#ifndef FINISHEDQMLVIEWSTEP_H
-#define FINISHEDQMLVIEWSTEP_H
-
-#include
-
-#include "Config.h"
-
-#include "DllMacro.h"
-#include "utils/PluginFactory.h"
-#include "viewpages/QmlViewStep.h"
-
-#include
-
-class Config;
-
-class PLUGINDLLEXPORT FinishedQmlViewStep : public Calamares::QmlViewStep
-{
- Q_OBJECT
-
-public:
- explicit FinishedQmlViewStep( QObject* parent = nullptr );
-
- QString prettyName() const override;
-
- bool isNextEnabled() const override;
- bool isBackEnabled() const override;
-
- bool isAtBeginning() const override;
- bool isAtEnd() const override;
-
- void onActivate() override;
-
- Calamares::JobList jobs() const override;
-
- void setConfigurationMap( const QVariantMap& configurationMap ) override;
- QObject* getConfig() override;
-
-private:
- Config* m_config;
-
- bool m_installFailed; // Track if onInstallationFailed() was called
-};
-
-CALAMARES_PLUGIN_FACTORY_DECLARATION( FinishedQmlViewStepFactory )
-
-#endif
diff --git a/src/modules/finishedq/finishedq-qt6.qml b/src/modules/finishedq/finishedq-qt6.qml
deleted file mode 100644
index 885a66f0d5..0000000000
--- a/src/modules/finishedq/finishedq-qt6.qml
+++ /dev/null
@@ -1,99 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2021 - 2023 Anke Boersma
- * SPDX-License-Identifier: GPL-3.0-or-later
- * License-Filename: LICENSE
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-import io.calamares.core 1.0
-import io.calamares.ui 1.0
-
-import QtQuick
-import QtQuick.Controls
-import QtQuick.Layouts
-import org.kde.kirigami as Kirigami
-import QtQuick.Window
-
-Page {
-
- id: finished
-
- width: parent.width
- height: parent.height
-
- header: Kirigami.Heading {
- width: parent.width
- height: 100
- id: header
- Layout.fillWidth: true
- horizontalAlignment: Qt.AlignHCenter
- color: Kirigami.Theme.textColor
- level: 1
- text: qsTr("Installation Completed", "@title")
-
- Text {
- anchors.top: header.bottom
- anchors.horizontalCenter: parent.horizontalCenter
- horizontalAlignment: Text.AlignHCenter
- font.pointSize: 12
- text: qsTr("%1 has been installed on your computer.
- You may now restart into your new system, or continue using the Live environment.", "@info, %1 is the product name")
- .arg(Branding.string(Branding.ProductName))
- }
-
- Image {
- source: "seedling.svg"
- anchors.top: header.bottom
- anchors.topMargin: 80
- anchors.horizontalCenter: parent.horizontalCenter
- width: 64
- height: 64
- mipmap: true
- }
- }
-
- RowLayout {
- Layout.alignment: Qt.AlignRight|Qt.AlignVCenter
- anchors.centerIn: parent
- spacing: 6
-
- Button {
- id: button
- text: qsTr("Close Installer", "@button")
- icon.name: "application-exit"
- onClicked: { ViewManager.quit(); }
- }
-
- Button {
- text: qsTr("Restart System", "@button")
- icon.name: "system-reboot"
- onClicked: { config.doRestart(true); }
- }
- }
-
- Item {
-
- Layout.fillHeight: true
- Layout.fillWidth: true
- anchors.bottom: parent.bottom
- anchors.bottomMargin : 100
- anchors.horizontalCenter: parent.horizontalCenter
-
- Text {
- anchors.centerIn: parent
- anchors.top: parent.top
- horizontalAlignment: Text.AlignHCenter
- text: qsTr("
A full log of the install is available as installation.log in the home directory of the Live user.
- This log is copied to /var/log/installation.log of the target system.
", "@info")
- }
- }
-
- function onActivate() {
- }
-
- function onLeave() {
- }
-}
diff --git a/src/modules/finishedq/finishedq-qt6.qrc b/src/modules/finishedq/finishedq-qt6.qrc
deleted file mode 100644
index c0daf36ff5..0000000000
--- a/src/modules/finishedq/finishedq-qt6.qrc
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- finishedq-qt6.qml
- seedling.svg
-
-
diff --git a/src/modules/finishedq/finishedq.conf b/src/modules/finishedq/finishedq.conf
deleted file mode 100644
index ee226c3565..0000000000
--- a/src/modules/finishedq/finishedq.conf
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# Configuration for the "finishedq" page, which is usually shown only at
-# the end of the installation (successful or not).
-#
-# See the documentation for the "finished" module for a full explanation
-# of the configuration options; the description here applies primarily
-# to the use that the QML makes of them.
----
-# Behavior of the "restart system now" button.
-#
-# The example QML for this module offers a "Restart Now" button,
-# which the user can click on. It calls directly to the restart
-# function. If the user closes the installer in some other way,
-# (the "Done" button or close-window) a restart **might** happen:
-#
-# - never
-# Do not restart (this will also block the "Restart Now" button,
-# so it is not very useful)
-# - user-unchecked
-# Do not restart on other ways of closing the window. No checkbox
-# is shown in the example QML, so there is no way for the user to
-# express a choice -- except by clicking the "Restart Now" button.
-# - user-checked
-# Do restart on other ways of closing the window. This makes close
-# and "Restart Now" do the same thing. No checkbox is shown by the QML,
-# so the machine will **always** restart.
-# - always
-# Same as above.
-#
-# For the **specific** example QML included with this module, only
-# *user-unchecked* really makes sense.
-restartNowMode: user-unchecked
-restartNowCommand: "systemctl -i reboot"
-notifyOnFinished: false
diff --git a/src/modules/finishedq/finishedq.qml b/src/modules/finishedq/finishedq.qml
deleted file mode 100644
index 789ac4cfbd..0000000000
--- a/src/modules/finishedq/finishedq.qml
+++ /dev/null
@@ -1,101 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2021 Anke Boersma
- * SPDX-License-Identifier: GPL-3.0-or-later
- * License-Filename: LICENSE
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-import io.calamares.core 1.0
-import io.calamares.ui 1.0
-
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.3
-import org.kde.kirigami 2.7 as Kirigami
-import QtGraphicalEffects 1.0
-import QtQuick.Window 2.3
-
-Page {
-
- id: finished
-
- width: parent.width
- height: parent.height
-
- header: Kirigami.Heading {
- width: parent.width
- height: 100
- id: header
- Layout.fillWidth: true
- horizontalAlignment: Qt.AlignHCenter
- color: Kirigami.Theme.textColor
- level: 1
- text: qsTr("Installation Completed")
-
- Text {
- anchors.top: header.bottom
- anchors.horizontalCenter: parent.horizontalCenter
- horizontalAlignment: Text.AlignHCenter
- font.pointSize: 12
- text: qsTr("%1 has been installed on your computer.
- You may now restart into your new system, or continue using the Live environment.").arg(Branding.string(Branding.ProductName))
- }
-
- Image {
- source: "seedling.svg"
- anchors.top: header.bottom
- anchors.topMargin: 80
- anchors.horizontalCenter: parent.horizontalCenter
- width: 64
- height: 64
- mipmap: true
- }
- }
-
- RowLayout {
- Layout.alignment: Qt.AlignRight|Qt.AlignVCenter
- anchors.centerIn: parent
- spacing: 6
-
- Button {
- id: button
- text: qsTr("Close Installer")
- icon.name: "application-exit"
- onClicked: { ViewManager.quit(); }
- }
-
- Button {
- text: qsTr("Restart System")
- icon.name: "system-reboot"
- onClicked: { config.doRestart(true); }
- }
- }
-
- Item {
-
- Layout.fillHeight: true
- Layout.fillWidth: true
- anchors.bottom: parent.bottom
- anchors.bottomMargin : 100
- anchors.horizontalCenter: parent.horizontalCenter
-
- Text {
- anchors.centerIn: parent
- anchors.top: parent.top
- horizontalAlignment: Text.AlignHCenter
- text: qsTr("
A full log of the install is available as installation.log in the home directory of the Live user.
- This log is copied to /var/log/installation.log of the target system.
")
- }
- }
-
- function onActivate()
- {
- }
-
- function onLeave()
- {
- }
-}
diff --git a/src/modules/finishedq/finishedq.qrc b/src/modules/finishedq/finishedq.qrc
deleted file mode 100644
index e0918eb7f3..0000000000
--- a/src/modules/finishedq/finishedq.qrc
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- finishedq.qml
- seedling.svg
-
-
diff --git a/src/modules/finishedq/finishedq@mobile.qml b/src/modules/finishedq/finishedq@mobile.qml
deleted file mode 100644
index 2e6fe04921..0000000000
--- a/src/modules/finishedq/finishedq@mobile.qml
+++ /dev/null
@@ -1,122 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2021 Anke Boersma
- * SPDX-License-Identifier: GPL-3.0-or-later
- * License-Filename: LICENSE
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-import io.calamares.core 1.0
-import io.calamares.ui 1.0
-
-import QtQuick 2.15
-import QtQuick.Controls 2.15
-import QtQuick.Layouts 1.3
-import org.kde.kirigami 2.7 as Kirigami
-import QtGraphicalEffects 1.0
-import QtQuick.Window 2.3
-
-Page {
-
- id: finished
-
- width: parent.width
- height: parent.height
-
- header: Kirigami.Heading {
- width: parent.width
- height: 100
- id: header
- Layout.fillWidth: true
- horizontalAlignment: Qt.AlignHCenter
- color: Kirigami.Theme.textColor
- level: 1
- text: qsTr("Installation Completed", "@title")
-
- Text {
- anchors.top: header.bottom
- anchors.horizontalCenter: parent.horizontalCenter
- horizontalAlignment: Text.AlignHCenter
- font.pointSize: 12
- text: qsTr("%1 has been installed on your computer.
- You may now restart your device.", "@info, %1 is the product name")
- .arg(Branding.string(Branding.ProductName))
- }
-
- Image {
- source: "seedling.svg"
- anchors.top: header.bottom
- anchors.topMargin: 80
- anchors.horizontalCenter: parent.horizontalCenter
- width: 64
- height: 64
- mipmap: true
- }
- }
-
- RowLayout {
- Layout.alignment: Qt.AlignRight|Qt.AlignVCenter
- anchors.centerIn: parent
- spacing: 6
-
- Button {
- id: button
- text: qsTr("Close", "@button")
- icon.name: "application-exit"
- onClicked: { ViewManager.quit(); }
- }
-
- Button {
- text: qsTr("Restart", "@button")
- icon.name: "system-reboot"
- onClicked: { config.doRestart(true); }
- }
- }
-
- Item {
-
- Layout.fillHeight: true
- Layout.fillWidth: true
- anchors.bottom: parent.bottom
- anchors.bottomMargin : 100
- anchors.horizontalCenter: parent.horizontalCenter
-
- ProgressBar {
- id: autoRestartBar
- value: 1.0
- anchors.horizontalCenter: parent.horizontalCenter
-
- }
-
- Timer {
- id: autoRestartTimer
- // This is in milliseconds and should be less than 1000 (because of logic in onTriggered)
- interval: 100
- repeat: true
- running: false
- // Whenever the timer fires (1000 / interval times a second) count the progress bar down
- // by 1%. When the bar is empty, try to restart normally; as a backup, when the bar
- // is empty change settings and schedule it to quit 1000 milliseconds (1s) later.
- onTriggered: {
- autoRestartBar.value -= 0.01;
- if (autoRestartBar.value <= 0.0) {
- // First time through here, set the interval to 1000 so that the
- // second time (1 second later) goes to quit().
- if ( interval > 999) { ViewManager.quit(); }
- else { config.doRestart(true); running = false; interval = 1000; repeat = false; start(); }
- }
- }
- }
- }
-
- function onActivate()
- {
- autoRestartTimer.running = true
- }
-
- function onLeave()
- {
- }
-}
diff --git a/src/modules/finishedq/seedling.svg b/src/modules/finishedq/seedling.svg
deleted file mode 100644
index 8f3501b170..0000000000
--- a/src/modules/finishedq/seedling.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/modules/finishedq/seedling.svg.license b/src/modules/finishedq/seedling.svg.license
deleted file mode 100644
index 0604e8da9c..0000000000
--- a/src/modules/finishedq/seedling.svg.license
+++ /dev/null
@@ -1,2 +0,0 @@
-SPDX-FileCopyrightText: 2021 FontAwesome
-SPDX-License-Identifier: CC-BY-4.0
diff --git a/src/modules/fsresizer/CMakeLists.txt b/src/modules/fsresizer/CMakeLists.txt
deleted file mode 100644
index 43ba6d6d47..0000000000
--- a/src/modules/fsresizer/CMakeLists.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2020 Adriaan de Groot
-# SPDX-License-Identifier: BSD-2-Clause
-#
-include(KPMcoreHelper)
-
-if(KPMcore_FOUND)
- include_directories(${KPMCORE_INCLUDE_DIR} ${CMAKE_SOURCE_DIR}/src/modules/partition)
-
- # The PartitionIterator is a small class, and it's easiest -- but also a
- # gross hack -- to just compile it again from the partition module tree.
- calamares_add_plugin(fsresizer
- TYPE job
- EXPORT_MACRO PLUGINDLLEXPORT_PRO
- SOURCES
- ResizeFSJob.cpp
- LINK_PRIVATE_LIBRARIES
- calamares::kpmcore
- COMPILE_DEFINITIONS ${KPMcore_API_DEFINITIONS}
- SHARED_LIB
- )
-
- calamares_add_test(
- fsresizertest
- SOURCES Tests.cpp
- LIBRARIES
- calamares_job_fsresizer # From above
- yamlcpp::yamlcpp
- DEFINITIONS ${KPMcore_API_DEFINITIONS}
- )
-else()
- if(NOT KPMcore_FOUND)
- calamares_skip_module( "fsresizer (missing suitable KPMcore)" )
- else()
- calamares_skip_module( "fsresizer (missing dependencies for KPMcore)" )
- endif()
-endif()
diff --git a/src/modules/fsresizer/ResizeFSJob.cpp b/src/modules/fsresizer/ResizeFSJob.cpp
deleted file mode 100644
index e3f2fef307..0000000000
--- a/src/modules/fsresizer/ResizeFSJob.cpp
+++ /dev/null
@@ -1,256 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2018 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#include "ResizeFSJob.h"
-
-#include "CalamaresVersion.h"
-#include "GlobalStorage.h"
-#include "JobQueue.h"
-#include "partition/PartitionIterator.h"
-#include "utils/Logger.h"
-#include "utils/Units.h"
-#include "utils/Variant.h"
-
-#include
-#include
-
-#include
-#include
-#include
-#include
-#include
-#include
-
-using Calamares::Partition::PartitionIterator;
-
-ResizeFSJob::ResizeFSJob( QObject* parent )
- : Calamares::CppJob( parent )
- , m_required( false )
-{
-}
-
-ResizeFSJob::~ResizeFSJob() {}
-
-QString
-ResizeFSJob::prettyName() const
-{
- return tr( "Performing file system resize…", "@status" );
-}
-
-ResizeFSJob::PartitionMatch
-ResizeFSJob::findPartition()
-{
- using DeviceList = QList< Device* >;
- DeviceList devices
- = m_kpmcore.backend()->scanDevices( /* not includeReadOnly, not includeLoopback */ ScanFlag( 0 ) );
-
- cDebug() << "ResizeFSJob found" << devices.count() << "devices.";
- for ( DeviceList::iterator dev_it = devices.begin(); dev_it != devices.end(); ++dev_it )
- {
- if ( !( *dev_it ) )
- {
- continue;
- }
- cDebug() << "ResizeFSJob found" << ( *dev_it )->deviceNode();
- for ( auto part_it = PartitionIterator::begin( *dev_it ); part_it != PartitionIterator::end( *dev_it );
- ++part_it )
- {
- cDebug() << Logger::SubEntry << ( *part_it )->mountPoint() << "on" << ( *part_it )->deviceNode();
- if ( ( !m_fsname.isEmpty() && ( *part_it )->mountPoint() == m_fsname )
- || ( !m_devicename.isEmpty() && ( *part_it )->deviceNode() == m_devicename ) )
- {
- cDebug() << Logger::SubEntry << "matched configuration dev=" << m_devicename << "fs=" << m_fsname;
- return PartitionMatch( *dev_it, *part_it );
- }
- }
- }
-
- cDebug() << "No match for configuration dev=" << m_devicename << "fs=" << m_fsname;
- return PartitionMatch( nullptr, nullptr );
-}
-
-/** @brief Returns the last sector the matched partition should occupy.
- *
- * Returns a sector number. Returns -1 if something is wrong (e.g.
- * can't resize at all, or missing data). Returns 0 if the resize
- * won't fit because it doesn't satisfy the settings for atleast
- * and size (or won't grow at all because the partition is blocked
- * by occupied space after it).
- */
-qint64
-ResizeFSJob::findGrownEnd( ResizeFSJob::PartitionMatch m )
-{
- if ( !m.first || !m.second )
- {
- return -1; // Missing device data
- }
- if ( !ResizeOperation::canGrow( m.second ) )
- {
- return -1; // Operation is doomed
- }
- if ( !m_size.isValid() )
- {
- return -1; // Must have a grow-size
- }
-
- cDebug() << "Containing device size" << m.first->totalLogical();
- qint64 last_available = m.first->totalLogical() - 1; // Numbered from 0
- qint64 last_currently = m.second->lastSector();
- cDebug() << "Growing partition" << m.second->firstSector() << '-' << last_currently;
-
- for ( auto part_it = PartitionIterator::begin( m.first ); part_it != PartitionIterator::end( m.first ); ++part_it )
- {
- qint64 next_start = ( *part_it )->firstSector();
- qint64 next_end = ( *part_it )->lastSector();
- if ( next_start > next_end )
- {
- cWarning() << "Corrupt partition has end" << next_end << " < start" << next_start;
- std::swap( next_start, next_end );
- }
- if ( ( *part_it )->roles().has( PartitionRole::Unallocated ) )
- {
- cDebug() << Logger::SubEntry << "ignoring unallocated" << next_start << '-' << next_end;
- continue;
- }
- cDebug() << Logger::SubEntry << "comparing" << next_start << '-' << next_end;
- if ( ( next_start > last_currently ) && ( next_start < last_available ) )
- {
- cDebug() << Logger::SubEntry << "shrunk last available to" << next_start;
- last_available = next_start - 1; // Before that one starts
- }
- }
-
- if ( !( last_available > last_currently ) )
- {
- cDebug() << "Partition cannot grow larger.";
- return 0;
- }
-
- qint64 expand = last_available - last_currently; // number of sectors
- if ( m_atleast.isValid() )
- {
- qint64 required = m_atleast.toSectors( m.first->totalLogical(), m.first->logicalSize() );
- if ( expand < required )
- {
- cDebug() << Logger::SubEntry << "need to expand by" << required << "but only" << expand << "is available.";
- return 0;
- }
- }
-
- qint64 wanted = m_size.toSectors( expand, m.first->logicalSize() );
- if ( wanted < expand )
- {
- cDebug() << Logger::SubEntry << "only growing by" << wanted << "instead of full" << expand;
- last_available -= ( expand - wanted );
- }
-
- return last_available;
-}
-
-Calamares::JobResult
-ResizeFSJob::exec()
-{
- if ( !isValid() )
- {
- return Calamares::JobResult::error(
- tr( "Invalid configuration", "@error" ),
- tr( "The file-system resize job has an invalid configuration and will not run.", "@error" ) );
- }
-
- if ( !m_kpmcore )
- {
- cWarning() << "Could not load KPMCore backend (2).";
- return Calamares::JobResult::error( tr( "KPMCore not available", "@error" ),
- tr( "Calamares cannot start KPMCore for the file system resize job.", "@error" ) );
- }
- m_kpmcore.backend()->initFSSupport(); // Might not be enough, see below
-
- // Now get the partition and FS we want to work on
- PartitionMatch m = findPartition();
- if ( !m.first || !m.second )
- {
- return Calamares::JobResult::error(
- tr( "Resize failed.", "@error" ),
- !m_fsname.isEmpty()
- ? tr( "The filesystem %1 could not be found in this system, and cannot be resized.", "@info" ).arg( m_fsname )
- : tr( "The device %1 could not be found in this system, and cannot be resized.", "@info" ).arg( m_devicename ) );
- }
-
- m.second->fileSystem().init(); // Initialize support for specific FS
- if ( !ResizeOperation::canGrow( m.second ) )
- {
- cDebug() << "canGrow() returned false.";
- return Calamares::JobResult::error( tr( "Resize Failed", "@error" ),
- !m_fsname.isEmpty()
- ? tr( "The filesystem %1 cannot be resized.", "@error" ).arg( m_fsname )
- : tr( "The device %1 cannot be resized.", "@error" ).arg( m_devicename ) );
- }
-
- qint64 new_end = findGrownEnd( m );
- cDebug() << "Resize from" << m.second->firstSector() << '-' << m.second->lastSector() << '(' << m.second->length()
- << ')' << "to -" << new_end;
-
- if ( new_end < 0 )
- {
- return Calamares::JobResult::error( tr( "Resize Failed", "@error" ),
- !m_fsname.isEmpty()
- ? tr( "The filesystem %1 cannot be resized.", "@error" ).arg( m_fsname )
- : tr( "The device %1 cannot be resized.", "@error" ).arg( m_devicename ) );
- }
- if ( new_end == 0 )
- {
- cWarning() << "Resize operation on" << m_fsname << m_devicename << "skipped as not-useful.";
- if ( m_required )
- {
- return Calamares::JobResult::error(
- tr( "Resize Failed", "@error" ),
- !m_fsname.isEmpty() ? tr( "The file system %1 must be resized, but cannot.", "@info" ).arg( m_fsname )
- : tr( "The device %1 must be resized, but cannot", "@info" ).arg( m_fsname ) );
- }
-
- return Calamares::JobResult::ok();
- }
-
- if ( ( new_end > 0 ) && ( new_end > m.second->lastSector() ) )
- {
- ResizeOperation op( *m.first, *m.second, m.second->firstSector(), new_end );
- Report op_report( nullptr );
- if ( op.execute( op_report ) )
- {
- cDebug() << "Resize operation OK.";
- }
- else
- {
- cDebug() << "Resize failed." << op_report.output();
- return Calamares::JobResult::error( tr( "Resize Failed", "@error" ), op_report.toText() );
- }
- }
-
- return Calamares::JobResult::ok();
-}
-
-void
-ResizeFSJob::setConfigurationMap( const QVariantMap& configurationMap )
-{
- m_fsname = configurationMap[ "fs" ].toString();
- m_devicename = configurationMap[ "dev" ].toString();
-
- if ( m_fsname.isEmpty() && m_devicename.isEmpty() )
- {
- cWarning() << "No fs or dev configured for resize.";
- return;
- }
-
- m_size = PartitionSize( configurationMap[ "size" ].toString() );
- m_atleast = PartitionSize( configurationMap[ "atleast" ].toString() );
-
- m_required = Calamares::getBool( configurationMap, "required", false );
-}
-
-CALAMARES_PLUGIN_FACTORY_DEFINITION( ResizeFSJobFactory, registerPlugin< ResizeFSJob >(); )
diff --git a/src/modules/fsresizer/ResizeFSJob.h b/src/modules/fsresizer/ResizeFSJob.h
deleted file mode 100644
index e31c0b911a..0000000000
--- a/src/modules/fsresizer/ResizeFSJob.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2018 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#ifndef RESIZEFSJOB_H
-#define RESIZEFSJOB_H
-
-#include
-#include
-
-#include "CppJob.h"
-
-#include "partition/KPMManager.h"
-#include "partition/PartitionSize.h"
-#include "utils/PluginFactory.h"
-
-#include "DllMacro.h"
-
-class CoreBackend; // From KPMCore
-class Device; // From KPMCore
-class Partition;
-
-using PartitionSize = Calamares::Partition::PartitionSize;
-
-class PLUGINDLLEXPORT ResizeFSJob : public Calamares::CppJob
-{
- Q_OBJECT
-
-public:
- explicit ResizeFSJob( QObject* parent = nullptr );
- ~ResizeFSJob() override;
-
- QString prettyName() const override;
-
- Calamares::JobResult exec() override;
-
- void setConfigurationMap( const QVariantMap& configurationMap ) override;
-
- /** @brief Is the configuration of this job valid? */
- bool isValid() const { return ( !m_fsname.isEmpty() || !m_devicename.isEmpty() ) && m_size.isValid(); }
-
- QString name() const { return m_fsname.isEmpty() ? m_devicename : m_fsname; }
-
- PartitionSize size() const { return m_size; }
-
- PartitionSize minimumSize() const { return m_atleast; }
-
-private:
- Calamares::Partition::KPMManager m_kpmcore;
- PartitionSize m_size;
- PartitionSize m_atleast;
- QString m_fsname; // Either this, or devicename, is set, not both
- QString m_devicename;
- bool m_required;
-
- using PartitionMatch = QPair< Device*, Partition* >;
- /** @brief Find the configured FS */
- PartitionMatch findPartition();
-
- /** @brief Return a new end-sector for the given dev-part pair. */
- qint64 findGrownEnd( PartitionMatch );
-};
-
-CALAMARES_PLUGIN_FACTORY_DECLARATION( ResizeFSJobFactory )
-
-#endif // RESIZEFSJOB_H
diff --git a/src/modules/fsresizer/Tests.cpp b/src/modules/fsresizer/Tests.cpp
deleted file mode 100644
index ff12310d9f..0000000000
--- a/src/modules/fsresizer/Tests.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2017-2018 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#include "Tests.h"
-
-#include "ResizeFSJob.h"
-
-#include "GlobalStorage.h"
-#include "JobQueue.h"
-#include "Settings.h"
-
-#include "utils/Logger.h"
-#include "utils/Yaml.h"
-
-#include
-
-#include
-#include
-
-using SizeUnit = Calamares::Partition::SizeUnit;
-
-QTEST_GUILESS_MAIN( FSResizerTests )
-
-FSResizerTests::FSResizerTests() {}
-
-FSResizerTests::~FSResizerTests() {}
-
-void
-FSResizerTests::initTestCase()
-{
-}
-
-void
-FSResizerTests::testConfigurationRobust()
-{
- ResizeFSJob j;
-
- // Empty config
- j.setConfigurationMap( QVariantMap() );
- QVERIFY( j.name().isEmpty() );
- QCOMPARE( j.size().unit(), SizeUnit::None );
- QCOMPARE( j.minimumSize().unit(), SizeUnit::None );
-
- // Config is missing fs and dev, so it isn't valid
- YAML::Node doc0 = YAML::Load( R"(---
- size: 100%
- atleast: 600MiB
- )" );
- j.setConfigurationMap( Calamares::YAML::mapToVariant( doc0 ) );
- QVERIFY( j.name().isEmpty() );
- QCOMPARE( j.size().unit(), SizeUnit::None );
- QCOMPARE( j.minimumSize().unit(), SizeUnit::None );
- QCOMPARE( j.size().value(), 0 );
- QCOMPARE( j.minimumSize().value(), 0 );
-}
-
-void
-FSResizerTests::testConfigurationValues()
-{
- ResizeFSJob j;
-
- // Check both
- YAML::Node doc0 = YAML::Load( R"(---
- fs: /
- size: 100%
- atleast: 600MiB
- )" );
- j.setConfigurationMap( Calamares::YAML::mapToVariant( doc0 ) );
- QVERIFY( !j.name().isEmpty() );
- QCOMPARE( j.name(), QString( "/" ) );
- QCOMPARE( j.size().unit(), SizeUnit::Percent );
- QCOMPARE( j.minimumSize().unit(), SizeUnit::MiB );
- QCOMPARE( j.size().value(), 100 );
- QCOMPARE( j.minimumSize().value(), 600 );
-
- // Silly config has bad atleast value
- doc0 = YAML::Load( R"(---
- fs: /
- dev: /dev/m00
- size: 72 MiB
- atleast: 127 %
- )" );
- j.setConfigurationMap( Calamares::YAML::mapToVariant( doc0 ) );
- QVERIFY( !j.name().isEmpty() );
- QCOMPARE( j.name(), QString( "/" ) );
- QCOMPARE( j.size().unit(), SizeUnit::MiB );
- QCOMPARE( j.minimumSize().unit(), SizeUnit::None );
- QCOMPARE( j.size().value(), 72 );
- QCOMPARE( j.minimumSize().value(), 0 );
-
- // Silly config has bad atleast value
- doc0 = YAML::Load( R"(---
- dev: /dev/m00
- size: 72 MiB
- atleast: 127 %
- )" );
- j.setConfigurationMap( Calamares::YAML::mapToVariant( doc0 ) );
- QVERIFY( !j.name().isEmpty() );
- QCOMPARE( j.name(), QString( "/dev/m00" ) );
- QCOMPARE( j.size().unit(), SizeUnit::MiB );
- QCOMPARE( j.minimumSize().unit(), SizeUnit::None );
- QCOMPARE( j.size().value(), 72 );
- QCOMPARE( j.minimumSize().value(), 0 );
-
- // Normal config
- doc0 = YAML::Load( R"(---
- fs: /
-# dev: /dev/m00
- size: 71MiB
-# atleast: 127%
- )" );
- j.setConfigurationMap( Calamares::YAML::mapToVariant( doc0 ) );
- QVERIFY( !j.name().isEmpty() );
- QCOMPARE( j.name(), QString( "/" ) );
- QCOMPARE( j.size().unit(), SizeUnit::MiB );
- QCOMPARE( j.minimumSize().unit(), SizeUnit::None );
- QCOMPARE( j.size().value(), 71 );
- QCOMPARE( j.minimumSize().value(), 0 );
-}
diff --git a/src/modules/fsresizer/Tests.h b/src/modules/fsresizer/Tests.h
deleted file mode 100644
index f3d2308ec9..0000000000
--- a/src/modules/fsresizer/Tests.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2018 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#ifndef TESTS_H
-#define TESTS_H
-
-#include
-
-class FSResizerTests : public QObject
-{
- Q_OBJECT
-public:
- FSResizerTests();
- ~FSResizerTests() override;
-
-private Q_SLOTS:
- void initTestCase();
- // Can handle missing values
- void testConfigurationRobust();
- // Can parse % and MiB values
- void testConfigurationValues();
-};
-
-#endif
diff --git a/src/modules/fsresizer/fsresizer.conf b/src/modules/fsresizer/fsresizer.conf
deleted file mode 100644
index e58c39822f..0000000000
--- a/src/modules/fsresizer/fsresizer.conf
+++ /dev/null
@@ -1,52 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# Module that resizes a single FS to fill the entire (rest) of
-# a device. This is used in OEM situations where an image is
-# flashed onto an SD card (or similar) and used to boot a device,
-# after which the FS should expand to fill the SD card.
-#
-# Example: a distro produces a 6GiB large image that is
-# written to an 8GiB SD card; the FS should expand to take
-# advantage of the unused 2GiB. The FS should expand much
-# more if the same image is written to a 16GiB card.
----
-
-# Which FS needs to be grown? Choose one way to identify it:
-# - *fs* names a mount point which should already be mounted
-# in the system.
-# - *dev* names a device
-fs: /
-# dev: /dev/mmcblk0p1
-
-# How much of the total remaining space should the FS use?
-# The only sensible amount is "all of it". The value is
-# in percent, so set it to 100. Perhaps a fixed size is
-# needed (that would be weird though, since you don't know
-# how big the card is), use MiB as suffix in that case.
-# If missing, then it's assumed to be 0, and no resizing
-# will happen.
-#
-# Percentages apply to **available space**.
-size: 100%
-
-# Resizing might not be worth it, though. Set the minimum
-# that it must grow; if it cannot grow that much, the
-# resizing is skipped. Can be in percentage or absolute
-# size, as above. If missing, then it's assumed to be 0,
-# which means resizing is always worthwhile.
-#
-# If *atleast* is not zero, then the setting *required*,
-# below, becomes relevant.
-#
-# Percentages apply to **total device size**.
-#atleast: 1000MiB
-
-# When *atleast* is not zero, then the resize may be
-# recommended (the default) or **required**. If the
-# resize is required and cannot be carried out (because
-# there's not enough space), then that is a fatal
-# error for the installer. By default, resize is only
-# recommended and it is not an error for no resize to be
-# carried out.
-required: false
diff --git a/src/modules/fstab/fstab.conf b/src/modules/fstab/fstab.conf
deleted file mode 100644
index 5c5c5662dc..0000000000
--- a/src/modules/fstab/fstab.conf
+++ /dev/null
@@ -1,37 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# Creates /etc/fstab and /etc/crypttab in the target system.
-# Also creates mount points for all the filesystems.
-#
-# When creating fstab entries for a filesystem, this module
-# uses the options previously defined in the mount module
----
-
-# Additional options added to each line in /etc/crypttab
-crypttabOptions: luks
-# For Debian and Debian-based distributions, change the above line to:
-# crypttabOptions: luks,keyscript=/bin/cat
-
-# Options for handling /tmp in /etc/fstab
-# Currently default (required) and ssd are supported
-# The corresponding string can contain the following variables:
-# tmpfs: true or tmpfs: false to either mount /tmp as tmpfs or not
-# options: ""
-#
-# Example:
-#tmpOptions:
-# default:
-# tmpfs: false
-# options: ""
-# ssd:
-# tmpfs: true
-# options: "defaults,noatime,mode=1777"
-#
-tmpOptions:
- default:
- tmpfs: false
- options: ""
- ssd:
- tmpfs: true
- options: "defaults,noatime,mode=1777"
diff --git a/src/modules/fstab/fstab.schema.yaml b/src/modules/fstab/fstab.schema.yaml
deleted file mode 100644
index e298a9d040..0000000000
--- a/src/modules/fstab/fstab.schema.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-# SPDX-FileCopyrightText: 2020 Adriaan de Groot
-# SPDX-License-Identifier: GPL-3.0-or-later
----
-$schema: https://json-schema.org/schema#
-$id: https://calamares.io/schemas/fstab
-additionalProperties: false
-type: object
-properties:
- crypttabOptions: { type: string }
- tmpOptions:
- type: object
- additionalProperties: false
- properties:
- "default":
- type: object
- additionalProperties: false
- properties:
- tmpfs: { type: boolean }
- options: { type: string }
- ssd:
- type: object
- additionalProperties: false
- properties:
- tmpfs: { type: boolean }
- options: { type: string }
- required: [ "default" ]
-required:
- - tmpOptions
diff --git a/src/modules/fstab/main.py b/src/modules/fstab/main.py
deleted file mode 100755
index 78cae63494..0000000000
--- a/src/modules/fstab/main.py
+++ /dev/null
@@ -1,432 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2014 Aurélien Gâteau
-# SPDX-FileCopyrightText: 2016 Teo Mrnjavac
-# SPDX-FileCopyrightText: 2017 Alf Gaida
-# SPDX-FileCopyrightText: 2019 Adriaan de Groot
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# Calamares is Free Software: see the License-Identifier above.
-#
-
-import os
-import re
-import copy
-
-import libcalamares
-
-import gettext
-_ = gettext.translation("calamares-python",
- localedir=libcalamares.utils.gettext_path(),
- languages=libcalamares.utils.gettext_languages(),
- fallback=True).gettext
-
-
-def pretty_name():
- return _("Writing fstab.")
-
-
-FSTAB_HEADER = """# /etc/fstab: static file system information.
-#
-# Use 'blkid' to print the universally unique identifier for a device; this may
-# be used with UUID= as a more robust way to name devices that works even if
-# disks are added and removed. See fstab(5).
-#
-# """
-
-CRYPTTAB_HEADER = """# /etc/crypttab: mappings for encrypted partitions.
-#
-# Each mapped device will be created in /dev/mapper, so your /etc/fstab
-# should use the /dev/mapper/ paths for encrypted devices.
-#
-# See crypttab(5) for the supported syntax.
-#
-# NOTE: You need not list your root (/) partition here, but it must be set up
-# beforehand by the initramfs (/etc/mkinitcpio.conf). The same applies
-# to encrypted swap, which should be set up with mkinitcpio-openswap
-# for resume support.
-#
-# """
-
-# Turn Parted filesystem names into fstab names
-FS_MAP = {
- "fat16": "vfat",
- "fat32": "vfat",
- "linuxswap": "swap",
-}
-
-
-def mkdir_p(path):
- """ Create directory.
-
- :param path:
- """
- if not os.path.exists(path):
- os.makedirs(path)
-
-
-def is_ssd_disk(disk_name):
- """ Checks if given disk is actually a ssd disk.
-
- :param disk_name:
- :return:
- """
- filename = os.path.join("/sys/block", disk_name, "queue/rotational")
-
- if not os.path.exists(filename):
- # Should not happen unless sysfs changes, but better safe than sorry
- return False
-
- with open(filename) as sysfile:
- return sysfile.read() == "0\n"
-
-
-def disk_name_for_partition(partition):
- """ Returns disk name for each found partition.
-
- :param partition:
- :return:
- """
- name = os.path.basename(partition["device"])
-
- if name.startswith("mmcblk") or name.startswith("nvme"):
- # Typical mmc device is mmcblk0p1, nvme looks like nvme0n1p2
- return re.sub("p[0-9]+$", "", name)
-
- return re.sub("[0-9]+$", "", name)
-
-
-class FstabGenerator(object):
- def __init__(self, partitions, root_mount_point, mount_options_list,
- crypttab_options, tmp_options):
- self.partitions = partitions
- self.root_mount_point = root_mount_point
- self.mount_options_list = mount_options_list
- self.crypttab_options = crypttab_options
- self.tmp_options = tmp_options
- self.ssd_disks = set()
- self.root_is_ssd = False
-
- def run(self):
- """ Calls needed sub routines.
-
- :return:
- """
- self.find_ssd_disks()
- self.generate_fstab()
- self.generate_crypttab()
- self.create_mount_points()
-
- return None
-
- def find_ssd_disks(self):
- """ Checks for ssd disks """
- disks = {disk_name_for_partition(x) for x in self.partitions}
- self.ssd_disks = {x for x in disks if is_ssd_disk(x)}
-
- def generate_crypttab(self):
- """ Create crypttab. """
- mkdir_p(os.path.join(self.root_mount_point, "etc"))
- crypttab_path = os.path.join(self.root_mount_point, "etc", "crypttab")
-
- with open(crypttab_path, "w") as crypttab_file:
- print(CRYPTTAB_HEADER, file=crypttab_file)
-
- for partition in self.partitions:
- dct = self.generate_crypttab_line_info(partition)
-
- if dct:
- self.print_crypttab_line(dct, file=crypttab_file)
-
- def generate_crypttab_line_info(self, partition):
- """ Generates information for each crypttab entry. """
- if "luksMapperName" not in partition or "luksUuid" not in partition:
- return None
-
- mapper_name = partition["luksMapperName"]
- luks_uuid = partition["luksUuid"]
- if not mapper_name or not luks_uuid:
- return None
-
- password = "/crypto_keyfile.bin"
- crypttab_options = self.crypttab_options
-
- # Set crypttab password for partition to none and remove crypttab options
- # if root partition was not encrypted
- if any([p["mountPoint"] == "/"
- and "luksMapperName" not in p
- for p in self.partitions]):
- password = "none"
- crypttab_options = ""
- # on root partition when /boot is unencrypted
- elif partition["mountPoint"] == "/":
- if any([p["mountPoint"] == "/boot"
- and "luksMapperName" not in p
- for p in self.partitions]):
- password = "none"
- crypttab_options = ""
-
- return dict(
- name=mapper_name,
- device="UUID=" + luks_uuid,
- password=password,
- options=crypttab_options,
- )
-
- def print_crypttab_line(self, dct, file=None):
- """ Prints line to '/etc/crypttab' file. """
- line = "{:21} {:<45} {} {}".format(dct["name"],
- dct["device"],
- dct["password"],
- dct["options"],
- )
-
- print(line, file=file)
-
- def generate_fstab(self):
- """ Create fstab. """
- mkdir_p(os.path.join(self.root_mount_point, "etc"))
- fstab_path = os.path.join(self.root_mount_point, "etc", "fstab")
-
- with open(fstab_path, "w") as fstab_file:
- print(FSTAB_HEADER, file=fstab_file)
-
- for partition in self.partitions:
- # Special treatment for a btrfs subvolumes
- if (partition["fs"] == "btrfs"
- and partition["mountPoint"] == "/"):
- # Subvolume list has been created in mount.conf and curated in mount module,
- # so all subvolumes here should be safe to add to fstab
- btrfs_subvolumes = libcalamares.globalstorage.value("btrfsSubvolumes")
- for s in btrfs_subvolumes:
- mount_entry = copy.deepcopy(partition)
- mount_entry["mountPoint"] = s["mountPoint"]
- mount_entry["subvol"] = s["subvolume"]
- dct = self.generate_fstab_line_info(mount_entry)
- if dct:
- self.print_fstab_line(dct, file=fstab_file)
- elif partition["fs"] != "zfs": # zfs partitions don't need an entry in fstab
- dct = self.generate_fstab_line_info(partition)
- if dct:
- self.print_fstab_line(dct, file=fstab_file)
-
- if self.root_is_ssd:
- # Old behavior was to mount /tmp as tmpfs
- # New behavior is to use tmpOptions to decide
- # if mounting /tmp as tmpfs and which options to use
- ssd = self.tmp_options.get("ssd", {})
- if not ssd:
- ssd = self.tmp_options.get("default", {})
- # Default to True to mimic old behavior
- tmpfs = ssd.get("tmpfs", True)
-
- if tmpfs:
- options = ssd.get("options", "defaults,noatime,mode=1777")
- # Mount /tmp on a tmpfs
- dct = dict(device="tmpfs",
- mount_point="/tmp",
- fs="tmpfs",
- options=options,
- check=0,
- )
- self.print_fstab_line(dct, file=fstab_file)
-
- def generate_fstab_line_info(self, partition):
- """
- Generates information (a dictionary of fstab-fields)
- for the given @p partition.
- """
- # Some "fs" names need special handling in /etc/fstab, so remap them.
- filesystem = partition["fs"].lower()
- filesystem = FS_MAP.get(filesystem, filesystem)
- luks_mapper_name = partition.get("luksMapperName", None)
- mount_point = partition["mountPoint"]
- disk_name = disk_name_for_partition(partition)
- is_ssd = disk_name in self.ssd_disks
-
- # Swap partitions are called "linuxswap" by parted.
- # That "fs" is visible in GS, but that gets mapped
- # to "swap", above, because that's the spelling needed in /etc/fstab
- if not mount_point and not filesystem == "swap":
- return None
- if not mount_point:
- mount_point = "swap"
-
- if filesystem == "swap" and not partition.get("claimed", None):
- libcalamares.utils.debug("Ignoring foreign swap {!s} {!s}".format(disk_name, partition.get("uuid", None)))
- return None
-
- options = self.get_mount_options(mount_point)
-
- if mount_point == "/" and filesystem != "btrfs":
- check = 1
- elif mount_point and mount_point != "swap" and filesystem != "btrfs":
- check = 2
- else:
- check = 0
-
- if mount_point == "/":
- self.root_is_ssd = is_ssd
-
- # If there's a set-and-not-empty subvolume set, add it
- if filesystem == "btrfs" and partition.get("subvol",None):
- options = "subvol={},".format(partition["subvol"]) + options
-
- device = None
- if luks_mapper_name:
- device = "/dev/mapper/" + luks_mapper_name
- elif partition["uuid"]:
- device = "UUID=" + partition["uuid"]
- else:
- device = partition["device"]
-
- if not device:
- # TODO: we get here when the user mounted a previously encrypted partition
- # This should be catched early in the process
- return None
-
- return dict(device=device,
- mount_point=mount_point,
- fs=filesystem,
- options=options,
- check=check,
- )
-
- def print_fstab_line(self, dct, file=None):
- """ Prints line to '/etc/fstab' file. """
- line = "{:41} {:<14} {:<7} {:<10} 0 {}".format(dct["device"],
- dct["mount_point"],
- dct["fs"],
- dct["options"],
- dct["check"],
- )
- print(line, file=file)
-
- def create_mount_points(self):
- """ Creates mount points """
- for partition in self.partitions:
- if partition["mountPoint"]:
- mkdir_p(self.root_mount_point + partition["mountPoint"])
-
- def get_mount_options(self, mountpoint):
- """
- Returns the mount options for a given mountpoint
-
- :param mountpoint: A string containing the mountpoint for the fstab entry
- :return: A string containing the mount options for the entry or "defaults" if nothing is found
- """
- mount_options_item = next((x for x in self.mount_options_list if x.get("mountpoint") == mountpoint), None)
- if mount_options_item:
- return mount_options_item.get("option_string", "defaults")
- else:
- return "defaults"
-
-
-def create_swapfile(root_mount_point, root_btrfs):
- """
- Creates /swapfile in @p root_mount_point ; if the root filesystem
- is on btrfs, then handle some btrfs specific features as well,
- as documented in
- https://wiki.archlinux.org/index.php/Swap#Swap_file
-
- The swapfile-creation covers progress from 0.2 to 0.5
- """
- libcalamares.job.setprogress(0.2)
- if root_btrfs:
- # btrfs swapfiles must reside on a subvolume that is not snapshotted to prevent file system corruption
- swapfile_path = os.path.join(root_mount_point, "swap/swapfile")
- with open(swapfile_path, "wb") as f:
- pass
- libcalamares.utils.host_env_process_output(["chattr", "+C", "+m", swapfile_path]) # No Copy-on-Write, no compression
- else:
- swapfile_path = os.path.join(root_mount_point, "swapfile")
- with open(swapfile_path, "wb") as f:
- pass
- # Create the swapfile; swapfiles are small-ish
- zeroes = bytes(16384)
- with open(swapfile_path, "wb") as f:
- total = 0
- desired_size = 512 * 1024 * 1024 # 512MiB
- while total < desired_size:
- chunk = f.write(zeroes)
- if chunk < 1:
- libcalamares.utils.debug("Short write on {!s}, cancelling.".format(swapfile_path))
- break
- libcalamares.job.setprogress(0.2 + 0.3 * ( total / desired_size ) )
- total += chunk
- os.chmod(swapfile_path, 0o600)
- libcalamares.utils.host_env_process_output(["mkswap", swapfile_path])
- libcalamares.job.setprogress(0.5)
-
-
-def run():
- """ Configures fstab.
-
- :return:
- """
- global_storage = libcalamares.globalstorage
- conf = libcalamares.job.configuration
- partitions = global_storage.value("partitions")
- root_mount_point = global_storage.value("rootMountPoint")
-
- if not partitions:
- libcalamares.utils.warning("partitions is empty, {!s}"
- .format(partitions))
- return (_("Configuration Error"),
- _("No partitions are defined for
{!s}
to use.")
- .format("fstab"))
- if not root_mount_point:
- libcalamares.utils.warning("rootMountPoint is empty, {!s}"
- .format(root_mount_point))
- return (_("Configuration Error"),
- _("No root mount point is given for
{!s}
to use.")
- .format("fstab"))
-
- # This follows the GS settings from the partition module's Config object
- swap_choice = global_storage.value( "partitionChoices" )
- if swap_choice:
- swap_choice = swap_choice.get( "swap", None )
- if swap_choice and swap_choice == "file":
- # There's no formatted partition for it, so we'll sneak in an entry
- root_partitions = [ p["fs"].lower() for p in partitions if p["mountPoint"] == "/" ]
- root_btrfs = (root_partitions[0] == "btrfs") if root_partitions else False
- if root_btrfs:
- partitions.append( dict(fs="swap", mountPoint=None, claimed=True, device="/swap/swapfile", uuid=None) )
- else:
- partitions.append( dict(fs="swap", mountPoint=None, claimed=True, device="/swapfile", uuid=None) )
- else:
- swap_choice = None
-
- libcalamares.job.setprogress(0.1)
- mount_options_list = global_storage.value("mountOptionsList")
- crypttab_options = conf.get("crypttabOptions", "luks")
- tmp_options = conf.get("tmpOptions", {})
-
- # We rely on mount_options having a default; if there wasn't one,
- # bail out with a meaningful error.
- if not mount_options_list:
- libcalamares.utils.warning("No mount options defined, {!s} partitions".format(len(partitions)))
- return (_("Configuration Error"),
- _("No
{!s}
configuration is given for
{!s}
to use.")
- .format("mountOptions", "fstab"))
-
- generator = FstabGenerator(partitions,
- root_mount_point,
- mount_options_list,
- crypttab_options,
- tmp_options)
-
- if swap_choice is not None:
- libcalamares.job.setprogress(0.2)
- root_partitions = [ p["fs"].lower() for p in partitions if p["mountPoint"] == "/" ]
- root_btrfs = (root_partitions[0] == "btrfs") if root_partitions else False
- create_swapfile(root_mount_point, root_btrfs)
-
- try:
- libcalamares.job.setprogress(0.5)
- return generator.run()
- finally:
- libcalamares.job.setprogress(1.0)
diff --git a/src/modules/fstab/module.desc b/src/modules/fstab/module.desc
deleted file mode 100644
index 77cb7adbca..0000000000
--- a/src/modules/fstab/module.desc
+++ /dev/null
@@ -1,7 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
----
-type: "job"
-name: "fstab"
-interface: "python"
-script: "main.py"
diff --git a/src/modules/fstab/test.yaml b/src/modules/fstab/test.yaml
deleted file mode 100644
index cd20345713..0000000000
--- a/src/modules/fstab/test.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-rootMountPoint: /tmp/mount
-partitions:
- - device: /dev/sda1
- fs: ext4
- mountPoint: /
- uuid: 2a00f1d5-1217-49a7-bedd-b55c85764732
- - device: /dev/sda2
- fs: swap
- uuid: 59406569-446f-4730-a874-9f6b4b44fee3
- mountPoint:
- - device: /dev/sdb1
- fs: btrfs
- mountPoint: /home
- uuid: 59406569-abcd-1234-a874-9f6b4b44fee3
diff --git a/src/modules/fstab/test2.yaml b/src/modules/fstab/test2.yaml
deleted file mode 100644
index 0e91bf6491..0000000000
--- a/src/modules/fstab/test2.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# This test shows how btrfs root would work
-rootMountPoint: /tmp/mount
-partitions:
- - device: /dev/sda1
- fs: btrfs
- mountPoint: /
- uuid: 2a00f1d5-1217-49a7-bedd-b55c85764732
- - device: /dev/sda2
- fs: swap
- uuid: 59406569-446f-4730-a874-9f6b4b44fee3
- mountPoint:
- - device: /dev/sdb1
- fs: btrfs
- mountPoint: /home
- uuid: 59406569-abcd-1234-a874-9f6b4b44fee3
-btrfsSubvolumes:
- - mountPoint: /
- subvolume: "@ROOT"
- - mountPoint: /var
- subvolume: "@var"
- - mountPoint: /usr/local
- subvolume: "@local"
diff --git a/src/modules/grubcfg/grubcfg.conf b/src/modules/grubcfg/grubcfg.conf
deleted file mode 100644
index 189d4c2a9c..0000000000
--- a/src/modules/grubcfg/grubcfg.conf
+++ /dev/null
@@ -1,51 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# Create, overwrite or update /etc/default/grub in the target system.
-#
-# Write lines to /etc/default/grub (in the target system) based
-# on calculated values and the values set in the *defaults* key
-# in this configuration file.
-#
-# Calculated values are:
-# - GRUB_DISTRIBUTOR, branding module, *bootloaderEntryName* (this
-# string is sanitized, and see also setting *keep_distributor*)
-# - GRUB_ENABLE_CRYPTODISK, based on the presence of filesystems
-# that use LUKS
-# - GRUB_CMDLINE_LINUX_DEFAULT, adding LUKS setup and plymouth
-# support to the kernel.
-
----
-# If set to true, always creates /etc/default/grub from scratch even if the file
-# already existed. If set to false, edits the existing file instead.
-overwrite: false
-
-# If set to true, prefer to write files in /etc/default/grub.d/
-# rather than the single file /etc/default/grub. If this is set,
-# Calamares will write /etc/default/grub.d/00Calamares instead.
-prefer_grub_d: false
-
-# If set to true, an **existing** setting for GRUB_DISTRIBUTOR is
-# kept, not updated to the *bootloaderEntryName* from the branding file.
-# Use this if the GRUB_DISTRIBUTOR setting in the file is "smart" in
-# some way (e.g. uses shell-command substitution).
-keep_distributor: false
-
-# The default kernel params that should always be applied.
-# This is an array of strings. If it is unset, the default is
-# `["quiet"]`. To avoid the default, explicitly set this key
-# to an empty list, `[]`.
-kernel_params: [ "quiet" ]
-
-# Default entries to write to /etc/default/grub if it does not exist yet or if
-# we are overwriting it.
-#
-defaults:
- GRUB_TIMEOUT: 5
- GRUB_DEFAULT: "saved"
- GRUB_DISABLE_SUBMENU: true
- GRUB_TERMINAL_OUTPUT: "console"
- GRUB_DISABLE_RECOVERY: true
-
-# Set to true to force defaults to be used even when not overwriting
-always_use_defaults: false
diff --git a/src/modules/grubcfg/grubcfg.schema.yaml b/src/modules/grubcfg/grubcfg.schema.yaml
deleted file mode 100644
index c04c0b79f5..0000000000
--- a/src/modules/grubcfg/grubcfg.schema.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-# SPDX-FileCopyrightText: 2020 Adriaan de Groot
-# SPDX-License-Identifier: GPL-3.0-or-later
----
-$schema: https://json-schema.org/schema#
-$id: https://calamares.io/schemas/grubcfg
-additionalProperties: false
-type: object
-properties:
- overwrite: { type: boolean, default: false }
- keep_distributor: { type: boolean, default: false }
- prefer_grub_d: { type: boolean, default: false }
- kernel_params: { type: array, items: { type: string } }
- defaults:
- type: object
- additionalProperties: true # Other fields are acceptable
- properties:
- GRUB_TIMEOUT: { type: integer }
- GRUB_DEFAULT: { type: string }
- GRUB_DISABLE_SUBMENU: { type: boolean, default: true }
- GRUB_TERMINAL_OUTPUT: { type: string }
- GRUB_DISABLE_RECOVERY: { type: boolean, default: true }
- required: [ GRUB_TIMEOUT, GRUB_DEFAULT ]
- always_use_defaults: { type: boolean, default: false }
diff --git a/src/modules/grubcfg/main.py b/src/modules/grubcfg/main.py
deleted file mode 100644
index 47944640d9..0000000000
--- a/src/modules/grubcfg/main.py
+++ /dev/null
@@ -1,329 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2014-2015 Philip Müller
-# SPDX-FileCopyrightText: 2015-2017 Teo Mrnjavac
-# SPDX-FileCopyrightText: 2017 Alf Gaida
-# SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot
-# SPDX-FileCopyrightText: 2017-2018 Gabriel Craciunescu
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# Calamares is Free Software: see the License-Identifier above.
-#
-
-import libcalamares
-import fileinput
-import os
-import re
-import shutil
-
-import gettext
-_ = gettext.translation("calamares-python",
- localedir=libcalamares.utils.gettext_path(),
- languages=libcalamares.utils.gettext_languages(),
- fallback=True).gettext
-
-
-def pretty_name():
- return _("Configure GRUB.")
-
-
-def get_grub_config_path(root_mount_point):
- """
- Figures out where to put the grub config files. Returns
- a the full path of a file inside that
- directory, as "the config file".
-
- Returns a path into @p root_mount_point.
- """
- default_dir = os.path.join(root_mount_point, "etc/default")
- default_config_file = "grub"
-
- if "prefer_grub_d" in libcalamares.job.configuration and libcalamares.job.configuration["prefer_grub_d"]:
- possible_dir = os.path.join(root_mount_point, "etc/default/grub.d")
- if os.path.exists(possible_dir) and os.path.isdir(possible_dir):
- default_dir = possible_dir
- default_config_file = "00calamares"
-
- if not os.path.exists(default_dir):
- try:
- os.mkdir(default_dir)
- except Exception as error:
- # exception as error is still redundant, but it print out the error
- # identify a solution for each exception and
- # if possible and code it within.
- libcalamares.utils.debug(f"Failed to create {default_dir}")
- libcalamares.utils.debug(f"{error}")
- raise
-
- return os.path.join(default_dir, default_config_file)
-
-
-def get_zfs_root():
- """
- Looks in global storage to find the zfs root
-
- :return: A string containing the path to the zfs root or None if it is not found
- """
-
- zfs = libcalamares.globalstorage.value("zfsDatasets")
-
- if not zfs:
- libcalamares.utils.warning("Failed to locate zfs dataset list")
- return None
-
- # Find the root dataset
- for dataset in zfs:
- try:
- if dataset["mountpoint"] == "/":
- return dataset["zpool"] + "/" + dataset["dsName"]
- except KeyError:
- # This should be impossible
- libcalamares.utils.warning("Internal error handling zfs dataset")
- raise
-
- return None
-
-
-def update_existing_config(default_grub, grub_config_items):
- """
- Updates the existing grub configuration file with any items present in @p grub_config_items
-
- Items that exist in the file will be updated and new items will be appended to the end
-
- :param default_grub: The absolute path to the grub config file
- :param grub_config_items: A dict holding the key value pairs representing the items
- """
-
- default_grub_orig = default_grub + ".calamares"
- shutil.move(default_grub, default_grub_orig)
-
- with open(default_grub, "w") as grub_file:
- with open(default_grub_orig, "r") as grub_orig_file:
- for line in grub_orig_file.readlines():
- line = line.strip()
- if "=" in line:
- # This may be a key, strip the leading comment if it has one
- key = line.lstrip("#").split("=")[0].strip()
-
- # check if this is noe of the keys we care about
- if key in grub_config_items.keys():
- print(f"{key}={grub_config_items[key]}", file=grub_file)
- del grub_config_items[key]
- else:
- print(line, file=grub_file)
- else:
- print(line, file=grub_file)
-
- if len(grub_config_items) != 0:
- for dict_key, dict_val in grub_config_items.items():
- print(f"{dict_key}={dict_val}", file=grub_file)
-
- os.remove(default_grub_orig)
-
-
-def modify_grub_default(partitions, root_mount_point, distributor):
- """
- Configures '/etc/default/grub' for hibernation and plymouth.
-
- @see bootloader/main.py, for similar handling of kernel parameters
-
- :param partitions:
- :param root_mount_point:
- :param distributor: name of the distributor to fill in for
- GRUB_DISTRIBUTOR. Must be a string. If the job setting
- *keep_distributor* is set, then this is only used if no
- GRUB_DISTRIBUTOR is found at all (otherwise, when *keep_distributor*
- is set, the GRUB_DISTRIBUTOR lines are left unchanged).
- If *keep_distributor* is unset or false, then GRUB_DISTRIBUTOR
- is always updated to set this value.
- :return:
- """
- default_grub = get_grub_config_path(root_mount_point)
- distributor = distributor.replace("'", "'\\''")
- dracut_bin = libcalamares.utils.target_env_call(
- ["sh", "-c", "which dracut"]
- )
- plymouth_bin = libcalamares.utils.target_env_call(
- ["sh", "-c", "which plymouth"]
- )
- uses_systemd_hook = libcalamares.utils.target_env_call(
- ["sh", "-c", "grep -q \"^HOOKS.*systemd\" /etc/mkinitcpio.conf"]
- ) == 0
- # Shell exit value 0 means success
- have_plymouth = plymouth_bin == 0
- use_systemd_naming = dracut_bin == 0 or uses_systemd_hook
-
- use_splash = ""
- swap_uuid = ""
- swap_outer_uuid = ""
- swap_outer_mappername = None
- no_save_default = False
- unencrypted_separate_boot = any(p["mountPoint"] == "/boot" and "luksMapperName" not in p for p in partitions)
- # If there is no dracut, and the root partition is ZFS, this gets set below
- zfs_root_path = None
-
- for partition in partitions:
- if partition["mountPoint"] in ("/", "/boot") and partition["fs"] in ("btrfs", "f2fs", "zfs"):
- no_save_default = True
- break
-
- if have_plymouth:
- use_splash = "splash"
-
- cryptdevice_params = []
-
- if use_systemd_naming:
- for partition in partitions:
- if partition["fs"] == "linuxswap" and not partition.get("claimed", None):
- # Skip foreign swap
- continue
- has_luks = "luksMapperName" in partition
- if partition["fs"] == "linuxswap" and not has_luks:
- swap_uuid = partition["uuid"]
-
- if partition["fs"] == "linuxswap" and has_luks:
- swap_outer_uuid = partition["luksUuid"]
- swap_outer_mappername = partition["luksMapperName"]
-
- if partition["mountPoint"] == "/" and has_luks:
- cryptdevice_params = [f"rd.luks.uuid={partition['luksUuid']}"]
- if not unencrypted_separate_boot and uses_systemd_hook:
- cryptdevice_params.append("rd.luks.key=/crypto_keyfile.bin")
- else:
- for partition in partitions:
- if partition["fs"] == "linuxswap" and not partition.get("claimed", None):
- # Skip foreign swap
- continue
- has_luks = "luksMapperName" in partition
- if partition["fs"] == "linuxswap" and not has_luks:
- swap_uuid = partition["uuid"]
-
- if partition["fs"] == "linuxswap" and has_luks:
- swap_outer_mappername = partition["luksMapperName"]
-
- if partition["mountPoint"] == "/" and has_luks:
- cryptdevice_params = [
- f"cryptdevice=UUID={partition['luksUuid']}:{partition['luksMapperName']}",
- f"root=/dev/mapper/{partition['luksMapperName']}"
- ]
-
- if partition["fs"] == "zfs" and partition["mountPoint"] == "/":
- zfs_root_path = get_zfs_root()
-
- kernel_params = libcalamares.job.configuration.get("kernel_params", ["quiet"])
-
- # Currently, grub doesn't detect this properly so it must be set manually
- if zfs_root_path:
- kernel_params.insert(0, "zfs=" + zfs_root_path)
-
- if cryptdevice_params:
- kernel_params.extend(cryptdevice_params)
-
- if use_splash:
- kernel_params.append(use_splash)
-
- if swap_uuid:
- kernel_params.append(f"resume=UUID={swap_uuid}")
-
- if use_systemd_naming and swap_outer_uuid:
- kernel_params.append(f"rd.luks.uuid={swap_outer_uuid}")
- if swap_outer_mappername:
- kernel_params.append(f"resume=/dev/mapper/{swap_outer_mappername}")
-
- overwrite = libcalamares.job.configuration.get("overwrite", False)
-
- grub_config_items = {}
- # read the lines we need from the existing config
- if os.path.exists(default_grub) and not overwrite:
- with open(default_grub, 'r') as grub_file:
- lines = [x.strip() for x in grub_file.readlines()]
-
- for line in lines:
- if line.startswith("GRUB_CMDLINE_LINUX_DEFAULT"):
- existing_params = re.sub(r"^GRUB_CMDLINE_LINUX_DEFAULT\s*=\s*", "", line).strip("\"'").split()
-
- for existing_param in existing_params:
- existing_param_name = existing_param.split("=")[0].strip()
-
- # Ensure we aren't adding duplicated params
- param_exists = False
- for param in kernel_params:
- if param.split("=")[0].strip() == existing_param_name:
- param_exists = True
- break
- if not param_exists and existing_param_name not in ["quiet", "resume", "splash"]:
- kernel_params.append(existing_param)
-
- elif line.startswith("GRUB_DISTRIBUTOR") and libcalamares.job.configuration.get("keep_distributor", False):
- distributor_parts = line.split("=")
- if len(distributor_parts) > 1:
- distributor = distributor_parts[1].strip("'\"")
-
- # If a filesystem grub can't write to is used, disable save default
- if no_save_default and line.strip().startswith("GRUB_SAVEDEFAULT"):
- grub_config_items["GRUB_SAVEDEFAULT"] = "false"
-
- always_use_defaults = libcalamares.job.configuration.get("always_use_defaults", False)
-
- # If applicable add the items from defaults to the dict containing the grub config to wirte/modify
- if always_use_defaults or overwrite or not os.path.exists(default_grub):
- if "defaults" in libcalamares.job.configuration:
- for key, value in libcalamares.job.configuration["defaults"].items():
- if isinstance(value, bool):
- if value:
- escaped_value = "true"
- else:
- escaped_value = "false"
- else:
- escaped_value = str(value).replace("'", "'\\''")
-
- grub_config_items[key] = f"'{escaped_value}'"
-
- grub_config_items['GRUB_CMDLINE_LINUX_DEFAULT'] = f"'{' '.join(kernel_params)}'"
- grub_config_items["GRUB_DISTRIBUTOR"] = f"'{distributor}'"
-
- if cryptdevice_params and not unencrypted_separate_boot:
- grub_config_items["GRUB_ENABLE_CRYPTODISK"] = "y"
-
- if overwrite or not os.path.exists(default_grub) or libcalamares.job.configuration.get("prefer_grub_d", False):
- with open(default_grub, 'w') as grub_file:
- for key, value in grub_config_items.items():
- grub_file.write(f"{key}={value}\n")
- else:
- update_existing_config(default_grub, grub_config_items)
-
- return None
-
-
-def run():
- """
- Calls routine with given parameters to modify '/etc/default/grub'.
-
- :return:
- """
- fw_type = libcalamares.globalstorage.value("firmwareType")
- partitions = libcalamares.globalstorage.value("partitions")
- root_mount_point = libcalamares.globalstorage.value("rootMountPoint")
- branding = libcalamares.globalstorage.value("branding")
- if branding is None:
- distributor = None
- else:
- distributor = branding["bootloaderEntryName"]
-
- if libcalamares.globalstorage.value("bootLoader") is None and fw_type != "efi":
- return None
-
- if fw_type == "efi":
- esp_found = False
-
- for partition in partitions:
- if partition["mountPoint"] == libcalamares.globalstorage.value("efiSystemPartition"):
- esp_found = True
-
- if not esp_found:
- return None
-
- return modify_grub_default(partitions, root_mount_point, distributor)
diff --git a/src/modules/grubcfg/module.desc b/src/modules/grubcfg/module.desc
deleted file mode 100644
index 293e75ba7d..0000000000
--- a/src/modules/grubcfg/module.desc
+++ /dev/null
@@ -1,7 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
----
-type: "job"
-name: "grubcfg"
-interface: "python"
-script: "main.py"
diff --git a/src/modules/grubcfg/tests/1.global b/src/modules/grubcfg/tests/1.global
deleted file mode 100644
index 504931063d..0000000000
--- a/src/modules/grubcfg/tests/1.global
+++ /dev/null
@@ -1,5 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
----
-branding:
- bootloaderEntryName: generic
diff --git a/src/modules/grubcfg/tests/2.global b/src/modules/grubcfg/tests/2.global
deleted file mode 100644
index 1e01c6b955..0000000000
--- a/src/modules/grubcfg/tests/2.global
+++ /dev/null
@@ -1,11 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
----
-firmwareType: bios
-bootLoader: grub
-rootMountPoint: /tmp/calamares/grubcfg-test-2
-
-branding:
- bootloaderEntryName: generic
-partitions: []
-
diff --git a/src/modules/grubcfg/tests/2.job b/src/modules/grubcfg/tests/2.job
deleted file mode 100644
index 5265ef5c86..0000000000
--- a/src/modules/grubcfg/tests/2.job
+++ /dev/null
@@ -1,11 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
----
-overwrite: true
-keep_distributor: false
-defaults:
- GRUB_TIMEOUT: 5
- GRUB_DEFAULT: "saved"
- GRUB_DISABLE_SUBMENU: true
- GRUB_TERMINAL_OUTPUT: "console"
- GRUB_DISABLE_RECOVERY: true
diff --git a/src/modules/grubcfg/tests/3.global b/src/modules/grubcfg/tests/3.global
deleted file mode 100644
index 3eda6d5a18..0000000000
--- a/src/modules/grubcfg/tests/3.global
+++ /dev/null
@@ -1,11 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
----
-firmwareType: bios
-bootLoader: grub
-rootMountPoint: /tmp/calamares/grubcfg-test-3
-
-branding:
- bootloaderEntryName: generic
-partitions: []
-
diff --git a/src/modules/grubcfg/tests/3.job b/src/modules/grubcfg/tests/3.job
deleted file mode 100644
index 94f3943730..0000000000
--- a/src/modules/grubcfg/tests/3.job
+++ /dev/null
@@ -1,12 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
----
-overwrite: true
-prefer_grub_d: true # But it doesn't exist
-keep_distributor: false
-defaults:
- GRUB_TIMEOUT: 5
- GRUB_DEFAULT: "saved"
- GRUB_DISABLE_SUBMENU: true
- GRUB_TERMINAL_OUTPUT: "console"
- GRUB_DISABLE_RECOVERY: true
diff --git a/src/modules/grubcfg/tests/4.global b/src/modules/grubcfg/tests/4.global
deleted file mode 100644
index 7d4579543b..0000000000
--- a/src/modules/grubcfg/tests/4.global
+++ /dev/null
@@ -1,11 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
----
-firmwareType: bios
-bootLoader: grub
-rootMountPoint: /tmp/calamares/grubcfg-test-4
-
-branding:
- bootloaderEntryName: generic
-partitions: []
-
diff --git a/src/modules/grubcfg/tests/4.job b/src/modules/grubcfg/tests/4.job
deleted file mode 100644
index 4fdc2e25cc..0000000000
--- a/src/modules/grubcfg/tests/4.job
+++ /dev/null
@@ -1,12 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
----
-overwrite: true
-prefer_grub_d: true
-keep_distributor: false
-defaults:
- GRUB_TIMEOUT: 5
- GRUB_DEFAULT: "saved"
- GRUB_DISABLE_SUBMENU: true
- GRUB_TERMINAL_OUTPUT: "console"
- GRUB_DISABLE_RECOVERY: true
diff --git a/src/modules/grubcfg/tests/CMakeTests.txt b/src/modules/grubcfg/tests/CMakeTests.txt
deleted file mode 100644
index 7ecfffcebb..0000000000
--- a/src/modules/grubcfg/tests/CMakeTests.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# Special cases for grubcfg configuration tests:
-# - 2.global specifies /tmp/calamares as the rootMountPath,
-# so we end up editing files there. Create the directory
-# beforehand, so the test doesn't blow up.
-
-add_test(
- NAME make-grubcfg-dirs
- COMMAND
- ${CMAKE_COMMAND} -E make_directory /tmp/calamares/grubcfg-test-2/etc/default
- /tmp/calamares/grubcfg-test-3/etc/default /tmp/calamares/grubcfg-test-4/etc/default/grub.d
-)
-set_tests_properties(load-grubcfg-2 PROPERTIES DEPENDS make-grubcfg-dirs)
-set_tests_properties(load-grubcfg-3 PROPERTIES DEPENDS make-grubcfg-dirs)
-set_tests_properties(load-grubcfg-4 PROPERTIES DEPENDS make-grubcfg-dirs)
diff --git a/src/modules/hostinfo/CMakeLists.txt b/src/modules/hostinfo/CMakeLists.txt
deleted file mode 100644
index d432bd91dd..0000000000
--- a/src/modules/hostinfo/CMakeLists.txt
+++ /dev/null
@@ -1,37 +0,0 @@
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2020 Adriaan de Groot
-# SPDX-License-Identifier: BSD-2-Clause
-#
-
-# Configuration for hostinfo
-#
-# There isn't anything to configure for the hostinfo module.
-#
-# Hostinfo puts information about the host system into Calamares
-# GlobalStorage. This information is generally unchanging. Put
-# this module somewhere early in the exec: section to pick up
-# the variables. Use a contextualprocess module later to
-# react to the values, if needed.
-#
-# GlobalStorage keys:
-#
-# - *hostOS* the OS this module was built under; value is "Linux" or
-# "FreeBSD" or blank.
-# - *hostOSName* the NAME value from /etc/os-release if it exists,
-# otherwise the same as *hostOS*.
-# - *hostCPU* the make (brand) of the CPU, if it can be determined.
-# Values are "Intel" or "AMD" or blank.
-
-calamares_add_plugin(hostinfo
- TYPE job
- EXPORT_MACRO PLUGINDLLEXPORT_PRO
- SOURCES
- HostInfoJob.cpp
- SHARED_LIB
- NO_CONFIG
-)
-
-target_link_libraries(calamares_job_hostinfo PRIVATE ${kfname}::CoreAddons)
-
-calamares_add_test(hostinfotest SOURCES Tests.cpp HostInfoJob.cpp LIBRARIES yamlcpp::yamlcpp)
diff --git a/src/modules/hostinfo/HostInfoJob.cpp b/src/modules/hostinfo/HostInfoJob.cpp
deleted file mode 100644
index d09de3ae21..0000000000
--- a/src/modules/hostinfo/HostInfoJob.cpp
+++ /dev/null
@@ -1,190 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2019 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#include "HostInfoJob.h"
-
-#include "GlobalStorage.h"
-#include "JobQueue.h"
-#include "utils/Logger.h"
-#include "utils/System.h"
-#include "utils/Units.h"
-
-#include
-#include
-
-#include
-
-#ifdef Q_OS_FREEBSD
-#include
-
-#include
-#endif
-
-HostInfoJob::HostInfoJob( QObject* parent )
- : Calamares::CppJob( parent )
-{
-}
-
-HostInfoJob::~HostInfoJob() {}
-
-QString
-HostInfoJob::prettyName() const
-{
- return tr( "Collecting information about your machine…", "@status" );
-}
-
-QString
-hostOS()
-{
-#if defined( Q_OS_FREEBSD )
- return QStringLiteral( "FreeBSD" );
-#elif defined( Q_OS_LINUX )
- return QStringLiteral( "Linux" );
-#else
- return QStringLiteral( "" );
-#endif
-}
-
-QString
-hostOSName()
-{
- KOSRelease r;
- if ( !r.name().isEmpty() )
- {
- return r.name();
- }
- return hostOS();
-}
-
-static QString
-hostCPUmatch( const QString& s )
-{
- const QString line = s.toLower();
- if ( line.contains( "intel" ) )
- {
- return QStringLiteral( "Intel" );
- }
- else if ( line.contains( "amd" ) )
- {
- return QStringLiteral( "AMD" );
- }
- return QString();
-}
-
-#if defined( Q_OS_FREEBSD )
-QString
-hostCPU_FreeBSD()
-{
- constexpr const size_t sysctl_buffer_size = 128;
- char sysctl_buffer[ sysctl_buffer_size ];
- size_t s = sysctl_buffer_size;
-
- memset( sysctl_buffer, 0, sizeof( sysctl_buffer ) );
- int r = sysctlbyname( "hw.model", &sysctl_buffer, &s, NULL, 0 );
- if ( r )
- {
- return QString();
- }
-
- sysctl_buffer[ sysctl_buffer_size - 1 ] = 0;
- QString model( sysctl_buffer );
- return hostCPUmatch( model );
-}
-#endif
-
-#if defined( Q_OS_LINUX )
-static QString
-hostCPUmatchARM( const QString& s )
-{
- /* The "CPU implementer" line is for ARM CPUs in general.
- *
- * The specific value given distinguishes *which designer*
- * (or architecture licensee, who cares) produced the current
- * silicon. For instance, a list from lscpu-arm.c (Linux kernel)
- * shows this:
- *
- static const struct hw_impl hw_implementer[] = {
- { 0x41, arm_part, "ARM" },
- { 0x42, brcm_part, "Broadcom" },
- { 0x43, cavium_part, "Cavium" },
- { 0x44, dec_part, "DEC" },
- { 0x48, hisi_part, "HiSilicon" },
- { 0x4e, nvidia_part, "Nvidia" },
- { 0x50, apm_part, "APM" },
- { 0x51, qcom_part, "Qualcomm" },
- { 0x53, samsung_part, "Samsung" },
- { 0x56, marvell_part, "Marvell" },
- { 0x66, faraday_part, "Faraday" },
- { 0x69, intel_part, "Intel" },
- { -1, unknown_part, "unknown" },
- };
- *
- * Since the specific implementor isn't interesting, just
- * map everything to "ARM".
- */
- return QStringLiteral( "ARM" );
-}
-
-QString
-hostCPU_Linux()
-{
- QFile cpuinfo( "/proc/cpuinfo" );
- if ( cpuinfo.open( QIODevice::ReadOnly ) )
- {
- QTextStream in( &cpuinfo );
- QString line;
- while ( in.readLineInto( &line ) )
- {
- if ( line.startsWith( "vendor_id" ) )
- {
- return hostCPUmatch( line );
- }
- if ( line.startsWith( "CPU implementer" ) )
- {
- return hostCPUmatchARM( line );
- }
- }
- }
- return QString(); // Not open, or not found
-}
-#endif
-
-QString
-hostCPU()
-{
-#if defined( Q_OS_FREEBSD )
- return hostCPU_FreeBSD();
-#elif defined( Q_OS_LINUX )
- return hostCPU_Linux();
-#else
- return QString();
-#endif
-}
-
-Calamares::JobResult
-HostInfoJob::exec()
-{
- cDebug() << "Collecting host information...";
-
- auto* gs = Calamares::JobQueue::instance()->globalStorage();
- gs->insert( "hostOS", hostOS() );
- gs->insert( "hostOSName", hostOSName() );
- gs->insert( "hostCPU", hostCPU() );
-
- // Memory can't be negative, so it's reported as unsigned long.
- auto ram = Calamares::BytesToMiB( qint64( Calamares::System::instance()->getTotalMemoryB().first ) );
- if ( ram )
- {
- gs->insert( "hostRAMMiB", ram );
- }
-
- return Calamares::JobResult::ok();
-}
-
-CALAMARES_PLUGIN_FACTORY_DEFINITION( HostInfoJobFactory, registerPlugin< HostInfoJob >(); )
diff --git a/src/modules/hostinfo/HostInfoJob.h b/src/modules/hostinfo/HostInfoJob.h
deleted file mode 100644
index b252da7e05..0000000000
--- a/src/modules/hostinfo/HostInfoJob.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2019 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#ifndef HOSTINFOJOB_H
-#define HOSTINFOJOB_H
-
-#include "CppJob.h"
-#include "DllMacro.h"
-#include "utils/PluginFactory.h"
-
-#include
-#include
-
-/** @brief the compile-time host OS
- *
- * Returns "FreeBSD" or "Linux" or empty.
- */
-QString hostOS();
-
-/** @brief the run-time host OS
- *
- * Returns os-release NAME information, or if that is blank or not available,
- * the same as hostOS().
- */
-QString hostOSName();
-
-/** @brief the run-time CPU architecture
- *
- * Returns "Intel" or "AMD" or blank, if Calamares can determine what
- * CPU is currently in use (based on /proc/cpuinfo or hw.model).
- */
-QString hostCPU();
-
-class PLUGINDLLEXPORT HostInfoJob : public Calamares::CppJob
-{
- Q_OBJECT
-
-public:
- explicit HostInfoJob( QObject* parent = nullptr );
- ~HostInfoJob() override;
-
- QString prettyName() const override;
-
- Calamares::JobResult exec() override;
-};
-
-CALAMARES_PLUGIN_FACTORY_DECLARATION( HostInfoJobFactory )
-
-#endif // HOSTINFOJOB_H
diff --git a/src/modules/hostinfo/Tests.cpp b/src/modules/hostinfo/Tests.cpp
deleted file mode 100644
index 7635b424f7..0000000000
--- a/src/modules/hostinfo/Tests.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2019 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-#include "HostInfoJob.h"
-
-#include "GlobalStorage.h"
-#include "JobQueue.h"
-#include "Settings.h"
-
-#include "utils/Logger.h"
-#include "utils/Yaml.h"
-
-#include
-
-class HostInfoTests : public QObject
-{
- Q_OBJECT
-public:
- HostInfoTests() {}
- ~HostInfoTests() override {}
-
-private Q_SLOTS:
- void initTestCase();
-
- void testHostOS();
-};
-
-void
-HostInfoTests::initTestCase()
-{
- Logger::setupLogLevel( Logger::LOGDEBUG );
- cDebug() << "HostInfo test started.";
-}
-
-void
-HostInfoTests::testHostOS()
-{
-#if defined( Q_OS_FREEBSD )
- QString expect( "FreeBSD" );
-#elif defined( Q_OS_LINUX )
- QString expect( "Linux" );
-#else
- QString expect( "Plan8" ); // Expect failure
-#endif
-
- QCOMPARE( expect, hostOS() );
- // QCOMPARE( expect, hostOSName() ); // With KOSRelease, returns what the distro calls itself
-
- // This is a lousy test, too: the implementation reads /proc/cpuinfo
- // and that's the only way we could use, too, to find what the "right"
- // answer is.
- QStringList x86cpunames { QStringLiteral( "Intel" ), QStringLiteral( "AMD" ) };
- QStringList armcpunames { QStringLiteral( "ARM" ) };
- const QString cpu = hostCPU();
- QVERIFY( x86cpunames.contains( cpu ) || armcpunames.contains( cpu ) );
-
- // Try to detect family in a different way
- QFile modalias( "/sys/devices/system/cpu/modalias" );
- if ( modalias.open( QIODevice::ReadOnly ) )
- {
- QString cpumodalias = modalias.readLine();
- if ( cpumodalias.contains( "type:x86" ) )
- {
- QVERIFY( x86cpunames.contains( cpu ) );
- }
- else if ( cpumodalias.contains( "type:aarch64" ) )
- {
- QVERIFY( armcpunames.contains( cpu ) );
- }
- else
- {
- QCOMPARE( cpu, QString( "Unknown CPU modalias '%1'" ).arg( cpumodalias ) );
- }
- }
-}
-
-
-QTEST_GUILESS_MAIN( HostInfoTests )
-
-#include "utils/moc-warnings.h"
-
-#include "Tests.moc"
diff --git a/src/modules/hwclock/main.py b/src/modules/hwclock/main.py
deleted file mode 100644
index be9fabf5f0..0000000000
--- a/src/modules/hwclock/main.py
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2014-2015 Philip Müller
-# SPDX-FileCopyrightText: 2014 Teo Mrnjavac
-# SPDX-FileCopyrightText: 2017 Alf Gaida
-# SPDX-FileCopyrightText: 2017-2018 Gabriel Craciunescu
-# SPDX-FileCopyrightText: 2019 Adriaan de Groot
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# Calamares is Free Software: see the License-Identifier above.
-#
-
-import libcalamares
-
-import gettext
-_ = gettext.translation("calamares-python",
- localedir=libcalamares.utils.gettext_path(),
- languages=libcalamares.utils.gettext_languages(),
- fallback=True).gettext
-
-
-def pretty_name():
- return _("Setting hardware clock.")
-
-
-def run():
- """
- Set hardware clock.
- """
- hwclock_rtc = ["hwclock", "--systohc", "--utc"]
- hwclock_isa = ["hwclock", "--systohc", "--utc", "--directisa"]
- is_broken_rtc = False
- is_broken_isa = False
-
- ret = libcalamares.utils.target_env_call(hwclock_rtc)
- if ret != 0:
- is_broken_rtc = True
- libcalamares.utils.debug("Hwclock returned error code {}".format(ret))
- libcalamares.utils.debug(" .. RTC method failed, trying ISA bus method.")
- else:
- libcalamares.utils.debug("Hwclock set using RTC method.")
- if is_broken_rtc:
- ret = libcalamares.utils.target_env_call(hwclock_isa)
- if ret != 0:
- is_broken_isa = True
- libcalamares.utils.debug("Hwclock returned error code {}".format(ret))
- libcalamares.utils.debug(" .. ISA bus method failed.")
- else:
- libcalamares.utils.debug("Hwclock set using ISA bus method.")
- if is_broken_rtc and is_broken_isa:
- libcalamares.utils.debug("BIOS or Kernel BUG: Setting hwclock failed.")
-
- return None
diff --git a/src/modules/hwclock/module.desc b/src/modules/hwclock/module.desc
deleted file mode 100644
index d13435b3c7..0000000000
--- a/src/modules/hwclock/module.desc
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
----
-type: "job"
-name: "hwclock"
-interface: "python"
-script: "main.py"
-noconfig: true
diff --git a/src/modules/initcpio/CMakeLists.txt b/src/modules/initcpio/CMakeLists.txt
deleted file mode 100644
index 1bbb9fdd96..0000000000
--- a/src/modules/initcpio/CMakeLists.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2020 Adriaan de Groot
-# SPDX-License-Identifier: BSD-2-Clause
-#
-calamares_add_plugin(initcpio
- TYPE job
- EXPORT_MACRO PLUGINDLLEXPORT_PRO
- SOURCES
- InitcpioJob.cpp
- SHARED_LIB
-)
-
-calamares_add_test(
- initcpiotest
- SOURCES Tests.cpp
- LIBRARIES
- calamares_job_initcpio # From above
- yamlcpp::yamlcpp
-)
diff --git a/src/modules/initcpio/InitcpioJob.cpp b/src/modules/initcpio/InitcpioJob.cpp
deleted file mode 100644
index ad569fa5ad..0000000000
--- a/src/modules/initcpio/InitcpioJob.cpp
+++ /dev/null
@@ -1,97 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2019 Adriaan de Groot
- * SPDX-FileCopyrightText: 2022 Evan James
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#include "InitcpioJob.h"
-
-#include "utils/Logger.h"
-#include "utils/System.h"
-#include "utils/UMask.h"
-#include "utils/Variant.h"
-
-#include
-#include
-
-InitcpioJob::InitcpioJob( QObject* parent )
- : Calamares::CppJob( parent )
-{
-}
-
-InitcpioJob::~InitcpioJob() {}
-
-QString
-InitcpioJob::prettyName() const
-{
- return tr( "Creating initramfs with mkinitcpio…", "@status" );
-}
-
-/** @brief Sets secure permissions on each initramfs
- *
- * Iterates over each initramfs contained directly in the directory @p d.
- * For each initramfs found, the permissions are set to owner read/write only.
- *
- */
-void
-fixPermissions( const QDir& d )
-{
- const auto initramList = d.entryInfoList( { "initramfs*" }, QDir::Files );
- for ( const auto& fi : initramList )
- {
- QFile f( fi.absoluteFilePath() );
- if ( f.exists() )
- {
- cDebug() << "initcpio setting permissions for" << f.fileName();
- f.setPermissions( QFileDevice::ReadOwner | QFileDevice::WriteOwner );
- }
- }
-}
-
-Calamares::JobResult
-InitcpioJob::exec()
-{
- Calamares::UMask m( Calamares::UMask::Safe );
-
- if ( m_unsafe )
- {
- cDebug() << "Skipping mitigations for unsafe initramfs permissions.";
- }
- else
- {
- QDir d( Calamares::System::instance()->targetPath( "/boot" ) );
- if ( d.exists() )
- {
- fixPermissions( d );
- }
- }
-
- // If the kernel option isn't set to a specific kernel, run mkinitcpio on all kernels
- QStringList command = { "mkinitcpio" };
- if ( m_kernel.isEmpty() || m_kernel == "all" )
- {
- command.append( "-P" );
- }
- else
- {
- command.append( { "-p", m_kernel } );
- }
-
- cDebug() << "Updating initramfs with kernel" << m_kernel;
- auto r = Calamares::System::instance()->targetEnvCommand( command, QString(), QString() /* no timeout , 0 */ );
- return r.explainProcess( "mkinitcpio", std::chrono::seconds( 10 ) /* fake timeout */ );
-}
-
-void
-InitcpioJob::setConfigurationMap( const QVariantMap& configurationMap )
-{
- m_kernel = Calamares::getString( configurationMap, "kernel" );
-
- m_unsafe = Calamares::getBool( configurationMap, "be_unsafe", false );
-}
-
-CALAMARES_PLUGIN_FACTORY_DEFINITION( InitcpioJobFactory, registerPlugin< InitcpioJob >(); )
diff --git a/src/modules/initcpio/InitcpioJob.h b/src/modules/initcpio/InitcpioJob.h
deleted file mode 100644
index 6e7f2b5857..0000000000
--- a/src/modules/initcpio/InitcpioJob.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2019 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#ifndef INITCPIOJOB_H
-#define INITCPIOJOB_H
-
-#include "CppJob.h"
-#include "DllMacro.h"
-#include "utils/PluginFactory.h"
-
-#include
-#include
-
-class PLUGINDLLEXPORT InitcpioJob : public Calamares::CppJob
-{
- Q_OBJECT
-
-public:
- explicit InitcpioJob( QObject* parent = nullptr );
- ~InitcpioJob() override;
-
- QString prettyName() const override;
-
- Calamares::JobResult exec() override;
-
- void setConfigurationMap( const QVariantMap& configurationMap ) override;
-
-private:
- QString m_kernel;
- bool m_unsafe = false;
-};
-
-CALAMARES_PLUGIN_FACTORY_DECLARATION( InitcpioJobFactory )
-
-#endif // INITCPIOJOB_H
diff --git a/src/modules/initcpio/Tests.cpp b/src/modules/initcpio/Tests.cpp
deleted file mode 100644
index bff163b5f8..0000000000
--- a/src/modules/initcpio/Tests.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2019 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#include "Tests.h"
-
-#include "GlobalStorage.h"
-#include "JobQueue.h"
-#include "Settings.h"
-
-#include "utils/Logger.h"
-#include "utils/Yaml.h"
-
-#include
-
-#include
-#include
-
-extern void fixPermissions( const QDir& d );
-
-QTEST_GUILESS_MAIN( InitcpioTests )
-
-InitcpioTests::InitcpioTests() {}
-
-InitcpioTests::~InitcpioTests() {}
-
-void
-InitcpioTests::initTestCase()
-{
-}
-
-void
-InitcpioTests::testFixPermissions()
-{
- Logger::setupLogLevel( Logger::LOGDEBUG );
- cDebug() << "Fixing up /boot";
- fixPermissions( QDir( "/boot" ) );
- cDebug() << "Fixing up /nonexistent";
- fixPermissions( QDir( "/nonexistent/nonexistent" ) );
- QVERIFY( true );
-}
diff --git a/src/modules/initcpio/Tests.h b/src/modules/initcpio/Tests.h
deleted file mode 100644
index aac48d0c4c..0000000000
--- a/src/modules/initcpio/Tests.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2019 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#ifndef TESTS_H
-#define TESTS_H
-
-#include
-
-class InitcpioTests : public QObject
-{
- Q_OBJECT
-public:
- InitcpioTests();
- ~InitcpioTests() override;
-
-private Q_SLOTS:
- void initTestCase();
- void testFixPermissions();
-};
-
-#endif
diff --git a/src/modules/initcpio/initcpio.conf b/src/modules/initcpio/initcpio.conf
deleted file mode 100644
index d2a1268647..0000000000
--- a/src/modules/initcpio/initcpio.conf
+++ /dev/null
@@ -1,26 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# Run mkinitcpio(8) with the given preset value
----
-# This key defines the kernel to be loaded.
-# It can have the following values:
-# - the name of a single mkinitcpio preset
-# - empty or unset
-# - the literal string "all"
-#
-# If kernel is set to "all" or empty/unset then mkinitpio is called for all
-# kernels. Otherwise it is called with a single preset with the value
-# contained in kernel.
-#
-kernel: linux
-
-# Set this to true to turn off mitigations for lax file
-# permissions on initramfs (which, in turn, can compromise
-# your LUKS encryption keys, CVS-2019-13179).
-#
-# If your initramfs are stored in the EFI partition or another non-POSIX
-# filesystem, this has no effect as the file permissions cannot be changed.
-# In this case, ensure the partition is mounted securely.
-#
-be_unsafe: false
diff --git a/src/modules/initcpio/initcpio.schema.yaml b/src/modules/initcpio/initcpio.schema.yaml
deleted file mode 100644
index 2024182bfa..0000000000
--- a/src/modules/initcpio/initcpio.schema.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-# SPDX-FileCopyrightText: 2020 Adriaan de Groot
-# SPDX-License-Identifier: GPL-3.0-or-later
----
-$schema: https://json-schema.org/schema#
-$id: https://calamares.io/schemas/initcpio
-additionalProperties: false
-type: object
-properties:
- kernel: { type: string }
- be_unsafe: { type: boolean, default: false }
-required: [ kernel ]
diff --git a/src/modules/initcpiocfg/initcpiocfg.conf b/src/modules/initcpiocfg/initcpiocfg.conf
deleted file mode 100644
index fc226ec845..0000000000
--- a/src/modules/initcpiocfg/initcpiocfg.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# The initcpiocfg module is responsible for the configuration of mkinitcpio.conf. Typically this
-# module is used in conjunction with the initcpio module to generate the boot image when using mkinitcpio
----
-#
-# Determines if the systemd versions of the hooks should be used. This is false by default.
-#
-# Please note that using the systemd hooks result in no access to the emergency recovery shell
-useSystemdHook: false
diff --git a/src/modules/initcpiocfg/initcpiocfg.schema.yaml b/src/modules/initcpiocfg/initcpiocfg.schema.yaml
deleted file mode 100644
index f071e79aa7..0000000000
--- a/src/modules/initcpiocfg/initcpiocfg.schema.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-# SPDX-FileCopyrightText: 2023 Evan James
-# SPDX-License-Identifier: GPL-3.0-or-later
----
-$schema: https://json-schema.org/schema#
-$id: https://calamares.io/schemas/initcpiocfg
-additionalProperties: false
-type: object
-properties:
- useSystemdHook: { type: boolean }
-
-
diff --git a/src/modules/initcpiocfg/main.py b/src/modules/initcpiocfg/main.py
deleted file mode 100644
index 0939054fb8..0000000000
--- a/src/modules/initcpiocfg/main.py
+++ /dev/null
@@ -1,266 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2014 Rohan Garg
-# SPDX-FileCopyrightText: 2015 2019-2020, Philip Müller
-# SPDX-FileCopyrightText: 2017 Alf Gaida
-# SPDX-FileCopyrightText: 2019 Adriaan de Groot
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# Calamares is Free Software: see the License-Identifier above.
-#
-import libcalamares
-from libcalamares.utils import debug, target_env_call
-import os
-from collections import OrderedDict
-
-import gettext
-_ = gettext.translation("calamares-python",
- localedir=libcalamares.utils.gettext_path(),
- languages=libcalamares.utils.gettext_languages(),
- fallback=True).gettext
-
-
-def pretty_name():
- return _("Configuring mkinitcpio.")
-
-
-def detect_plymouth():
- """
- Checks existence (runnability) of plymouth in the target system.
-
- @return True if plymouth exists in the target, False otherwise
- """
- # Used to only check existence of path /usr/bin/plymouth in target
- return target_env_call(["sh", "-c", "which plymouth"]) == 0
-
-
-class cpuinfo(object):
- """
- Object describing the current CPU's characteristics. It may be
- be considered a named tuple, there's no behavior here.
-
- Fields in the object:
- - is_intel (if it's definitely an Intel CPU)
- - is_amd (if it's definitely an AMD CPU)
- - number_of_cores
- It is possible for both is_* fields to be False.
- """
- def __init__(self):
- self.is_intel = False
- self.is_amd = False
- self.number_of_cores = 0
-
- cpu = self._cpuinfo()
- if 'vendor_id' in cpu['proc0']:
- self.is_intel = cpu['proc0']['vendor_id'].lower() == "genuineintel"
- self.is_amd = cpu['proc0']['vendor_id'].lower() == "authenticamd"
- self.number_of_cores = len(cpu)
-
- @staticmethod
- def _cpuinfo():
- """
- Return the information in /proc/cpuinfo as a dictionary in the following
- format:
-
- cpu_info['proc0']={...}
- cpu_info['proc1']={...}
- """
- cpu_info = OrderedDict()
- procinfo = OrderedDict()
-
- nprocs = 0
-
- with open('/proc/cpuinfo') as cpuinfo_file:
- for line in cpuinfo_file:
- if not line.strip():
- # end of one processor
- cpu_info["proc{!s}".format(nprocs)] = procinfo
- nprocs += 1
- # Reset
- procinfo = OrderedDict()
- else:
- if len(line.split(':')) == 2:
- splitted_line = line.split(':')[1].strip()
- procinfo[line.split(':')[0].strip()] = splitted_line
- else:
- procinfo[line.split(':')[0].strip()] = ''
-
- return cpu_info
-
-
-def get_host_initcpio():
- """
- Reads the host system mkinitcpio.conf and returns all
- the lines from that file, or an empty list if it does
- not exist.
- """
- hostfile = "/etc/mkinitcpio.conf"
- try:
- with open(hostfile, "r") as mkinitcpio_file:
- mklins = [x.strip() for x in mkinitcpio_file.readlines()]
- except FileNotFoundError:
- libcalamares.utils.debug(f"Could not open host file {hostfile}")
- mklins = []
-
- return mklins
-
-
-def write_mkinitcpio_lines(hooks, modules, files, binaries, root_mount_point):
- """
- Set up mkinitcpio.conf.
-
- :param hooks:
- :param modules:
- :param files:
- :param root_mount_point:
- """
- mklins = get_host_initcpio()
-
- target_path = os.path.join(root_mount_point, "etc/mkinitcpio.conf")
- with open(target_path, "w") as mkinitcpio_file:
- for line in mklins:
- # Replace HOOKS, MODULES, BINARIES and FILES lines with what we
- # have found via find_initcpio_features()
- if line.startswith("HOOKS"):
- line = f"HOOKS=({str.join(' ', hooks)})"
- elif line.startswith("BINARIES"):
- line = f"BINARIES=({str.join(' ', binaries)})"
- elif line.startswith("MODULES"):
- line = f"MODULES=({str.join(' ', modules)})"
- elif line.startswith("FILES"):
- line = f"FILES=({str.join(' ', files)})"
- mkinitcpio_file.write(line + "\n")
-
-
-def find_initcpio_features(partitions, root_mount_point):
- """
- Returns a tuple (hooks, modules, files) needed to support
- the given @p partitions (filesystems types, encryption, etc)
- in the target.
-
- :param partitions: (from GS)
- :param root_mount_point: (from GS)
-
- :return 3-tuple of lists
- """
- hooks = [
- "autodetect",
- "kms",
- "modconf",
- "block",
- "keyboard",
- ]
-
- systemd_hook_allowed = libcalamares.job.configuration.get("useSystemdHook", False)
-
- use_systemd = systemd_hook_allowed and target_env_call(["sh", "-c", "which systemd-cat"]) == 0
-
- if use_systemd:
- hooks.insert(0, "systemd")
- hooks.append("sd-vconsole")
- else:
- hooks.insert(0, "udev")
- hooks.insert(0, "base")
- hooks.append("keymap")
- hooks.append("consolefont")
-
- modules = []
- files = []
- binaries = []
-
- swap_uuid = ""
- uses_btrfs = False
- uses_zfs = False
- uses_lvm2 = False
- encrypt_hook = False
- openswap_hook = False
- unencrypted_separate_boot = False
-
- # It is important that the plymouth hook comes before any encrypt hook
- if detect_plymouth():
- hooks.append("plymouth")
-
- for partition in partitions:
- if partition["fs"] == "linuxswap" and not partition.get("claimed", None):
- # Skip foreign swap
- continue
-
- if partition["fs"] == "linuxswap":
- swap_uuid = partition["uuid"]
- if "luksMapperName" in partition:
- openswap_hook = True
-
- if partition["fs"] == "btrfs":
- uses_btrfs = True
-
- # In addition to checking the filesystem, check to ensure that zfs is enabled
- if partition["fs"] == "zfs" and libcalamares.globalstorage.contains("zfsPoolInfo"):
- uses_zfs = True
-
- if "lvm2" in partition["fs"]:
- uses_lvm2 = True
-
- if partition["mountPoint"] == "/" and "luksMapperName" in partition:
- encrypt_hook = True
-
- if partition["mountPoint"] == "/boot" and "luksMapperName" not in partition:
- unencrypted_separate_boot = True
-
- if partition["mountPoint"] == "/usr":
- hooks.append("usr")
-
- if encrypt_hook:
- if use_systemd:
- hooks.append("sd-encrypt")
- else:
- hooks.append("encrypt")
- crypto_file = "crypto_keyfile.bin"
- if not unencrypted_separate_boot and os.path.isfile(os.path.join(root_mount_point, crypto_file)):
- files.append(f"/{crypto_file}")
-
- if uses_lvm2:
- hooks.append("lvm2")
-
- if uses_zfs:
- hooks.append("zfs")
-
- if swap_uuid != "":
- if encrypt_hook and openswap_hook:
- hooks.extend(["openswap"])
- hooks.extend(["resume", "filesystems"])
- else:
- hooks.extend(["filesystems"])
-
- if uses_btrfs:
- modules.append("crc32c-intel" if cpuinfo().is_intel else "crc32c")
- else:
- hooks.append("fsck")
-
- return hooks, modules, files, binaries
-
-
-def run():
- """
- Calls routine with given parameters to modify "/etc/mkinitcpio.conf".
-
- :return:
- """
- partitions = libcalamares.globalstorage.value("partitions")
- root_mount_point = libcalamares.globalstorage.value("rootMountPoint")
-
- if not partitions:
- libcalamares.utils.warning(f"partitions are empty, {partitions}")
- return (_("Configuration Error"),
- _("No partitions are defined for
initcpiocfg
."))
- if not root_mount_point:
- libcalamares.utils.warning(f"rootMountPoint is empty, {root_mount_point}")
- return (_("Configuration Error"),
- _("No root mount point for
initcpiocfg
."))
-
- hooks, modules, files, binaries = find_initcpio_features(partitions, root_mount_point)
- write_mkinitcpio_lines(hooks, modules, files, binaries, root_mount_point)
-
- return None
diff --git a/src/modules/initcpiocfg/module.desc b/src/modules/initcpiocfg/module.desc
deleted file mode 100644
index 9d7bfdf309..0000000000
--- a/src/modules/initcpiocfg/module.desc
+++ /dev/null
@@ -1,12 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# Writes a mkinitcpio.conf into the target system. It copies
-# the host system's /etc/mkinitcpio.conf, and replaces any
-# HOOKS, MODULES, and FILES lines with calculated values
-# based on what the installation (seems to) need.
----
-type: "job"
-name: "initcpiocfg"
-interface: "python"
-script: "main.py"
diff --git a/src/modules/initramfs/CMakeLists.txt b/src/modules/initramfs/CMakeLists.txt
deleted file mode 100644
index 45f29c3875..0000000000
--- a/src/modules/initramfs/CMakeLists.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2020 Adriaan de Groot
-# SPDX-License-Identifier: BSD-2-Clause
-#
-calamares_add_plugin(initramfs
- TYPE job
- EXPORT_MACRO PLUGINDLLEXPORT_PRO
- SOURCES
- InitramfsJob.cpp
- SHARED_LIB
-)
-
-calamares_add_test(
- initramfstest
- SOURCES Tests.cpp
- LIBRARIES
- calamares_job_initramfs # From above
- yamlcpp::yamlcpp
-)
diff --git a/src/modules/initramfs/InitramfsJob.cpp b/src/modules/initramfs/InitramfsJob.cpp
deleted file mode 100644
index f61679fe54..0000000000
--- a/src/modules/initramfs/InitramfsJob.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2019 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#include "InitramfsJob.h"
-
-#include "utils/Logger.h"
-#include "utils/System.h"
-#include "utils/UMask.h"
-#include "utils/Variant.h"
-
-InitramfsJob::InitramfsJob( QObject* parent )
- : Calamares::CppJob( parent )
-{
-}
-
-InitramfsJob::~InitramfsJob() {}
-
-QString
-InitramfsJob::prettyName() const
-{
- return tr( "Creating initramfs…", "@status" );
-}
-
-Calamares::JobResult
-InitramfsJob::exec()
-{
- Calamares::UMask m( Calamares::UMask::Safe );
-
- cDebug() << "Updating initramfs with kernel" << m_kernel;
-
- if ( m_unsafe )
- {
- cDebug() << "Skipping mitigations for unsafe initramfs permissions.";
- }
- else
- {
- // First make sure we generate a safe initramfs with suitable permissions.
- static const char confFile[] = "/etc/initramfs-tools/conf.d/calamares-safe-initramfs.conf";
- static const char contents[] = "UMASK=0077\n";
- if ( Calamares::System::instance()->createTargetFile( confFile, QByteArray( contents ) ).failed() )
- {
- cWarning() << Logger::SubEntry << "Could not configure safe UMASK for initramfs.";
- // But continue anyway.
- }
- }
-
- // And then do the ACTUAL work.
- auto r = Calamares::System::instance()->targetEnvCommand(
- { "update-initramfs", "-k", m_kernel, "-c", "-t" }, QString(), QString() /* no timeout, 0 */ );
- return r.explainProcess( "update-initramfs", std::chrono::seconds( 10 ) /* fake timeout */ );
-}
-
-void
-InitramfsJob::setConfigurationMap( const QVariantMap& configurationMap )
-{
- m_kernel = Calamares::getString( configurationMap, "kernel" );
- if ( m_kernel.isEmpty() )
- {
- m_kernel = QStringLiteral( "all" );
- }
- else if ( m_kernel == "$uname" )
- {
- auto r = Calamares::System::runCommand( Calamares::System::RunLocation::RunInHost,
- { "/bin/uname", "-r" },
- QString(),
- QString(),
- std::chrono::seconds( 3 ) );
- if ( r.getExitCode() == 0 )
- {
- m_kernel = r.getOutput();
- cDebug() << "*initramfs* using running kernel" << m_kernel;
- }
- else
- {
- m_kernel = QStringLiteral( "all" );
- cWarning() << "*initramfs* could not determine running kernel, using 'all'." << Logger::Continuation
- << r.getExitCode() << r.getOutput();
- }
- }
-
- m_unsafe = Calamares::getBool( configurationMap, "be_unsafe", false );
-}
-
-CALAMARES_PLUGIN_FACTORY_DEFINITION( InitramfsJobFactory, registerPlugin< InitramfsJob >(); )
diff --git a/src/modules/initramfs/InitramfsJob.h b/src/modules/initramfs/InitramfsJob.h
deleted file mode 100644
index c09c9eba2b..0000000000
--- a/src/modules/initramfs/InitramfsJob.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2019 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#ifndef INITRAMFSJOB_H
-#define INITRAMFSJOB_H
-
-#include "CppJob.h"
-#include "DllMacro.h"
-#include "utils/PluginFactory.h"
-
-#include
-#include
-
-class PLUGINDLLEXPORT InitramfsJob : public Calamares::CppJob
-{
- Q_OBJECT
-
-public:
- explicit InitramfsJob( QObject* parent = nullptr );
- ~InitramfsJob() override;
-
- QString prettyName() const override;
-
- Calamares::JobResult exec() override;
-
- void setConfigurationMap( const QVariantMap& configurationMap ) override;
-
-private:
- QString m_kernel;
- bool m_unsafe = false;
-};
-
-CALAMARES_PLUGIN_FACTORY_DECLARATION( InitramfsJobFactory )
-
-#endif // INITRAMFSJOB_H
diff --git a/src/modules/initramfs/Tests.cpp b/src/modules/initramfs/Tests.cpp
deleted file mode 100644
index 3dd77881df..0000000000
--- a/src/modules/initramfs/Tests.cpp
+++ /dev/null
@@ -1,74 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2019 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#include "Tests.h"
-
-#include "GlobalStorage.h"
-#include "JobQueue.h"
-#include "Settings.h"
-
-#include "utils/Logger.h"
-#include "utils/System.h"
-#include "utils/Yaml.h"
-
-#include
-
-#include
-#include
-
-QTEST_GUILESS_MAIN( InitramfsTests )
-
-InitramfsTests::InitramfsTests() {}
-
-InitramfsTests::~InitramfsTests() {}
-
-void
-InitramfsTests::initTestCase()
-{
- Logger::setupLogLevel( Logger::LOGDEBUG );
-
- (void)new Calamares::JobQueue();
- (void)new Calamares::System( true );
-}
-
-static const char contents[] = "UMASK=0077\n";
-static const char confFile[] = "/tmp/calamares-safe-umask";
-
-void
-InitramfsTests::cleanup()
-{
- QFile::remove( confFile );
-}
-
-void
-InitramfsTests::testCreateTargetFile()
-{
- static const char short_confFile[] = "/calamares-safe-umask";
-
- auto* s = Calamares::System::instance();
- auto r = s->createTargetFile( short_confFile, QByteArray( contents ) );
- QVERIFY( r.failed() );
- QVERIFY( !r );
- QString path = r.path();
- QVERIFY( path.isEmpty() ); // because no rootmountpoint is set
-
- Calamares::JobQueue::instance()->globalStorage()->insert( "rootMountPoint", "/tmp" );
-
- path = s->createTargetFile( short_confFile, QByteArray( contents ) ).path();
- QCOMPARE( path, QString( confFile ) );
- QVERIFY( path.endsWith( short_confFile ) ); // chroot, so path create relative to
- QVERIFY( path.startsWith( "/tmp/" ) );
- QVERIFY( QFile::exists( path ) );
-
- QFileInfo fi( path );
- QVERIFY( fi.exists() );
- QCOMPARE( ulong( fi.size() ), sizeof( contents ) - 1 ); // don't count trailing NUL
-
- QFile::remove( path );
-}
diff --git a/src/modules/initramfs/Tests.h b/src/modules/initramfs/Tests.h
deleted file mode 100644
index 3774245899..0000000000
--- a/src/modules/initramfs/Tests.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2019 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#ifndef TESTS_H
-#define TESTS_H
-
-#include
-
-class InitramfsTests : public QObject
-{
- Q_OBJECT
-public:
- InitramfsTests();
- ~InitramfsTests() override;
-
-private Q_SLOTS:
- void initTestCase();
- void cleanup();
-
- // TODO: this doesn't actually test any of the functionality of this job
- void testCreateTargetFile();
-};
-
-#endif
diff --git a/src/modules/initramfs/initramfs.conf b/src/modules/initramfs/initramfs.conf
deleted file mode 100644
index c9dcf16971..0000000000
--- a/src/modules/initramfs/initramfs.conf
+++ /dev/null
@@ -1,39 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-## initramfs module
-#
-# This module is specific to Debian based distros. Post installation on Debian
-# the initramfs needs to be updated so as to not interrupt the boot process
-# with a error about fsck.ext4 not being found.
-#
-## Debian specific notes
-#
-# If you're using live-build to build your ISO and setup the runtime env
-# make sure that you purge the live-\* packages on the target system
-# before running this module, since live-config dpkg-diverts update-initramfs
-# and can cause all sorts of fun issues.
----
-# There is only one configuration item for this module,
-# the kernel to be loaded. This can have the following
-# values:
-# - empty or unset, interpreted as "all"
-# - the literal string "$uname" (without quotes, with dollar),
-# which will use the output of `uname -r` to determine the
-# running kernel, and use that.
-# - any other string.
-#
-# Whatever is set, that string is passed as *version* argument to the
-# `-k` option of *update-initramfs*. Take care that both "$uname" operates
-# in the host system, and might not be correct if the target system is
-# updated (to a newer kernel) as part of the installation.
-#
-# The default is empty/unset, leading to the behavior from Calamares
-# 3.2.9 and earlier which passed "all" as version.
-
-kernel: "all"
-
-# Set this to true to turn off mitigations for lax file
-# permissions on initramfs (which, in turn, can compromise
-# your LUKS encryption keys, CVS-2019-13179).
-be_unsafe: false
diff --git a/src/modules/initramfscfg/encrypt_hook b/src/modules/initramfscfg/encrypt_hook
deleted file mode 100755
index 70d661a984..0000000000
--- a/src/modules/initramfscfg/encrypt_hook
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-#
-# SPDX-FileCopyrightText: 2016 David McKinney
-# SPDX-License-Identifier: GPL-3.0-or-later
-
- PREREQ=""
-
- prereqs()
- {
- echo "$PREREQ"
- }
-
- case $1 in
- # get pre-requisites
- prereqs)
- prereqs
- exit 0
- ;;
- esac
-
- . /usr/share/initramfs-tools/hook-functions
- if [ -f /crypto_keyfile.bin ]
- then
- cp /crypto_keyfile.bin ${DESTDIR}
- fi
- if [ -f /etc/crypttab ]
- then
- cp /etc/crypttab ${DESTDIR}/etc/
- fi
diff --git a/src/modules/initramfscfg/encrypt_hook_nokey b/src/modules/initramfscfg/encrypt_hook_nokey
deleted file mode 100755
index 8ee669c300..0000000000
--- a/src/modules/initramfscfg/encrypt_hook_nokey
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-#
-# SPDX-FileCopyrightText: 2016 David McKinney
-# SPDX-License-Identifier: GPL-3.0-or-later
-
- PREREQ=""
-
- prereqs()
- {
- echo "$PREREQ"
- }
-
- case $1 in
- # get pre-requisites
- prereqs)
- prereqs
- exit 0
- ;;
- esac
-
- . /usr/share/initramfs-tools/hook-functions
- if [ -f /etc/crypttab ]
- then
- cp /etc/crypttab ${DESTDIR}/etc/
- fi
diff --git a/src/modules/initramfscfg/main.py b/src/modules/initramfscfg/main.py
deleted file mode 100644
index 974e2634dc..0000000000
--- a/src/modules/initramfscfg/main.py
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/env python3
-# -*- coding: utf-8 -*-
-#
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2014 Rohan Garg
-# SPDX-FileCopyrightText: 2015 Philip Müller
-# SPDX-FileCopyrightText: 2016 David McKinney
-# SPDX-FileCopyrightText: 2016 Kevin Kofler
-# SPDX-FileCopyrightText: 2017 Alf Gaida
-# SPDX-FileCopyrightText: 2017 2019, Adriaan de Groot
-# SPDX-License-Identifier: GPL-3.0-or-later
-#
-# Calamares is Free Software: see the License-Identifier above.
-#
-
-import libcalamares
-
-import inspect
-import os
-import shutil
-
-
-import gettext
-_ = gettext.translation("calamares-python",
- localedir=libcalamares.utils.gettext_path(),
- languages=libcalamares.utils.gettext_languages(),
- fallback=True).gettext
-
-
-def pretty_name():
- return _("Configuring initramfs.")
-
-
-def copy_initramfs_hooks(partitions, root_mount_point):
- """
- Copies initramfs hooks so they are picked up by update-initramfs
-
- :param partitions:
- :param root_mount_point:
- """
- encrypt_hook = False
- unencrypted_separate_boot = False
-
- for partition in partitions:
- if partition["mountPoint"] == "/" and "luksMapperName" in partition:
- encrypt_hook = True
-
- if (partition["mountPoint"] == "/boot"
- and "luksMapperName" not in partition):
- unencrypted_separate_boot = True
-
- if encrypt_hook:
- target = "{!s}/usr/share/initramfs-tools/hooks/encrypt_hook".format(
- root_mount_point)
-
- # Find where this module is installed
- _filename = inspect.getframeinfo(inspect.currentframe()).filename
- _path = os.path.dirname(os.path.abspath(_filename))
-
- if unencrypted_separate_boot:
- shutil.copy2(
- os.path.join(_path, "encrypt_hook_nokey"),
- target
- )
- else:
- shutil.copy2(
- os.path.join(_path, "encrypt_hook"),
- target
- )
- os.chmod(target, 0o755)
-
-
-def run():
- """
- Calls routine with given parameters to configure initramfs
-
- :return:
- """
- partitions = libcalamares.globalstorage.value("partitions")
- root_mount_point = libcalamares.globalstorage.value("rootMountPoint")
-
- if not partitions:
- libcalamares.utils.warning("partitions is empty, {!s}".format(partitions))
- return (_("Configuration Error"),
- _("No partitions are defined for
{!s}
to use." ).format("initramfscfg"))
- if not root_mount_point:
- libcalamares.utils.warning("rootMountPoint is empty, {!s}".format(root_mount_point))
- return (_("Configuration Error"),
- _("No root mount point is given for
{!s}
to use." ).format("initramfscfg"))
-
- copy_initramfs_hooks(partitions, root_mount_point)
-
- return None
diff --git a/src/modules/initramfscfg/module.desc b/src/modules/initramfscfg/module.desc
deleted file mode 100644
index 17db29465a..0000000000
--- a/src/modules/initramfscfg/module.desc
+++ /dev/null
@@ -1,8 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
----
-type: "job"
-name: "initramfscfg"
-interface: "python"
-script: "main.py"
-noconfig: true
diff --git a/src/modules/interactiveterminal/CMakeLists.txt b/src/modules/interactiveterminal/CMakeLists.txt
deleted file mode 100644
index 6d153cca36..0000000000
--- a/src/modules/interactiveterminal/CMakeLists.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2020 Adriaan de Groot
-# SPDX-License-Identifier: BSD-2-Clause
-#
-find_package(${kfname}Service ${KF_VERSION})
-find_package(${kfname}Parts ${KF_VERSION})
-set_package_properties(${kfname}Service PROPERTIES PURPOSE "For finding KDE services at runtime")
-set_package_properties(${kfname}Parts PROPERTIES PURPOSE "For finding KDE parts at runtime")
-
-if(${kfname}Parts_FOUND AND ${kfname}Service_FOUND)
- calamares_add_plugin(interactiveterminal
- TYPE viewmodule
- EXPORT_MACRO PLUGINDLLEXPORT_PRO
- SOURCES
- InteractiveTerminalViewStep.cpp
- InteractiveTerminalPage.cpp
- LINK_LIBRARIES
- ${kfname}::Service
- ${kfname}::Parts
- SHARED_LIB
- )
-else()
- calamares_skip_module( "interactiveterminal (missing requirements)" )
-endif()
diff --git a/src/modules/interactiveterminal/InteractiveTerminalPage.cpp b/src/modules/interactiveterminal/InteractiveTerminalPage.cpp
deleted file mode 100644
index fb31f26508..0000000000
--- a/src/modules/interactiveterminal/InteractiveTerminalPage.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac
- * SPDX-FileCopyrightText: 2024 Anke Boersma
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#include "InteractiveTerminalPage.h"
-
-#include "utils/Gui.h"
-#include "utils/Logger.h"
-#include "utils/Retranslator.h"
-#include "viewpages/ViewStep.h"
-#include "widgets/TranslationFix.h"
-
-#include
-#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 )
-#include
-#include
-#else
-#include
-#include
-#endif
-#include
-
-#include
-#include
-#include
-#include
-#include
-
-InteractiveTerminalPage::InteractiveTerminalPage( QWidget* parent )
- : QWidget( parent )
- , m_layout( new QVBoxLayout( this ) )
- , m_termHostWidget( nullptr )
-{
- setLayout( m_layout );
- m_layout->setContentsMargins( 0, 0, 0, 0 );
-
- m_headerLabel = new QLabel( this );
- m_layout->addWidget( m_headerLabel );
-}
-
-void
-InteractiveTerminalPage::errorKonsoleNotInstalled()
-{
- QMessageBox mb( QMessageBox::Critical,
- tr( "Konsole not installed.", "@error" ),
- tr( "Please install KDE Konsole and try again!", "@info" ),
- QMessageBox::Ok );
- Calamares::fixButtonLabels( &mb );
- mb.exec();
-}
-
-void
-InteractiveTerminalPage::onActivate()
-{
- if ( m_termHostWidget )
- {
- return;
- }
-
-#if KCOREADDONS_VERSION_MAJOR > 5 || KCOREADDONS_VERSION_MINOR > 200
- auto md = KPluginMetaData::findPluginById( QString(), "kf6/parts/konsolepart" );
- if ( !md.isValid() )
- {
- errorKonsoleNotInstalled();
- return;
- }
- auto* p = KPluginFactory::instantiatePlugin< KParts::ReadOnlyPart >( md, this ).plugin;
-#elif KCOREADDONS_VERSION_MINOR >= 86
- // 5.86 deprecated a bunch of KService and PluginFactory and related methods
- auto md = KPluginMetaData::findPluginById( QString(), "konsolepart" );
- if ( !md.isValid() )
- {
- errorKonsoleNotInstalled();
- return;
- }
- auto* p = KPluginFactory::instantiatePlugin< KParts::ReadOnlyPart >( md, this ).plugin;
-#else
- KService::Ptr service = KService::serviceByDesktopName( "konsolepart" );
- if ( !service )
- {
- errorKonsoleNotInstalled();
- return;
- }
-
- // Create one instance of konsolepart.
- KParts::ReadOnlyPart* p = service->createInstance< KParts::ReadOnlyPart >( this, this, {} );
-#endif
- if ( !p )
- {
- // One more opportunity for the loading operation to fail.
- errorKonsoleNotInstalled();
- return;
- }
-
- // Cast the konsolepart to the TerminalInterface...
- TerminalInterface* t = qobject_cast< TerminalInterface* >( p );
- if ( !t )
- {
- // This is why we can't have nice things.
- errorKonsoleNotInstalled();
- return;
- }
-
- // Make the widget persist even if the KPart goes out of scope...
- p->setAutoDeleteWidget( false );
- // ... but kill the KPart if the widget goes out of scope.
- p->setAutoDeletePart( true );
-
- m_termHostWidget = p->widget();
- m_layout->addWidget( m_termHostWidget );
-
- t->showShellInDir( QDir::home().path() );
- t->sendInput( QString( "%1\n" ).arg( m_command ) );
-}
-
-void
-InteractiveTerminalPage::setCommand( const QString& command )
-{
- m_command = command;
- CALAMARES_RETRANSLATE(
- m_headerLabel->setText( tr( "Executing script: %1", "@info" ).arg( m_command ) ); );
-}
diff --git a/src/modules/interactiveterminal/InteractiveTerminalPage.h b/src/modules/interactiveterminal/InteractiveTerminalPage.h
deleted file mode 100644
index 86ba075adb..0000000000
--- a/src/modules/interactiveterminal/InteractiveTerminalPage.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#ifndef INTERACTIVETERMINALPAGE_H
-#define INTERACTIVETERMINALPAGE_H
-
-#include
-
-class QLabel;
-class QVBoxLayout;
-
-class InteractiveTerminalPage : public QWidget
-{
- Q_OBJECT
-public:
- explicit InteractiveTerminalPage( QWidget* parent = nullptr );
-
- void onActivate();
-
- void setCommand( const QString& command );
-
-private:
- QVBoxLayout* m_layout;
- QWidget* m_termHostWidget;
- QString m_command;
- QLabel* m_headerLabel;
-
- void errorKonsoleNotInstalled();
-};
-
-#endif // INTERACTIVETERMINALPAGE_H
diff --git a/src/modules/interactiveterminal/InteractiveTerminalViewStep.cpp b/src/modules/interactiveterminal/InteractiveTerminalViewStep.cpp
deleted file mode 100644
index 6f0457f385..0000000000
--- a/src/modules/interactiveterminal/InteractiveTerminalViewStep.cpp
+++ /dev/null
@@ -1,95 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#include "InteractiveTerminalViewStep.h"
-
-#include "InteractiveTerminalPage.h"
-
-#include "compat/Variant.h"
-#include "utils/Logger.h"
-
-#include
-
-CALAMARES_PLUGIN_FACTORY_DEFINITION( InteractiveTerminalViewStepFactory,
- registerPlugin< InteractiveTerminalViewStep >(); )
-
-InteractiveTerminalViewStep::InteractiveTerminalViewStep( QObject* parent )
- : Calamares::ViewStep( parent )
- , m_widget( new InteractiveTerminalPage() )
-{
- emit nextStatusChanged( true );
-}
-
-InteractiveTerminalViewStep::~InteractiveTerminalViewStep()
-{
- if ( m_widget && m_widget->parent() == nullptr )
- {
- m_widget->deleteLater();
- }
-}
-
-QString
-InteractiveTerminalViewStep::prettyName() const
-{
- return tr( "Script", "@label" );
-}
-
-QWidget*
-InteractiveTerminalViewStep::widget()
-{
- return m_widget;
-}
-
-bool
-InteractiveTerminalViewStep::isNextEnabled() const
-{
- return true;
-}
-
-bool
-InteractiveTerminalViewStep::isBackEnabled() const
-{
- return true;
-}
-
-bool
-InteractiveTerminalViewStep::isAtBeginning() const
-{
- return true;
-}
-
-bool
-InteractiveTerminalViewStep::isAtEnd() const
-{
- return true;
-}
-
-QList< Calamares::job_ptr >
-InteractiveTerminalViewStep::jobs() const
-{
- cDebug() << "InteractiveTerminal" << prettyName() << "asked for jobs(), this is probably wrong.";
- return QList< Calamares::job_ptr >();
-}
-
-void
-InteractiveTerminalViewStep::onActivate()
-{
- cDebug() << "InteractiveTerminal" << prettyName() << "activated.";
- m_widget->onActivate();
-}
-
-void
-InteractiveTerminalViewStep::setConfigurationMap( const QVariantMap& configurationMap )
-{
- if ( configurationMap.contains( "command" )
- && Calamares::typeOf( configurationMap.value( "command" ) ) == Calamares::StringVariantType )
- {
- m_widget->setCommand( configurationMap.value( "command" ).toString() );
- }
-}
diff --git a/src/modules/interactiveterminal/InteractiveTerminalViewStep.h b/src/modules/interactiveterminal/InteractiveTerminalViewStep.h
deleted file mode 100644
index 8e0e6508f4..0000000000
--- a/src/modules/interactiveterminal/InteractiveTerminalViewStep.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac
- * SPDX-FileCopyrightText: 2017 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#ifndef INTERACTIVETERMINALPAGEPLUGIN_H
-#define INTERACTIVETERMINALPAGEPLUGIN_H
-
-#include
-
-#include "utils/PluginFactory.h"
-#include "viewpages/ViewStep.h"
-
-#include "DllMacro.h"
-
-class InteractiveTerminalPage;
-
-class PLUGINDLLEXPORT InteractiveTerminalViewStep : public Calamares::ViewStep
-{
- Q_OBJECT
-
-public:
- explicit InteractiveTerminalViewStep( QObject* parent = nullptr );
- ~InteractiveTerminalViewStep() override;
-
- QString prettyName() const override;
-
- QWidget* widget() override;
-
- bool isNextEnabled() const override;
- bool isBackEnabled() const override;
-
- bool isAtBeginning() const override;
- bool isAtEnd() const override;
-
- QList< Calamares::job_ptr > jobs() const override;
-
- void onActivate() override;
-
-protected:
- void setConfigurationMap( const QVariantMap& configurationMap ) override;
-
-private:
- InteractiveTerminalPage* m_widget;
-};
-
-CALAMARES_PLUGIN_FACTORY_DECLARATION( InteractiveTerminalViewStepFactory )
-
-#endif // INTERACTIVETERMINALPAGEPLUGIN_H
diff --git a/src/modules/interactiveterminal/interactiveterminal.conf b/src/modules/interactiveterminal/interactiveterminal.conf
deleted file mode 100644
index 9354f8f4a9..0000000000
--- a/src/modules/interactiveterminal/interactiveterminal.conf
+++ /dev/null
@@ -1,17 +0,0 @@
-# SPDX-FileCopyrightText: no
-# SPDX-License-Identifier: CC0-1.0
-#
-# The interactive terminal provides a konsole (terminal) window
-# during the installation process. The terminal runs in the
-# host system, so you will need to change directories to the
-# target system to examine the state there.
-#
-# The one configuration key *command*, if defined, is passed
-# as a command to run in the terminal window before any user
-# input is accepted. The user must exit the terminal manually
-# or click *next* to proceed to the next installation step.
-#
-# If no command is defined, no command is run and the user
-# gets a plain terminal session.
----
-command: "echo Hello"
diff --git a/src/modules/keyboardq/CMakeLists.txt b/src/modules/keyboardq/CMakeLists.txt
deleted file mode 100644
index e14a59e8a0..0000000000
--- a/src/modules/keyboardq/CMakeLists.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-# === This file is part of Calamares - ===
-#
-# SPDX-FileCopyrightText: 2020 Adriaan de Groot
-# SPDX-License-Identifier: BSD-2-Clause
-#
-if(NOT WITH_QML)
- calamares_skip_module( "keyboardq (QML is not supported in this build)" )
- return()
-endif()
-
-set(_keyboard ${CMAKE_CURRENT_SOURCE_DIR}/../keyboard)
-
-include_directories(${_keyboard})
-
-calamares_add_plugin(keyboardq
- TYPE viewmodule
- EXPORT_MACRO PLUGINDLLEXPORT_PRO
- SOURCES
- KeyboardQmlViewStep.cpp
- ${_keyboard}/Config.cpp
- ${_keyboard}/KeyboardLayoutModel.cpp
- ${_keyboard}/SetKeyboardLayoutJob.cpp
- ${_keyboard}/keyboardwidget/keyboardglobal.cpp
- RESOURCES
- keyboardq${QT_VERSION_SUFFIX}.qrc
- SHARED_LIB
- LINK_LIBRARIES
- ${qtname}::DBus
-)
diff --git a/src/modules/keyboardq/KeyboardQmlViewStep.cpp b/src/modules/keyboardq/KeyboardQmlViewStep.cpp
deleted file mode 100644
index f63d03b81d..0000000000
--- a/src/modules/keyboardq/KeyboardQmlViewStep.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac
- * SPDX-FileCopyrightText: 2020 Camilo Higuita
- * SPDX-FileCopyrightText: 2020 Anke Boersma
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#include "KeyboardQmlViewStep.h"
-
-#include "Config.h"
-
-#include "GlobalStorage.h"
-#include "JobQueue.h"
-
-CALAMARES_PLUGIN_FACTORY_DEFINITION( KeyboardQmlViewStepFactory, registerPlugin< KeyboardQmlViewStep >(); )
-
-KeyboardQmlViewStep::KeyboardQmlViewStep( QObject* parent )
- : Calamares::QmlViewStep( parent )
- , m_config( new Config( this ) )
-{
- m_config->detectCurrentKeyboardLayout();
- emit nextStatusChanged( true );
-}
-
-QString
-KeyboardQmlViewStep::prettyName() const
-{
- return tr( "Keyboard", "@label" );
-}
-
-QString
-KeyboardQmlViewStep::prettyStatus() const
-{
- return m_config->prettyStatus();
-}
-
-bool
-KeyboardQmlViewStep::isNextEnabled() const
-{
- return true;
-}
-
-bool
-KeyboardQmlViewStep::isBackEnabled() const
-{
- return true;
-}
-
-bool
-KeyboardQmlViewStep::isAtBeginning() const
-{
- return true;
-}
-
-bool
-KeyboardQmlViewStep::isAtEnd() const
-{
- return true;
-}
-
-Calamares::JobList
-KeyboardQmlViewStep::jobs() const
-{
- return m_config->createJobs();
-}
-
-void
-KeyboardQmlViewStep::onActivate()
-{
- m_config->guessLocaleKeyboardLayout();
-}
-
-void
-KeyboardQmlViewStep::onLeave()
-{
- m_config->finalize();
-}
-
-QObject*
-KeyboardQmlViewStep::getConfig()
-{
- return m_config;
-}
-
-void
-KeyboardQmlViewStep::setConfigurationMap( const QVariantMap& configurationMap )
-{
- m_config->setConfigurationMap( configurationMap );
- Calamares::QmlViewStep::setConfigurationMap( configurationMap );
-}
diff --git a/src/modules/keyboardq/KeyboardQmlViewStep.h b/src/modules/keyboardq/KeyboardQmlViewStep.h
deleted file mode 100644
index eb31c3d595..0000000000
--- a/src/modules/keyboardq/KeyboardQmlViewStep.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2014-2015 Teo Mrnjavac
- * SPDX-FileCopyrightText: 2017 Adriaan de Groot
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-#ifndef KEYBOARDQMLVIEWSTEP_H
-#define KEYBOARDQMLVIEWSTEP_H
-
-#include "Config.h"
-
-#include "DllMacro.h"
-#include "utils/PluginFactory.h"
-#include "viewpages/QmlViewStep.h"
-
-#include
-
-class PLUGINDLLEXPORT KeyboardQmlViewStep : public Calamares::QmlViewStep
-{
- Q_OBJECT
-
-public:
- explicit KeyboardQmlViewStep( QObject* parent = nullptr );
-
- QString prettyName() const override;
- QString prettyStatus() const override;
-
- bool isNextEnabled() const override;
- bool isBackEnabled() const override;
-
- bool isAtBeginning() const override;
- bool isAtEnd() const override;
-
- Calamares::JobList jobs() const override;
-
- void onActivate() override;
- void onLeave() override;
-
- void setConfigurationMap( const QVariantMap& configurationMap ) override;
- QObject* getConfig() override;
-
-private:
- Config* m_config;
-};
-
-CALAMARES_PLUGIN_FACTORY_DECLARATION( KeyboardQmlViewStepFactory )
-
-#endif // KEYBOARDQMLVIEWSTEP_H
diff --git a/src/modules/keyboardq/data/Key-qt6.qml b/src/modules/keyboardq/data/Key-qt6.qml
deleted file mode 100644
index 990f453f2e..0000000000
--- a/src/modules/keyboardq/data/Key-qt6.qml
+++ /dev/null
@@ -1,180 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2021 - 2023 Anke Boersma
- * SPDX-License-Identifier: GPL-3.0-or-later
- *
- * Calamares is Free Software: see the License-Identifier above.
- *
- */
-
-import QtQuick
-
-Item {
- id: key
-
- property string mainLabel: "A"
- property var secondaryLabels: [];
-
- property var iconSource;
-
- property var keyImageLeft: ""
- property var keyImageRight: ""
- property var keyImageCenter: ""
-
- property color keyColor: "#404040"
- property color keyPressedColor: "grey"
- property int keyBounds: 2
- property var keyPressedColorOpacity: 1
-
- property var mainFontFamily: "Roboto"
- property color mainFontColor: "white"
- property int mainFontSize: 18
-
- property var secondaryFontFamily: "Roboto"
- property color secondaryFontColor: "white"
- property int secondaryFontSize: 10
-
- property bool secondaryLabelVisible: true
-
- property bool isChekable;
- property bool isChecked;
-
- property bool upperCase;
-
- signal clicked()
- signal alternatesClicked(string symbol)
-
- Item {
- anchors.fill: parent
- anchors.margins: key.keyBounds
- visible: key.keyImageLeft != "" || key.keyImageCenter != "" || key.keyImageRight != "" ? 1 : 0
- Image {
- id: backgroundImage_left
- anchors.left: parent.left
- height: parent.height
- fillMode: Image.PreserveAspectFit
- source: key.keyImageLeft
- }
- Image {
- id: backgroundImage_right
- anchors.right: parent.right
- height: parent.height
- fillMode: Image.PreserveAspectFit
- source: key.keyImageRight
- }
- Image {
- id: backgroundImage_center
- anchors.fill: parent
- anchors.leftMargin: backgroundImage_left.width - 1
- anchors.rightMargin: backgroundImage_right.width - 1
- height: parent.height
- fillMode: Image.Stretch
- source: key.keyImageCenter
- }
- }
-
- Rectangle {
- id: backgroundItem
- anchors.fill: parent
- anchors.margins: key.keyBounds
- color: key.isChecked || mouseArea.pressed ? key.keyPressedColor : key.keyColor;
- opacity: key.keyPressedColorOpacity
- }
-
- Column
- {
- anchors.centerIn: backgroundItem
-
- Text {
- id: secondaryLabelsItem
- smooth: true
- anchors.right: parent.right
- visible: true //secondaryLabelVisible
- text: secondaryLabels.length > 0 ? secondaryLabels : ""
- color: secondaryFontColor
-
- font.pixelSize: secondaryFontSize
- font.weight: Font.Light
- font.family: secondaryFontFamily
- font.capitalization: upperCase ? Font.AllUppercase :
- Font.MixedCase
- }
-
- Row {
- anchors.horizontalCenter: parent.horizontalCenter
-
- Image {
- id: icon
- smooth: true
- anchors.verticalCenter: parent.verticalCenter
- source: iconSource
- //sourceSize.width: key.width * 0.6
- sourceSize.height: key.height * 0.4
- }
-
- Text {
- id: mainLabelItem
- smooth: true
- anchors.verticalCenter: parent.verticalCenter
- text: mainLabel
- color: mainFontColor
- visible: iconSource ? false : true
-
- font.pixelSize: mainFontSize
- font.weight: Font.Light
- font.family: mainFontFamily
- font.capitalization: upperCase ? Font.AllUppercase :
- Font.MixedCase
- }
- }
- }
-
- Row {
- id: alternatesRow
- property int selectedIndex: -1
- visible: false
- anchors.bottom: backgroundItem.top
- anchors.left: backgroundItem.left
-
- Repeater {
- model: secondaryLabels.length
-
- Rectangle {
- property bool isSelected: alternatesRow.selectedIndex === index
- color: isSelected ? mainLabelItem.color : key.keyPressedColor
- height: backgroundItem.height
- width: backgroundItem.width
-
- Text {
- anchors.centerIn: parent
- text: secondaryLabels[ index ]
- font: mainLabelItem.font
- color: isSelected ? key.keyPressedColor : mainLabelItem.color
- }
- }
- }
- }
-
- MouseArea {
- id: mouseArea
- anchors.fill: parent
- onPressAndHold: alternatesRow.visible = true
- onClicked: {
- if (key.isChekable) key.isChecked = !key.isChecked
- key.clicked()
- }
-
- onReleased: {
- alternatesRow.visible = false
- if (alternatesRow.selectedIndex > -1)
- key.alternatesClicked(secondaryLabels[alternatesRow.selectedIndex])
- }
-
- onMouseXChanged: {
- alternatesRow.selectedIndex =
- (mouseY < 0 && mouseX > 0 && mouseY < alternatesRow.width) ?
- Math.floor(mouseX / backgroundItem.width) :
- -1;
- }
- }
-}
diff --git a/src/modules/keyboardq/data/Key.qml b/src/modules/keyboardq/data/Key.qml
deleted file mode 100644
index e5c766e414..0000000000
--- a/src/modules/keyboardq/data/Key.qml
+++ /dev/null
@@ -1,180 +0,0 @@
-/* === This file is part of Calamares - ===
- *
- * SPDX-FileCopyrightText: 2021 Anke Boersma