Skip to content

Commit

Permalink
feat(ci): Build images based on Fedora 39 (#332)
Browse files Browse the repository at this point in the history
* feat: Build images based on Fedora 39

* fix(f39): Install kernel specific kmods

Installs kmods specific to the kernel/image flavor being used as ASUS and Surface no longer include these

* fix(f39): Skip Mesa for now, install 32bit version of Gamescope

* chore: Switch to Gradience flatpak

* chore: Syntax fix

---------

Co-authored-by: Kyle Gospodnetich <me@kylegospodneti.ch>
  • Loading branch information
EyeCantCU and KyleGospo committed Oct 13, 2023
1 parent 1682676 commit 631423b
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 54 deletions.
13 changes: 12 additions & 1 deletion .github/workflows/build.yml
Expand Up @@ -39,14 +39,17 @@ jobs:
image_flavor: [main, nvidia, asus, asus-nvidia, framework, surface, surface-nvidia]
base_name: [bazzite, bazzite-deck]
base_image_name: [kinoite, silverblue]
major_version: [38]
major_version: [38, 39]
include:
- major_version: 38
is_latest_version: false
is_stable_version: true
- major_version: 38
is_latest_version: true
is_stable_version: true
- major_version: 38
is_latest_version: true
is_stable_version: false
exclude:
- base_name: bazzite-deck
image_flavor: nvidia
Expand Down Expand Up @@ -86,6 +89,13 @@ jobs:
echo "IMAGE_NAME=${{ format('{0}{1}-{2}', matrix.base_name, '${DESKTOP}', matrix.image_flavor) }}" >> $GITHUB_ENV
fi
fi
if [[ "${{ matrix.image_flavor }}" =~ "asus" ]]; then
echo "AKMODS_FLAVOR=asus" >> $GITHUB_ENV
elif [[ "${{ matrix.image_flavor }}" =~ "surface" ]]; then
echo "AKMODS_FLAVOR=surface" >> $GITHUB_ENV
else
echo "AKMODS_FLAVOR=main" >> $GITHUB_ENV
fi
- name: Generate tags
id: generate-tags
Expand Down Expand Up @@ -163,6 +173,7 @@ jobs:
IMAGE_FLAVOR=${{ matrix.image_flavor }}
BASE_IMAGE_NAME=${{ matrix.base_image_name }}
FEDORA_MAJOR_VERSION=${{ matrix.major_version }}
AKMODS_FLAVOR=${{ env.AKMODS_FLAVOR }}
labels: ${{ steps.meta.outputs.labels }}
oci: false
extra-args: |
Expand Down
70 changes: 30 additions & 40 deletions Containerfile
@@ -1,5 +1,6 @@
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME:-kinoite}"
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-main}"
ARG AKMODS_FLAVOR="${AKMODS_FLAVOR:-main}"
ARG SOURCE_IMAGE="${SOURCE_IMAGE:-$BASE_IMAGE_NAME-$IMAGE_FLAVOR}"
ARG BASE_IMAGE="ghcr.io/ublue-os/${SOURCE_IMAGE}"
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-38}"
Expand All @@ -8,16 +9,16 @@ FROM ${BASE_IMAGE}:${FEDORA_MAJOR_VERSION} AS bazzite

ARG IMAGE_NAME="${IMAGE_NAME}"
ARG IMAGE_VENDOR="ublue-os"
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME}"
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR}"
ARG AKMODS_FLAVOR="${AKMODS_FLAVOR}"
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME}"
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}"

COPY system_files/desktop/shared system_files/desktop/${BASE_IMAGE_NAME} /

# Add ublue packages, add needed negativo17 repo and then immediately disable due to incompatibility with RPMFusion
COPY --from=ghcr.io/ublue-os/akmods:main-${FEDORA_MAJOR_VERSION} /rpms /tmp/akmods-rpms
RUN if [[ "${IMAGE_FLAVOR}" = "main" || "${IMAGE_NAME}" = "nvidia" ]]; then \
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo && \
COPY --from=ghcr.io/ublue-os/akmods:${AKMODS_FLAVOR}-${FEDORA_MAJOR_VERSION} /rpms /tmp/akmods-rpms
RUN sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo && \
wget https://negativo17.org/repos/fedora-multimedia.repo -O /etc/yum.repos.d/negativo17-fedora-multimedia.repo && \
if [[ "${FEDORA_MAJOR_VERSION}" -ge "39" ]]; then \
rpm-ostree install \
Expand All @@ -39,8 +40,7 @@ RUN if [[ "${IMAGE_FLAVOR}" = "main" || "${IMAGE_NAME}" = "nvidia" ]]; then \
/tmp/akmods-rpms/kmods/*winesync*.rpm && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/negativo17-fedora-multimedia.repo && \
mkdir -p /etc/akmods-rpms/ && \
mv /tmp/akmods-rpms/kmods/*steamdeck*.rpm /etc/akmods-rpms/steamdeck.rpm \
; fi
mv /tmp/akmods-rpms/kmods/*steamdeck*.rpm /etc/akmods-rpms/steamdeck.rpm

# Setup Copr repos
RUN wget https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite/repo/fedora-$(rpm -E %fedora)/kylegospo-bazzite-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_kylegospo-bazzite.repo && \
Expand All @@ -54,7 +54,6 @@ RUN wget https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite/repo/fedora-$
wget https://copr.fedorainfracloud.org/coprs/kylegospo/wallpaper-engine-kde-plugin/repo/fedora-$(rpm -E %fedora)/kylegospo-wallpaper-engine-kde-plugin-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_kylegospo-wallpaper-engine-kde-plugin.repo && \
wget https://copr.fedorainfracloud.org/coprs/kylegospo/gnome-vrr/repo/fedora-$(rpm -E %fedora)/kylegospo-gnome-vrr-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_kylegospo-gnome-vrr.repo && \
wget https://copr.fedorainfracloud.org/coprs/ycollet/audinux/repo/fedora-$(rpm -E %fedora)/ycollet-audinux-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_ycollet-audinux.repo && \
wget https://copr.fedorainfracloud.org/coprs/lyessaadi/gradience/repo/fedora-$(rpm -E %fedora)/lyessaadi-gradience-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_lyessaadi-gradience.repo && \
wget https://copr.fedorainfracloud.org/coprs/kylegospo/rom-properties/repo/fedora-$(rpm -E %fedora)/kylegospo-rom-properties-fedora-$(rpm -E %fedora).repo -O /etc/yum.repos.d/_copr_kylegospo-rom-properties.repo && \
wget https://pkgs.tailscale.com/stable/fedora/tailscale.repo -O /etc/yum.repos.d/tailscale.repo && \
sed -i 's@gpgcheck=1@gpgcheck=0@g' /etc/yum.repos.d/tailscale.repo
Expand Down Expand Up @@ -118,7 +117,7 @@ RUN if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
kdeconnectd \
extest.i686 \
rom-properties-kf5 && \
if [ ${FEDORA_MAJOR_VERSION} -lt 39 ]; then \
if [[ "${FEDORA_MAJOR_VERSION}" -lt "39" ]]; then \
rpm-ostree override replace \
--experimental \
--from repo=copr:copr.fedorainfracloud.org:kylegospo:gnome-vrr \
Expand All @@ -135,7 +134,7 @@ RUN if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
rm -rf /tmp/wallpaper-engine-kde-plugin && \
sed -i 's@After=plasma-core.target@After=plasma-core.target\nAfter=xdg-desktop-portal.service@g' /usr/lib/systemd/user/plasma-xdg-desktop-portal-kde.service \
; else \
if [ ${FEDORA_MAJOR_VERSION} -lt 39 ]; then \
if [[ "${FEDORA_MAJOR_VERSION}" -lt "39" ]]; then \
rpm-ostree override replace \
--experimental \
--from repo=copr:copr.fedorainfracloud.org:kylegospo:gnome-vrr \
Expand All @@ -156,7 +155,6 @@ RUN if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
rpm-ostree install \
xwaylandvideobridge \
steamdeck-backgrounds \
gradience \
gnome-randr-rust \
gnome-shell-extension-user-theme \
gnome-shell-extension-gsconnect \
Expand Down Expand Up @@ -250,9 +248,7 @@ RUN /tmp/image-info.sh && \
pip install --prefix=/usr yafti && \
pip install --prefix=/usr hyfetch && \
sed -i 's/stage/none/g' /etc/rpm-ostreed.conf && \
if [[ "${IMAGE_FLAVOR}" = "main" || "${IMAGE_NAME}" = "nvidia" ]]; then \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo \
; fi && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-bazzite.repo && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-bazzite-multilib.repo && \
sed -i 's@enabled=1@enabeld=0@g' /etc/yum.repos.d/_copr_ublue-os-staging.repo && \
Expand All @@ -264,15 +260,14 @@ RUN /tmp/image-info.sh && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-wallpaper-engine-kde-plugin.repo && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-gnome-vrr.repo && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ycollet-audinux.repo && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_lyessaadi-gradience.repo && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-rom-properties.repo && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/tailscale.repo && \
sed -i 's/#DefaultTimeoutStopSec.*/DefaultTimeoutStopSec=15s/' /etc/systemd/user.conf && \
sed -i 's/#DefaultTimeoutStopSec.*/DefaultTimeoutStopSec=15s/' /etc/systemd/system.conf && \
mkdir -p /usr/etc/flatpak/remotes.d && \
wget -q https://dl.flathub.org/repo/flathub.flatpakrepo -P /usr/etc/flatpak/remotes.d && \
systemctl enable com.system76.Scheduler.service && \
if [[ "${IMAGE_FLAVOR}" = "main" || "${IMAGE_NAME}" = "nvidia" ]]; then \
if [[ "${FEDORA_MAJOR_VERSION}" -lt "39" ]]; then \
systemctl enable displaylink.service \
; fi && \
systemctl enable btrfs-dedup@var-home.timer && \
Expand Down Expand Up @@ -310,16 +305,14 @@ FROM bazzite as bazzite-deck

ARG IMAGE_NAME="${IMAGE_NAME}"
ARG IMAGE_VENDOR="ublue-os"
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME}"
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR}"
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME}"
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION}"

COPY system_files/deck/shared system_files/deck/${BASE_IMAGE_NAME} /

# Setup Copr repos
RUN if [[ "${IMAGE_FLAVOR}" = "main" || "${IMAGE_NAME}" = "nvidia" ]]; then \
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo \
; fi && \
RUN sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo && \
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_kylegospo-bazzite.repo && \
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_kylegospo-bazzite-multilib.repo && \
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_kylegospo-latencyflex.repo && \
Expand All @@ -329,32 +322,30 @@ RUN if [[ "${IMAGE_FLAVOR}" = "main" || "${IMAGE_NAME}" = "nvidia" ]]; then \
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ycollet-audinux.repo

# Install Valve's Steam Deck drivers as kmod
RUN if [[ "${IMAGE_FLAVOR}" = "main" || "${IMAGE_NAME}" = "nvidia" ]]; then \
rpm-ostree install \
RUN rpm-ostree install \
/etc/akmods-rpms/steamdeck.rpm && \
rm -rf /etc/akmods-rpms \
; fi
rm -rf /etc/akmods-rpms

# Install gamescope-limiter patched Mesa and patched udisks2 (Needed for SteamOS SD card mounting)
RUN rpm-ostree override replace \
--experimental \
--from repo=copr:copr.fedorainfracloud.org:kylegospo:bazzite-multilib \
mesa-filesystem \
mesa-dri-drivers \
mesa-libEGL \
mesa-libEGL-devel \
mesa-libgbm \
mesa-libGL \
mesa-libglapi \
mesa-vulkan-drivers && \
if [ ${FEDORA_MAJOR_VERSION} -lt 39 ]; then \
rpm-ostree override replace \
RUN if [[ "${FEDORA_MAJOR_VERSION}" -lt "39" ]]; then \
rpm-ostree override replace \
--experimental \
--from repo=copr:copr.fedorainfracloud.org:kylegospo:bazzite-multilib \
mesa-filesystem \
mesa-dri-drivers \
mesa-libEGL \
mesa-libEGL-devel \
mesa-libgbm \
mesa-libGL \
mesa-libglapi \
mesa-vulkan-drivers && \
rpm-ostree override replace \
--experimental \
--from repo=copr:copr.fedorainfracloud.org:kylegospo:bazzite \
udisks2 \
libudisks2 \
udisks2-btrfs \
; fi
; fi

# Configure KDE & GNOME
RUN if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
Expand Down Expand Up @@ -460,6 +451,7 @@ RUN rpm-ostree install \
wxGTK \
libFAudio \
gamescope \
gamescope.i686 \
gamescope-session \
wine-core \
winetricks \
Expand Down Expand Up @@ -492,9 +484,7 @@ RUN /tmp/image-info.sh && \
; fi && \
cp "/usr/share/ublue-os/firstboot/yafti.yml" "/usr/etc/yafti.yml" && \
sed -i 's/#HandlePowerKey=poweroff/HandlePowerKey=suspend/g' /etc/systemd/logind.conf && \
if [[ "${IMAGE_FLAVOR}" = "main" || "${IMAGE_NAME}" = "nvidia" ]]; then \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo \
; fi && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-bazzite.repo && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-bazzite-multilib.repo && \
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/_copr_kylegospo-latencyflex.repo && \
Expand Down
3 changes: 1 addition & 2 deletions README.md
Expand Up @@ -194,7 +194,7 @@ Ported SteamOS and ChimeraOS packages, among others used by Bazzite, are built o
|ds-inhibit|![Build Status](https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite/package/ds-inhibit/status_image/last_build.png?)|
|duperemove|![Build Status](https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite/package/duperemove/status_image/last_build.png?)|
|[extest](https://github.com/Supreeeme/extest)|![Build Status](https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite-multilib/package/extest/status_image/last_build.png?)|
|gamescope|![Build Status](https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite/package/gamescope/status_image/last_build.png?)|
|gamescope|![Build Status](https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite-multilib/package/gamescope/status_image/last_build.png?)|
|[gamescope-session](https://github.com/ChimeraOS/gamescope-session)|![Build Status](https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite/package/gamescope-session/status_image/last_build.png?)|
|[gnome-randr-rust](https://github.com/maxwellainatchi/gnome-randr-rust)|![Build Status](https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite/package/gnome-randr-rust/status_image/last_build.png?)|
|gnome-shell-extension-bazzite-menu|![Build Status](https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite/package/gnome-shell-extension-bazzite-menu/status_image/last_build.png?)|
Expand Down Expand Up @@ -224,7 +224,6 @@ Additionally, the following packages are used from other Copr repos:
|---|---|
|[gcadapter_oc-kmod](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/)|![Build Status](https://copr.fedorainfracloud.org/coprs/ublue-os/akmods/package/gcadapter_oc-kmod/status_image/last_build.png?)|
|[gnome-vrr](https://copr.fedorainfracloud.org/coprs/kylegospo/gnome-vrr/)|![Build Status](https://copr.fedorainfracloud.org/coprs/kylegospo/gnome-vrr/package/mutter/status_image/last_build.png?)|
|[gradience](https://copr.fedorainfracloud.org/coprs/lyessaadi/gradience/)|![Build Status](https://copr.fedorainfracloud.org/coprs/lyessaadi/gradience/package/gradience/status_image/last_build.png?)|
|[hl2linux-selinux](https://copr.fedorainfracloud.org/coprs/kylegospo/hl2linux-selinux/)|![Build Status](https://copr.fedorainfracloud.org/coprs/kylegospo/hl2linux-selinux/package/hl2linux-selinux/status_image/last_build.png?)|
|[latencyflex-vulkan-layer](https://copr.fedorainfracloud.org/coprs/kylegospo/LatencyFleX/)|![Build Status](https://copr.fedorainfracloud.org/coprs/kylegospo/LatencyFleX/package/latencyflex-vulkan-layer/status_image/last_build.png?)|
|[noise-suppression-for-voice](https://copr.fedorainfracloud.org/coprs/ycollet/audinux/)|![Build Status](https://copr.fedorainfracloud.org/coprs/ycollet/audinux/package/noise-suppression-for-voice/status_image/last_build.png?)|
Expand Down
@@ -1,7 +1,7 @@
#!/usr/bin/env bash

# Script Version
VER=1
VER=2
VER_FILE="/etc/bazzite/flatpak_manager_version"
VER_RAN=$(cat $VER_FILE)

Expand Down
12 changes: 6 additions & 6 deletions system_files/desktop/shared/usr/bin/bazzite-user-setup
@@ -1,7 +1,7 @@
#!/usr/bin/env bash

# SCRIPT VERSION
USER_SETUP_VER=7
USER_SETUP_VER=8
USER_SETUP_VER_FILE="$HOME/.bazzite-configured"
USER_SETUP_VER_RAN=$(cat $USER_SETUP_VER_FILE)

Expand Down Expand Up @@ -60,12 +60,12 @@ else
gsettings set org.gtk.gtk4.settings.file-chooser sort-directories-first true

echo 'Installing Gradience presets'
mkdir -p $HOME/.config/presets/user/
if [[ ! -f "$HOME/.config/presets/user/vapor.json" ]]; then
ln -s /usr/share/ublue-os/bazzite/themes/vapor.json $HOME/.config/presets/user/vapor.json
mkdir -p "$HOME/.var/app/com.github.GradienceTeam.Gradience/config/presets/user/"
if [[ ! -f "$HOME/.var/app/com.github.GradienceTeam.Gradience/config/presets/user/vapor.json" ]]; then
ln -s /usr/share/ublue-os/bazzite/themes/vapor.json $HOME/.var/app/com.github.GradienceTeam.Gradience/config/presets/user/vapor.json
fi
if [[ ! -f "$HOME/.config/presets/user/vgui2.json" ]]; then
ln -s /usr/share/ublue-os/bazzite/themes/vgui2.json $HOME/.config/presets/user/vgui2.json
if [[ ! -f "$HOME/.var/app/com.github.GradienceTeam.Gradience/config/presets/user/vgui2.json" ]]; then
ln -s /usr/share/ublue-os/bazzite/themes/vgui2.json $HOME/.var/app/com.github.GradienceTeam.Gradience/config/presets/user/vgui2.json
fi

if [[ $IMAGE_NAME =~ "deck" || $IMAGE_NAME =~ "ally" || $IMAGE_NAME =~ "framegame" ]]; then
Expand Down
Expand Up @@ -171,10 +171,10 @@ enable-vapor-theme:
gsettings set org.gnome.desktop.interface document-font-name "Noto Sans 11"
gsettings set org.gnome.desktop.interface font-name "Noto Sans 11"
gsettings set org.gnome.desktop.sound theme-name "steam"
gradience-cli flatpak-overrides -e both
flatpak run --command=gradience-cli com.github.GradienceTeam.Gradience flatpak-overrides -e both
sudo flatpak override --filesystem=xdg-config/gtk-4.0
sudo flatpak override --filesystem=xdg-config/gtk-3.0
gradience-cli apply -p /usr/share/ublue-os/bazzite/themes/vapor.json
flatpak run --command=gradience-cli com.github.GradienceTeam.Gradience apply -n "Vapor"
else
echo "This is only supported under GNOME."
fi
Expand All @@ -196,10 +196,10 @@ enable-vgui2-theme:
gsettings set org.gnome.desktop.interface document-font-name "Noto Sans 11"
gsettings set org.gnome.desktop.interface font-name "Noto Sans 11"
gsettings set org.gnome.desktop.sound theme-name "steam"
gradience-cli flatpak-overrides -e both
flatpak run --command=gradience-cli com.github.GradienceTeam.Gradience flatpak-overrides -e both
sudo flatpak override --filesystem=xdg-config/gtk-4.0
sudo flatpak override --filesystem=xdg-config/gtk-3.0
gradience-cli apply -p /usr/share/ublue-os/bazzite/themes/vgui2.json
flatpak run --command=gradience-cli com.github.GradienceTeam.Gradience apply -n "VGUI2"
else
echo "This is only supported under GNOME."
fi
Expand Down
1 change: 1 addition & 0 deletions system_files/desktop/silverblue/usr/etc/flatpak/install
@@ -1,4 +1,5 @@
org.mozilla.firefox
com.github.GradienceTeam.Gradience
com.mattjakeman.ExtensionManager
it.mijorus.gearlever
com.github.tchx84.Flatseal
Expand Down

0 comments on commit 631423b

Please sign in to comment.