Commit Graph

591 Commits

Author SHA1 Message Date
Harald Sitter
3f455168d7 generate a desync index for the erofs
allows to desync... in theory anyway
2025-08-14 20:47:46 +02:00
Harald Sitter
c4a62d2971 erofs: drop duplicated flatpak data 2025-08-14 20:47:01 +02:00
Nate Graham
7de27e272d Ship Polkit rule to allow canceling an update without authentication
You can start an update without authentication, but not cancel it. This
is just weird, and likely an upstream bug:
https://github.com/systemd/systemd/issues/38568

Until that bug is resolved, work around it here.

Resolves #235
BUG: 502189
2025-08-14 10:48:02 -06:00
Nate Graham
cd3287a069 Fix some typos in comments
GIT_SILENT
2025-08-13 19:27:27 -06:00
Nate Graham
e984f8087f Pre-install icoutils and switcheroo-control
From KDE's packaging recommendations wiki page [1], so we should honor that
and pre-install them.

[1] https://community.kde.org/Distributions/Packaging_Recommendations
2025-08-13 10:09:04 -06:00
Nate Graham
39ad9aa57f Improve power management
1. Swap out power-profiles-daemon for tuned-ppd, which is a drop-in
   replacement and seems to work better.
2. Install and enable thermald, which improves power management and
   performance on Intel CPUs

Citations:
- https://fedoraproject.org/wiki/Changes/TunedAsTheDefaultPowerProfileManagementDaemon
- https://www.phoronix.com/review/intel-thermald-tgl
2025-08-13 09:16:37 -06:00
Harald Sitter
33a47832d9 btrfs-migrator: run on actually composed overlays
bit awkward but this should produce more reliably results. in particular
for flatpak the previous naive approach could easily fail because of the
ostree repo content being files or dirs depending on unknown factors,
making it super difficult to copy them reliably. by composing first we
defer that problem to overlayfs, which is how this was used in rootfsv1
anyway.

with this we also no longer need the erofs /usr mount
2025-08-12 16:52:29 +02:00
Harald Sitter
b2422a9bb1 todo-- 2025-08-12 11:53:17 +02:00
Nate Graham
917f1c79ea Make PAM less authoritarian
The defaults are currently very harsh: each failed authentication
attempt makes you wait for 3 seconds, and 3 failed attempts lock you
out of the system for 10 minutes.

These defaults are tuned for high security, but Bugzilla is full of
complaints about it from Arch users who placed the blame on KDE. These
defaults are not well-tuned for normal users in normal environments, so
let's soften them a bit to offer a less harsh experience.

Resolves #222
2025-08-07 18:27:52 -06:00
Nate Graham
564a08ee1e Add workaround for https://bugreports.qt.io/browse/QTBUG-138679
Let's not torture AMD GPU users in the meantime before this bug is fixed
upstream.
2025-08-07 14:59:16 -06:00
Harald Sitter
a81ea28726 calamares: stop creating sudoers
leave it for the tmpfiles to create
2025-08-07 16:00:58 +02:00
Harald Sitter
5b1d351629 try to manage sudoers through tmpfiles
seeing as we want to bootstrap /etc out of /usr we'll need to figure out
a way to deal with sudo reliably
2025-08-07 15:59:03 +02:00
Harald Sitter
31e7d0ccf5 migrator: drop automatic rename
this gets in the way of convenient rollback so let's keep the data
around until the user decides they want the disk space back
2025-08-07 15:34:17 +02:00
Harald Sitter
3fed60c4d5 migrator: show message while migrating 2025-08-07 15:33:43 +02:00
Harald Sitter
037e14a481 correctly handle directory
in Path the placeholders don't get expanded, so put it in MatchPattern
instead
2025-08-07 13:03:56 +02:00
Harald Sitter
6152f828a4 add an erofs efi addon
I have high hopes this will make testing easier by simply letting us opt
into the erofs feature on sysupdate
2025-08-07 10:17:17 +02:00
Harald Sitter
97c6299dcf guard against missing .erofs 2025-08-07 09:02:49 +02:00
Harald Sitter
29079ad54f comment++ 2025-08-07 08:30:20 +02:00
Harald Sitter
96dea56df3 calamares: sudoers shouod get populated on demand these days 2025-08-07 08:30:15 +02:00
Harald Sitter
b4dc9aef99 calamares: flatpak gets popualted by tmpfiles 2025-08-07 08:29:28 +02:00
Harald Sitter
23eea31d2a calamares: don't btrfs receive anymore
there is no btrfs in the raw image. it's erofs now
2025-08-06 19:13:51 +02:00
Harald Sitter
1791c8a5e5 update calamares to support rootfsv1 and erofs 2025-08-06 17:21:05 +02:00
Nate Graham
aaf7eaab85 Set CAP_SYS_NICE on kwin_wayland
Resolves #224
2025-08-06 08:05:54 -06:00
Harald Sitter
64af49d499 port live to new erofs as root
major change is that live data is now in /live (/live continues to not
appear on the final system because we selectively mount /usr only)
2025-08-06 16:00:14 +02:00
Harald Sitter
48a6689f63 drop rootflags from live efi
no longer necessary seeing as we now use the erofs as literal root
2025-08-06 15:55:52 +02:00
Harald Sitter
552bfefb0f use correct path 2025-08-06 15:26:44 +02:00
Harald Sitter
c065cfedef debug-- 2025-08-06 14:56:27 +02:00
Harald Sitter
30fc552dfe use the erofs as root partition
this saves us the entire btrfs dance
2025-08-06 14:45:46 +02:00
Harald Sitter
5f6d0dba73 move efi-template to factory dir 2025-08-06 14:02:18 +02:00
Harald Sitter
5fc8c765bd output stdout/stderr, we don't need to capture it 2025-08-06 14:02:18 +02:00
Harald Sitter
4f6c1e52a0 calamares: make sure presets are applied
this actually points a more general workflow problem: if we don't
overlay etc then how do we make sure presets are applied?
2025-08-06 12:58:20 +02:00
Harald Sitter
7ee73f4a4e add a qrcode to the v2 page 2025-08-06 12:56:51 +02:00
Harald Sitter
693dfc41df try hiding the splash
deactivate did not what was expected
2025-08-06 12:56:36 +02:00
Harald Sitter
e12e1ba914 don't copy into etc if it already exists 2025-08-06 12:56:29 +02:00
Harald Sitter
a02c5c758b disable backup renaming for now 2025-08-06 12:56:21 +02:00
Harald Sitter
b251e3c722 use correct var 2025-08-06 12:56:15 +02:00
Harald Sitter
5f1c5b62f6 add a helper for the btrfs migration
notably this allows us to recursively delete and snapshot things
2025-08-06 12:55:25 +02:00
Harald Sitter
fc8c58c9e2 upload efi as well 2025-08-06 12:55:18 +02:00
Harald Sitter
559cdf2990 put flatpaks into factory
a bit awkward. ideally we'd put a sideload repo into factory and then
install from there. something for further down the line
2025-08-06 12:55:06 +02:00
Harald Sitter
0f5c86c596 version the erofs
it was versionless because of testing, but that doesn't really represent
how it will work in production
2025-08-06 12:54:44 +02:00
Harald Sitter
e8ba61e2ff typos-- 2025-08-06 12:54:10 +02:00
Harald Sitter
a5f7cae7f4 turn erofs into a feature
currently off by default

can be enabled via an /etc fragment
2025-08-06 12:30:24 +02:00
Harald Sitter
fffff999aa basic-test: more aggressively clean up the qemu instance 2025-08-06 11:00:01 +02:00
Nate Graham
b1361d31f4 Pre-install missing make dependencies for KDE projects
We want for at least the pre-installed KDE software to be buildable on
the OS image with no hassle. Add some packages to the
packages-development.conf file.

Fixes #220
2025-08-05 19:36:29 -06:00
Nate Graham
5f3e6c0305 Move less, tree, and vim to 10-packages-cli.conf
These aren't strictly speaking development tools. We don't want them to
disappear should we ever make the developer packages an optional overlay
or something.
2025-08-03 17:20:34 -06:00
Nate Graham
1fa9582b3f Remove non-existent steam-devices-git package
This is in AUR and already installed from there in the
kde-linux-packages repo. Remove it from here where it doesn't exist
anyway.
2025-08-03 17:16:58 -06:00
Nate Graham
3bdb479f66 Correct typo in comment
GIT_SILENT
2025-08-03 17:15:12 -06:00
Nate Graham
b26cbbbd03 Uze zram for swap
Right now we don't have any swap, which can cause various memory
management complications, especially on systems with little physical
RAM.

Let's remedy this by using zram. This makes the system much less likely
to OOM in memory pressure situations, while being much faster than
disk-backed swap and avoiding the security issues of having RAM
contents on disk.

I chose some fairly aggressive settings based on research and testing:

- zram value of double the physical RAM, because it gets compressed
  anyway and appears to have internal limits to avoid letting the
  compressed memory completely crowd out the uncompressed memory.
- lz4 as the compression algorithm because it's super fast at the
  expense of worse compression compared to zstd (the second best
  option), but this is mitigated by having a large zram value.
- Tune the kernel parameters to make sense for swap being fast, since
  the defaults assume slow swap which isn't true for us now.

The only thing we don't gain is hibernation support, but that can be
done later; these aren't mutually exclusive.

Resolves #84
2025-08-03 09:00:43 -06:00
Harald Sitter
7e50c46dee ci: try to force the script to exit 2025-07-30 21:28:52 +02:00
Harald Sitter
df25b46e59 debug what happens after upload
so it appears upload actually finishes but the job doesn't. let's see
what's going on
2025-07-30 18:56:11 +02:00