CutefishOS Installer.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Teo Mrnjavac 2a231b3532 Try to avoid passing GlobalStorage to Python by value. 10 years ago
CMakeModules
hacking
images
lang
src Try to avoid passing GlobalStorage to Python by value. 10 years ago
tests
.gitignore Ignore Python files 10 years ago
.gitmodules
AUTHORS
CMakeLists.txt Install Calamares macros 10 years ago
CalamaresAddLibrary.cmake
CalamaresAddModuleSubdirectory.cmake Indeed CMake, a list is not a directory... 10 years ago
CalamaresAddPlugin.cmake
CalamaresBuildTreeSettings.cmake.in
CalamaresConfig.cmake.in We have a Python API for jobmodules! 10 years ago
CalamaresConfigVersion.cmake.in
CalamaresUse.cmake.in
HACKING.md
LICENSE
README.md
cmake_uninstall.cmake.in
settings.conf Bring back partition and mount modules 10 years ago

README.md

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

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.

Some modules require additional dependencies: for example the partition viewmodule pulls in partitionmanager, which in turn requires a few KF5 libraries.