Distribution-independent installer framework
Go to file
Gaël PORTAY 194ebeba94 Use rsync option -S
The filesystems may contains huge sparse files (for example the docker
data file at path /var/lib/docker/devicemapper/devicemapper/data that is
100G big).

These files causes rsync to fail if the target file-system is too small
to copy them.

The option --sparse tells rsync to turn sequences of nulls into sparse
blocks.

        --sparse, -S

        Try to handle sparse files efficiently so they take up less
        space on the destination. If combined with --inplace the file
        created might not end up with sparse blocks with some
        combinations of kernel version and/or filesystem type. If
        --whole-file is in effect (e.g. for a local copy) then it will
        always work because rsync truncates the file prior to writing
        out the updated version.

        Note that versions of rsync older than 3.1.3 will reject the
        combination of --sparse and --inplace.

This adds the rsync short option -S to let rsync handle sparse files.

Fixes:

        18:03:36 [6]: static CalamaresUtils::ProcessResult CalamaresUtils::System::runCommand(CalamaresUtils::System::RunLocation, const QStringList&, const QString&, const QString&, std::chrono::seconds)
            Running "env" ("sync")
            ..  Finished. Exit code: 0
            ..  Target cmd: ("sync") output:

        rsync: [receiver] write failed on "/tmp/calamares-root-81qie5d1/var/lib/docker/devicemapper/devicemapper/data": No space left on device (28)
        rsync error: error in file IO (code 11) at receiver.c(378) [receiver=v3.2.3]

Signed-off-by: Jeremy Whiting <jpwhiting@kde.org>
2023-11-03 09:59:06 -06:00
.github CI: enable schema checks in the openSUSE nightly 2023-10-29 21:47:03 +01:00
.reuse SPDX: remove license information for removed module-translations 2022-08-25 00:26:31 +02:00
.tx i18n: update Transifex configuration 2023-04-24 22:43:06 +02:00
3rdparty Python: use the vendored pybind11 2023-10-16 20:07:39 +02:00
ci CI: don't fail the deps-installation scripts 2023-10-31 16:29:54 +01:00
CMakeModules CMake: repair ca9006a1bc 2023-10-14 00:15:05 +02:00
data FreeBSD: Calamares is in the official ports-tree already 2021-11-29 14:45:30 +01:00
lang i18n: [python] Automatic merge of Transifex translations 2023-10-13 23:44:46 +02:00
LICENSES [calamares] Use DBus activation instead of KDSAG 2021-09-16 13:48:56 +02:00
man Changes: update Calamares manpage 2020-09-29 16:41:57 +02:00
src Use rsync option -S 2023-11-03 09:59:06 -06:00
.clang-format CI: use clang-format to add braces 2023-10-17 22:17:01 +02:00
.editorconfig REUSE: administrative and repo-meta files 2020-08-26 02:22:49 +02:00
.gersemirc SPDX: tag gersemi configuration 2022-04-12 15:30:35 +02:00
.git-blame-ignore-revs Git: update blame-ignore 2022-05-18 12:45:32 +02:00
.gitattributes REUSE: administrative and repo-meta files 2020-08-26 02:22:49 +02:00
.gitignore CI: adjust to clang-format-10 automatically 2020-09-21 16:15:51 +02:00
.gitmodules Remove libcrashreporter-qt more thoroughly 2017-09-13 08:47:07 -04:00
AUTHORS Changes: update the AUTHORS list (probably still incomplete) 2022-05-29 00:28:49 +02:00
calamares.desktop i18n: [desktop] Automatic merge of Transifex translations 2023-08-06 23:41:28 +02:00
calamares.desktop.in [calamares] Change .desktop invocation 2021-03-15 10:25:25 +01:00
CalamaresConfig.cmake.in [partition] start Qt6 work 2023-09-07 13:03:16 +02:00
CHANGES-3.2 Changes: close off the 3.2 changelog in the development branch 2022-08-24 23:35:19 +02:00
CHANGES-3.3 Changes: credit for openSUSE CI updates 2023-10-23 23:07:31 +02:00
cmake_uninstall.cmake.in REUSE: administrative and repo-meta files 2020-08-26 02:22:49 +02:00
CMakeLists.txt CMake: be more chatty around results of validation-dependency check 2023-10-28 22:32:11 +02:00
com.github.calamares.calamares.policy REUSE: administrative and repo-meta files 2020-08-26 02:22:49 +02:00
CONTRIBUTING.md Docs: mention Boost::Python retired 2023-10-15 22:23:27 +02:00
io.calamares.calamares.appdata.xml REUSE: administrative and repo-meta files 2020-08-26 02:22:49 +02:00
README.md docs: drop mention of IRC, prefer Matrix for communication 2023-08-27 22:42:44 +02:00
settings.conf [zfshostid] adding new module 2022-10-16 13:35:09 +02:00

Calamares: Distribution-Independent Installer Framework


Current issue GitHub release GitHub Build Status GitHub license

Report a Bug Translate Contribute Chat on Matrix: #calamares:kde.org Wiki

Calamares is a distribution-independent system installer, with an advanced partitioning feature for both manual and automated partitioning operations. Calamares is designed to be customizable by distribution maintainers without the need for cumbersome patching, thanks to third-party branding and external modules support.

Target Audience

Calamares is a Linux installer; users who install Linux on a computer will hopefully use it just once, to install their Linux distribution. Calamares is not a "ready to use" application: distributions apply a huge amount of customization and configuration to Calamares, and the target audience for this repository is those distributions, and the people who make those Linux distros.

Calamares has some generic user documentation for end-users, but most of what we have is for distro developers.

Getting Calamares

Clone Calamares from GitHub. The default branch is called calamares.

git clone https://github.com/calamares/calamares.git

Calamares is a KDE-Frameworks and Qt-based, C++17, CMake-built application. The dependencies are explained in CONTRIBUTING.md.

Contributing to Calamares

Calamares welcomes PRs. New issues are welcome, too. There are both the Calamares core repository (this one) and an extensions repository (Calamares extensions).

Contributions to code, modules, documentation, the wiki, and the website are all welcome. There is more information in the CONTRIBUTING.md file.

Join the Conversation

GitHub Issues are one place for discussing Calamares if there are concrete problems or a new feature to discuss. Issues are not a help channel. Visit Matrix for help with configuration or compilation.

Regular Calamares development chit-chat happens in a Matrix room, #calamares:kde.org. Responsiveness is best during the day in Europe, but feel free to idle. Matrix is persistent, and we'll see your message eventually.

  • Join us on Matrix (needs a Matrix account)