Commit Graph

707 Commits

Author SHA1 Message Date
Nate Graham
e8402a4e4f Add and pre-enable a systemd service for powertop --auto-tune
On my system this saves about 0.4W while on battery power.

The major problem with `powertop --auto-tune` in general is that it
turns on USB auto-suspend, which can wreak havoc with input devices. To
prevent that, we then undo it for detected USB input devices.

This is a workaround for an upstream issue in Powertop, but it's a very
old issue and doesn't look like it's getting fixed anytime soon. See:

- https://github.com/fenrus75/powertop/issues/37
- https://github.com/fenrus75/powertop/issues/38
- https://github.com/fenrus75/powertop/issues/101
- https://github.com/fenrus75/powertop/issues/165
2025-09-01 17:10:22 -06:00
Raresh Rus
599f27c914 os-release use https://kde.org/linux and the wiki page 2025-08-31 18:56:23 -06:00
Harald Sitter
93a4c58c03 overwrite files in factory
it's unclear to me how this suddenly became a problem but there is a
shells file in the factory already that is not in sync with the shells
file in /etc. at any rate since we basically treat /etc as canonical
source we may as well overwrite whatever is in factory already
2025-09-01 01:17:47 +02:00
l10n daemon script
3e6f9e0d38 GIT_SILENT made messages (after extraction) 2025-08-31 00:41:18 +00:00
Harald Sitter
0a8e788067 basic-test: also send logs on failure 2025-08-30 18:07:17 +02:00
Harald Sitter
bbbf760eb4 use etc-factory instead of tmpfiles
tmpfiles are too inflexible as it turns out

Fixes #261
2025-08-30 15:53:26 +02:00
Harald Sitter
382154b66a live: fix volatile flatpak loading
since erofs we have a partlabel not a label
2025-08-30 15:52:27 +02:00
Harald Sitter
b3000b4c4c basic-test: fail if units failed to start
also print what's going on for debugging
2025-08-30 15:52:09 +02:00
Harald Sitter
3ac85bc4e1 do not enable kiss in the preset
instead enable it in calamares

this should more reliably prevent it from running more than once
2025-08-30 14:53:13 +02:00
Harald Sitter
7abf77d316 apply presets after updates
this ensures services enable reliably
2025-08-30 14:52:41 +02:00
l10n daemon script
506812c248 GIT_SILENT made messages (after extraction) 2025-08-30 00:40:48 +00:00
Nate Graham
0ff55a9698 Use BFQ I/O scheduler for spinning disks
It offers much better latency in exchange for only a modest reduction
in throughput, and only for some workflows. High latency being a
defining negative characteristic of spinning disks, this seems like a
worthwhile trade-off for us to make for desktop usage.

This doesn't change the default I/O schedulers for flash-based storage,
as the defaults seem sensibly chosen (`none` for NVMe SSDs and
`mq-deadline` for everything else).

Related to #258
2025-08-29 07:50:16 -06:00
l10n daemon script
abc0adc66d GIT_SILENT made messages (after extraction) 2025-08-29 00:41:38 +00:00
Nate Graham
ef007f280c Remove maliit-keyboard
We already have plasma-keyboard pre-installed, which is a 1st-party
solution. Let's go with that as our preferred virtual keyboard.

Removing Maliit also has the positive side effect of removing a Qt5
dependency.

Resolves #266
2025-08-28 14:06:27 -06:00
Harald Sitter
6be38748d4 ci: drop exit logic
didn't actually work so we now try very hard to clean up processes where
they were started
2025-08-28 18:42:01 +02:00
Harald Sitter
7489661040 tmpfiles for avahi 2025-08-28 18:42:01 +02:00
Nate Graham
6525151be3 Disable NMI watchdog
This can be useful for servers with a physical NMI button, but that's
outside of our target audience here. This thing isn't useful for
typical desktop setups, so let's disable it to save some resources.

Related to #258
2025-08-27 22:57:36 -06:00
Nate Graham
142294d12e Use invent.kde.org as the official bug report URL
Resolves #234
2025-08-27 18:45:27 -06:00
l10n daemon script
aac71fcca5 GIT_SILENT made messages (after extraction) 2025-08-28 00:41:03 +00:00
Jasper Hemingway
ba75d1fcc5 Relax installation requirements even more
Make RAM and storage requirements non-blocking
and reduce RAM requirement
2025-08-27 17:24:39 -06:00
Nate Graham
52b880d162 Disable in-kernel zswap
It sits in fromt of our zram, which isn't ideal. You should have one or
the other, but not both. Disable the in-kernel zswap to get back to the
original design intent of only having zram.

Related to #258
2025-08-27 14:13:23 -06:00
Hadi Chokr
72c5a6c988 Test Plymouth Hotfix. 2025-08-27 20:47:55 +03:00
Harald Sitter
0b1bb37e3a use long option 2025-08-27 04:59:19 +02:00
Hadi Chokr
7add26f29d Unnuke the fallback themes 2025-08-27 04:58:29 +02:00
Hadi Chokr
e5977eccd9 Nuke unneeded themes 2025-08-27 04:58:29 +02:00
Hadi Chokr
1a331fade9 Add our defaults to plymouth. 2025-08-27 04:58:29 +02:00
Harald Sitter
a28807e832 mtimer: apply stat info mtimes when called for
should prevent files from going 1970 on us
2025-08-27 04:34:44 +02:00
l10n daemon script
2401d8941e GIT_SILENT made messages (after extraction) 2025-08-27 00:41:52 +00:00
Nate Graham
4a3eaadefe Ship espeak-ng out of the box
This is a useful accessibility tool so that people with vision
impairments can receive audio feedback for their task automation
systems.
2025-08-26 09:32:41 -06:00
Harald Sitter
26c1640492 mtimer: links need special handling
I completely ignored the fact that symlinks can point to directories.
this then would make our checksum logic fall over because you can't
checksum a dirent. instead introduce completely bespoke handling for
symlinks. it's increeeedibly similar to files but ever so slightly
different so we have type assurances.

may be worth creating an Analyzer interface in the future so we don't
have to dupe things so much
2025-08-26 15:06:42 +02:00
Harald Sitter
74b379ddd5 drop virt-manager to see how much of a pain that causes
there is a flatpak and technically that works without a system libvirt
it's hard to tell right now if it is working though because we do
have a system libvirt :D
2025-08-26 14:47:37 +02:00
Harald Sitter
f494ed4a60 mtimer: don't skip symlinks
after some stunts with dump.erofs I am led to believe that the remaining
delta chunks are in fact symlink (metadata?)

specifically I am seeing a non-matching chunk

`░ -- start: 3626777409 len: 82685`

which seems to cover the following extent in erofs

```
Path :
/usr/share/factory/var/lib/flatpak/runtime/org.kde.Platform/x86_64/6.9/f930fae18cfc829f51db18b9324905a3bebee0ec7e9d4d62afbb17f696fb20d0/files/share/icons/breeze-dark/status/22/rotation-locked-landscape-symbolic.svg
Size: 29  On-disk size: 29  symlink file
NID: 113336534   Links: 1   Layout: 2   Compression ratio: 100.00%
Inode size: 64   Xattr size: 0
Uid: 0   Gid: 0  Access: 0777/rwxrwxrwx
Timestamp: 2025-08-26 12:33:18.806496943

 Ext:   logical offset   |  length :     physical offset    |  length
   0:        0..      29 |      29 : 3626769152..3626769181 |      29
```

the trouble is that because the chunk is so large it's hard to tell what
the actual change is that causes the delta. considering the mtime
definitely is the build time it is my only guess right now
2025-08-26 14:29:09 +02:00
Harald Sitter
a42b386db4 mtimer: always restore time of dir
doesn't really make sense to guard this since we always want to set the
stable time. also allows us to get rid of the extra stat
2025-08-26 12:11:51 +02:00
Harald Sitter
8e3cafae79 mtimer: start the search for a dir time with unix(0)
if the dir is newer than the files then we still want to force it to a
consistent value of the files

most notably this should prevent a whole host of dirs from having an
mtime that is the package unpack time, which is obviously changing
between builds
2025-08-26 07:35:39 +02:00
Harald Sitter
bf5f2dd160 give dirs a stable time
with file mtimes stabilized, we now have dirs lighting up like a
christmas tree in my diff scripts. give them a stable mtime to get
consistency between builds.

the idea here is that if we set the mtime of all dirs to their latest
content's mtime we'll implicitly stabilize the dirs through stabilizing
the files

somewhat unfortunately we need to do this in a single thread because
otherwise we'd have to segment deep trees and I really don't want to
venture there for such an otherwise simple program

a future option might be to also put dirs in our json but realistically
that only makes a difference for empty dirs (since they have no content
from which to derive the mtime). so let's see where we get with this. we
can always add dir records in the json later
2025-08-26 06:35:24 +02:00
Harald Sitter
806f85a40a marshal condensed json
preciously recovers a byte or two
2025-08-26 06:35:23 +02:00
l10n daemon script
cb21dce4c3 GIT_SILENT made messages (after extraction) 2025-08-26 00:41:03 +00:00
Harald Sitter
d321e31c7e build calamares in MinSizeRel mode
to shrink its artifacts way down. calamares doesn't need to be super
efficient, just very small because we don't actually need it all that
much
2025-08-25 23:24:51 +02:00
Harald Sitter
121314e605 clear even more of pacman
files in var/lib/pacman/local are super tiny and change between all our
builds, causing many tiny deltas. we don't like many tiny deltas in our
delta downloading because it means many tiny downloads. so remove the
files to get a smaller overall delta between image versions
2025-08-25 23:24:51 +02:00
Ben Cooksley
aaff6a3489 Try to minimise unnecessary builds 2025-08-26 07:08:42 +12:00
Harald Sitter
5705a9f4b3 put login.defs into etc so useradd behaves correctly 2025-08-25 19:00:52 +02:00
Harald Sitter
653e1baadd use absolute path to mtimer.json 2025-08-25 18:18:10 +02:00
Harald Sitter
9719237988 try to produce more consistent mtimes
this is a bit of a shot in the dark, but I believe we may have
unnecessary delta in our images caused by the rebuilding of software on
a daily basis. this would result in mtimes changing when the files
actually do not.

a tiny mtimer tool is meant to work around that by consuming an input
json file of mtimes+checksums and if mtimes change it will checksum the
affected file to verify it actually has changed in content as well.
assuming reproducible builds this should result in far less delta in the
erofs and by extension the delta download
2025-08-25 18:06:43 +02:00
Aleix Pol
947cb878bd appstream: Remove outdated version
We are not shipping Plasma 6.0 anymore and it probably shouldn't matter
either.
2025-08-25 01:09:42 +02:00
Ben Cooksley
e10cee597e Don't apply the default ruleset to CI jobs.
It does not make sense in this context, and the bit this is trying to fix comes from workflow:rules anyway

Fixes kde-linux/kde-linux#256
2025-08-23 09:58:32 +00:00
Harald Sitter
9d764074bb align chunk sizes
this should make things more amazing. from my testing it looks like
aligning the sizes improves compression and improves caibx generation by
aligning chunk boundaries better.

in a test scenario of adding a single 128M random data file to /usr/lib
this brought the fragmentation from a couple thousand segments down to 8
(of which 5 are in the superblock and the new file appears as large
contiguous chunk delta). the actual download size is a 135M delta
2025-08-23 04:39:43 +02:00
Kristen McWilliam
dffa871ec7 fix: enable KISS service by default 2025-08-22 13:42:34 -04:00
Hadi Chokr
d49aab8fef Fix Typo 2025-08-22 15:30:06 +00:00
Hadi Chokr
ee81cd858c Add iwd as an option. 2025-08-22 15:27:04 +00:00
Nate Graham
e4dabff33c Use correct package name for trash tool
!fixup 0d3717f6f1
2025-08-22 09:16:19 -06:00