The root mount-point can end with a / while the mount-point read from the file /etc/mtab does not end with a /. This leads to skip the unmounting of the root mount-point and causes the removal of the root mountpoint directory to fail with EBUSY because it is still mounted. This uses the python functions os.path.normpath() to normalize the root mount-point (i.e. to drop the trailing /) and os.path.commonprefix() to determine the longest common prefix between the two mount-points. If the returned prefix is identical to the normalized root mount-point then the mount-point must be added to the list of the mount-points to unmount. More generally, the python modules should rely on the os.path functions to compare for paths instead of using strings. It covers this way lots of corner cases (path with "//", "/../", "/./", ...). |
4 years ago | |
---|---|---|
.github/ISSUE_TEMPLATE | ||
.reuse | ||
.tx | ||
3rdparty | ||
CMakeModules | 4 years ago | |
LICENSES | ||
ci | 4 years ago | |
data | ||
lang | 4 years ago | |
man | ||
src | 4 years ago | |
.clang-format | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | 4 years ago | |
AUTHORS | ||
CHANGES | 4 years ago | |
CMakeLists.txt | 4 years ago | |
CONTRIBUTING.md | 4 years ago | |
CalamaresConfig.cmake.in | ||
Dockerfile | ||
README.md | 4 years ago | |
calamares.desktop | 4 years ago | |
calamares.desktop.in | ||
cmake_uninstall.cmake.in | ||
com.github.calamares.calamares.policy | ||
io.calamares.calamares.appdata.xml | ||
settings.conf |
README.md
Calamares: Distribution-Independent Installer Framework
Report a Bug | Translate | Contribute | Freenode (IRC): #calamares | 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 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 customisation and configuration to Calamares, and the target audience for this repository is those distributions, and the people who make those Linux distro's.
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.
Regular Calamares development chit-chat happens on old-school IRC (no registration required). Responsiveness is best during the day in Europe, but feel free to idle.