Skip to content
Snippets Groups Projects
Forked from Applications / calamares
10172 commits behind the upstream repository.
user avatar
demmm authored
it is no longer maintained upstream
this change is tested with QtWebEngine 5.6.0, it builds and runs
displays the webview page correctly, clicking next however does not refresh that new page completely
c7aa4274
History

Calamares: Distribution-Independent Installer Framework


GitHub release Build Status Coverity Scan Build Status GitHub license

Report a Bug Contribute Translate Freenode (IRC): #calamares

Dependencies

Main:

  • Compiler with C++11 support: GCC >= 4.9.0 or Clang >= 3.5.1
  • CMake >= 2.8.12
  • Qt >= 5.3
  • yaml-cpp >= 0.5.1
  • Python >= 3.3
  • Boost.Python >= 1.55.0
  • dmidecode

Modules:

  • welcome:
  • NetworkManager
  • UPower
  • partition:
  • extra-cmake-modules
  • KF5: KCoreAddons, KConfig, KI18n, KIconThemes, KIO, KService
  • KPMcore >= 2.1
  • sgdisk
  • bootloader:
  • systemd-boot or GRUB
  • sgdisk
  • unpackfs:
  • squashfs-tools
  • rsync

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.