Skip to content

Commit

Permalink
chore: create separate scripts and files for Silverblue and KDE builds (
Browse files Browse the repository at this point in the history
  • Loading branch information
p5 authored Apr 10, 2024
1 parent 100d37b commit dad615f
Show file tree
Hide file tree
Showing 45 changed files with 172 additions and 87 deletions.
95 changes: 10 additions & 85 deletions Containerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,93 +4,18 @@ ARG FEDORA_IMAGE=quay.io/fedora-ostree-desktops/${FEDORA_EDITION}:${FEDORA_VERSI

FROM ${FEDORA_IMAGE} as base

COPY files/usr /usr
ARG FEDORA_VERSION
ARG FEDORA_EDITION

# Setup /etc/bashrc.d
RUN cp /etc/bashrc /usr/etc/bashrc && \
echo -e "\nfor file in /etc/bashrc.d/*.sh; do\n source \"\$file\"\ndone\n" >> /usr/etc/bashrc && \
mkdir -p /usr/etc/bashrc.d \
&& \
rm -rf /var/* /tmp/* && \
ostree container commit

# Add udev rules from https://codeberg.org/fabiscafe/game-devices-udev/archive/main.zip
RUN curl -sL https://codeberg.org/fabiscafe/game-devices-udev/archive/main.zip -o /tmp/game-devices-udev.zip && \
unzip -q /tmp/game-devices-udev.zip -d /tmp && \
cp -r /tmp/game-devices-udev/* /usr/lib/udev/rules.d/ && \
mkdir /usr/etc/modules-load.d && \
echo "uinput" >> /usr/etc/modules-load.d/uinput.conf \
&& \
rm -rf /var/* /tmp/* && \
ostree container commit
COPY files/_base /
COPY files/_${FEDORA_EDITION} /

# Enable cliwrap - wrapper for interfacing with rpm-ostree using dnf/yum/grubby/rpm
RUN rpm-ostree cliwrap install-to-root / \
&& \
rm -rf /var/* /tmp/* && \
ostree container commit
COPY scripts/ /tmp/scripts

# Configure Flatpak
RUN mkdir -p /usr/etc/flatpak/remotes.d && \
wget -q https://dl.flathub.org/repo/flathub.flatpakrepo -P /usr/etc/flatpak/remotes.d \
&& \
systemctl enable rpm-ostreed-automatic.timer && \
systemctl enable flatpak-system-update.timer && \
systemctl enable flatpak-system-manager.service && \
systemctl enable setup-system-manager.service && \
systemctl --global enable flatpak-user-update.timer && \
systemctl --global enable flatpak-user-manager.service && \
systemctl --global enable setup-user-manager.service \
&& \
rm -rf /var/* /tmp/* && \
ostree container commit

# Configure repositories
RUN rpm-ostree install \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm && \
rpm-ostree install \
rpmfusion-nonfree-release \
rpmfusion-free-release \
--uninstall=rpmfusion-free-release-$(rpm -E %fedora)-1.noarch \
--uninstall=rpmfusion-nonfree-release-$(rpm -E %fedora)-1.noarch \
&& \
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/fedora-{updates-archive,cisco-openh264}.repo \
&& \
rm -rf /var/* /tmp/* && \
ostree container commit

# Remove unwanted packages
RUN rpm-ostree override remove \
firefox \
firefox-langpacks \
libavcodec-free \
libavfilter-free \
libavformat-free \
libavutil-free \
libpostproc-free \
libswresample-free \
libswscale-free \
&& \
rm -rf /var/* /tmp/* && \
ostree container commit

# Install packages
RUN rpm-ostree install \
bootc \
bootupd \
direnv \
distrobox \
ffmpeg \
ffmpeg-libs \
htop \
just \
neofetch \
openssl \
tmux \
zsh \
&& \
rm /usr/share/applications/htop.desktop \
RUN chmod +x /tmp/scripts/*.sh /tmp/scripts/*.sh /tmp/scripts/_${FEDORA_EDITION}/*.sh && \
/tmp/scripts/setup.sh --version ${FEDORA_VERSION} --base ${FEDORA_EDITION} && \
/tmp/scripts/cleanup.sh --version ${FEDORA_VERSION} --base ${FEDORA_EDITION} \
&& \
rm -rf /var/* /tmp/* && \
rpm-ostree cleanup -m && \
rm -rf /tmp/* /var/* && \
ostree container commit
2 changes: 1 addition & 1 deletion Containerfile.nvidia
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ FROM ${BASE_IMAGE_FULL} as base-nvidia

ARG FEDORA_VERSION

COPY files/_nvidia/usr /usr
COPY files/_nvidia /

COPY --from=akmods-nvidia /var/cache /var/cache
COPY --from=akmods-nvidia /tmp/nvidia-addons /tmp/nvidia-addons
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
6 changes: 6 additions & 0 deletions files/_kinoite/usr/etc/eternal/flatpak-manager/system/install
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
org.mozilla.firefox
org.kde.gwenview
org.kde.okular
org.kde.kcalc
org.kde.haruna
org.kde.filelight
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
org.mozilla.firefox
com.github.tchx84.Flatseal
com.mattjakeman.ExtensionManager
io.missioncenter.MissionCenter
Expand All @@ -17,4 +18,3 @@ org.gnome.Maps
org.gnome.NautilusPreviewer
org.gnome.TextEditor
org.gnome.Weather
org.mozilla.firefox
Empty file.
Empty file.
Empty file.
12 changes: 12 additions & 0 deletions scripts/_base/001-bashrc.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/usr/bin/env bash

set -euox pipefail

cp /etc/bashrc /usr/etc/bashrc
cat <<'EOF' >> /usr/etc/bashrc
for file in /etc/bashrc.d/*.sh; do
source "$file"
done
EOF

mkdir -p /usr/etc/bashrc.d
9 changes: 9 additions & 0 deletions scripts/_base/002-udev-rules.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env bash

set -euox pipefail

curl -sL https://codeberg.org/fabiscafe/game-devices-udev/archive/main.zip -o /tmp/game-devices-udev.zip
unzip -q /tmp/game-devices-udev.zip -d /tmp
cp -r /tmp/game-devices-udev/* /usr/lib/udev/rules.d/
mkdir /usr/etc/modules-load.d
echo "uinput" >> /usr/etc/modules-load.d/uinput.conf
5 changes: 5 additions & 0 deletions scripts/_base/003-rpm-ostree-clirwap.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env bash

set -euox pipefail

rpm-ostree cliwrap install-to-root /
15 changes: 15 additions & 0 deletions scripts/_base/004-flatpak.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/usr/bin/env bash

set -euox pipefail

mkdir -p /usr/etc/flatpak/remotes.d
wget -q https://dl.flathub.org/repo/flathub.flatpakrepo -P /usr/etc/flatpak/remotes.d

systemctl enable rpm-ostreed-automatic.timer

systemctl enable flatpak-system-update.timer
systemctl enable flatpak-system-manager.service
systemctl enable setup-system-manager.service
systemctl --global enable flatpak-user-update.timer
systemctl --global enable flatpak-user-manager.service
systemctl --global enable setup-user-manager.service
16 changes: 16 additions & 0 deletions scripts/_base/005-rpmfusion.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/usr/bin/env bash

set -euox pipefail

# Setup RPMFusion repositories
rpm-ostree install \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

rpm-ostree install \
rpmfusion-nonfree-release \
rpmfusion-free-release \
--uninstall=rpmfusion-free-release-$(rpm -E %fedora)-1.noarch \
--uninstall=rpmfusion-nonfree-release-$(rpm -E %fedora)-1.noarch

sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/fedora-{updates-archive,cisco-openh264}.repo
14 changes: 14 additions & 0 deletions scripts/_base/006-delete-packages.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/usr/bin/env bash

set -euox pipefail

rpm-ostree override remove \
firefox \
firefox-langpacks \
libavcodec-free \
libavfilter-free \
libavformat-free \
libavutil-free \
libpostproc-free \
libswresample-free \
libswscale-free
20 changes: 20 additions & 0 deletions scripts/_base/007-install-packages.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#!/usr/bin/env bash

set -euox pipefail

rpm-ostree install \
bootc \
bootupd \
direnv \
distrobox \
ffmpeg \
ffmpeg-libs \
htop \
just \
neofetch \
openssl \
tmux \
zsh

# Remove unwanted desktop icons
rm /usr/share/applications/htop.desktop
3 changes: 3 additions & 0 deletions scripts/_kinoite/001-sample.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash

set -euox pipefail
3 changes: 3 additions & 0 deletions scripts/_silverblue/001-sample.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash

set -euox pipefail
5 changes: 5 additions & 0 deletions scripts/cleanup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env bash

set -euox pipefail

sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/rpmfusion-{free,nonfree}{,-updates,-updates-testing}.repo
52 changes: 52 additions & 0 deletions scripts/setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#!/usr/bin/env bash

set -euox pipefail

BASE=""
FEDORA_VERSION=""

while [[ $# -gt 0 ]]; do
case "$1" in
--base)
BASE="$2"
shift 2
;;
--version)
FEDORA_VERSION="$2"
shift 2
;;
*)
echo "Unknown argument: $1"
exit 1
;;
esac
done

if [[ -z "$BASE" ]]; then
echo "--base flag is required"
exit 1
fi

if [[ -z "$FEDORA_VERSION" ]]; then
echo "--version flag is required"
exit 1
fi

for script in /tmp/scripts/_base/*.sh; do
if [[ -f "$script" ]]; then
echo "Running $script"
bash "$script" --version "$FEDORA_VERSION"
fi
done

# If the image is BASE, then we don't need to run the same scripts again
if [[ "$BASE" == "base" ]]; then
exit 0
fi

for script in /tmp/scripts/_$BASE/*.sh; do
if [[ -f "$script" ]]; then
echo "Running $script"
bash "$script" --version "$FEDORA_VERSION"
fi
done

0 comments on commit dad615f

Please sign in to comment.