Compare commits
73 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| dbc1ba8508 | |||
| a962c9efb6 | |||
| a61329523f | |||
| 6877ee4d25 | |||
| ff0f8496d4 | |||
| 72ed05e643 | |||
| ef10123e84 | |||
| dadefc2f25 | |||
| 3e71bacb11 | |||
| 7a7c95a302 | |||
| 72d56f3482 | |||
| 17a59eeeb2 | |||
| b44ed2377f | |||
| 594e4cbbf7 | |||
| a1a3091959 | |||
| 69e280a098 | |||
| 8645233e34 | |||
| 0bb7342e32 | |||
| 1cb140df49 | |||
| 6d8fd9ed93 | |||
| 68ca4cadfb | |||
| 1457f700d0 | |||
| f1eaade778 | |||
| 1812e99279 | |||
| 939d291d4d | |||
| dbd5ea6632 | |||
| c620eda931 | |||
| 2b4012a6cd | |||
| 739cba6c49 | |||
| 86b6ea8f4f | |||
| ad0aeffc52 | |||
| 77d2a2c381 | |||
| 291444b863 | |||
| 64a2ef74ec | |||
| c14e3710e8 | |||
| 02f1f852cc | |||
| 3e977929fb | |||
| b348bf4fb8 | |||
| 440efe3275 | |||
| f06d21fe19 | |||
| a485f47a54 | |||
| 8773ee70d0 | |||
| 06541f170d | |||
| 23079c258a | |||
| a5414fb381 | |||
| aa004661a3 | |||
| bfed970fd6 | |||
| e965c6358a | |||
| 2078611cc4 | |||
| f05fdbdad6 | |||
| 15a94de5d5 | |||
| 34abde07b6 | |||
| 70f14a44ba | |||
| d1007c899d | |||
| b16e2cb5c8 | |||
| 6b89773a85 | |||
| 98abeec1c0 | |||
| d9134ca843 | |||
| 3c596e4f06 | |||
| 411ed1dcd8 | |||
| 51ca364b40 | |||
| c3a993c3b7 | |||
| d137b66265 | |||
| 383139c3c0 | |||
| 5ec79c0374 | |||
| 89fea61c65 | |||
| 18d541c980 | |||
| 710f387139 | |||
| ddea8df0cd | |||
| 3193b444d4 | |||
| 02bb4818ba | |||
| 39e4e793fa | |||
| 34ac6e5339 |
+17
@@ -0,0 +1,17 @@
|
||||
# Debian build tree (cmake output from dpkg-buildpackage)
|
||||
debian/build/
|
||||
debian/calamares-settings-vesperos/
|
||||
debian/tmp/
|
||||
debian/.debhelper/
|
||||
debian/debhelper-build-stamp
|
||||
debian/files
|
||||
debian/*.substvars
|
||||
|
||||
# Compiled output that may appear alongside source
|
||||
calamares-modules/**/*.so
|
||||
calamares-modules/**/*.o
|
||||
|
||||
# Editor and OS noise
|
||||
.DS_Store
|
||||
*~
|
||||
\#*\#
|
||||
@@ -0,0 +1,161 @@
|
||||
[ 14.0.2 ]
|
||||
|
||||
* Change btrfs compression to zstd:3
|
||||
https://salsa.debian.org/live-team/calamares-settings-debian-packaging/-/merge_requests/4
|
||||
* Update favorite-apps
|
||||
https://salsa.debian.org/live-team/calamares-settings-debian-packaging/-/merge_requests/7
|
||||
(Debian bug: #1109139)
|
||||
* Increase timeouts for bootloade-config from 600 to 1800 (other tasks are too trivial to increase)
|
||||
(Debian bug: #1120779)
|
||||
|
||||
[ 14.0.1 ]
|
||||
|
||||
* Reintroduce egg theme
|
||||
* Update branding module to list Debian 14
|
||||
* Set only password requirement to be at least 6 characters
|
||||
(See Debian bugs: #1082020, #1109136)
|
||||
* Disable lvm support (See Debian bugs: #1109138, #1060232)
|
||||
|
||||
[ 13.0.12 ]
|
||||
|
||||
* Initial Ceratopsian artwork changes
|
||||
* Support for alternate media paths (Debian bug: #1089618)
|
||||
|
||||
[ 13.0.11 ]
|
||||
|
||||
* Fix typo in filename
|
||||
* Move scripts to helpers
|
||||
|
||||
[ 13.0.10 ]
|
||||
|
||||
* Make script names less generic and namespace under /usr/share/calamares
|
||||
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1021156
|
||||
|
||||
[ 13.0.9 ]
|
||||
|
||||
* Bump minimum storage required to 15G
|
||||
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=#1037123
|
||||
* Update copyright years
|
||||
* Fix dconf entry for calamares launcher (fixes launcher on GNOME)
|
||||
* Use trim by default for encrypted media
|
||||
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1001192
|
||||
* Use idle cycles to preload calamares binary and libraries
|
||||
for faster startup
|
||||
|
||||
[ 13.0.8 ]
|
||||
|
||||
* Move lukskeyconfig further up the task chain
|
||||
|
||||
[ 13.0.7 ]
|
||||
|
||||
* Move lukskeyconfig action before fstab
|
||||
(fstab now depends on it being configured)
|
||||
|
||||
[ 13.0.6 ]
|
||||
|
||||
* Merge MR!3
|
||||
- Add missing mountpoints
|
||||
* Merge MR!2
|
||||
- Install more generic grub-efi package to allow installation on
|
||||
non-amd64 architectures
|
||||
* Remove space_cache from fstab module (space_cache=v2 is now default)
|
||||
and also autodefrag which isn't useful on modern storage
|
||||
|
||||
[ 13.0.5 ]
|
||||
|
||||
* Add pesky missing delimiter for Calamares desktop icon setup
|
||||
(thanks Roland Clobus, #1037299)
|
||||
|
||||
[ 13.0.4 ]
|
||||
|
||||
* Update config in mount module so that /dev is properly mounted
|
||||
in target
|
||||
|
||||
[ 13.0.3 ]
|
||||
|
||||
* Update branding elements for Calamares 3.3 series
|
||||
* Fix desktop file launcher
|
||||
* Set installEFIFallback: true
|
||||
* Don't allow empty passwords
|
||||
|
||||
[ 13.0.2 ]
|
||||
|
||||
* Fix desktop icon path in add-calamares-desktop-icon
|
||||
|
||||
[ 13.0.1 ]
|
||||
|
||||
* Initial release for trixie
|
||||
- Update sources.list writer and media sources
|
||||
* Update copyright years
|
||||
* Update installer artwork (egg theme)
|
||||
* Rename launchers (partial fix towards #1021156)
|
||||
* Mark desktop launchers as trusted for xfce/gnome (#1037299)
|
||||
|
||||
[ 12.0.9 ]
|
||||
|
||||
* Fix typos in version numbers for last two changelog entries
|
||||
* Install cryptsetup-initramfs, cryptsetup and keyutils (only) when needed
|
||||
(required due to these packages only now existing on package pool,
|
||||
not on the squashfs filesystem)
|
||||
|
||||
[ 12.0.8 ]
|
||||
|
||||
* Do grub work within the chroot
|
||||
|
||||
[ 12.0.7 ]
|
||||
|
||||
* Enable os-prober /after/ grub has been installed.
|
||||
|
||||
[ 12.0.6 ]
|
||||
|
||||
* Enable os-prober
|
||||
|
||||
[ 12.0.5 ]
|
||||
|
||||
* Update sources.list to include non-free-firmware and backports
|
||||
|
||||
[ 12.0.4 ]
|
||||
|
||||
* Update artwork for Debian 12 (emerald theme)
|
||||
* Make installer slide translatable
|
||||
|
||||
[ 12.0.3 ]
|
||||
|
||||
* Work around hidpi issue (#992162)
|
||||
|
||||
[ 12.0.2 ]
|
||||
|
||||
* Fix dpkg-unsafe-io and dpkg-unsafe-io-undo names
|
||||
* Update the sources-media script to use bookworm
|
||||
|
||||
[ 12.0.1 ]
|
||||
|
||||
* Initial branding description and sources.list changes for bookworm
|
||||
* Add dpkg-unsafe-io module to speed up post-installation
|
||||
(Debian bug: #984794)
|
||||
|
||||
[ 11.0.3 ]
|
||||
|
||||
* Update settings.conf with changes from recent releases
|
||||
* Update sources.list to include updates security path
|
||||
(Debian bug: #969930)
|
||||
* Store host entropy in urandom and systemd location
|
||||
(Debian bug: #941301)
|
||||
|
||||
[ 11.0.2 ]
|
||||
|
||||
* Use xdg-user-dir to specify Desktop path
|
||||
(Debian bug: #959541)
|
||||
* Enable displaymanager module (enables auto-login)
|
||||
(Debian bug: #934503)
|
||||
* Add initial framebuffer session (use 'calamares' in kernel command
|
||||
line to boot straight to calamares)
|
||||
|
||||
-- Jonathan Carter 2020-07-15
|
||||
|
||||
[ 11.0.1 ]
|
||||
|
||||
* Add initial Debian testing branding
|
||||
* Upgrade instances of 'buster' strings to 'bullseye', '10' to '11'.
|
||||
|
||||
-- Jonathan Carter 2019-09-25
|
||||
@@ -0,0 +1,8 @@
|
||||
ISC License
|
||||
|
||||
Copyright (c) 2016-2024, Jonathan Carter <jcc@debian.org>
|
||||
Copyright (c) 2025-2026, VesperOS Desktop Team <contact@oxmc.me>
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
NOTICE — Third-Party Source Acknowledgement
|
||||
===========================================
|
||||
|
||||
This package (calamares-settings-vesperos) is a fork of
|
||||
calamares-settings-debian, originally created and maintained by
|
||||
Jonathan Carter <jcc@debian.org> for the Debian Project.
|
||||
|
||||
Original source: https://gitlab.com/highvoltage/calamares-settings-debian
|
||||
Original licence: ISC License, Copyright 2016-2024 Jonathan Carter
|
||||
|
||||
The VesperOS modifications, branding, and additions are
|
||||
Copyright 2025-2026 VesperOS Desktop Team <contact@oxmc.me>
|
||||
and are distributed under the same ISC License.
|
||||
|
||||
The original Calamares installer framework is developed by the
|
||||
Calamares contributors and licensed separately — see
|
||||
https://github.com/calamares/calamares for details.
|
||||
Executable
+50
@@ -0,0 +1,50 @@
|
||||
#!/bin/sh
|
||||
# Creates an "Install VesperOS" icon on the live session tested with:
|
||||
# Xfce, LXDE, LXqt, Gnome, KDE, Mate, Cinnamon
|
||||
|
||||
# We query xdg-user-dir because the Desktop directory has different
|
||||
# names for different languages
|
||||
DESKTOP=$(xdg-user-dir DESKTOP)
|
||||
|
||||
# Create ~/Desktop just in case this runs before the xdg folder
|
||||
# creation script.
|
||||
mkdir -p $DESKTOP
|
||||
|
||||
# Among the VesperOS desktop environments, LXDE is the only one
|
||||
# that behaves completely different.
|
||||
if [ -f /usr/bin/lxsession ]; then
|
||||
echo "[Desktop Entry]" > $DESKTOP/calamares-install-vesperos.desktop
|
||||
echo "Type=Link" >> $DESKTOP/calamares-install-vesperos.desktop
|
||||
echo "Name=Install VesperOS" >> $DESKTOP/calamares-install-vesperos.desktop
|
||||
echo "Icon=install-vesperos" >> $DESKTOP/calamares-install-vesperos.desktop
|
||||
echo "URL=/usr/share/applications/calamares-install-vesperos.desktop" \
|
||||
>> $DESKTOP/calamares-install-vesperos.desktop
|
||||
else
|
||||
cp /usr/share/applications/calamares-install-vesperos.desktop $DESKTOP
|
||||
# Xfce needs this executable otherwise it complains, everything
|
||||
# else doesn't seem to care either way.
|
||||
chmod +x $DESKTOP/calamares-install-vesperos.desktop
|
||||
fi
|
||||
|
||||
# Set desktop launcher as trusted under each DE (See: #1037299)
|
||||
case "$XDG_CURRENT_DESKTOP" in
|
||||
XFCE)
|
||||
gio set --type=string $DESKTOP/calamares-install-vesperos.desktop \
|
||||
metadata::trusted true
|
||||
gio set --type=string $DESKTOP/calamares-install-vesperos.desktop \
|
||||
metadata::xfce-exe-checksum \
|
||||
"$(sha256sum $DESKTOP/calamares-install-vesperos.desktop | cut -f1 -d' ')"
|
||||
touch $DESKTOP/calamares-install-vesperos.desktop
|
||||
;;
|
||||
*GNOME*)
|
||||
gio set --type=string $DESKTOP/calamares-install-vesperos.desktop \
|
||||
metadata::trusted true
|
||||
;;
|
||||
esac
|
||||
|
||||
# Preload calamares binaries and libraries using idle disk cycles
|
||||
# so that it launches faster
|
||||
ionice -C Idle cat /usr/bin/calamares > /dev/null
|
||||
for file in $(ldd /usr/bin/calamares | awk '{print $3}'): do
|
||||
ionice -C Idle cat $file > /dev/null
|
||||
done
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 86 KiB |
Executable
+15
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
###
|
||||
# Wrapper for running calamares on VesperOS live media
|
||||
###
|
||||
|
||||
# Stale file left behind by live-build that messes with partitioning
|
||||
sudo mv /etc/fstab /etc/fstab.orig.calamares
|
||||
|
||||
# Access control to run calamares as root for xwayland
|
||||
xhost +si:localuser:root
|
||||
pkexec calamares
|
||||
xhost -si:localuser:root
|
||||
|
||||
# Restore stale fstab, for what it's worth
|
||||
sudo mv /etc/fstab.orig.calamares /etc/fstab
|
||||
@@ -0,0 +1,13 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Version=1.0
|
||||
Name=Install VesperOS
|
||||
GenericName=Calamares Installer
|
||||
Exec=calamares-install-vesperos
|
||||
Comment=Calamares — Installer for VesperOS Live
|
||||
Keywords=calamares;system;install;vesperos;installer
|
||||
Icon=install-vesperos
|
||||
Terminal=false
|
||||
Categories=Qt;System;
|
||||
StartupWMClass=calamares
|
||||
StartupNotify=True
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
type: "job"
|
||||
name: "bootloader-config"
|
||||
interface: "process"
|
||||
command: "/usr/share/calamares/helpers/calamares-bootloader-config"
|
||||
timeout: 1800
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
type: "job"
|
||||
name: "dpkg-unsafe-io-undo"
|
||||
interface: "process"
|
||||
command: "/usr/share/calamares/helpers/calamares-dpkg-unsafe-io -u"
|
||||
timeout: 600
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
type: "job"
|
||||
name: "dpkg-unsafe-io"
|
||||
interface: "process"
|
||||
command: "/usr/share/calamares/helpers/calamares-dpkg-unsafe-io"
|
||||
timeout: 600
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
type: "job"
|
||||
name: "postinstall"
|
||||
interface: "process"
|
||||
command: "/usr/share/calamares/helpers/calamares-postinstall"
|
||||
timeout: 1800
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
type: "job"
|
||||
name: "sources-final"
|
||||
interface: "process"
|
||||
command: "/usr/share/calamares/helpers/calamares-sources-final"
|
||||
timeout: 600
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
type: "job"
|
||||
name: "sources-media-live"
|
||||
interface: "process"
|
||||
command: "/usr/share/calamares/helpers/calamares-sources-media -l"
|
||||
timeout: 120
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
type: "job"
|
||||
name: "sources-media-unmount"
|
||||
interface: "process"
|
||||
command: "/usr/share/calamares/helpers/calamares-sources-media -u"
|
||||
timeout: 600
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
type: "job"
|
||||
name: "sources-media"
|
||||
interface: "process"
|
||||
command: "/usr/share/calamares/helpers/calamares-sources-media"
|
||||
timeout: 600
|
||||
@@ -0,0 +1,6 @@
|
||||
---
|
||||
type: "job"
|
||||
name: "system-upgrade"
|
||||
interface: "process"
|
||||
command: "/usr/share/calamares/helpers/calamares-system-upgrade"
|
||||
timeout: 3600
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: "job"
|
||||
name: "update-check"
|
||||
interface: "python"
|
||||
script: "update-check.py"
|
||||
@@ -0,0 +1,103 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
update-check — Calamares Python job module.
|
||||
|
||||
Refreshes apt package lists, then applies any configured package hooks
|
||||
(reinstall / install / remove / script) for packages that have a pending update.
|
||||
Failures are non-fatal: if the network is unavailable the job succeeds silently.
|
||||
"""
|
||||
|
||||
import re
|
||||
import subprocess
|
||||
|
||||
import libcalamares
|
||||
|
||||
|
||||
def prettyName():
|
||||
return "Checking for Updates"
|
||||
|
||||
|
||||
def run():
|
||||
cfg = libcalamares.job.configuration or {}
|
||||
hooks = cfg.get("package_hooks", [])
|
||||
|
||||
# 1. Refresh package lists — non-fatal if offline
|
||||
try:
|
||||
subprocess.run(
|
||||
["apt-get", "update", "-q"],
|
||||
check=True,
|
||||
capture_output=True,
|
||||
)
|
||||
except subprocess.CalledProcessError:
|
||||
libcalamares.utils.debug("update-check: apt-get update failed (offline?), skipping hooks")
|
||||
return None
|
||||
|
||||
if not hooks:
|
||||
return None
|
||||
|
||||
# 2. Find upgradable packages via apt-get simulate
|
||||
try:
|
||||
result = subprocess.run(
|
||||
["apt-get", "--simulate", "upgrade"],
|
||||
check=True,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
upgradable = {
|
||||
line.split()[1]
|
||||
for line in result.stdout.splitlines()
|
||||
if line.startswith("Inst ")
|
||||
}
|
||||
except subprocess.CalledProcessError:
|
||||
return None
|
||||
|
||||
arch_proc = subprocess.run(
|
||||
["dpkg", "--print-architecture"],
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
arch = arch_proc.stdout.strip()
|
||||
|
||||
# 3. Apply matching hooks
|
||||
for hook in hooks:
|
||||
package = hook.get("package", "").strip()
|
||||
condition = hook.get("condition", "").strip()
|
||||
action = hook.get("do", "").strip()
|
||||
|
||||
if not package or not action:
|
||||
continue
|
||||
if package not in upgradable:
|
||||
continue
|
||||
if not _eval_condition(condition, arch):
|
||||
continue
|
||||
|
||||
_apply_action(action, package)
|
||||
|
||||
return None
|
||||
|
||||
|
||||
def _eval_condition(condition, arch):
|
||||
if not condition:
|
||||
return True
|
||||
m = re.match(r"arch\s*(==|!=)\s*(\S+)", condition)
|
||||
if not m:
|
||||
return True
|
||||
op, pattern = m.group(1), m.group(2)
|
||||
pattern_re = "^" + re.escape(pattern).replace(r"\*", ".*") + "$"
|
||||
matches = bool(re.match(pattern_re, arch))
|
||||
return matches if op == "==" else not matches
|
||||
|
||||
|
||||
def _apply_action(action, package):
|
||||
if action == "reinstall":
|
||||
subprocess.run(["apt-get", "-y", "install", "--reinstall", package], check=False)
|
||||
elif action == "install":
|
||||
subprocess.run(["apt-get", "-y", "install", package], check=False)
|
||||
elif action == "remove":
|
||||
subprocess.run(["apt-get", "-y", "remove", package], check=False)
|
||||
elif action.startswith("script:"):
|
||||
script = action[7:].strip()
|
||||
subprocess.run([script, package], check=False)
|
||||
else:
|
||||
libcalamares.utils.debug(f"update-check: unknown action '{action}' for {package}, skipping")
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
componentName: vesperos
|
||||
welcomeStyleCalamares: true
|
||||
welcomeExpandingLogo: true
|
||||
windowExpanding: normal
|
||||
windowSize: 800px,580px
|
||||
windowPlacement: center
|
||||
|
||||
strings:
|
||||
productName: VesperOS
|
||||
shortProductName: VesperOS
|
||||
version: Rainier
|
||||
shortVersion: Rainier
|
||||
versionedName: VesperOS Rainier
|
||||
shortVersionedName: VesperOS Rainier
|
||||
bootloaderEntryName: VesperOS
|
||||
productUrl: https://vesperos.oxmc.me
|
||||
supportUrl: https://vesperos.oxmc.me/support
|
||||
knownIssuesUrl: https://vesperos.oxmc.me/issues
|
||||
releaseNotesUrl: https://vesperos.oxmc.me/releases
|
||||
donateUrl: https://vesperos.oxmc.me
|
||||
|
||||
sidebar: widget
|
||||
navigation: widget
|
||||
|
||||
images:
|
||||
productLogo: "vesperos-logo.png"
|
||||
productIcon: "vesperos-logo.png"
|
||||
productWelcome: "welcome.png"
|
||||
|
||||
slideshow: "show.qml"
|
||||
|
||||
style:
|
||||
SidebarBackground: "#26475b"
|
||||
SidebarText: "#FFFFFF"
|
||||
SidebarTextCurrent: "#fbfbfb"
|
||||
SidebarBackgroundCurrent: "#265370"
|
||||
|
||||
slideshowAPI: 2
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 86 KiB |
@@ -0,0 +1,65 @@
|
||||
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||
*
|
||||
* SPDX-FileCopyrightText: 2015 Teo Mrnjavac <teo@kde.org>
|
||||
* SPDX-FileCopyrightText: 2018 Adriaan de Groot <groot@kde.org>
|
||||
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||
*
|
||||
* Calamares is Free Software: see the License-Identifier above.
|
||||
*
|
||||
*/
|
||||
|
||||
import QtQuick 2.0;
|
||||
import calamares.slideshow 1.0;
|
||||
|
||||
Presentation
|
||||
{
|
||||
id: presentation
|
||||
|
||||
function nextSlide() {
|
||||
//console.log("QML Component (default slideshow) Next slide");
|
||||
presentation.goToNextSlide();
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: advanceTimer
|
||||
interval: 1000
|
||||
running: presentation.activatedInCalamares
|
||||
repeat: true
|
||||
onTriggered: nextSlide()
|
||||
}
|
||||
|
||||
Slide {
|
||||
Image {
|
||||
id: background
|
||||
source: "install-slide.png"
|
||||
width: 200; height: 200
|
||||
fillMode: Image.PreserveAspectFit
|
||||
anchors.centerIn: parent
|
||||
}
|
||||
Text {
|
||||
anchors.horizontalCenter: background.horizontalCenter
|
||||
anchors.top: background.bottom
|
||||
text: qsTr("Welcome to VesperOS.<br/>"+
|
||||
"The rest of the installation is automated and should complete in a few minutes.")
|
||||
wrapMode: Text.WordWrap
|
||||
width: presentation.width
|
||||
horizontalAlignment: Text.Center
|
||||
}
|
||||
}
|
||||
|
||||
// When this slideshow is loaded as a V1 slideshow, only
|
||||
// activatedInCalamares is set, which starts the timer (see above).
|
||||
//
|
||||
// In V2, also the onActivate() and onLeave() methods are called.
|
||||
// These example functions log a message (and re-start the slides
|
||||
// from the first).
|
||||
function onActivate() {
|
||||
//console.log("QML Component (default slideshow) activated");
|
||||
presentation.currentSlide = 0;
|
||||
}
|
||||
|
||||
function onLeave() {
|
||||
//console.log("QML Component (default slideshow) deactivated");
|
||||
}
|
||||
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 90 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 71 KiB |
@@ -0,0 +1,54 @@
|
||||
# Bootloader configuration. The bootloader is installed to allow
|
||||
# the system to start (and pick one of the installed operating
|
||||
# systems to run).
|
||||
---
|
||||
# Define which bootloader you want to use for EFI installations
|
||||
# Possible options are 'grub', 'sb-shim' and 'systemd-boot'.
|
||||
efiBootLoader: "grub"
|
||||
|
||||
# systemd-boot configuration files settings, set kernel and initramfs file names
|
||||
# and amount of time before default selection boots
|
||||
kernel: "/vmlinuz-linux"
|
||||
img: "/initramfs-linux.img"
|
||||
fallback: "/initramfs-linux-fallback.img"
|
||||
timeout: "10"
|
||||
|
||||
# Optionally set the menu entry name and kernel name to use in systemd-boot.
|
||||
# If not specified here, these settings will be taken from branding.desc.
|
||||
#
|
||||
# bootloaderEntryName: "Generic GNU/Linux"
|
||||
# kernelLine: ", with Stable-Kernel"
|
||||
# fallbackKernelLine: ", with Stable-Kernel (fallback initramfs)"
|
||||
|
||||
# GRUB 2 binary names and boot directory
|
||||
# Some distributions (e.g. Fedora) use grub2-* (resp. /boot/grub2/) names.
|
||||
# These names are also used when using sb-shim, since that needs some
|
||||
# GRUB functionality (notably grub-probe) to work. As needed, you may use
|
||||
# complete paths like `/usr/bin/efibootmgr` for the executables.
|
||||
#
|
||||
grubInstall: "grub-install"
|
||||
grubMkconfig: "grub-mkconfig"
|
||||
grubCfg: "/boot/grub/grub.cfg"
|
||||
grubProbe: "grub-probe"
|
||||
efiBootMgr: "efibootmgr"
|
||||
|
||||
# Optionally set the bootloader ID to use for EFI. This is passed to
|
||||
# grub-install --bootloader-id.
|
||||
#
|
||||
# If not set here, the value from bootloaderEntryName from branding.desc
|
||||
# is used, with problematic characters (space and slash) replaced.
|
||||
#
|
||||
# The ID is also used as a directory name within the EFI environment,
|
||||
# and the bootloader is copied from /boot/efi/EFI/<dirname>/ . When
|
||||
# setting the option here, keep in mind that the name is sanitized
|
||||
# (problematic characters, see above, are replaced).
|
||||
#
|
||||
efiBootloaderId: "VesperOS"
|
||||
|
||||
# Optionally install a copy of the GRUB EFI bootloader as the EFI
|
||||
# fallback loader (either bootia32.efi or bootx64.efi depending on
|
||||
# the system). This may be needed on certain systems (Intel DH87MC
|
||||
# seems to be the only one). If you set this to false, take care
|
||||
# to add another module to optionally install the fallback on those
|
||||
# boards that need it.
|
||||
installEFIFallback: true
|
||||
@@ -0,0 +1,28 @@
|
||||
# Configure one or more display managers (e.g. SDDM)
|
||||
# with a "best effort" approach.
|
||||
---
|
||||
#The DM module attempts to set up all the DMs found in this list, in that precise order.
|
||||
#It also sets up autologin, if the feature is enabled in globalstorage.
|
||||
#The displaymanagers list can also be set in globalstorage, and in that case it overrides anything set up here.
|
||||
displaymanagers:
|
||||
- slim
|
||||
- sddm
|
||||
- lightdm
|
||||
- gdm
|
||||
- mdm
|
||||
- lxdm
|
||||
- kdm
|
||||
|
||||
#Enable the following settings to force a desktop environment in your displaymanager configuration file:
|
||||
#defaultDesktopEnvironment:
|
||||
# executable: "startkde"
|
||||
# desktopFile: "plasma"
|
||||
|
||||
#If true, try to ensure that the user, group, /var directory etc. for the
|
||||
#display manager are set up correctly. This is normally done by the distribution
|
||||
#packages, and best left to them. Therefore, it is disabled by default.
|
||||
basicSetup: false
|
||||
|
||||
#If true, setup autologin for openSUSE. This only makes sense on openSUSE
|
||||
#derivatives or other systems where /etc/sysconfig/displaymanager exists.
|
||||
sysconfigSetup: false
|
||||
@@ -0,0 +1,4 @@
|
||||
---
|
||||
restartNowEnabled: true
|
||||
restartNowChecked: true
|
||||
restartNowCommand: "systemctl -i reboot"
|
||||
@@ -0,0 +1,11 @@
|
||||
---
|
||||
mountOptions:
|
||||
default: defaults,noatime
|
||||
btrfs: defaults,noatime
|
||||
ssdExtraMountOptions:
|
||||
ext4: discard
|
||||
jfs: discard
|
||||
xfs: discard
|
||||
swap: discard
|
||||
btrfs: discard,compress=zstd:3
|
||||
crypttabOptions: luks,discard,keyscript=/bin/cat
|
||||
@@ -0,0 +1,4 @@
|
||||
# Writes an openswap configuration with LUKS settings to the given path
|
||||
---
|
||||
# Path of the configuration file to write (in the target system)
|
||||
configFilePath: /etc/openswap.conf
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
# Whether to create /etc/machine-id for systemd.
|
||||
systemd: true
|
||||
# Whether to create /var/lib/dbus/machine-id for D-Bus.
|
||||
dbus: true
|
||||
# Whether /var/lib/dbus/machine-id should be a symlink to /etc/machine-id
|
||||
# (ignored if dbus is false, or if there is no /etc/machine-id to point to).
|
||||
symlink: true
|
||||
# Whether to copy entropy from the host
|
||||
entropy-copy: true
|
||||
# Which files to write (paths in the target)
|
||||
entropy-files:
|
||||
- /var/lib/urandom/random-seed
|
||||
- /var/lib/systemd/random-seed
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
# Mount filesystems in the target (generally, before treating the
|
||||
# target as a usable chroot / "live" system). Filesystems are
|
||||
# automatically mounted from the partitioning module. Filesystems
|
||||
# listed here are **extra**. The filesystems listed in *extraMounts*
|
||||
# are mounted in all target systems.
|
||||
---
|
||||
# Extra filesystems to mount. The key's value is a list of entries; each
|
||||
# entry has five keys:
|
||||
# - device The device node to mount
|
||||
# - fs (optional) The filesystem type to use
|
||||
# - mountPoint Where to mount the filesystem
|
||||
# - options (optional) An array of options to pass to mount
|
||||
# - efi (optional) A boolean that when true is only mounted for UEFI installs
|
||||
#
|
||||
# The device is not mounted if the mountPoint is unset or if the fs is
|
||||
# set to unformatted.
|
||||
#
|
||||
extraMounts:
|
||||
- device: proc
|
||||
fs: proc
|
||||
mountPoint: /proc
|
||||
- device: sys
|
||||
fs: sysfs
|
||||
mountPoint: /sys
|
||||
- device: /dev
|
||||
mountPoint: /dev
|
||||
options: [ bind ]
|
||||
- device: tmpfs
|
||||
fs: tmpfs
|
||||
mountPoint: /run
|
||||
- device: /run/udev
|
||||
mountPoint: /run/udev
|
||||
options: [ bind ]
|
||||
- device: efivarfs
|
||||
fs: efivarfs
|
||||
mountPoint: /sys/firmware/efi/efivars
|
||||
efi: true
|
||||
- device: /dev/pts
|
||||
mountPoint: /dev/pts
|
||||
options: [ bind ]
|
||||
# /dev/pts is required by apt for storing the logs
|
||||
@@ -0,0 +1,15 @@
|
||||
backend: apt
|
||||
|
||||
operations:
|
||||
- remove:
|
||||
- 'calamares'
|
||||
- 'calamares-settings-vesperos'
|
||||
- 'live-boot'
|
||||
- 'live-boot-doc'
|
||||
- 'live-boot-initramfs-tools'
|
||||
- 'live-config'
|
||||
- 'live-config-doc'
|
||||
- 'live-config-systemd'
|
||||
- 'live-tools'
|
||||
- 'live-task-localisation'
|
||||
- 'live-task-recommended'
|
||||
@@ -0,0 +1,398 @@
|
||||
# SPDX-FileCopyrightText: no
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
#
|
||||
|
||||
# Options for EFI system partition.
|
||||
#
|
||||
# - *mountPoint*
|
||||
# This setting specifies the mount point of the EFI system partition. Some
|
||||
# distributions (Fedora, Debian, Manjaro, etc.) use /boot/efi, others (KaOS,
|
||||
# etc.) use just /boot.
|
||||
#
|
||||
# Defaults to "/boot/efi", may be empty (but weird effects ensue)
|
||||
# - *recommendedSize*
|
||||
# This optional setting specifies the size of the EFI system partition.
|
||||
# If nothing is specified, the default size of 300MiB will be used.
|
||||
# When writing quantities here, M is treated as MiB, and if you really
|
||||
# want one-million (10^6) bytes, use MB.
|
||||
# - *minimumSize*
|
||||
# This optional setting specifies the absolute minimum size of the EFI
|
||||
# system partition. If nothing is specified, the *recommendedSize*
|
||||
# is used instead.
|
||||
# - *label*
|
||||
# This optional setting specifies the name of the EFI system partition (see
|
||||
# PARTLABEL; gpt only; requires KPMCore >= 4.2.0).
|
||||
# If nothing is specified, the partition name is left unset.
|
||||
#
|
||||
# Going below the *recommended* size is allowed, but the user will
|
||||
# get a warning that it might not work. Going below the *minimum*
|
||||
# size is not allowed and the user will be told it will not work.
|
||||
#
|
||||
# Both quantities must be at least 32MiB, this is enforced by the EFI
|
||||
# spec. If minimum is not specified, it defaults to the recommended
|
||||
# size. Distro's that allow more user latitude can set the minimum lower.
|
||||
efi:
|
||||
mountPoint: "/boot/efi"
|
||||
recommendedSize: 512MiB
|
||||
minimumSize: 32MiB
|
||||
label: "EFI"
|
||||
|
||||
# Deprecated alias of efi.mountPoint
|
||||
# efiSystemPartition: "/boot/efi"
|
||||
|
||||
# Deprecated alias of efi.recommendedSize
|
||||
# efiSystemPartitionSize: 300MiB
|
||||
|
||||
# Deprecated alias of efi.label
|
||||
# efiSystemPartitionName: EFI
|
||||
|
||||
# In autogenerated partitioning, allow the user to select a swap size?
|
||||
# If there is exactly one choice, no UI is presented, and the user
|
||||
# cannot make a choice -- this setting is used. If there is more than
|
||||
# one choice, a UI is presented.
|
||||
#
|
||||
# Legacy settings *neverCreateSwap* and *ensureSuspendToDisk* correspond
|
||||
# to values of *userSwapChoices* as follows:
|
||||
# - *neverCreateSwap* is true, means [none]
|
||||
# - *neverCreateSwap* is false, *ensureSuspendToDisk* is false, [small]
|
||||
# - *neverCreateSwap* is false, *ensureSuspendToDisk* is true, [suspend]
|
||||
#
|
||||
# Autogenerated swap sizes are as follows:
|
||||
# - *suspend*: Swap is always at least total memory size,
|
||||
# and up to 4GiB RAM follows the rule-of-thumb 2 * memory;
|
||||
# from 4GiB to 8 GiB it stays steady at 8GiB, and over 8 GiB memory
|
||||
# swap is the size of main memory.
|
||||
# - *small*: Follows the rules above, but Swap is at
|
||||
# most 8GiB, and no more than 10% of available disk.
|
||||
# In both cases, a fudge factor (usually 10% extra) is applied so that there
|
||||
# is some space for administrative overhead (e.g. 8 GiB swap will allocate
|
||||
# 8.8GiB on disk in the end).
|
||||
#
|
||||
# If *file* is enabled here, make sure to have the *fstab* module
|
||||
# as well (later in the exec phase) so that the swap file is
|
||||
# actually created.
|
||||
userSwapChoices:
|
||||
- none # Create no swap, use no swap
|
||||
- small # Up to 4GB
|
||||
- suspend # At least main memory size
|
||||
# - reuse # Re-use existing swap, but don't create any (unsupported right now)
|
||||
- file # To swap file instead of partition
|
||||
|
||||
# This optional setting specifies the name of the swap partition (see
|
||||
# PARTLABEL; gpt only; requires KPMCore >= 4.2.0).
|
||||
# If nothing is specified, the partition name is left unset.
|
||||
# swapPartitionName: swap
|
||||
|
||||
# LEGACY SETTINGS (these will generate a warning)
|
||||
# ensureSuspendToDisk: true
|
||||
# neverCreateSwap: false
|
||||
|
||||
# This setting specifies the LUKS generation (i.e LUKS1, LUKS2) used internally by
|
||||
# cryptsetup when creating an encrypted partition.
|
||||
#
|
||||
# This option is set to luks1 by default, as grub doesn't support LUKS2 + Argon2id
|
||||
# currently. On the other hand grub does support LUKS2 with PBKDF2 and could therefore be
|
||||
# also set to luks2. Also there are some patches for grub and Argon2.
|
||||
# See: https://aur.archlinux.org/packages/grub-improved-luks2-git
|
||||
#
|
||||
# Choices: luks1, luks2 (in addition, "luks" means "luks1")
|
||||
#
|
||||
# The default is luks1
|
||||
#
|
||||
luksGeneration: luks2
|
||||
|
||||
# This setting determines if encryption should be allowed when using zfs. This
|
||||
# setting has no effect unless zfs support is provided.
|
||||
#
|
||||
# This setting is to handle the fact that some bootloaders(such as grub) do not
|
||||
# support zfs encryption.
|
||||
#
|
||||
# The default is true
|
||||
#
|
||||
# allowZfsEncryption: true
|
||||
|
||||
# Correctly draw nested (e.g. logical) partitions as such.
|
||||
drawNestedPartitions: false
|
||||
|
||||
# Show/hide partition labels on manual partitioning page.
|
||||
alwaysShowPartitionLabels: true
|
||||
|
||||
# Allow manual partitioning.
|
||||
#
|
||||
# When set to false, this option hides the "Manual partitioning" button,
|
||||
# limiting the user's choice to "Erase", "Replace" or "Alongside".
|
||||
# This can be useful when using a custom partition layout we don't want
|
||||
# the user to modify.
|
||||
#
|
||||
# If nothing is specified, manual partitioning is enabled.
|
||||
#allowManualPartitioning: true
|
||||
|
||||
# Show not encrypted boot partition warning.
|
||||
#
|
||||
# When set to false, this option does not show the
|
||||
# "Boot partition not encrypted" warning when encrypting the
|
||||
# root partition but not /boot partition.
|
||||
#
|
||||
# If nothing is specified, the warning is shown.
|
||||
#showNotEncryptedBootMessage: true
|
||||
|
||||
# Initial selection on the Choice page
|
||||
#
|
||||
# There are four radio buttons (in principle: erase, replace, alongside, manual),
|
||||
# and you can pick which of them, if any, is initially selected. For most
|
||||
# installers, "none" is the right choice: it makes the user pick something specific,
|
||||
# rather than accidentally being able to click past an important choice (in particular,
|
||||
# "erase" is a dangerous choice).
|
||||
#
|
||||
# The default is "none"
|
||||
#
|
||||
initialPartitioningChoice: erase
|
||||
#
|
||||
# Similarly, some of the installation choices may offer a choice of swap;
|
||||
# the available choices depend on *userSwapChoices*, above, and this
|
||||
# setting can be used to pick a specific one.
|
||||
#
|
||||
# The default is "none" (no swap) if that is one of the enabled options, otherwise
|
||||
# one of the items from the options.
|
||||
initialSwapChoice: file
|
||||
|
||||
# VesperOS 3-partition layout: EFI (512MiB) + Recovery (512MiB) + Root (rest)
|
||||
# The EFI partition is prepended automatically by Calamares.
|
||||
# The recovery partition gets recovery.bzImage copied to it by the postinstall script.
|
||||
partitionLayout:
|
||||
- name: "recovery"
|
||||
filesystem: "ext4"
|
||||
noEncrypt: true
|
||||
size: 512MiB
|
||||
- name: "rootfs"
|
||||
filesystem: "unknown"
|
||||
mountPoint: "/"
|
||||
size: 100%
|
||||
|
||||
# armInstall
|
||||
#
|
||||
# Leaves 16MB empty at the start of a drive when partitioning
|
||||
# where usually the u-boot loader goes
|
||||
#
|
||||
# armInstall: false
|
||||
|
||||
# Default partition table type, used when a "erase" disk is made.
|
||||
#
|
||||
# When erasing a disk, a new partition table is created on disk.
|
||||
# In other cases, e.g. Replace and Alongside, as well as when using
|
||||
# manual partitioning, this partition table exists already on disk
|
||||
# and it is left unmodified.
|
||||
#
|
||||
# Possible values: gpt, msdos (or other names defined by KPMcore).
|
||||
# Names are case-sensitive.
|
||||
#
|
||||
# If nothing is specified, Calamares defaults to "gpt" if system is
|
||||
# efi or "msdos" otherwise.
|
||||
#
|
||||
# defaultPartitionTableType: msdos
|
||||
|
||||
# Requirement for partition table type
|
||||
#
|
||||
# Restrict the installation on disks that match the type of partition
|
||||
# tables that are specified.
|
||||
#
|
||||
# Possible values: msdos, gpt (or other names defined by KPMcore).
|
||||
# Names are case-sensitive.
|
||||
#
|
||||
# If nothing is specified, Calamares defaults to both "msdos" and "gpt".
|
||||
#
|
||||
# requiredPartitionTableType: gpt
|
||||
# requiredPartitionTableType:
|
||||
# - msdos
|
||||
# - gpt
|
||||
|
||||
# Default filesystem type, used when a "new" partition is made.
|
||||
#
|
||||
# When replacing a partition, the new filesystem type will be from the
|
||||
# defaultFileSystemType value. In other cases, e.g. Erase and Alongside,
|
||||
# as well as when using manual partitioning and creating a new
|
||||
# partition, this filesystem type is pre-selected. Note that
|
||||
# editing a partition in manual-creation mode will not automatically
|
||||
# change the filesystem type to this default value -- it is not
|
||||
# creating a new partition.
|
||||
#
|
||||
# Suggested values: ext2, ext3, ext4, reiser, xfs, jfs, btrfs
|
||||
# If nothing is specified, Calamares defaults to "ext4".
|
||||
#
|
||||
# Names are case-sensitive and defined by KPMCore.
|
||||
defaultFileSystemType: "btrfs"
|
||||
|
||||
# Selectable filesystem type, used when "erase" is done.
|
||||
#
|
||||
# When erasing the disk, the *defaultFileSystemType* is used (see
|
||||
# above), but it is also possible to give users a choice:
|
||||
# list suitable filesystems here. A drop-down is provided
|
||||
# to pick which is the filesystems will be used.
|
||||
#
|
||||
# The value *defaultFileSystemType* is added to this list (with a warning)
|
||||
# if not present; the default pick is the *defaultFileSystemType*.
|
||||
#
|
||||
# If not specified at all, uses *defaultFileSystemType* without a
|
||||
# warning (this matches traditional no-choice-available behavior best).
|
||||
# availableFileSystemTypes: ["ext4","f2fs"]
|
||||
|
||||
# Per-directory filesystem restrictions.
|
||||
#
|
||||
# This optional setting specifies what filesystems the user can and cannot use
|
||||
# for various directories and mountpoints when using manual partitioning.
|
||||
#
|
||||
# If nothing is specified, the only restriction enforced by default is that
|
||||
# the EFI system partition must use the fat32 filesystem.
|
||||
#
|
||||
# Otherwise, the filesystem restrictions are defined as follow:
|
||||
#
|
||||
# directoryFilesystemRestrictions:
|
||||
# - directory: "any"
|
||||
# allowedFilesystemTypes: ["all"]
|
||||
# - directory: "/"
|
||||
# allowedFilesystemTypes: ["ext4","xfs","btrfs","jfs","f2fs"]
|
||||
# - mountpoint: "efi"
|
||||
# allowedFilesystemTypes: ["fat32"]
|
||||
# onlyWhenMountpoint: true
|
||||
#
|
||||
# There can be any number of mountpoints listed, each entry having the
|
||||
# following attributes:
|
||||
# - mountpoint: mountpoint's full path
|
||||
# or
|
||||
# "any" to specify a global whitelist that applies to all
|
||||
# mountpoints
|
||||
# or
|
||||
# "efi" to specify a whitelist specific to the EFI system
|
||||
# partition, wherever that partition is located
|
||||
# - allowedFilesystemTypes: the list of all filesystems valid for this
|
||||
# mountpoint. If the list contains exactly one
|
||||
# element, and that element is the special value
|
||||
# "any", all filesystem types recognized by
|
||||
# Calamares will be allowed.
|
||||
# - onlyWhenMountpoint: Whether the restriction should apply only when the
|
||||
# specified directory is a mountpoint. When set to
|
||||
# true, Calamares will only enforce the listed
|
||||
# restrictions when the user makes a separate partition
|
||||
# for this directory and assigns the mountpoint
|
||||
# accordingly. When set to false, Calamares will
|
||||
# ensure this directory uses the specified filesystem
|
||||
# even if the directory is part of a filesystem on a
|
||||
# different mountpoint. Defaults to false.
|
||||
|
||||
# The ClearMounts job unmounts / unmaps things before partitioning.
|
||||
# Some special entries under /dev/mapper are excepted from this process.
|
||||
# The example lists the three hard-coded exceptions which always apply
|
||||
# (they don't need to be listed here). Add other names or wildcards (with
|
||||
# a trailing '*') to this list if the live-ISO has additional mounts.
|
||||
essentialMounts: [ "live-*", "control", "ventoy" ]
|
||||
|
||||
# Show/hide LUKS related functionality in automated partitioning modes.
|
||||
# Disable this if you choose not to deploy early unlocking support in GRUB2
|
||||
# and/or your distribution's initramfs solution.
|
||||
#
|
||||
# BIG FAT WARNING:
|
||||
#
|
||||
# This option is unsupported, as it cuts out a crucial security feature.
|
||||
# Disabling LUKS and shipping Calamares without a correctly configured GRUB2
|
||||
# and initramfs is considered suboptimal use of the Calamares software. The
|
||||
# Calamares team will not provide user support for any potential issue that
|
||||
# may arise as a consequence of setting this option to false.
|
||||
# It is strongly recommended that system integrators put in the work to support
|
||||
# LUKS unlocking support in GRUB2 and initramfs/dracut/mkinitcpio/etc.
|
||||
# For more information on setting up GRUB2 for Calamares with LUKS, see
|
||||
# https://github.com/calamares/calamares/wiki/Deploy-LUKS
|
||||
#
|
||||
# If nothing is specified, LUKS is enabled in automated modes.
|
||||
#enableLuksAutomatedPartitioning: true
|
||||
|
||||
# When enableLuksAutomatedPartitioning is true, this option will pre-check
|
||||
# encryption checkbox. This option is only usefull to help people to not forget
|
||||
# to cypher their disk when installing in enterprise (for exemple).
|
||||
#preCheckEncryption: false
|
||||
|
||||
# LVM support
|
||||
#
|
||||
# There is only one sub-key available, *enable* (defaults to true)
|
||||
# which can be used to show (default) or hide the LVM buttons in the partitioning module.
|
||||
lvm:
|
||||
enable: false
|
||||
|
||||
# Partition layout.
|
||||
#
|
||||
# This optional setting specifies a custom partition layout.
|
||||
#
|
||||
# If nothing is specified, the default partition layout is a single partition
|
||||
# for root that uses 100% of the space and uses the filesystem defined by
|
||||
# defaultFileSystemType.
|
||||
#
|
||||
# Note: the EFI system partition is prepended automatically to the layout if
|
||||
# needed; the swap partition is appended to the layout if enabled (selections
|
||||
# "small" or "suspend" in *userSwapChoices*).
|
||||
#
|
||||
# Otherwise, the partition layout is defined as follow:
|
||||
#
|
||||
# partitionLayout:
|
||||
# - name: "rootfs"
|
||||
# type: "4f68bce3-e8cd-4db1-96e7-fbcaf984b709"
|
||||
# filesystem: "ext4"
|
||||
# noEncrypt: false
|
||||
# mountPoint: "/"
|
||||
# size: 20%
|
||||
# minSize: 500M
|
||||
# maxSize: 10G
|
||||
# attributes: 0xffff000000000003
|
||||
# - name: "home"
|
||||
# type: "933ac7e1-2eb4-4f13-b844-0e14e2aef915"
|
||||
# filesystem: "ext4"
|
||||
# noEncrypt: false
|
||||
# mountPoint: "/home"
|
||||
# size: 3G
|
||||
# minSize: 1.5G
|
||||
# features:
|
||||
# 64bit: false
|
||||
# casefold: true
|
||||
# - name: "data"
|
||||
# filesystem: "fat32"
|
||||
# mountPoint: "/data"
|
||||
# features:
|
||||
# sector-size: 4096
|
||||
# sectors-per-cluster: 128
|
||||
# size: 100%
|
||||
#
|
||||
# There can be any number of partitions, each entry having the following attributes:
|
||||
# - name: filesystem label
|
||||
# and
|
||||
# partition name (gpt only; since KPMCore 4.2.0)
|
||||
# - uuid: partition uuid (optional parameter; gpt only; requires KPMCore >= 4.2.0)
|
||||
# - type: partition type (optional parameter; gpt only; requires KPMCore >= 4.2.0)
|
||||
# - attributes: partition attributes (optional parameter; gpt only; requires KPMCore >= 4.2.0)
|
||||
# - filesystem: filesystem type (optional parameter)
|
||||
# - if not set at all, treat as "unformatted"
|
||||
# - if "unformatted", no filesystem will be created
|
||||
# - if "unknown" (or an unknown FS name, like "elephant") then the
|
||||
# default filesystem type, or the user's choice, will be applied instead
|
||||
# of "unknown" (e.g. the user might pick ext4, or xfs).
|
||||
# - noEncrypt: whether this partition is exempt from encryption if enabled (optional parameter; default is false)
|
||||
# - mountPoint: partition mount point (optional parameter; not mounted if unset)
|
||||
# - size: partition size in bytes (append 'K', 'M' or 'G' for KiB, MiB or GiB)
|
||||
# or
|
||||
# % of the available drive space if a '%' is appended to the value
|
||||
# - minSize: minimum partition size (optional parameter)
|
||||
# - maxSize: maximum partition size (optional parameter)
|
||||
# - features: filesystem features (optional parameter; requires KPMCore >= 4.2.0)
|
||||
# name: boolean or integer or string
|
||||
|
||||
# Checking for available storage
|
||||
#
|
||||
# This overlaps with the setting of the same name in the welcome module's
|
||||
# requirements section. If nothing is set by the welcome module, this
|
||||
# value is used instead. It is still a problem if there is no required
|
||||
# size set at all, and the replace and resize options will not be offered
|
||||
# if no required size is set.
|
||||
#
|
||||
# The value is in Gibibytes (GiB).
|
||||
#
|
||||
# BIG FAT WARNING: except for OEM-phase-0 use, you should be using
|
||||
# the welcome module, **and** configure this value in
|
||||
# `welcome.conf`, not here.
|
||||
# requiredStorage: 3.5
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
unpack:
|
||||
- source: "/run/live/medium/live/vesperos/filesystem.squashfs"
|
||||
sourcefs: "squashfs"
|
||||
destination: ""
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
# update-check module configuration
|
||||
#
|
||||
# package_hooks defines actions to run if a listed package has a pending update.
|
||||
#
|
||||
# Each hook has:
|
||||
# package: the package name to watch
|
||||
# condition: (optional) when to apply the action
|
||||
# Supported operators: == and !=
|
||||
# Supported variables: arch (output of dpkg --print-architecture)
|
||||
# Wildcards: * matches any substring
|
||||
# Examples:
|
||||
# arch == amd64
|
||||
# arch != arm*
|
||||
# Omit or leave empty to always apply.
|
||||
# do: action to take
|
||||
# reinstall - apt-get install --reinstall <package>
|
||||
# install - apt-get install <package>
|
||||
# remove - apt-get remove <package>
|
||||
# script:/path/to/x - run /path/to/x with <package> as $1
|
||||
|
||||
package_hooks: []
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
userShell: /bin/zsh
|
||||
userGroup: users
|
||||
defaultGroups:
|
||||
- cdrom
|
||||
- floppy
|
||||
- sudo
|
||||
- audio
|
||||
- dip
|
||||
- video
|
||||
- plugdev
|
||||
- netdev
|
||||
- lpadmin
|
||||
- scanner
|
||||
- bluetooth
|
||||
autologinGroup: autologin
|
||||
sudoersGroup: sudo
|
||||
setRootPassword: false
|
||||
|
||||
passwordRequirements:
|
||||
nonempty: true
|
||||
minLength: 6 # Password at least this many characters
|
||||
maxLength: -1 # Password at most this many characters
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
---
|
||||
showSupportUrl: true
|
||||
showKnownIssuesUrl: true
|
||||
showReleaseNotesUrl: true
|
||||
|
||||
requirements:
|
||||
requiredStorage: 15
|
||||
requiredRam: 1.0
|
||||
check:
|
||||
- storage
|
||||
- ram
|
||||
- power
|
||||
- root
|
||||
required:
|
||||
- storage
|
||||
- ram
|
||||
- root
|
||||
@@ -0,0 +1,125 @@
|
||||
# Configuration file for Calamares
|
||||
# Syntax is YAML 1.2
|
||||
---
|
||||
|
||||
# "local" is LIBDIR/calamares/modules with settings in SHARE/calamares/modules
|
||||
modules-search: [ local, /usr/lib/calamares/modules ]
|
||||
|
||||
# If this is set to true, Calamares refers to itself as a "setup program"
|
||||
# rather than an "installer". Defaults to the value of dont-chroot, but
|
||||
# Calamares will complain if this is not explicitly set.
|
||||
oem-setup: false
|
||||
|
||||
# If this is set to true, the "Cancel" button will be disabled entirely.
|
||||
# The button is also hidden from view.
|
||||
#
|
||||
# This can be useful if when e.g. Calamares is used as a post-install
|
||||
# configuration tool and you require the user to go through all the
|
||||
# configuration steps.
|
||||
#
|
||||
# Default is false, but Calamares will complain if this is not explicitly set.
|
||||
#
|
||||
# YAML: boolean.
|
||||
disable-cancel: false
|
||||
|
||||
# If this is set to true, the "Cancel" button will be disabled once
|
||||
# you start the 'Installation', meaning there won't be a way to cancel
|
||||
# the Installation until it has finished or installation has failed.
|
||||
#
|
||||
# Default is false, but Calamares will complain if this is not explicitly set.
|
||||
#
|
||||
# YAML: boolean.
|
||||
disable-cancel-during-exec: false
|
||||
|
||||
# If this is set to true, then once the end of the sequence has
|
||||
# been reached, the quit (done) button is clicked automatically
|
||||
# and Calamares will close. Default is false: the user will see
|
||||
# that the end of installation has been reached, and that things are ok.
|
||||
#
|
||||
#
|
||||
quit-at-end: false
|
||||
|
||||
sequence:
|
||||
# Phase 1 - prepare.
|
||||
# View modules are shown as UI pages, jobs from job modules
|
||||
# are executed immediately in the background.
|
||||
# Jobs should be executed sparingly (if at all) in this phase.
|
||||
- show:
|
||||
- welcome
|
||||
- sources-media-live
|
||||
- locale
|
||||
- keyboard
|
||||
- partition
|
||||
- users
|
||||
- summary
|
||||
|
||||
# Phase 2 - install.
|
||||
# View modules are not shown. Only the view modules shown
|
||||
# in the previous phase are allowed, their names should be
|
||||
# added here as placeholders to specify the order in which
|
||||
# view module jobs should be enqueued. Job modules are
|
||||
# also allowed.
|
||||
- exec:
|
||||
- update-check
|
||||
- partition
|
||||
- mount
|
||||
- sources-media
|
||||
- unpackfs
|
||||
- machineid
|
||||
- fstab
|
||||
- locale
|
||||
- keyboard
|
||||
- localecfg
|
||||
- users
|
||||
- displaymanager
|
||||
- networkcfg
|
||||
- hwclock
|
||||
- services-systemd
|
||||
- sources-media
|
||||
- packages
|
||||
- sources-final
|
||||
- sources-media-unmount
|
||||
- system-upgrade
|
||||
- bootloader-config
|
||||
- bootloader
|
||||
- postinstall
|
||||
- umount
|
||||
|
||||
# Phase 3 - postinstall.
|
||||
# View modules are shown as UI pages, jobs from job modules are
|
||||
# executed immediately in the background.
|
||||
# Jobs should be executed sparingly (if at all) in this phase.
|
||||
- show:
|
||||
- finished
|
||||
|
||||
# A branding component is a directory, either in
|
||||
# SHARE/calamares/branding or in /etc/calamares/branding
|
||||
# (the latter takes precedence). The directory must contain a
|
||||
# YAML file branding.desc which may reference additional resources
|
||||
# (such as images) as paths relative to the current directory.
|
||||
# Only the name of the branding component (directory) should be
|
||||
# specified here, Calamares then takes care of finding it and
|
||||
# loading the contents.
|
||||
branding: vesperos
|
||||
|
||||
# If this is set to true, Calamares will show an "Are you sure?" prompt right
|
||||
# before each execution phase, i.e. at points of no return. If this is set to
|
||||
# false, no prompt is shown. Default is false.
|
||||
#
|
||||
# YAML: boolean.
|
||||
prompt-install: false
|
||||
|
||||
# If this is set to true, Calamares will execute all target environment
|
||||
# commands in the current environment, without chroot. This setting should
|
||||
# only be used when setting up Calamares as a post-install configuration tool,
|
||||
# as opposed to a full operating system installer.
|
||||
#
|
||||
# Some official Calamares modules are not expected to function with this
|
||||
# setting. (e.g. partitioning seems like a bad idea, since that is expected to
|
||||
# have been done already)
|
||||
#
|
||||
# Default is false (for a normal installer).
|
||||
#
|
||||
# YAML: boolean.
|
||||
dont-chroot: false
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
[Unit]
|
||||
Description=Calamares Framebuffer Session
|
||||
DefaultDependencies=no
|
||||
ConditionKernelCommandLine=calamares
|
||||
Conflicts=shutdown.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStartPre=-/bin/plymouth quit
|
||||
# let the console output settle down
|
||||
ExecStart=-/usr/sbin/calamares -platform linuxfb
|
||||
StandardInput=tty-force
|
||||
StandardOutput=inherit
|
||||
StandardError=inherit
|
||||
KillMode=process
|
||||
IgnoreSIGPIPE=no
|
||||
SendSIGHUP=yes
|
||||
|
||||
[Install]
|
||||
WantedBy=sysinit.target
|
||||
@@ -0,0 +1,10 @@
|
||||
# Launcher icons
|
||||
[org.gnome.shell]
|
||||
favorite-apps=['calamares-install-vesperos.desktop','firefox-esr.desktop', 'org.gnome.Nautilus.desktop']
|
||||
|
||||
# We don't want the screensaver to enable on the live media while installing
|
||||
[org.gnome.desktop.lockdown]
|
||||
disable-lock-screen=true
|
||||
|
||||
[org.gnome.desktop.session]
|
||||
idle-delay=0
|
||||
@@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Add Calamares Desktop Icon
|
||||
Exec=add-calamares-desktop-icon
|
||||
StartupNotify=false
|
||||
NoDisplay=true
|
||||
|
||||
X-GNOME-Autostart-Phase=Initialization
|
||||
X-KDE-autostart-phase=1
|
||||
Vendored
+8
-12
@@ -1,14 +1,10 @@
|
||||
calamares-settings-debian (10.0.3-1) unstable; urgency=medium
|
||||
calamares-settings-vesperos (26.1) vesperos; urgency=medium
|
||||
|
||||
* New upstream release
|
||||
* Update watch file to new upstream location on salsa
|
||||
* Fix indentation in copyright file
|
||||
* Update VCS to salsa.debian.org
|
||||
* VesperOS fork of Debian's calamares-settings-debian package.
|
||||
* Replaced all Debian branding with VesperOS artwork and configuration.
|
||||
* Replaced compiled C++ update-check viewmodule with a Python job module.
|
||||
* Moved update-check to exec phase; removed Qt6 build dependency.
|
||||
* Added custom postinstall, bootloader-config, sources-media modules.
|
||||
* Configured Calamares for VesperOS live install workflow.
|
||||
|
||||
-- Jonathan Carter <jcc@debian.org> Sat, 19 May 2018 12:14:25 +0200
|
||||
|
||||
calamares-settings-debian (10.0.2-1) unstable; urgency=medium
|
||||
|
||||
* Initial release (Closes: #847766)
|
||||
|
||||
-- Jonathan Carter <jcc@debian.org> Sat, 28 Apr 2018 18:06:34 +0200
|
||||
-- VesperOS Desktop Team <contact@oxmc.me> Thu, 03 Apr 2026 00:00:00 +0000
|
||||
|
||||
Vendored
-1
@@ -1 +0,0 @@
|
||||
11
|
||||
Vendored
+15
-14
@@ -1,27 +1,28 @@
|
||||
Source: calamares-settings-debian
|
||||
Source: calamares-settings-vesperos
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Maintainer: Jonathan Carter <jcc@debian.org>
|
||||
Build-Depends: debhelper (>= 11)
|
||||
Standards-Version: 4.1.4
|
||||
Homepage: https://salsa.debian.org/live-team/calamares-settings-debian
|
||||
Vcs-Git: https://salsa.debian.org/live-team/calamares-settings-debian-packaging.git
|
||||
Vcs-Browser: https://salsa.debian.org/live-team/calamares-settings-debian-packaging
|
||||
Maintainer: VesperOS Team <contact@oxmc.me>
|
||||
Build-Depends: debhelper-compat (= 13),
|
||||
libglib2.0-bin,
|
||||
python3
|
||||
Standards-Version: 4.6.2
|
||||
Rules-Requires-Root: no
|
||||
Homepage: https://github.com/VesperOS/vesperos
|
||||
|
||||
Package: calamares-settings-debian
|
||||
Package: calamares-settings-vesperos
|
||||
Architecture: all
|
||||
Depends: calamares,
|
||||
rsync,
|
||||
cryptsetup,
|
||||
libglib2.0-bin,
|
||||
keyutils,
|
||||
pkexec,
|
||||
qml-module-qtquick-window2,
|
||||
qml-module-qtquick2,
|
||||
${misc:Depends}
|
||||
Provides: calamares-settings
|
||||
Description: Debian theme and settings for the Calamares Installer
|
||||
Calamares is a genereic installer framework for Linux distributions.
|
||||
Description: VesperOS theme and settings for the Calamares Installer
|
||||
Calamares is a generic installer framework for Linux distributions.
|
||||
By default, it contains a set of boilerplate wording and images. This
|
||||
package provides the latest Debian artwork as well as scripts that
|
||||
package provides the VesperOS artwork as well as scripts that
|
||||
supports EFI installations.
|
||||
.
|
||||
It also serves as an example for how derivatives can create their own
|
||||
calamares-settings packages.
|
||||
|
||||
Vendored
+11
-11
@@ -1,18 +1,24 @@
|
||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: calamares-settings-debian
|
||||
Source: https://gitlab.com/highvoltage/calamares-settings-debian
|
||||
Upstream-Name: calamares-settings-vesperos
|
||||
Upstream-Contact: VesperOS Desktop Team <contact@oxmc.me>
|
||||
Source: https://git.oxmc.me/Chillcraft/calamares-settings-vesperos
|
||||
Comment: VesperOS fork of calamares-settings-debian by Jonathan Carter.
|
||||
See NOTICE.txt for upstream attribution.
|
||||
|
||||
Files: *
|
||||
Copyright: 2016-2018, Jonathan Carter <jcc@debian.org>
|
||||
Copyright: 2025-2026 VesperOS Desktop Team <contact@oxmc.me>
|
||||
2016-2024 Jonathan Carter <jcc@debian.org>
|
||||
License: ISC
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2016-2018 Jonathan Carter <jcc@debian.org>
|
||||
Copyright: 2025-2026 VesperOS Desktop Team <contact@oxmc.me>
|
||||
2016-2024 Jonathan Carter <jcc@debian.org>
|
||||
License: ISC
|
||||
|
||||
Files: calamares/branding/debian/show.qml
|
||||
Files: calamares/branding/vesperos/show.qml
|
||||
Copyright: 2015 Teo Mrnjavac <teo@kde.org>
|
||||
2018 Jonathan Carter <jcc@debian.org>
|
||||
2025-2026 VesperOS Desktop Team <contact@oxmc.me>
|
||||
License: GPL-2+
|
||||
This program is free software; you can redistribute it
|
||||
and/or modify it under the terms of the GNU General Public
|
||||
@@ -26,17 +32,11 @@ License: GPL-2+
|
||||
PURPOSE. See the GNU General Public License for more
|
||||
details.
|
||||
.
|
||||
You should have received a copy of the GNU General Public
|
||||
License along with this package; if not, write to the Free
|
||||
Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
||||
Boston, MA 02110-1301 USA
|
||||
.
|
||||
On Debian systems, the full text of the GNU General Public
|
||||
License version 2 can be found in the file
|
||||
`/usr/share/common-licenses/GPL-2'.
|
||||
|
||||
License: ISC
|
||||
ISC License
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
Vendored
+6
-2
@@ -1,5 +1,9 @@
|
||||
calamares etc
|
||||
calamares-modules/* usr/lib/calamares/modules
|
||||
scripts/* usr/sbin
|
||||
helpers/* usr/share/calamares/helpers
|
||||
*.desktop usr/share/applications
|
||||
artwork/install-debian.png usr/share/pixmaps
|
||||
calamares-install-vesperos usr/bin
|
||||
artwork/install-vesperos.png usr/share/pixmaps
|
||||
conf/96_calamares-settings-vesperos.gschema.override usr/share/glib-2.0/schemas
|
||||
conf/calamares-desktop-icon.desktop etc/xdg/autostart
|
||||
add-calamares-desktop-icon usr/bin
|
||||
|
||||
Vendored
+5
@@ -0,0 +1,5 @@
|
||||
# Only meant to be run by calamares, so its scripts wouldn't have manpages
|
||||
calamares-settings-vesperos: binary-without-manpage
|
||||
|
||||
# We don't provide this file on purpose
|
||||
calamares-settings-vesperos: diversion-for-unknown-file
|
||||
Vendored
+12
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
remove)
|
||||
# Restore original Calamares icon
|
||||
dpkg-divert --quiet --rename --package calamares-settings-vesperos \
|
||||
--remove /usr/share/applications/calamares.desktop
|
||||
;;
|
||||
esac
|
||||
|
||||
#DEBHELPER#
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
install|upgrade)
|
||||
# Hide upstream calamares icon when this package is installed
|
||||
dpkg-divert --quiet --package calamares-settings-vesperos \
|
||||
--divert /usr/share/applications/calamares.desktop.orig \
|
||||
--rename /usr/share/applications/calamares.desktop
|
||||
;;
|
||||
esac
|
||||
|
||||
#DEBHELPER#
|
||||
Vendored
+6
@@ -1,4 +1,10 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
export DH_VERBOSE = 1
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_configure:
|
||||
override_dh_auto_build:
|
||||
override_dh_auto_install:
|
||||
|
||||
Vendored
+1
-1
@@ -1 +1 @@
|
||||
3.0 (quilt)
|
||||
3.0 (native)
|
||||
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
---
|
||||
Repository: https://salsa.debian.org/live-team/calamares-settings-debian.git
|
||||
Repository-Browse: https://salsa.debian.org/live-team/calamares-settings-debian
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
version=4
|
||||
opts="searchmode=plain" \
|
||||
https://salsa.debian.org/live-team/calamares-settings-debian/tags?sort=updated_desc -/archive/v?\d[\d.]+/calamares-settings-debian-@ANY_VERSION@@ARCHIVE_EXT@ debian uupdate
|
||||
Executable
+72
@@ -0,0 +1,72 @@
|
||||
#!/bin/bash
|
||||
|
||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
|
||||
# Install luks utilities if needed.
|
||||
# Also, set secure permissions for the initramfs if we're configuring
|
||||
# full-disk-encryption. The initramfs is re-generated later in the
|
||||
# installation process so we only set the permissions snippet without
|
||||
# regenerating the initramfs right now:
|
||||
if [ "$(mount | grep $CHROOT" " | cut -c -16)" = "/dev/mapper/luks" ]; then
|
||||
echo "UMASK=0077" > $CHROOT/etc/initramfs-tools/conf.d/initramfs-permissions
|
||||
chroot $CHROOT apt-get -y install cryptsetup-initramfs cryptsetup keyutils
|
||||
fi
|
||||
|
||||
echo "Running bootloader-config..."
|
||||
|
||||
if [ -d /sys/firmware/efi/efivars ]; then
|
||||
echo " * Installing grub-efi (uefi)..."
|
||||
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-efi
|
||||
else
|
||||
echo " * install grub... (bios)"
|
||||
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-pc
|
||||
fi
|
||||
|
||||
# Re-enable os-prober:
|
||||
sed -i "s/#GRUB_DISABLE_OS_PROBER=false/# OS_PROBER re-enabled by Debian Calamares installation:\nGRUB_DISABLE_OS_PROBER=false/g" $CHROOT/etc/default/grub
|
||||
|
||||
# Enable Plymouth splash on the installed system
|
||||
sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"/' $CHROOT/etc/default/grub
|
||||
|
||||
# Keep the graphical framebuffer mode so Plymouth can render its splash.
|
||||
# Without this, GRUB switches to text mode before handing off to the kernel
|
||||
# and Plymouth falls back to a hidden/text renderer, showing nothing.
|
||||
grep -q 'GRUB_GFXPAYLOAD_LINUX' $CHROOT/etc/default/grub || \
|
||||
echo 'GRUB_GFXPAYLOAD_LINUX=keep' >> $CHROOT/etc/default/grub
|
||||
|
||||
# Set up recovery partition entry if present
|
||||
ISO_MOUNT="/run/live/medium"
|
||||
RECOVERY_DEV="$(blkid -L recovery 2>/dev/null || true)"
|
||||
|
||||
if [ -n "${RECOVERY_DEV}" ]; then
|
||||
echo " * Recovery partition found at ${RECOVERY_DEV}, setting up..."
|
||||
|
||||
RECOVERY_MNT="$(mktemp -d /tmp/recovery-mount.XXXXXX)"
|
||||
mount "${RECOVERY_DEV}" "${RECOVERY_MNT}"
|
||||
|
||||
cp "${ISO_MOUNT}/boot/recovery.vmlinuz" "${RECOVERY_MNT}/recovery.vmlinuz"
|
||||
cp "${ISO_MOUNT}/boot/recovery.initrd" "${RECOVERY_MNT}/recovery.initrd"
|
||||
|
||||
umount "${RECOVERY_MNT}"
|
||||
rmdir "${RECOVERY_MNT}"
|
||||
|
||||
cat >> "${CHROOT}/etc/grub.d/40_custom" << 'GRUBEOF'
|
||||
|
||||
menuentry "Recovery OS" {
|
||||
search --set=root --label recovery
|
||||
linux /recovery.vmlinuz console=tty1 splash
|
||||
initrd /recovery.initrd
|
||||
}
|
||||
GRUBEOF
|
||||
echo " * Recovery GRUB entry written."
|
||||
else
|
||||
echo " * WARNING: recovery partition not found — skipping recovery setup."
|
||||
fi
|
||||
|
||||
# Rebuild initramfs so Plymouth is embedded for the installed system.
|
||||
# Without this, the live-system initramfs is used and Plymouth's boot
|
||||
# splash never appears (though shutdown/poweroff animations still work
|
||||
# because those run from the installed rootfs directly).
|
||||
chroot $CHROOT update-initramfs -u -k all
|
||||
|
||||
chroot $CHROOT /usr/sbin/update-grub
|
||||
Executable
+13
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
|
||||
if [ "$1" = "-u" ]; then
|
||||
rm $CHROOT/etc/dpkg/dpkg.cfg.d/calamares-force-unsafe-io
|
||||
sync
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "force-unsafe-io" > $CHROOT/etc/dpkg/dpkg.cfg.d/calamares-force-unsafe-io
|
||||
|
||||
exit 0
|
||||
Executable
+18
@@ -0,0 +1,18 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
# This script is intended to be run in the Calamares post-installation stage,
|
||||
# after the new system has been installed but before the first reboot.
|
||||
# It performs final configuration steps before the user restarts into their new system.
|
||||
|
||||
TARGET=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
|
||||
# Remove live-session dconf database and profile from the installed system.
|
||||
# The live squashfs is what gets unpacked, so these files end up on disk and
|
||||
# can cause the live wallpaper to persist into the installed session.
|
||||
rm -rf "${TARGET}/etc/dconf/db/live.d"
|
||||
rm -f "${TARGET}/etc/dconf/db/live"
|
||||
rm -f "${TARGET}/etc/dconf/profile/live"
|
||||
rm -f "${TARGET}/lib/live/config/9999-vesperos-dconf"
|
||||
|
||||
# Recompile dconf databases without the live database present.
|
||||
chroot "${TARGET}" dconf update
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Finalises apt sources in the installed system.
|
||||
# debian.sources and vesperos.sources are already correct — carried over from
|
||||
# the squashfs by unpackfs. We just need to clear the legacy sources.list and
|
||||
# remove any build-time-only sources.
|
||||
#
|
||||
|
||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
|
||||
# Empty the legacy sources.list — Debian uses .sources (DEB822) now
|
||||
echo "# This file is intentionally left blank, Debian has moved to the new DEB822 format." > "$CHROOT/etc/apt/sources.list"
|
||||
echo "# Please use .sources files in /etc/apt/sources.list.d/ instead." >> "$CHROOT/etc/apt/sources.list"
|
||||
echo "# For more information, see https://wiki.debian.org/SourcesList" >> "$CHROOT/etc/apt/sources.list"
|
||||
|
||||
# Remove build-time-only sources
|
||||
rm -f "$CHROOT/etc/apt/sources.list.d/00-temp.list"
|
||||
rm -f "$CHROOT/etc/apt/apt.conf.d/51cache"
|
||||
|
||||
exit 0
|
||||
Executable
+51
@@ -0,0 +1,51 @@
|
||||
#!/bin/sh
|
||||
|
||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
KNOWN_MEDIUM_PATHS="/run/live/medium /run/initramfs/live"
|
||||
RELEASE="trixie"
|
||||
|
||||
# Support both dracut and initramfs configurations to avoid substitutions
|
||||
# in live-build, see: #1089618
|
||||
for path in $KNOWN_MEDIUM_PATHS; do
|
||||
if [ "$(mount | grep $path | cut -f3 -d" ")" = "$path" ]; then
|
||||
MEDIUM_PATH=$path
|
||||
fi
|
||||
done
|
||||
|
||||
# -l: add the media repo to the LIVE system (show phase, before update-check)
|
||||
if [ "$1" = "-l" ]; then
|
||||
if [ -z "$MEDIUM_PATH" ] || [ ! -d "$MEDIUM_PATH/repo" ]; then
|
||||
echo "sources-media-live: no repo found on media, skipping."
|
||||
exit 0
|
||||
fi
|
||||
echo "deb [trusted=yes] file:$MEDIUM_PATH/repo ./" \
|
||||
> /etc/apt/sources.list.d/vesperos-live-media.list
|
||||
apt-get update -q || true
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# -u: unmount media from chroot (exec phase cleanup)
|
||||
if [ "$1" = "-u" ]; then
|
||||
umount $CHROOT/$MEDIUM_PATH/repo 2>/dev/null || true
|
||||
rm -f $CHROOT/etc/apt/sources.list.d/vesperos-live-media.list
|
||||
if ping -c 1 -W 5 deb.debian.org >/dev/null 2>&1; then
|
||||
chroot $CHROOT apt-get update -q
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# No repo on media — nothing to do
|
||||
if [ ! -d "$MEDIUM_PATH/repo" ]; then
|
||||
echo "sources-media: no repo found on media, skipping."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Remove the base sources, we will configure sources in a later phase
|
||||
rm -f $CHROOT/etc/apt/sources.list.d/base.list
|
||||
|
||||
mkdir -p $CHROOT/$MEDIUM_PATH/repo
|
||||
mount --bind $MEDIUM_PATH/repo $CHROOT/$MEDIUM_PATH/repo
|
||||
echo "deb [trusted=yes] file:$MEDIUM_PATH/repo ./" > $CHROOT/etc/apt/sources.list.d/vesperos-live-media.list
|
||||
chroot $CHROOT apt-get update -q
|
||||
|
||||
exit 0
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
# Run in the Calamares exec phase, after sources-final has written real apt
|
||||
# sources and after networkcfg has brought the network up.
|
||||
# Applies all available updates so the installed system is never out of date.
|
||||
|
||||
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
||||
|
||||
if ! ping -c 1 -W 5 deb.debian.org >/dev/null 2>&1; then
|
||||
echo "system-upgrade: no network connectivity, skipping."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Running system-upgrade: refreshing package lists..."
|
||||
DEBIAN_FRONTEND=noninteractive chroot "$CHROOT" apt-get update -q
|
||||
|
||||
echo "Running system-upgrade: applying available upgrades..."
|
||||
DEBIAN_FRONTEND=noninteractive chroot "$CHROOT" apt-get dist-upgrade -y -q
|
||||
|
||||
echo "system-upgrade complete."
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
# Runs in the Calamares show phase (background, no chroot yet).
|
||||
# Refreshes apt package lists on the live system while the user fills in the
|
||||
# installer wizard so that system-upgrade in the exec phase is faster.
|
||||
|
||||
# Bail silently if there is no network rather than erroring the installer.
|
||||
if ! ping -c 1 -W 3 deb.debian.org >/dev/null 2>&1; then
|
||||
echo "update-check: no network connectivity, skipping apt update"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "update-check: refreshing package lists..."
|
||||
apt-get update -q
|
||||
echo "update-check: done"
|
||||
Reference in New Issue
Block a user