Distribution-independent installer framework
Go to file
2014-08-11 16:30:01 +02:00
CMakeModules Fix finding of Boost.Python on Ubuntu 2014-07-17 14:54:13 +02:00
hacking FillGlobalStorageJob: Add the partition UUID to global storage 2014-07-28 14:58:06 +02:00
images Behold the mighty Calamares squid. 2014-07-08 18:28:27 +02:00
lang Added Utils, Logger, Translations, QCommandLineParser, init boilerplate 2014-06-06 17:19:59 +02:00
src New networkcfg module, based on Thus. 2014-08-11 16:30:01 +02:00
.gitignore Ignore Python files 2014-07-24 10:16:09 +02:00
.gitmodules Move partitionmanager code to src/modules/partition 2014-07-15 11:54:09 +02:00
AUTHORS AUTHORS file. 2014-06-11 13:39:44 +02:00
CalamaresAddLibrary.cmake Remove debug spam from CalamaresAddLibrary.cmake. 2014-07-03 18:11:36 +02:00
CalamaresAddModuleSubdirectory.cmake module.conf ==> module.desc everywhere. 2014-08-06 16:01:39 +02:00
CalamaresAddPlugin.cmake Correctly install configuration files for viewmodules. 2014-08-08 10:38:15 +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 Add CalamaresAddModuleSubdirectory, a CMake function for modules that 2014-07-14 16:26:10 +02:00
cmake_uninstall.cmake.in CMake skeleton. 2014-06-04 16:35:26 +02:00
CMakeLists.txt calapmtest is not useful anymore 2014-08-08 13:27:41 +02:00
HACKING.md Add calamaresstyle script 2014-07-15 11:35:57 +02:00
LICENSE Update LICENSE 2014-06-03 22:32:42 +02:00
README.md Update README.md 2014-07-16 16:41:47 +02:00
settings.conf Update settings.conf 2014-08-06 17:16:40 +02:00

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.