Distribution-independent installer framework
Go to file
Teo Mrnjavac 7a89b53538 Refactor leave event of ChoicePage, add ESP mount point support.
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.
2016-02-19 16:33:19 +01:00
.tx Add Transifex repo config. 2014-10-09 16:27:20 +02:00
ci Fix permissions. 2015-09-29 11:33:52 +02:00
CMakeModules Make Boost.Python3 cmake script work properly on Debian again 2015-06-10 21:07:46 +02:00
data/images New icon, PNG. 2016-01-21 17:12:38 +01:00
hacking Update RELEASE.md 2015-06-20 20:46:45 +02:00
lang Automatic merge of Transifex translations 2016-02-18 00:36:08 +00:00
src Refactor leave event of ChoicePage, add ESP mount point support. 2016-02-19 16:33:19 +01:00
.editorconfig Added .editorconfig 2015-06-13 21:56:21 -04:00
.gitattributes Add testmodule.py and globalStorage.yaml to export-ignore for tarballs. 2015-07-20 17:26:53 +02:00
.gitignore Update .gitignore. 2015-06-10 02:09:18 +02:00
.gitmodules Remove partitionmanager submodule. 2015-09-15 16:48:40 +02:00
AUTHORS AUTHORS file. 2014-06-11 13:39:44 +02:00
calamares.desktop Use pkexec to execute calamares with the right permissions 2014-11-04 17:59:31 +01:00
CalamaresAddBrandingSubdirectory.cmake Rely on CMake if the branding component has a CMakeLists.txt. 2015-05-13 12:32:14 +02:00
CalamaresAddLibrary.cmake Add proper QResrouce system to libcalamaresui, finish up prepare checks 2014-08-26 18:24:51 +02:00
CalamaresAddModuleSubdirectory.cmake Allow and glob multiple .conf files in module subdirectory. 2015-09-15 16:48:42 +02:00
CalamaresAddPlugin.cmake Allow and glob multiple .conf files in module subdirectory. 2015-09-15 16:48:42 +02:00
CalamaresBuildTreeSettings.cmake.in CMake skeleton. 2014-06-04 16:35:26 +02:00
CalamaresConfig.cmake.in We have a Python API for jobmodules! 2014-07-17 19:42:16 +02:00
CalamaresConfigVersion.cmake.in CMake skeleton. 2014-06-04 16:35:26 +02:00
CalamaresUse.cmake.in New CalamaresAddBrandingSubdirectory macro. 2014-10-10 18:07:41 +02:00
cmake_uninstall.cmake.in CMake skeleton. 2014-06-04 16:35:26 +02:00
CMakeLists.txt Bump. 2016-02-12 16:48:58 +01:00
com.github.calamares.calamares.policy Rename pkexec policy file to .policy extension. 2014-11-05 23:34:03 +01:00
HACKING.md Update HACKING.md 2015-06-13 21:55:31 -04:00
LICENSE Update LICENSE 2014-06-03 22:32:42 +02:00
README.md Update README.md 2015-09-27 12:43:08 +02:00
settings.conf Update settings.conf 2015-09-22 16:51:32 +02:00

Calamares: Distribution-Independent Installer Framework


GitHub release Build Status Coverity Scan Build Status GitHub license

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

Setting up branding

Working with modules

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 in src/modules (e.g. cmake -DSKIP_MODULES="partition mount umount welcome" ..). Default is empty.

Design Notes

Calamares is currently split as follows:

  1. 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).
  1. 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.
  1. calamares - The main executable.
  • A thin wrapper around libcalamaresui; starts up and plugs together all the parts.