Files
kde-linux/mkosi.postinst.chroot
Harald Sitter e06c2765e9 Adopt BuildStream
This is a first step towards the adoption of BuildStream as a technology
to produce the binaries needed for KDE Linux.
2026-08-01 00:15:02 +02:00

117 lines
3.6 KiB
Bash
Executable File

#!/bin/bash
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
# SPDX-FileCopyrightText: 2023 Harald Sitter <sitter@kde.org>
set -ex
env
mkdir --mode 0700 /system # for the kde-linux-overlay.service
export SYSTEMD_ESP_PATH="$BOOT_MNT"
mkdir -p --mode 0700 "$SYSTEMD_ESP_PATH"
bootctl install
echo 'timeout 7' >> "$SYSTEMD_ESP_PATH/loader/loader.conf"
cp /usr/share/ovmf/Shell.efi "$SYSTEMD_ESP_PATH/"
rm -rf /usr/share/swcatalog
mkdir -p /usr/share/icons/default/
cat <<- EOF > /usr/share/icons/default/index.theme
[Icon Theme]
Inherits=breeze_cursors
EOF
[ -f /usr/lib/os-release ] || false
cat /usr/lib/os-release
# Rename the packaged kde-mimeapps.list to mimeapps.list
# This allows our kde-mimeapps.list to take precedence.
mv -v /usr/share/applications/kde-mimeapps.list /usr/share/applications/mimeapps.list
mv -v /usr/share/applications/kde-linux-mimeapps.list /usr/share/applications/kde-mimeapps.list
download_flatpaks() {
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
# Do this separately, when used as part of remote-add it complains about GPG for unknown reasons
flatpak remote-modify --collection-id=org.flathub.Stable flathub
# Setting "*" will let Flatpak download all languages at once
flatpak config --set languages "*"
kde_nightly=(
ark
gwenview
kcalc
keepsecret
haruna
okular
qrca
)
# Add Nightly repos
for app in "${kde_nightly[@]}"; do
flatpak remote-add --if-not-exists "${app}-nightly" \
"https://cdn.kde.org/flatpak/${app}-nightly/${app}-nightly.flatpakrepo"
done
# Flatpak ignores repo priorities, prompting for remote selection.
# Looping avoids this and keeps automation working.
# Issue: https://github.com/flatpak/flatpak/issues/5421
for app in "${kde_nightly[@]}"; do
flatpak install --or-update --noninteractive --assumeyes "${app}-nightly" "org.kde.${app}"
done
# Install KWrite from Flathub for now, until it has a nightly repo.
flatpak install --or-update --noninteractive --assumeyes flathub \
org.gtk.Gtk3theme.Breeze \
org.kde.kwrite \
org.mozilla.firefox
# And restore default
flatpak config --unset languages
}
download_flatpaks
# Fetch latest distrobox config from the kde-linux-containers repo
mkdir -p /usr/share/distrobox
curl --output /usr/share/distrobox/distrobox.conf \
'https://invent.kde.org/api/v4/projects/19899/repository/files/distrobox.conf/raw'
# Enable samba usershare
cat <<- EOF >> /etc/samba/smb.conf
[global]
usershare path = /var/lib/samba/usershares
usershare max shares = 100
usershare allow guests = yes
usershare owner only = yes
EOF
# Set default shell as zsh for new users
sed -i 's%^SHELL=/usr/bin/bash%SHELL=/usr/bin/zsh%' /etc/default/useradd
# Put new users in sambashare group
sed -i 's%^GROUP=users%GROUP=users\nGROUPS=sambashare%' /etc/default/useradd
# Our Plymouth Theme
KEEP_THEME="breeze-bgrt"
# Set default Plymouth Theme
plymouth-set-default-theme "$KEEP_THEME"
# Remove all other themes except KEEP_THEME, text, and details
for theme in $(plymouth-set-default-theme --list); do
if [[ "$theme" != "$KEEP_THEME" && "$theme" != "text" && "$theme" != "details" ]]; then
theme_dir="/usr/share/plymouth/themes/$theme"
[[ -d "$theme_dir" ]] && rm -rf -- "$theme_dir"
fi
done
for f in /etc/fdsdk/initial_scripts/*; do
$f /
done
# Safety nets to prevent excessive breakage
## sudo should have sticky bit set
[ -u /usr/bin/sudo ] || exit 1
## newuidmap should have a capability set
[ "$(getcap /usr/bin/newuidmap)" != "" ] || exit 1