Distribution-independent installer framework
c7aa427451
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 |
||
---|---|---|
.tx | ||
ci | ||
CMakeModules | ||
data/images | ||
hacking | ||
lang | ||
src | ||
thirdparty | ||
.editorconfig | ||
.gitattributes | ||
.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 | 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
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 insrc/modules
(e.g.cmake -DSKIP_MODULES="partition mount umount welcome" ..
). Default is empty.
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.
- Supports branding components.
- 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.