Distribution-independent installer framework
7a89b53538
PVS now calls ChoicePage::onLeave, which in turn runs ChoicePage:: doAlongsideApply and/or sets up the ESP mount point based on the UI state if it's running in EFI mode and the action is Alongside or Replace. If setting up under BIOS, Alongside and Replace always install the bootloader in the MBR of the current device. |
||
---|---|---|
.tx | ||
ci | ||
CMakeModules | ||
data/images | ||
hacking | ||
lang | ||
src | ||
.editorconfig | ||
.gitattributes | ||
.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
Report a Bug | Contribute | Translate | Freenode (IRC): #calamares |
---|
Dependencies
Compiler with C++11 support: GCC >= 4.9.0 or Clang >= 3.5.1
Main | Welcome module | Partitioning module | Bootloader module | Unpackfs module |
---|---|---|---|---|
CMake >= 2.8.12 | NetworkManager | extra-cmake-modules | systemd-boot or GRUB2 | squashfs-tools |
Qt >= 5.3 | UPower | kconfig (part of KF5) | sgdisk | rsync |
yaml-cpp >= 0.5.1 | solid (part of KF5) | |||
Python >= 3.3 | kcoreaddons (part of KF5) | |||
Boost.Python >= 1.55.0 | ki18n (part of KF5) | |||
dmidecode | sgdisk |
Deployment
Building
Clone Calamares from GitHub and cd
into the calamares directory, then:
$ git submodule init
$ git submodule update
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Debug ..
$ make
Supported variables for CMake
WITH_PYTHON
- if this is set to false, the Python module interface will not be built. Default is true.SKIP_MODULES
- takes a space-separated list of module names that should not be built even if present insrc/modules
(e.g.cmake -DSKIP_MODULES="partition mount umount welcome" ..
). Default is empty.
Design Notes
Calamares is currently split as follows:
- libcalamares - The back-end 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 front-end library.
- Same dependencies as libcalamares, plus QtWidgets and other Qt modules.
- Comes with a module loading system, for different kinds of plugins.
- Supports branding components.
- Presents a bunch of pages in a scripted order, enqueues jobs in the back-end library.
- calamares - The main executable.
- A thin wrapper around libcalamaresui; starts up and plugs together all the parts.