Distribution-independent installer framework
8c98aeb04a
Copy the setting into the global storage. Make the EraseDiskPage in the partition module and the grub and bootloader modules read it from there. Do not hardcode /boot as the path anymore. I set the default path to /boot/efi because I think that's the most common setting. At least Fedora and Debian use that path. But we can change the default setting if you think I'm wrong, as long as it remains configurable. There is no separate setting for efi_directory_firmware anymore. The EFI firmwares expect that directory to always be in the "EFI" path in the EFI System Partition. Distributions using /boot/efi actually have that directory under /boot/efi/EFI. |
||
---|---|---|
.tx | ||
CMakeModules | ||
data/images | ||
hacking | ||
lang | ||
src | ||
.gitignore | ||
.gitmodules | ||
AUTHORS | ||
calamares.desktop | ||
CalamaresAddBrandingSubdirectory.cmake | ||
CalamaresAddLibrary.cmake | ||
CalamaresAddModuleSubdirectory.cmake | ||
CalamaresAddPlugin.cmake | ||
CalamaresBuildTreeSettings.cmake.in | ||
CalamaresConfig.cmake.in | ||
CalamaresConfigVersion.cmake.in | ||
CalamaresUse.cmake.in | ||
cmake_uninstall.cmake.in | ||
CMakeLists.txt | ||
com.github.calamares.calamares.policy | ||
HACKING.md | ||
LICENSE | ||
README.md | ||
settings.conf |
Calamares
Distribution-independent installer framework
Dependencies
- CMake >= 2.8.12
- Qt >= 5.3
- yaml-cpp >= 0.5.1
- Python >= 3.3
- Boost.Python >= 1.55.0
Additional dependencies, only for the partitioning module:
- extra-cmake-modules
- kconfig (part of KF5)
- solid (part of KF5)
- kcoreaddons (part of KF5)
- ki18n (part of KF5)
Building
$ git submodule init
$ git submodule update
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Debug ..
$ make
Design notes
Calamares is currently split as follows:
- libcalamares - the backend library,
- only depends on QtCore, yaml-cpp, Python and Boost.Python,
- provides a job queue and generic jobs,
- comes with 3 job interfaces: C++, Python and process (the latter is very limited);
- libcalamaresui - the frontend library,
- same dependencies as libcalamares, plus QtWidgets and other Qt modules,
- comes with a module loading system, for different kinds of plugins,
- themeable so branding can be done easily (plugin-based, TBD),
- presents a bunch of pages in a scripted order, enqueues jobs in the backend library;
- calamares - the main executable,
- a thin wrapper around libcalamaresui, starts up and plugs together all the parts.