Distribution-independent installer framework
2d64110150
This commit adds support for distribution to define sidebarTextHighlight to their branding.desc file, to control the left panel (sidebar) with highlight behind the current step (isCurrent) text label. |
||
---|---|---|
.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.