Compare commits

..

60 Commits

Author SHA1 Message Date
oxmc dbc1ba8508 Fixed image not showing 2026-04-06 02:50:02 -07:00
oxmc a962c9efb6 Fix path 2026-04-03 19:53:16 -07:00
oxmc a61329523f Set Architecture to all; remove shlibs:Depends 2026-04-03 15:25:04 -07:00
oxmc 6877ee4d25 set version to 26.1 2026-04-03 02:25:37 -07:00
oxmc ff0f8496d4 Add system update option 2026-04-02 20:55:03 -07:00
oxmc 72ed05e643 Updates, rebrand and add pre-update check 2026-03-30 21:54:20 -07:00
oxmc ef10123e84 fixes 2026-03-29 18:54:48 -07:00
oxmc dadefc2f25 Fixes 2026-03-29 03:35:07 -07:00
oxmc 3e71bacb11 Rename file, whoops 2026-03-11 06:58:35 -07:00
oxmc 7a7c95a302 Base for VesperOS 2026-03-11 06:55:21 -07:00
oxmc 72d56f3482 Rebrand 2026-03-11 06:45:58 -07:00
Jonathan Carter 17a59eeeb2 New release 2025-12-02 15:55:05 +02:00
Jonathan Carter b44ed2377f Remove debian/files 2025-08-13 22:18:27 +02:00
Jonathan Carter 594e4cbbf7 New release 2025-08-13 21:37:35 +02:00
Jonathan Carter a1a3091959 Fix bug 2025-07-13 23:53:18 +02:00
Jonathan Carter 69e280a098 Add rsync dependency 2025-01-06 12:17:46 +02:00
Jonathan Carter 8645233e34 New upstream release 2024-12-20 15:06:49 +02:00
Jonathan Carter 0bb7342e32 New upstream release 2024-08-23 18:01:31 +02:00
Jonathan Carter 1cb140df49 New upstream release 2024-08-23 18:00:27 +02:00
Jonathan Carter 6d8fd9ed93 New upstream release 2024-08-22 19:01:41 +02:00
Jonathan Carter 68ca4cadfb New upstream release 2024-07-22 15:54:27 +09:00
Jonathan Carter 1457f700d0 Attempt to fix encryption 2024-07-22 12:39:33 +09:00
Jonathan Carter f1eaade778 New upstream release 2024-06-21 18:29:43 +02:00
Jonathan Carter 1812e99279 New upstream release 2024-06-21 18:28:53 +02:00
Jonathan Carter 939d291d4d Update watch file 2024-06-19 11:02:06 +02:00
Jonathan Carter dbd5ea6632 Update watch file 2024-06-19 11:01:48 +02:00
Jonathan Carter c620eda931 New release 2024-02-11 14:54:29 +02:00
Jonathan Carter 2b4012a6cd make desktop launcher translation safer 2023-09-06 12:58:15 +05:30
Jonathan Carter 739cba6c49 New release: Fix /dev mount crash 2023-08-28 19:18:52 +02:00
Jonathan Carter 86b6ea8f4f New upstream release 2023-08-25 22:01:36 +02:00
Jonathan Carter ad0aeffc52 New upstream release 2023-08-24 17:33:04 +02:00
Jonathan Carter 77d2a2c381 New upstream release 2023-08-24 17:27:59 +02:00
Jonathan Carter 291444b863 New upstream release 2023-05-04 21:32:27 +02:00
Jonathan Carter 64a2ef74ec os-prober / grub stuff 2023-05-04 20:42:44 +02:00
Jonathan Carter c14e3710e8 New upstream release 2023-03-06 19:26:38 +02:00
Jonathan Carter 02f1f852cc New upstream release 2023-03-06 12:35:42 +02:00
Jonathan Carter 3e977929fb New release 2022-08-02 09:37:49 +02:00
Jonathan Carter b348bf4fb8 New upstream release 2022-05-19 14:51:59 +02:00
Jonathan Carter 440efe3275 New release 2022-05-12 21:07:10 +02:00
Jonathan Carter f06d21fe19 Merge branch 'lintian-fixes' into 'master'
Fix some issues reported by lintian

See merge request live-team/calamares-settings-debian-packaging!1
2022-02-18 09:13:41 +00:00
Debian Janitor a485f47a54 Update standards version to 4.6.0, no changes needed.
Changes-By: lintian-brush
Fixes: lintian: out-of-date-standards-version
See-also: https://lintian.debian.org/tags/out-of-date-standards-version.html
2021-10-12 20:09:16 +00:00
Debian Janitor 8773ee70d0 Set upstream metadata fields: Repository, Repository-Browse.
Changes-By: lintian-brush
Fixes: lintian: upstream-metadata-file-is-missing
See-also: https://lintian.debian.org/tags/upstream-metadata-file-is-missing.html
Fixes: lintian: upstream-metadata-missing-repository
See-also: https://lintian.debian.org/tags/upstream-metadata-missing-repository.html
2021-10-12 20:09:15 +00:00
Jonathan Carter 06541f170d Fix security entries in sources.list 2021-09-06 08:46:17 +02:00
Jonathan Carter 23079c258a New upstream release 2020-11-11 14:55:50 +02:00
Jonathan Carter a5414fb381 New upstream release 2020-10-21 09:33:30 +02:00
Jonathan Carter aa004661a3 New upstream release 2020-07-15 18:44:46 +02:00
Jonathan Carter bfed970fd6 Fix some bugs 2020-07-15 18:32:58 +02:00
Jonathan Carter e965c6358a New upstream version 2019-12-11 10:56:05 +02:00
Jonathan Carter 2078611cc4 Source-only upload 2019-08-05 21:31:36 +02:00
Jonathan Carter f05fdbdad6 Update bootloader config 2019-07-08 12:23:29 +00:00
Jonathan Carter 15a94de5d5 fix path 2019-07-03 13:33:09 +00:00
Jonathan Carter 34abde07b6 Fix security issue 2019-07-03 13:09:54 +00:00
Jonathan Carter 70f14a44ba Add .gitignore 2019-04-18 08:51:04 +00:00
Jonathan Carter d1007c899d Add desktop icon 2019-04-18 08:50:53 +00:00
Jonathan Carter b16e2cb5c8 Minor bugs for buster 2019-04-16 08:03:39 +00:00
Jonathan Carter 6b89773a85 New upstream release 2019-02-15 16:08:17 +02:00
Jonathan Carter 98abeec1c0 New upstream release 2019-01-16 19:15:31 +02:00
Jonathan Carter d9134ca843 New upstream release 2019-01-16 12:16:25 +02:00
Jonathan Carter 3c596e4f06 Fix desc 2019-01-09 14:00:37 +02:00
Jonathan Carter 411ed1dcd8 New upstream version 2019-01-08 10:50:15 +02:00
70 changed files with 1360 additions and 298 deletions
+17
View File
@@ -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
*~
\#*\#
+161
View File
@@ -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
+2 -1
View File
@@ -1,6 +1,7 @@
ISC License
Copyright (c) 2016-2018, Jonathan Carter <jcc@debian.org>
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.
+17
View File
@@ -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.
+50
View File
@@ -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.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

+15
View File
@@ -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
+13
View File
@@ -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
@@ -2,5 +2,5 @@
type: "job"
name: "bootloader-config"
interface: "process"
command: "/usr/sbin/bootloader-config"
timeout: 600
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
+1 -1
View File
@@ -2,5 +2,5 @@
type: "job"
name: "sources-final"
interface: "process"
command: "/usr/sbin/sources-final"
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
@@ -2,5 +2,5 @@
type: "job"
name: "sources-media-unmount"
interface: "process"
command: "/usr/sbin/sources-media -u"
command: "/usr/share/calamares/helpers/calamares-sources-media -u"
timeout: 600
+1 -1
View File
@@ -2,5 +2,5 @@
type: "job"
name: "sources-media"
interface: "process"
command: "/usr/sbin/sources-media"
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")
-27
View File
@@ -1,27 +0,0 @@
---
componentName: debian
welcomeStyleCalamares: true
strings:
productName: Debian GNU/Linux
shortProductName: Debian GNU/Linux
version: 10
shortVersion: 10
versionedName: Debian GNU/Linux
shortVersionedName: Debian GNU/Linux 10
bootloaderEntryName: Debian GNU/Linux
productUrl: https://debian.org
supportUrl: https://www.debian.org/support
releaseNotesUrl: https://www.debian.org/releases/stretch/releasenotes
images:
productLogo: "debian-logo.png"
productIcon: "debian-logo.png"
productWelcome: "welcome.png"
slideshow: "show.qml"
style:
sidebarBackground: "#2c3133"
sidebarText: "#FFFFFF"
sidebarTextSelect: "#4d7079"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

-51
View File
@@ -1,51 +0,0 @@
/* === This file is part of Calamares - <http://github.com/calamares> ===
*
* Copyright 2015, Teo Mrnjavac <teo@kde.org>
* Copyright 2018, Jonathan Carter <jcc@debian.org>
*
* Calamares is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, or (at your option) any later version.
*
* Calamares is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
*/
import QtQuick 2.0;
import calamares.slideshow 1.0;
Presentation
{
id: presentation
Timer {
interval: 20000
repeat: true
onTriggered: presentation.goToNextSlide()
}
Slide {
Image {
id: background1
source: "slide1.png"
width: 467; height: 280
fillMode: Image.PreserveAspectFit
anchors.centerIn: parent
}
Text {
anchors.horizontalCenter: background1.horizontalCenter
anchors.top: background1.bottom
text: "Welcome to Debian GNU/Linux.<br/>"+
"The rest of the installation is automated and should complete in a few minutes."
wrapMode: Text.WordWrap
width: 600
horizontalAlignment: Text.Center
}
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

+39
View File
@@ -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

+65
View File
@@ -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

+2 -2
View File
@@ -43,7 +43,7 @@ efiBootMgr: "efibootmgr"
# setting the option here, keep in mind that the name is sanitized
# (problematic characters, see above, are replaced).
#
# efiBootloaderId: "dirname"
efiBootloaderId: "VesperOS"
# Optionally install a copy of the GRUB EFI bootloader as the EFI
# fallback loader (either bootia32.efi or bootx64.efi depending on
@@ -51,4 +51,4 @@ efiBootMgr: "efibootmgr"
# 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
installEFIFallback: true
+28
View File
@@ -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
+3 -3
View File
@@ -1,11 +1,11 @@
---
mountOptions:
default: defaults,noatime
btrfs: defaults,noatime,space_cache,autodefrag
btrfs: defaults,noatime
ssdExtraMountOptions:
ext4: discard
jfs: discard
xfs: discard
swap: discard
btrfs: discard,compress=lzo
crypttabOptions: luks,keyscript=/bin/cat
btrfs: discard,compress=zstd:3
crypttabOptions: luks,discard,keyscript=/bin/cat
+7
View File
@@ -6,3 +6,10 @@ 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
+18 -10
View File
@@ -1,17 +1,22 @@
# 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. The filesystems listed in
# *extraMountsEfi* are mounted in the target system **only** if
# the host machine uses UEFI.
# are mounted in all target systems.
---
# Extra filesystems to mount. The key's value is a list of entries; each
# entry has four keys:
# entry has five keys:
# - device The device node to mount
# - fs The filesystem type to use
# - fs (optional) The filesystem type to use
# - mountPoint Where to mount the filesystem
# - options (optional) Extra options to pass to mount(8)
# - 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
@@ -22,15 +27,18 @@ extraMounts:
mountPoint: /sys
- device: /dev
mountPoint: /dev
options: bind
options: [ bind ]
- device: tmpfs
fs: tmpfs
mountPoint: /run
- device: /run/udev
mountPoint: /run/udev
options: bind
extraMountsEfi:
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
+3 -1
View File
@@ -2,12 +2,14 @@ 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-config-systemd'
- 'live-tools'
- 'live-task-localisation'
- 'live-task-recommended'
+398
View File
@@ -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
+1 -1
View File
@@ -1,5 +1,5 @@
---
unpack:
- source: "/run/live/medium/live/filesystem.squashfs"
- source: "/run/live/medium/live/vesperos/filesystem.squashfs"
sourcefs: "squashfs"
destination: ""
+22
View File
@@ -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: []
+7
View File
@@ -1,4 +1,5 @@
---
userShell: /bin/zsh
userGroup: users
defaultGroups:
- cdrom
@@ -15,3 +16,9 @@ defaultGroups:
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
+1 -1
View File
@@ -4,7 +4,7 @@ showKnownIssuesUrl: true
showReleaseNotesUrl: true
requirements:
requiredStorage: 10
requiredStorage: 15
requiredRam: 1.0
check:
- storage
+45 -12
View File
@@ -5,14 +5,48 @@
# "local" is LIBDIR/calamares/modules with settings in SHARE/calamares/modules
modules-search: [ local, /usr/lib/calamares/modules ]
sequence:
# 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
@@ -26,30 +60,29 @@ sequence:
# view module jobs should be enqueued. Job modules are
# also allowed.
- exec:
- update-check
- partition
- mount
- unpackfs
- sources-media
- unpackfs
- machineid
- fstab
- locale
- keyboard
- localecfg
- users
- displaymanager
- networkcfg
- hwclock
- services-systemd
- bootloader-config
- grubcfg
- bootloader
- sources-media
- packages
- luksbootkeyfile
- luksopenswaphookcfg
- plymouthcfg
- initramfscfg
- initramfs
- sources-media-unmount
- sources-final
- sources-media-unmount
- system-upgrade
- bootloader-config
- bootloader
- postinstall
- umount
# Phase 3 - postinstall.
@@ -67,7 +100,7 @@ sequence:
# Only the name of the branding component (directory) should be
# specified here, Calamares then takes care of finding it and
# loading the contents.
branding: debian
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
+20
View File
@@ -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
@@ -1,10 +0,0 @@
# Launcher icons
[org.gnome.shell]
favorite-apps=['install-debian.desktop', 'firefox-esr.desktop', 'org.gnome.Evolution.desktop', 'rhythmbox.desktop', 'libreoffice-writer.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'yelp.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,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
+9
View File
@@ -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
+8 -59
View File
@@ -1,61 +1,10 @@
calamares-settings-debian (10.0.14-1) unstable; urgency=medium
calamares-settings-vesperos (26.1) vesperos; urgency=medium
* New upstream release
* 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> Mon, 10 Dec 2018 15:32:26 +0200
calamares-settings-debian (10.0.13-1) unstable; urgency=medium
* New upstream release
* Add libglib2.0-bin to build-depends
-- Jonathan Carter <jcc@debian.org> Sat, 01 Dec 2018 11:40:55 +0200
calamares-settings-debian (10.0.10-2) unstable; urgency=medium
* Fix diverts (Closes: #909492)
-- Jonathan Carter <jcc@debian.org> Tue, 25 Sep 2018 14:32:01 +0200
calamares-settings-debian (10.0.10-1) unstable; urgency=medium
* New upstream release
-- Jonathan Carter <jcc@debian.org> Wed, 19 Sep 2018 10:58:27 +0200
calamares-settings-debian (10.0.9-1) unstable; urgency=medium
* New usptream release
* Add divert to hide original Calamares icon
* Update standards version to 4.2.1
-- Jonathan Carter <jcc@debian.org> Tue, 18 Sep 2018 20:17:54 +0200
calamares-settings-debian (10.0.8-2) unstable; urgency=medium
* Fix watch file
* Update standards version to 4.2.0
-- Jonathan Carter <jcc@debian.org> Thu, 09 Aug 2018 09:29:48 +0200
calamares-settings-debian (10.0.8-1) unstable; urgency=medium
* New upstream release
* Update watch file
-- Jonathan Carter <jcc@debian.org> Mon, 25 Jun 2018 12:29:07 +0200
calamares-settings-debian (10.0.3-1) unstable; 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
-- 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
-1
View File
@@ -1 +0,0 @@
11
+15 -14
View File
@@ -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), libglib2.0-bin
Standards-Version: 4.2.1
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.
+11 -11
View File
@@ -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.
+6 -4
View File
@@ -1,7 +1,9 @@
calamares etc
calamares-modules/* usr/lib/calamares/modules
scripts/* usr/sbin
helpers/* usr/share/calamares/helpers
*.desktop usr/share/applications
install-debian usr/bin
artwork/install-debian.png usr/share/pixmaps
conf/96_calamares-settings-debian.gschema.override usr/share/glib-2.0/schemas
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
+2 -2
View File
@@ -1,5 +1,5 @@
# Only meant to be run by calamares, so its scripts wouldn't have manpages
calamares-settings-debian: binary-without-manpage
calamares-settings-vesperos: binary-without-manpage
# We don't provide this file on purpose
calamares-settings-debian: diversion-for-unknown-file
calamares-settings-vesperos: diversion-for-unknown-file
+1 -1
View File
@@ -4,7 +4,7 @@ set -e
case "$1" in
remove)
# Restore original Calamares icon
dpkg-divert --quiet --rename --package calamares-settings-debian \
dpkg-divert --quiet --rename --package calamares-settings-vesperos \
--remove /usr/share/applications/calamares.desktop
;;
esac
+1 -1
View File
@@ -4,7 +4,7 @@ set -e
case "$1" in
install|upgrade)
# Hide upstream calamares icon when this package is installed
dpkg-divert --quiet --package calamares-settings-debian \
dpkg-divert --quiet --package calamares-settings-vesperos \
--divert /usr/share/applications/calamares.desktop.orig \
--rename /usr/share/applications/calamares.desktop
;;
+6
View File
@@ -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:
+1 -1
View File
@@ -1 +1 @@
3.0 (quilt)
3.0 (native)
+3
View File
@@ -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
+2 -1
View File
@@ -1,2 +1,3 @@
version=4
https://salsa.debian.org/live-team/calamares-settings-debian/tags .*/calamares-settings-debian-(.*)\.tar\.gz
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
+72
View File
@@ -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
+13
View File
@@ -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
+18
View File
@@ -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
+20
View File
@@ -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
+51
View File
@@ -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
+20
View File
@@ -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."
+14
View File
@@ -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"
-8
View File
@@ -1,8 +0,0 @@
#!/bin/sh
###
# Wrapper for running calamares on Debian live media
###
xhost +si:localuser:root
pkexec calamares
xhost -si:localuser:root
-12
View File
@@ -1,12 +0,0 @@
[Desktop Entry]
Type=Application
Version=1.0
Name=Install Debian
GenericName=Calamares Installer
Exec=install-debian
Comment=Calamares Installer for Debian Live
Keywords=calamares;system;install;debian;installer
Icon=install-debian
Terminal=false
Categories=Qt;System;
StartupWMClass=calamares
-13
View File
@@ -1,13 +0,0 @@
#!/bin/bash
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
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-amd64 cryptsetup keyutils
else
echo " * install grub... (bios)"
DEBIAN_FRONTEND=noninteractive chroot $CHROOT apt-get -y install grub-pc cryptsetup keyutils
fi
-21
View File
@@ -1,21 +0,0 @@
#!/bin/sh
#
# Writes the final sources.list file
#
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
RELEASE="buster"
cat << EOF > $CHROOT/etc/apt/sources.list
# See https://wiki.debian.org/SourcesList for more information.
deb http://deb.debian.org/debian $RELEASE main
deb-src http://deb.debian.org/debian $RELEASE main
deb http://deb.debian.org/debian $RELEASE-updates main
deb-src http://deb.debian.org/debian $RELEASE-updates main
deb http://security.debian.org/debian-security/ $RELEASE/updates main
deb-src http://security.debian.org/debian-security/ $RELEASE/updates main
EOF
exit 0
-25
View File
@@ -1,25 +0,0 @@
#!/bin/sh
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
MEDIUM_PATH="/run/live/medium"
RELEASE="buster"
if [ "$1" = "-u" ]; then
umount $CHROOT/$MEDIUM_PATH
rm $CHROOT/etc/apt/sources.list.d/debian-live-media.list
chroot $CHROOT apt-get update
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
mount --bind $MEDIUM_PATH $CHROOT/$MEDIUM_PATH
echo "deb [trusted=yes] file:$MEDIUM_PATH $RELEASE main" > $CHROOT/etc/apt/sources.list.d/debian-live-media.list
chroot $CHROOT apt-get update
# Attempt safest way to remove cruft
rmdir $CHROOT/run/live/medium
rmdir $CHROOT/run/live
exit 0