Distribution-independent installer framework
be29755230
URL is a variable set in branding.desc, distros cna link to a Known Issues page text for the URL is also possible to set in branding, known issues is default advantage is any text possible as distros see fit disadvantage, not part of translated strings if most agree, Known Issues can be set as hard coded text, not in branding.desc |
||
---|---|---|
.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
Report a Bug | Contribute | Freenode (IRC): #calamares |
---|
Dependencies
Main | Partitioning Module |
---|---|
CMake >= 2.8.12 | extra-cmake-modules |
Qt >= 5.3 | kconfig (part of KF5) |
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) |
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 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.
- Themeable, so branding can be done easily (plugin-based, TBD).
- 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.