class: title-slide # Calamares ## The Universal Linux Installer Adriaan de Groot January 18th, 2020 --- # Calamares .left-column[ (Universal) (Linux Installer)
![Calamares](img-calamares/calamares.png) ] .right-column[ (Universal Linux) (Installer) ] --- # Calamares *Toolkit* for installers that are - customized - branded - translated - themed --- # Calamares *Toolkit* for Linux distributions to configure their own installer. --- # What is a distribution? - A collection of packages - An ISO image - An installer --- # What is a distribution? - A collection of packages - An ISO image - An installer - Write things to HDD - Configure things on that HDD --- # What is an installed Linux system? - Bootloader (e.g. EFI), - Disk partitioning (e.g. GPT), - Kernel (e.g. Linux + initramfs), - Filesystems (e.g. / and /home, ext4), - Contents of filesystems (e.g. /bin/sh), - Configuration (e.g. /home/adriaan). --- # Calamares ## Principles - Build upstream, configure downstream - Suitable for **any** Linux distribution - Eager upstream Configuration through flat text files. --- # Calamares ## Users ![Distro](img-calamares/distro.png) --- # Calamares ## Development - On GitHub - All open - Downstream forks are *ok* - Eager upstream - We are in this together --- # Calamares ## Technology - Mostly C++ - Mostly Qt Widgets - Python for extensions **Not** a KDE project, but .. - cmake - KDE Extra CMake Modules - KDE Frameworks - KDE Partition Manager --- # Calamares ## Functionality - 47 modules for specific functionality - YAML for configuration - QSS for extra branding *Soon* - QML UI modules --- # Calamares ## Functionality ![Step](img-calamares/step-1.png) --- # Calamares ## Functionality ![Step](img-calamares/step-2.png) --- # Calamares ## Functionality ![Step](img-calamares/step-3.png) --- # Calamares ## Translations ![Hindi](img-calamares/cala-hindi.png) --- # Calamares ## Translations ![Malayalam](img-calamares/cala-malayalam.png) --- # Calamares ## Configuration ``` branding: manjaro sequence: - show: - welcome - partition - users - summary - exec: - partition - mount - unpackfs ``` --- # Calamares ## Configuration ``` componentName: manjaro strings: productName: Manjaro Linux version: 18.0.4 versionedName: Manjaro Linux 18.0.4 "Illyria" images: productLogo: "logo.png" slideshow: "show.qml" style: sidebarBackground: "#454948" sidebarText: "#efefef" ``` --- # Calamares ## Configuration ``` unpack: - source: "/run/miso/bootmnt/manjaro/x86_64/rootfs.sfs" sourcefs: "squashfs" destination: "" - source: "/run/miso/bootmnt/manjaro/x86_64/desktopfs.sfs" sourcefs: "squashfs" destination: "" ``` --- # Calamares ## Variants - as an installer - OEM pre-delivery - OEM post-delivery --- # Calamares ## Future work - QML UI - Improved OEM modes - Scripted mode
Of course there's bugs, too. --- # Calamares ## Get Involved - https://calamares.io/ - https://github.com/calamares/calamares - `#calamares` on Freenode - Wiki Guides for translators, deployers, developers - Issues labeled as *help-wanted* Talk to us (me)!