mirror of
https://github.com/ublue-os/bazzite.git
synced 2025-02-20 15:40:35 +00:00
Merge branch 'testing'
This commit is contained in:
commit
2ca786e02a
53
.github/workflows/build.yml
vendored
53
.github/workflows/build.yml
vendored
@ -1,32 +1,32 @@
|
||||
name: Build Bazzite
|
||||
on:
|
||||
schedule:
|
||||
- cron: '40 4 * * 2,5' # 4:40 utc tues thurs
|
||||
- cron: "40 4 * * 2,5" # 4:40 utc tues thurs
|
||||
pull_request:
|
||||
branches:
|
||||
- testing
|
||||
- unstable
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
- '**.txt'
|
||||
- 'installer/**'
|
||||
- 'repo_content/**'
|
||||
- 'spec_files/**'
|
||||
- 'post_install_files/**'
|
||||
- 'press_kit/**'
|
||||
- '.github/workflows/build_iso.yml'
|
||||
- "**.md"
|
||||
- "**.txt"
|
||||
- "installer/**"
|
||||
- "repo_content/**"
|
||||
- "spec_files/**"
|
||||
- "post_install_files/**"
|
||||
- "press_kit/**"
|
||||
- ".github/workflows/build_iso.yml"
|
||||
push:
|
||||
branches:
|
||||
- testing
|
||||
- unstable
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
- '**.txt'
|
||||
- 'repo_content/**'
|
||||
- 'spec_files/**'
|
||||
- 'post_install_files/**'
|
||||
- 'press_kit/**'
|
||||
- '.github/workflows/build_iso.yml'
|
||||
- "**.md"
|
||||
- "**.txt"
|
||||
- "repo_content/**"
|
||||
- "spec_files/**"
|
||||
- "post_install_files/**"
|
||||
- "press_kit/**"
|
||||
- ".github/workflows/build_iso.yml"
|
||||
merge_group:
|
||||
workflow_dispatch:
|
||||
env:
|
||||
@ -57,7 +57,7 @@ jobs:
|
||||
- fedora_version: 40
|
||||
is_latest_version: true
|
||||
is_stable_version: true
|
||||
kernel_flavor: fsync # must match a kernel_flavor from akmods repo
|
||||
kernel_flavor: fsync # must match a kernel_flavor from akmods repo
|
||||
steps:
|
||||
- name: Define env.IMAGE_FLAVOR
|
||||
run: |
|
||||
@ -261,6 +261,25 @@ jobs:
|
||||
extra-args: |
|
||||
--target=${{ matrix.base_name }}
|
||||
|
||||
- name: Check Secureboot
|
||||
shell: bash
|
||||
run: |
|
||||
set -x
|
||||
if [[ ! $(command -v sbverify) || ! $(command -v curl) || ! $(command -v openssl) ]]; then
|
||||
sudo apt update
|
||||
sudo apt install sbsigntool curl openssl
|
||||
fi
|
||||
podman run -d --rm --name ${{env.IMAGE_NAME}}-$(echo "${{ steps.generate-tags.outputs.alias_tags }}" | cut -d " " -f 1) "${{ env.IMAGE_NAME }}":$(echo "${{ steps.generate-tags.outputs.alias_tags }}" | cut -d " " -f 1) sleep 1000
|
||||
podman cp ${{env.IMAGE_NAME}}-$(echo "${{ steps.generate-tags.outputs.alias_tags }}" | cut -d " " -f 1):/usr/lib/modules/${{ env.KERNEL_VERSION }}/vmlinuz .
|
||||
podman rm -f ${{env.IMAGE_NAME}}-$(echo "${{ steps.generate-tags.outputs.alias_tags }}" | cut -d " " -f 1)
|
||||
sbverify --list vmlinuz
|
||||
curl --retry 3 -Lo kernel-sign.der https://github.com/ublue-os/kernel-cache/raw/main/certs/public_key.der
|
||||
curl --retry 3 -Lo akmods.der https://github.com/ublue-os/kernel-cache/raw/main/certs/public_key_2.der
|
||||
openssl x509 -in kernel-sign.der -out kernel-sign.crt
|
||||
openssl x509 -in akmods.der -out akmods.crt
|
||||
sbverify --cert kernel-sign.crt vmlinuz || exit 1
|
||||
sbverify --cert akmods.crt vmlinuz || exit 1
|
||||
|
||||
# Workaround bug where capital letters in your GitHub username make it impossible to push to GHCR.
|
||||
# https://github.com/macbre/push-to-ghcr/issues/12
|
||||
- name: Lowercase Registry
|
||||
|
116
Containerfile
116
Containerfile
@ -30,7 +30,8 @@ ARG CODE_NAME="${CODE_NAME:-Holographic}"
|
||||
COPY system_files/desktop/shared system_files/desktop/${BASE_IMAGE_NAME} /
|
||||
|
||||
# Update packages that commonly cause build issues
|
||||
RUN rpm-ostree override replace \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
rpm-ostree override replace \
|
||||
--experimental \
|
||||
--from repo=updates \
|
||||
vulkan-loader \
|
||||
@ -53,7 +54,14 @@ RUN rpm-ostree override replace \
|
||||
rpm-ostree override replace \
|
||||
--experimental \
|
||||
--from repo=updates \
|
||||
gtk3 \
|
||||
nspr \
|
||||
|| true && \
|
||||
rpm-ostree override replace \
|
||||
--experimental \
|
||||
--from repo=updates \
|
||||
nss-softokn \
|
||||
nss-softokn-freebl \
|
||||
nss-util \
|
||||
|| true && \
|
||||
rpm-ostree override replace \
|
||||
--experimental \
|
||||
@ -130,10 +138,12 @@ RUN rpm-ostree override replace \
|
||||
rpm-ostree override remove \
|
||||
glibc32 \
|
||||
|| true && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Setup Copr repos
|
||||
RUN curl -Lo /usr/bin/copr https://raw.githubusercontent.com/ublue-os/COPR-command/main/copr && \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
curl -Lo /usr/bin/copr https://raw.githubusercontent.com/ublue-os/COPR-command/main/copr && \
|
||||
chmod +x /usr/bin/copr && \
|
||||
curl -Lo /etc/yum.repos.d/_copr_kylegospo-bazzite.repo https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite/repo/fedora-"${FEDORA_MAJOR_VERSION}"/kylegospo-bazzite-fedora-"${FEDORA_MAJOR_VERSION}".repo && \
|
||||
curl -Lo /etc/yum.repos.d/_copr_kylegospo-bazzite-multilib.repo https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite-multilib/repo/fedora-"${FEDORA_MAJOR_VERSION}"/kylegospo-bazzite-multilib-fedora-"${FEDORA_MAJOR_VERSION}".repo?arch=x86_64 && \
|
||||
@ -157,11 +167,13 @@ RUN curl -Lo /usr/bin/copr https://raw.githubusercontent.com/ublue-os/COPR-comma
|
||||
curl -Lo /etc/yum.repos.d/_copr_rodoma92-rmlint.repo https://copr.fedorainfracloud.org/coprs/rodoma92/rmlint/repo/fedora-"${FEDORA_MAJOR_VERSION}"/rodoma92-rmlint-fedora-"${FEDORA_MAJOR_VERSION}".repo && \
|
||||
curl -Lo /etc/yum.repos.d/tailscale.repo https://pkgs.tailscale.com/stable/fedora/tailscale.repo && \
|
||||
sed -i 's@gpgcheck=1@gpgcheck=0@g' /etc/yum.repos.d/tailscale.repo && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Install kernel-fsync
|
||||
COPY --from=fsync /tmp/rpms /tmp/fsync-rpms
|
||||
RUN rpm-ostree cliwrap install-to-root / && \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
--mount=type=bind,from=fsync,src=/tmp/rpms,dst=/tmp/fsync-rpms \
|
||||
rpm-ostree cliwrap install-to-root / && \
|
||||
if [[ "${KERNEL_FLAVOR}" =~ "fsync" ]]; then \
|
||||
echo "Will install ${KERNEL_FLAVOR} kernel" && \
|
||||
rpm-ostree override replace \
|
||||
@ -175,10 +187,12 @@ RUN rpm-ostree cliwrap install-to-root / && \
|
||||
; fi && \
|
||||
rpm-ostree install \
|
||||
scx_lavd && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Setup firmware
|
||||
RUN mkdir -p /tmp/linux-firmware-neptune && \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
mkdir -p /tmp/linux-firmware-neptune && \
|
||||
curl -Lo /tmp/linux-firmware-neptune/cs35l41-dsp1-spk-cali.bin https://gitlab.com/evlaV/linux-firmware-neptune/-/raw/"${JUPITER_KERNEL_VERSION}"/cs35l41-dsp1-spk-cali.bin && \
|
||||
curl -Lo /tmp/linux-firmware-neptune/cs35l41-dsp1-spk-cali.wmfw https://gitlab.com/evlaV/linux-firmware-neptune/-/raw/"${JUPITER_KERNEL_VERSION}"/cs35l41-dsp1-spk-cali.wmfw && \
|
||||
curl -Lo /tmp/linux-firmware-neptune/cs35l41-dsp1-spk-prot.bin https://gitlab.com/evlaV/linux-firmware-neptune/-/raw/"${JUPITER_KERNEL_VERSION}"/cs35l41-dsp1-spk-prot.bin && \
|
||||
@ -212,12 +226,14 @@ RUN mkdir -p /tmp/linux-firmware-neptune && \
|
||||
cp -rf /tmp/asus-firmware/* /usr/lib/firmware/ && \
|
||||
rm -rf /tmp/asus-firmware \
|
||||
; fi && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Add ublue packages, add needed negativo17 repo and then immediately disable due to incompatibility with RPMFusion
|
||||
COPY --from=akmods /rpms /tmp/akmods-rpms
|
||||
COPY --from=akmods-extra /rpms /tmp/akmods-rpms
|
||||
RUN sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo && \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
--mount=type=bind,from=akmods,src=/rpms,dst=/tmp/akmods-rpms \
|
||||
--mount=type=bind,from=akmods-extra,src=/rpms,dst=/tmp/akmods-extra-rpms \
|
||||
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo && \
|
||||
curl -Lo /etc/yum.repos.d/negativo17-fedora-multimedia.repo https://negativo17.org/repos/fedora-multimedia.repo && \
|
||||
rpm-ostree install \
|
||||
/tmp/akmods-rpms/kmods/*kvmfr*.rpm \
|
||||
@ -225,22 +241,24 @@ RUN sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ublue-os-akmods.repo
|
||||
/tmp/akmods-rpms/kmods/*openrazer*.rpm \
|
||||
/tmp/akmods-rpms/kmods/*v4l2loopback*.rpm \
|
||||
/tmp/akmods-rpms/kmods/*wl*.rpm \
|
||||
/tmp/akmods-rpms/kmods/*gcadapter_oc*.rpm \
|
||||
/tmp/akmods-rpms/kmods/*nct6687*.rpm \
|
||||
/tmp/akmods-rpms/kmods/*evdi*.rpm \
|
||||
/tmp/akmods-rpms/kmods/*zenergy*.rpm \
|
||||
/tmp/akmods-rpms/kmods/*vhba*.rpm \
|
||||
/tmp/akmods-rpms/kmods/*ayaneo-platform*.rpm \
|
||||
/tmp/akmods-rpms/kmods/*ayn-platform*.rpm \
|
||||
/tmp/akmods-rpms/kmods/*framework-laptop*.rpm \
|
||||
/tmp/akmods-rpms/kmods/*bmi260*.rpm \
|
||||
/tmp/akmods-rpms/kmods/*ryzen-smu*.rpm && \
|
||||
/tmp/akmods-extra-rpms/kmods/*gcadapter_oc*.rpm \
|
||||
/tmp/akmods-extra-rpms/kmods/*nct6687*.rpm \
|
||||
/tmp/akmods-extra-rpms/kmods/*zenergy*.rpm \
|
||||
/tmp/akmods-extra-rpms/kmods/*vhba*.rpm \
|
||||
/tmp/akmods-extra-rpms/kmods/*ayaneo-platform*.rpm \
|
||||
/tmp/akmods-extra-rpms/kmods/*ayn-platform*.rpm \
|
||||
/tmp/akmods-extra-rpms/kmods/*bmi260*.rpm \
|
||||
/tmp/akmods-extra-rpms/kmods/*ryzen-smu*.rpm && \
|
||||
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/negativo17-fedora-multimedia.repo && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Install Valve's patched Mesa, Pipewire, Bluez, and Xwayland
|
||||
# Install patched switcheroo control with proper discrete GPU support
|
||||
RUN rpm-ostree override remove \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
rpm-ostree override remove \
|
||||
mesa-va-drivers-freeworld && \
|
||||
rpm-ostree override replace \
|
||||
--experimental \
|
||||
@ -276,18 +294,22 @@ RUN rpm-ostree override remove \
|
||||
--experimental \
|
||||
--from repo=copr:copr.fedorainfracloud.org:sentry:switcheroo-control_discrete \
|
||||
switcheroo-control && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Remove unneeded packages
|
||||
RUN rpm-ostree override remove \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
rpm-ostree override remove \
|
||||
ublue-os-update-services \
|
||||
firefox \
|
||||
firefox-langpacks \
|
||||
htop && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Install new packages
|
||||
RUN rpm-ostree install \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
rpm-ostree install \
|
||||
discover-overlay \
|
||||
python3-pip \
|
||||
libadwaita \
|
||||
@ -354,10 +376,12 @@ RUN rpm-ostree install \
|
||||
curl -Lo /usr/bin/install-mf-wmv https://github.com/KyleGospo/steam-proton-mf-wmv/blob/master/install-mf-wmv.sh && \
|
||||
chmod +x /usr/bin/install-mf-wmv && \
|
||||
curl -Lo /usr/share/thumbnailers/exe-thumbnailer.thumbnailer https://raw.githubusercontent.com/jlu5/icoextract/master/exe-thumbnailer.thumbnailer && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Install Steam & Lutris, plus supporting packages
|
||||
RUN rpm-ostree install \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
rpm-ostree install \
|
||||
jupiter-sd-mounting-btrfs \
|
||||
at-spi2-core.i686 \
|
||||
atk.i686 \
|
||||
@ -432,10 +456,12 @@ RUN rpm-ostree install \
|
||||
sed -i 's@/usr/lib/wine/@/usr/lib64/wine/@g' /usr/bin/latencyflex && \
|
||||
sed -i 's@"dxvk.conf"@"/usr/share/latencyflex/dxvk.conf"@g' /usr/bin/latencyflex && \
|
||||
chmod +x /usr/bin/latencyflex && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Configure KDE & GNOME
|
||||
RUN if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
|
||||
rpm-ostree install \
|
||||
qt && \
|
||||
rpm-ostree override remove \
|
||||
@ -512,13 +538,16 @@ RUN if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
|
||||
sed -i 's@\[Desktop Entry\]@\[Desktop Entry\]\nNoDisplay=true@g' /usr/share/applications/org.gnome.SystemMonitor.desktop && \
|
||||
systemctl enable dconf-update.service \
|
||||
; fi && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Install Gamescope, ROCM, and Waydroid on non-Nvidia images
|
||||
RUN rpm-ostree install \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
rpm-ostree install \
|
||||
gamescope.x86_64 \
|
||||
gamescope-libs.i686 \
|
||||
gamescope-shaders \
|
||||
gamescope-legacy \
|
||||
rocm-hip \
|
||||
rocm-opencl \
|
||||
rocm-clinfo \
|
||||
@ -526,21 +555,25 @@ RUN rpm-ostree install \
|
||||
cage \
|
||||
wlr-randr && \
|
||||
sed -i~ -E 's/=.\$\(command -v (nft|ip6?tables-legacy).*/=/g' /usr/lib/waydroid/data/scripts/waydroid-net.sh && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Homebrew
|
||||
RUN touch /.dockerenv && \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
touch /.dockerenv && \
|
||||
mkdir -p /var/home && \
|
||||
mkdir -p /var/roothome && \
|
||||
curl -Lo /tmp/brew-install https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh && \
|
||||
chmod +x /tmp/brew-install && \
|
||||
/tmp/brew-install && \
|
||||
tar --zstd -cvf /usr/share/homebrew.tar.zst /home/linuxbrew/.linuxbrew && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Cleanup & Finalize
|
||||
COPY system_files/overrides /
|
||||
RUN rm -f /etc/profile.d/toolbox.sh && \
|
||||
mkdir -p /var/tmp && chmod 1777 /var/tmp && \
|
||||
cp --no-dereference --preserve=links /usr/lib/libdrm.so.2 /usr/lib/libdrm.so && \
|
||||
cp --no-dereference --preserve=links /usr/lib64/libdrm.so.2 /usr/lib64/libdrm.so && \
|
||||
sed -i 's@/usr/bin/steam@/usr/bin/bazzite-steam@g' /usr/share/applications/steam.desktop && \
|
||||
@ -645,6 +678,8 @@ RUN rm -f /etc/profile.d/toolbox.sh && \
|
||||
curl -Lo /usr/lib/sysctl.d/99-bore-scheduler.conf https://github.com/CachyOS/CachyOS-Settings/raw/master/usr/lib/sysctl.d/99-bore-scheduler.conf && \
|
||||
/usr/libexec/containerbuild/image-info && \
|
||||
/usr/libexec/containerbuild/build-initramfs && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
mkdir -p /var/tmp && chmod 1777 /var/tmp && \
|
||||
ostree container commit
|
||||
|
||||
FROM bazzite AS bazzite-deck
|
||||
@ -669,10 +704,12 @@ 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-wallpaper-engine-kde-plugin.repo && \
|
||||
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_hhd-dev-hhd.repo && \
|
||||
sed -i 's@enabled=0@enabled=1@g' /etc/yum.repos.d/_copr_ycollet-audinux.repo && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Configure KDE & GNOME
|
||||
RUN rpm-ostree override remove \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
rpm-ostree override remove \
|
||||
jupiter-sd-mounting-btrfs && \
|
||||
if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
|
||||
rpm-ostree override remove \
|
||||
@ -685,15 +722,16 @@ RUN rpm-ostree override remove \
|
||||
gnome-shell-extension-caribou-blocker \
|
||||
sddm \
|
||||
; fi && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Install new packages
|
||||
# Dock updater - done manually due to proprietary parts preventing it from being on Copr
|
||||
# Neptune firmware - done manually due to "TBD" license on needed audio firmware
|
||||
RUN rpm-ostree install \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
rpm-ostree install \
|
||||
jupiter-fan-control \
|
||||
jupiter-hw-support-btrfs \
|
||||
galileo-mura \
|
||||
steamdeck-dsp \
|
||||
powerbuttond \
|
||||
hhd \
|
||||
@ -722,25 +760,30 @@ RUN rpm-ostree install \
|
||||
ln -s /usr/bin/steamos-logger /usr/bin/steamos-info && \
|
||||
ln -s /usr/bin/steamos-logger /usr/bin/steamos-notice && \
|
||||
ln -s /usr/bin/steamos-logger /usr/bin/steamos-warning && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Install Steam Deck patched UPower
|
||||
RUN rpm-ostree override replace \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
rpm-ostree override replace \
|
||||
--experimental \
|
||||
--from repo=copr:copr.fedorainfracloud.org:kylegospo:bazzite \
|
||||
upower \
|
||||
upower-libs && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Install Gamescope Session & Supporting changes
|
||||
# Add bootstraplinux_ubuntu12_32.tar.xz used by gamescope-session (Thanks ChimeraOS! - https://chimeraos.org/)
|
||||
RUN curl -Lo /tmp/steam-jupiter.pkg.tar.zst https://steamdeck-packages.steamos.cloud/archlinux-mirror/jupiter-main/os/x86_64/"${STEAM_PACKAGE_VERSION}".pkg.tar.zst && \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
curl -Lo /tmp/steam-jupiter.pkg.tar.zst https://steamdeck-packages.steamos.cloud/archlinux-mirror/jupiter-main/os/x86_64/"${STEAM_PACKAGE_VERSION}".pkg.tar.zst && \
|
||||
mkdir -p /usr/etc/first-boot && \
|
||||
tar --no-same-owner --no-same-permissions --no-overwrite-dir -I zstd -xvf /tmp/steam-jupiter.pkg.tar.zst usr/lib/steam/bootstraplinux_ubuntu12_32.tar.xz -o > /usr/etc/first-boot/bootstraplinux_ubuntu12_32.tar.xz && \
|
||||
rm -f /tmp/steam-jupiter.pkg.tar.zst && \
|
||||
rpm-ostree install \
|
||||
gamescope-session-plus \
|
||||
gamescope-session-steam && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Cleanup & Finalize
|
||||
@ -785,6 +828,8 @@ RUN /usr/libexec/containerbuild/image-info && \
|
||||
systemctl disable jupiter-biosupdate.service && \
|
||||
systemctl disable jupiter-controller-update.service && \
|
||||
systemctl disable batterylimit.service && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
mkdir -p /var/tmp && chmod 1777 /var/tmp && \
|
||||
ostree container commit
|
||||
|
||||
FROM ghcr.io/ublue-os/akmods-nvidia:${KERNEL_FLAVOR}-${FEDORA_MAJOR_VERSION} AS nvidia-akmods
|
||||
@ -804,7 +849,8 @@ COPY system_files/nvidia/shared system_files/nvidia/${BASE_IMAGE_NAME} /
|
||||
|
||||
# Remove everything that doesn't work well with NVIDIA
|
||||
# Install X11 session (Remove me for Fedora 41)
|
||||
RUN rpm-ostree override remove \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
rpm-ostree override remove \
|
||||
rocm-hip \
|
||||
rocm-opencl \
|
||||
rocm-clinfo && \
|
||||
@ -812,19 +858,25 @@ RUN rpm-ostree override remove \
|
||||
rpm-ostree install \
|
||||
plasma-workspace-x11 \
|
||||
; fi && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Install NVIDIA driver
|
||||
COPY --from=nvidia-akmods /rpms /tmp/akmods-rpms
|
||||
RUN curl -Lo /tmp/nvidia-install.sh https://raw.githubusercontent.com/ublue-os/hwe/main/nvidia-install.sh && \
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
--mount=type=bind,from=nvidia-akmods,src=/rpms,dst=/tmp/akmods-rpms \
|
||||
curl -Lo /tmp/nvidia-install.sh https://raw.githubusercontent.com/ublue-os/hwe/main/nvidia-install.sh && \
|
||||
chmod +x /tmp/nvidia-install.sh && \
|
||||
IMAGE_NAME="${BASE_IMAGE_NAME}" /tmp/nvidia-install.sh && \
|
||||
rm -f /usr/share/vulkan/icd.d/nouveau_icd.*.json && \
|
||||
ln -s libnvidia-ml.so.1 /usr/lib64/libnvidia-ml.so && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Cleanup & Finalize
|
||||
RUN echo "import \"/usr/share/ublue-os/just/95-bazzite-nvidia.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
mkdir -p /var/tmp && chmod 1777 /var/tmp && \
|
||||
/usr/libexec/containerbuild/image-info && \
|
||||
/usr/libexec/containerbuild/build-initramfs && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
mkdir -p /var/tmp && chmod 1777 /var/tmp && \
|
||||
ostree container commit
|
||||
|
37
spec_files/gamescope/0001-cstdint.patch
Normal file
37
spec_files/gamescope/0001-cstdint.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From 5529e8ac8f3232ec6233e33286834548e1d8018d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= <fzatlouk@redhat.com>
|
||||
Date: Sun, 8 Oct 2023 22:10:33 +0200
|
||||
Subject: [PATCH] <cstdint>
|
||||
|
||||
---
|
||||
src/reshade/source/effect_parser_stmt.cpp | 1 +
|
||||
src/reshade/source/effect_token.hpp | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/reshade/source/effect_parser_stmt.cpp b/src/reshade/source/effect_parser_stmt.cpp
|
||||
index 7829729..f126be2 100644
|
||||
--- a/src/reshade/source/effect_parser_stmt.cpp
|
||||
+++ b/src/reshade/source/effect_parser_stmt.cpp
|
||||
@@ -9,6 +9,7 @@
|
||||
#include <cctype> // std::toupper
|
||||
#include <cassert>
|
||||
#include <functional>
|
||||
+#include <limits>
|
||||
#include <string_view>
|
||||
|
||||
struct on_scope_exit
|
||||
diff --git a/src/reshade/source/effect_token.hpp b/src/reshade/source/effect_token.hpp
|
||||
index 072d439..e4bb633 100644
|
||||
--- a/src/reshade/source/effect_token.hpp
|
||||
+++ b/src/reshade/source/effect_token.hpp
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
+#include <cstdint>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
--
|
||||
2.41.0
|
||||
|
21
spec_files/gamescope/0002-limits.patch
Normal file
21
spec_files/gamescope/0002-limits.patch
Normal file
@ -0,0 +1,21 @@
|
||||
From 88ce1e5de62886aa14c74421cde6130e16e70d7d Mon Sep 17 00:00:00 2001
|
||||
From: psykose <alice@ayaya.dev>
|
||||
Date: Sat, 6 Jul 2024 20:52:50 +0200
|
||||
Subject: [PATCH] utils: include limits.h for PATH_MAX
|
||||
|
||||
---
|
||||
src/Utils/Process.cpp | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/Utils/Process.cpp b/src/Utils/Process.cpp
|
||||
index e71786f75..3e748e0d3 100644
|
||||
--- a/src/Utils/Process.cpp
|
||||
+++ b/src/Utils/Process.cpp
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <pthread.h>
|
||||
#include <stdlib.h>
|
||||
#include <dirent.h>
|
||||
+#include <limits.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/types.h>
|
||||
#include <signal.h>
|
113
spec_files/gamescope/gamescope-legacy.spec
Normal file
113
spec_files/gamescope/gamescope-legacy.spec
Normal file
@ -0,0 +1,113 @@
|
||||
%global libliftoff_minver 0.4.1
|
||||
%global reshade_commit 4245743a8c41abbe3dc73980c1810fe449359bf1
|
||||
%global reshade_shortcommit %(c=%{reshade_commit}; echo ${c:0:7})
|
||||
%global _default_patch_fuzz 2
|
||||
|
||||
Name: gamescope-legacy
|
||||
Version: 3.14.2
|
||||
Release: 2.bazzite
|
||||
Summary: Legacy builds of gamescope, a micro-compositor for video games on Wayland
|
||||
|
||||
License: BSD
|
||||
URL: https://github.com/ValveSoftware/gamescope
|
||||
Source0: %{url}/archive/%{version}/gamescope-%{version}.tar.gz
|
||||
# Create stb.pc to satisfy dependency('stb')
|
||||
Source1: stb.pc
|
||||
Source2: https://github.com/Joshua-Ashton/reshade/archive/%{reshade_commit}/reshade-%{reshade_shortcommit}.tar.gz
|
||||
|
||||
Patch0: 0001-cstdint.patch
|
||||
|
||||
# https://hhd.dev/
|
||||
Patch1: v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch
|
||||
|
||||
BuildRequires: meson >= 0.54.0
|
||||
BuildRequires: ninja-build
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: glm-devel
|
||||
BuildRequires: google-benchmark-devel
|
||||
BuildRequires: libXmu-devel
|
||||
BuildRequires: libXcursor-devel
|
||||
BuildRequires: pkgconfig(libdisplay-info)
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: pkgconfig(xdamage)
|
||||
BuildRequires: pkgconfig(xcomposite)
|
||||
BuildRequires: pkgconfig(xrender)
|
||||
BuildRequires: pkgconfig(xext)
|
||||
BuildRequires: pkgconfig(xfixes)
|
||||
BuildRequires: pkgconfig(xxf86vm)
|
||||
BuildRequires: pkgconfig(xtst)
|
||||
BuildRequires: pkgconfig(xres)
|
||||
BuildRequires: pkgconfig(libdrm)
|
||||
BuildRequires: pkgconfig(vulkan)
|
||||
BuildRequires: pkgconfig(wayland-scanner)
|
||||
BuildRequires: pkgconfig(wayland-server)
|
||||
BuildRequires: pkgconfig(wayland-protocols) >= 1.17
|
||||
BuildRequires: pkgconfig(xkbcommon)
|
||||
BuildRequires: pkgconfig(sdl2)
|
||||
BuildRequires: pkgconfig(libpipewire-0.3)
|
||||
BuildRequires: pkgconfig(libavif)
|
||||
BuildRequires: (pkgconfig(wlroots) >= 0.17.0 with pkgconfig(wlroots) < 0.18)
|
||||
BuildRequires: (pkgconfig(libliftoff) >= 0.4.1 with pkgconfig(libliftoff) < 0.5)
|
||||
BuildRequires: pkgconfig(libcap)
|
||||
BuildRequires: pkgconfig(hwdata)
|
||||
BuildRequires: spirv-headers-devel
|
||||
# Enforce the the minimum EVR to contain fixes for all of:
|
||||
# CVE-2021-28021 CVE-2021-42715 CVE-2021-42716 CVE-2022-28041 CVE-2023-43898
|
||||
# CVE-2023-45661 CVE-2023-45662 CVE-2023-45663 CVE-2023-45664 CVE-2023-45666
|
||||
# CVE-2023-45667
|
||||
BuildRequires: stb_image-devel >= 2.28^20231011gitbeebb24-12
|
||||
# Header-only library: -static is for tracking per guidelines
|
||||
BuildRequires: stb_image-static
|
||||
BuildRequires: stb_image_resize-devel
|
||||
BuildRequires: stb_image_resize-static
|
||||
BuildRequires: stb_image_write-devel
|
||||
BuildRequires: stb_image_write-static
|
||||
BuildRequires: vkroots-devel
|
||||
BuildRequires: /usr/bin/glslangValidator
|
||||
|
||||
# libliftoff hasn't bumped soname, but API/ABI has changed for 0.2.0 release
|
||||
Requires: libliftoff%{?_isa} >= %{libliftoff_minver}
|
||||
Requires: xorg-x11-server-Xwayland
|
||||
|
||||
Requires: gamescope-libs
|
||||
Requires: gamescope-libs(x86-32)
|
||||
|
||||
Recommends: mesa-dri-drivers
|
||||
Recommends: mesa-vulkan-drivers
|
||||
|
||||
%description
|
||||
%{name} is the micro-compositor optimized for running video games on Wayland. This is a legacy build primarily intended for use by Polaris GPUs.
|
||||
|
||||
%prep
|
||||
%autosetup -p1 -a2 -N -n gamescope-%{version}
|
||||
# Install stub pkgconfig file
|
||||
mkdir -p pkgconfig
|
||||
cp %{SOURCE1} pkgconfig/stb.pc
|
||||
|
||||
# Replace spirv-headers include with the system directory
|
||||
sed -i 's^../thirdparty/SPIRV-Headers/include/spirv/^/usr/include/spirv/^' src/meson.build
|
||||
|
||||
# Push in reshade from sources instead of submodule
|
||||
rm -rf src/reshade && mv reshade-%{reshade_commit} src/reshade
|
||||
|
||||
%autopatch -p1
|
||||
|
||||
%build
|
||||
export PKG_CONFIG_PATH=pkgconfig
|
||||
%meson -Dpipewire=enabled -Denable_gamescope_wsi_layer=false -Denable_openvr_support=false -Dforce_fallback_for=[]
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
# Rename to not conflict with the base package
|
||||
mv %{buildroot}%{_bindir}/gamescope %{buildroot}%{_bindir}/gamescope-legacy
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
%{_bindir}/gamescope-legacy
|
||||
|
||||
%changelog
|
||||
%autochangelog
|
@ -6,7 +6,7 @@
|
||||
|
||||
Name: gamescope
|
||||
Version: 100.%{gamescope_tag}
|
||||
Release: 15.bazzite
|
||||
Release: 18.bazzite
|
||||
Summary: Micro-compositor for video games on Wayland
|
||||
|
||||
License: BSD
|
||||
@ -15,18 +15,22 @@ URL: https://github.com/ValveSoftware/gamescope
|
||||
# Create stb.pc to satisfy dependency('stb')
|
||||
Source0: stb.pc
|
||||
|
||||
Patch0: 0001-cstdint.patch
|
||||
Patch1: 0002-limits.patch
|
||||
|
||||
# https://github.com/ChimeraOS/gamescope
|
||||
Patch0: chimeraos.patch
|
||||
Patch2: chimeraos.patch
|
||||
# https://hhd.dev/
|
||||
Patch1: disable-steam-touch-click-atom.patch
|
||||
Patch3: disable-steam-touch-click-atom.patch
|
||||
Patch4: v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch
|
||||
# https://github.com/ValveSoftware/gamescope/pull/1281
|
||||
Patch2: deckhd.patch
|
||||
Patch5: deckhd.patch
|
||||
# https://github.com/ValveSoftware/gamescope/issues/1398
|
||||
Patch3: drm-Separate-BOE-and-SDC-OLED-Deck-panel-rates.patch
|
||||
Patch6: drm-Separate-BOE-and-SDC-OLED-Deck-panel-rates.patch
|
||||
# https://github.com/ValveSoftware/gamescope/issues/1369
|
||||
Patch4: revert-299bc34.patch
|
||||
Patch7: revert-299bc34.patch
|
||||
# https://github.com/ValveSoftware/gamescope/pull/1231
|
||||
Patch5: 1231.patch
|
||||
Patch8: 1231.patch
|
||||
|
||||
BuildRequires: meson >= 0.54.0
|
||||
BuildRequires: ninja-build
|
||||
|
@ -0,0 +1,40 @@
|
||||
From 35e001dc59a44227d670c667a85a6ef5472eee58 Mon Sep 17 00:00:00 2001
|
||||
From: antheas <git@antheas.dev>
|
||||
Date: Sat, 20 Jul 2024 01:23:19 +0300
|
||||
Subject: [PATCH v2] always send ctrl+1/2 to steam's wayland session
|
||||
|
||||
---
|
||||
src/wlserver.cpp | 10 +++++++++-
|
||||
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/wlserver.cpp b/src/wlserver.cpp
|
||||
index 1852be9..7de737d 100644
|
||||
--- a/src/wlserver.cpp
|
||||
+++ b/src/wlserver.cpp
|
||||
@@ -369,7 +369,12 @@ static void wlserver_handle_key(struct wl_listener *listener, void *data)
|
||||
keysym == XKB_KEY_XF86AudioLowerVolume ||
|
||||
keysym == XKB_KEY_XF86AudioRaiseVolume ||
|
||||
keysym == XKB_KEY_XF86PowerOff;
|
||||
- if ( ( event->state == WL_KEYBOARD_KEY_STATE_PRESSED || event->state == WL_KEYBOARD_KEY_STATE_RELEASED ) && forbidden_key )
|
||||
+
|
||||
+ // Check for steam keys (ctrl + 1/2)
|
||||
+ bool is_steamshortcut = (keyboard->wlr->modifiers.depressed & WLR_MODIFIER_CTRL) && (keysym == XKB_KEY_1 ||
|
||||
+ keysym == XKB_KEY_2);
|
||||
+
|
||||
+ if ( ( event->state == WL_KEYBOARD_KEY_STATE_PRESSED || event->state == WL_KEYBOARD_KEY_STATE_RELEASED ) && (forbidden_key || is_steamshortcut) )
|
||||
{
|
||||
// Always send volume+/- to root server only, to avoid it reaching the game.
|
||||
struct wlr_surface *old_kb_surf = wlserver.kb_focus_surface;
|
||||
@@ -378,6 +383,9 @@ static void wlserver_handle_key(struct wl_listener *listener, void *data)
|
||||
{
|
||||
wlserver_keyboardfocus( new_kb_surf, false );
|
||||
wlr_seat_set_keyboard( wlserver.wlr.seat, keyboard->wlr );
|
||||
+ // Send modifiers to steam for it to work
|
||||
+ if (is_steamshortcut)
|
||||
+ wlr_seat_keyboard_notify_modifiers(wlserver.wlr.seat, &keyboard->wlr->modifiers);
|
||||
wlr_seat_keyboard_notify_key( wlserver.wlr.seat, event->time_msec, event->keycode, event->state );
|
||||
wlserver_keyboardfocus( old_kb_surf, false );
|
||||
return;
|
||||
--
|
||||
2.45.2
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -66,9 +66,9 @@
|
||||
|
||||
Name: mesa
|
||||
Summary: Mesa graphics libraries
|
||||
%global ver 24.1.3
|
||||
%global ver 24.1.4
|
||||
Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)}
|
||||
Release: 101.bazzite.{{{ git_dir_version }}}
|
||||
Release: 100.bazzite.{{{ git_dir_version }}}
|
||||
License: MIT AND BSD-3-Clause AND SGI-B-2.0
|
||||
URL: http://www.mesa3d.org
|
||||
|
||||
@ -78,14 +78,10 @@ Source0: https://archive.mesa3d.org/mesa-%{ver}.tar.xz
|
||||
# Fedora opts to ignore the optional part of clause 2 and treat that code as 2 clause BSD.
|
||||
Source1: Mesa-MLAA-License-Clarification-Email.txt
|
||||
|
||||
Patch0: gnome-shell-glthread-disable.patch
|
||||
|
||||
# Performance bump
|
||||
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25576
|
||||
Patch4: 25576.patch
|
||||
Patch10: gnome-shell-glthread-disable.patch
|
||||
|
||||
# https://gitlab.com/evlaV/mesa/
|
||||
Patch5: valve.patch
|
||||
Patch20: valve.patch
|
||||
|
||||
BuildRequires: meson >= 1.3.0
|
||||
BuildRequires: gcc
|
||||
@ -393,11 +389,7 @@ Obsoletes: mesa-vulkan-devel < %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
The drivers with support for the Vulkan API.
|
||||
|
||||
%prep
|
||||
%autosetup -n %{name}-%{ver} -N
|
||||
%autopatch -p1 -M 99
|
||||
%ifarch s390x
|
||||
%autopatch -p1 -m 100
|
||||
%endif
|
||||
%autosetup -n %{name}-%{ver} -p1
|
||||
cp %{SOURCE1} docs/
|
||||
|
||||
%build
|
||||
|
@ -1,19 +1,19 @@
|
||||
From 4aa431b174c37b3bc0748ddc9bd2ca9c808881e2 Mon Sep 17 00:00:00 2001
|
||||
From 239ea5c4cc82596383fba0342611a25d8d5a3d47 Mon Sep 17 00:00:00 2001
|
||||
From: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
|
||||
Date: Fri, 14 Jan 2022 15:58:45 +0100
|
||||
Subject: [PATCH 5/8] STEAMOS: radv: min image count override for FH5
|
||||
Subject: [PATCH 1/2] STEAMOS: radv: min image count override for FH5
|
||||
|
||||
Otherwise in combination with the vblank time reservation in
|
||||
gamescope the game could get stuck in low power states.
|
||||
---
|
||||
src/util/00-radv-defaults.conf | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
src/util/00-radv-defaults.conf | 5 +++++
|
||||
1 file changed, 5 insertions(+)
|
||||
|
||||
diff --git a/src/util/00-radv-defaults.conf b/src/util/00-radv-defaults.conf
|
||||
index 9434dba1e3f..3c3ae562eb9 100644
|
||||
index 983ce2511a7..3b3a6b36946 100644
|
||||
--- a/src/util/00-radv-defaults.conf
|
||||
+++ b/src/util/00-radv-defaults.conf
|
||||
@@ -186,5 +186,9 @@ Application bugs worked around in this file:
|
||||
@@ -200,6 +200,11 @@ Application bugs worked around in this file:
|
||||
<application name="Rocket League" executable="RocketLeague">
|
||||
<option name="radv_zero_vram" value="true" />
|
||||
</application>
|
||||
@ -21,26 +21,27 @@ index 9434dba1e3f..3c3ae562eb9 100644
|
||||
+ <application name="Forza Horizon 5" application_name_match="ForzaHorizon5.exe">
|
||||
+ <option name="vk_x11_override_min_image_count" value="4" />
|
||||
+ </application>
|
||||
</device>
|
||||
</driconf>
|
||||
+
|
||||
<application name="Crystal Project" executable="Crystal Project.bin.x86_64">
|
||||
<option name="radv_zero_vram" value="true" />
|
||||
</application>
|
||||
--
|
||||
2.42.0
|
||||
2.45.2
|
||||
|
||||
|
||||
From 88327ee8507a323f48e43eeb87cf1f102d04f174 Mon Sep 17 00:00:00 2001
|
||||
From b9a0bf948614b64b073ad1ee145987afdeb33994 Mon Sep 17 00:00:00 2001
|
||||
From: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
|
||||
Date: Mon, 21 Feb 2022 18:43:54 +0100
|
||||
Subject: [PATCH 6/8] STEAMOS: Dynamic swapchain override for gamescope limiter
|
||||
Subject: [PATCH 2/2] STEAMOS: Dynamic swapchain override for gamescope limiter
|
||||
|
||||
---
|
||||
src/loader/loader_dri3_helper.c | 42 +++++++++++++++++++++++++++++++--
|
||||
src/loader/loader_dri3_helper.h | 1 +
|
||||
src/loader/meson.build | 2 +-
|
||||
src/vulkan/wsi/wsi_common_x11.c | 38 +++++++++++++++++++++++++++++
|
||||
4 files changed, 80 insertions(+), 3 deletions(-)
|
||||
3 files changed, 42 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/loader/loader_dri3_helper.c b/src/loader/loader_dri3_helper.c
|
||||
index 32135770e9d..abc79dda97e 100644
|
||||
index dc1db4fa8be..38e55dc23ae 100644
|
||||
--- a/src/loader/loader_dri3_helper.c
|
||||
+++ b/src/loader/loader_dri3_helper.c
|
||||
@@ -289,6 +289,30 @@ dri3_update_max_num_back(struct loader_dri3_drawable *draw)
|
||||
@ -102,7 +103,7 @@ index 32135770e9d..abc79dda97e 100644
|
||||
dri3_update_max_num_back(draw);
|
||||
|
||||
/* Create a new drawable */
|
||||
@@ -1092,6 +1124,12 @@ loader_dri3_swap_buffers_msc(struct loader_dri3_drawable *draw,
|
||||
@@ -1085,6 +1117,12 @@ loader_dri3_swap_buffers_msc(struct loader_dri3_drawable *draw,
|
||||
if (draw->type == LOADER_DRI3_DRAWABLE_WINDOW) {
|
||||
dri3_fence_reset(draw->conn, back);
|
||||
|
||||
@ -116,7 +117,7 @@ index 32135770e9d..abc79dda97e 100644
|
||||
* successful MSC and adding in a swap interval for each outstanding swap
|
||||
* request. target_msc=divisor=remainder=0 means "Use glXSwapBuffers()
|
||||
diff --git a/src/loader/loader_dri3_helper.h b/src/loader/loader_dri3_helper.h
|
||||
index 1fd340bd145..b8f5eaaf190 100644
|
||||
index cc2362dd599..fe73b3f329c 100644
|
||||
--- a/src/loader/loader_dri3_helper.h
|
||||
+++ b/src/loader/loader_dri3_helper.h
|
||||
@@ -178,6 +178,7 @@ struct loader_dri3_drawable {
|
||||
@ -128,7 +129,7 @@ index 1fd340bd145..b8f5eaaf190 100644
|
||||
struct loader_dri3_extensions *ext;
|
||||
const struct loader_dri3_vtable *vtable;
|
||||
diff --git a/src/loader/meson.build b/src/loader/meson.build
|
||||
index 35f9991ba2f..154cf809a69 100644
|
||||
index ffb970f26be..326e2b5b9fd 100644
|
||||
--- a/src/loader/meson.build
|
||||
+++ b/src/loader/meson.build
|
||||
@@ -29,7 +29,7 @@ if with_platform_x11 and with_dri3
|
||||
@ -141,5 +142,5 @@ index 35f9991ba2f..154cf809a69 100644
|
||||
build_by_default : false,
|
||||
)
|
||||
--
|
||||
2.42.0
|
||||
2.45.2
|
||||
|
||||
|
@ -1,5 +0,0 @@
|
||||
[Journal]
|
||||
# Sets the maximum journal size to 50M for sched-ext namespace.
|
||||
SystemMaxUse=50M
|
||||
# Sets the priority level for messages to be stored to info.
|
||||
MaxLevelStore=info
|
@ -0,0 +1,2 @@
|
||||
[Service]
|
||||
Environment="HHD_QAM_KEYBOARD=1"
|
@ -1,15 +0,0 @@
|
||||
[Unit]
|
||||
Description=Start scx_lavd scheduler
|
||||
ConditionPathIsDirectory=/sys/kernel/sched_ext
|
||||
StartLimitIntervalSec=30
|
||||
StartLimitBurst=2
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/bin/scx_lavd
|
||||
Restart=on-failure
|
||||
StandardError=journal
|
||||
LogNamespace=sched-ext
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical.target
|
@ -9,6 +9,13 @@ fi
|
||||
systemctl enable --now hhd@$(systemd-escape $1).service
|
||||
# Ensure HHD is never running for the root user
|
||||
systemctl disable --now hhd@root.service
|
||||
# Disable PPD
|
||||
systemctl disable --now power-profiles-daemon.service
|
||||
systemctl mask power-profiles-daemon.service
|
||||
|
||||
if /usr/libexec/hwsupport/hhd-tdp-supported-hardware; then
|
||||
# Disable PPD
|
||||
systemctl disable --now power-profiles-daemon.service
|
||||
systemctl mask power-profiles-daemon.service
|
||||
else
|
||||
# Restore PPD if previously disabled
|
||||
systemctl unmask power-profiles-daemon.service
|
||||
systemctl enable --now power-profiles-daemon.service
|
||||
fi
|
||||
|
@ -1,38 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# The file to use for tracking if the warning has been shown
|
||||
ACCEPTED="$HOME/.config/bazzite/gamescope-sdl-accepted"
|
||||
|
||||
# Check if the check has already run
|
||||
if [ -f "$ACCEPTED" ]; then
|
||||
# Exit if user has already aknowledged the warning
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Show the SDL workaround warning if required
|
||||
if /usr/libexec/gamescope-sdl-workaround; then
|
||||
# Add 4 spaces if you want to start a new line,
|
||||
# it makes the text easier to read in the dialog.
|
||||
zenity --text-info --title="WARNING: Problematic GPU detected!" --checkbox="Understood, I made sure to have a controller connected." --width 560 --height 430 <<< "
|
||||
This GPU requires a workaround to work in Game Mode Session!
|
||||
It is applied automatically, however it means that
|
||||
keyboard and mouse will not work AT ALL when using
|
||||
Game Mode Session (Desktop Mode will not be affected)
|
||||
|
||||
Please pair at least 1 bluetooth controller to the system now
|
||||
so you can navigate Steam Game Mode.
|
||||
|
||||
If you plan to use a wired controller or one with a non
|
||||
bluetooth dongle, verify it is detected in Steam BEFORE rebooting!"
|
||||
|
||||
# If the user mark the checkbox and clicks OK
|
||||
# shellcheck disable=SC2181
|
||||
if [ "$?" == "0" ]; then
|
||||
# Make the .config/bazzite folder if needed
|
||||
if [ ! -d "$HOME/.config/bazzite" ]; then
|
||||
mkdir "$HOME/.config/bazzite/"
|
||||
fi
|
||||
# Mark that the user has acknowledged the warning
|
||||
touch "$ACCEPTED"
|
||||
fi
|
||||
fi
|
@ -5,16 +5,13 @@ IMAGE_NAME=$(jq -r '."image-name"' < $IMAGE_INFO)
|
||||
|
||||
DECK_OPTION=""
|
||||
|
||||
if [ -f $HOME/.local/share/Steam/ubuntu12_32/steamui.so ]; then
|
||||
# If Steam has been launched before we can safely launch with -steamdeck
|
||||
# to maintain the gamemode update branch
|
||||
if [[ $IMAGE_NAME =~ "deck" || $IMAGE_NAME =~ "ally" || $IMAGE_NAME =~ "framegame" ]]; then
|
||||
DECK_OPTION="-steamdeck"
|
||||
fi
|
||||
|
||||
# Apply Steam Download Speed Fix if not already applied
|
||||
if [ ! -f $HOME/.local/share/Steam/steam_dev.cfg ]; then
|
||||
bash -c 'printf "@nClientDownloadEnableHTTP2PlatformLinux 0\n@fDownloadRateImprovementToAddAnotherConnection 1.0\n" > $HOME/.local/share/Steam/steam_dev.cfg'
|
||||
if [[ $IMAGE_NAME =~ "deck" || $IMAGE_NAME =~ "ally" ]]; then
|
||||
if [ ! -d $HOME/.local/share/Steam ]; then
|
||||
# Set up steam with the bootstrap before starting it, this allows steam to run for the first time even with no network access
|
||||
if [[ -f "/etc/first-boot/bootstraplinux_ubuntu12_32.tar.xz" ]]; then
|
||||
mkdir -p $HOME/.local/share/Steam
|
||||
tar xf /etc/first-boot/bootstraplinux_ubuntu12_32.tar.xz -C $HOME/.local/share/Steam
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install Bazzite's Steam Game Mode Startup & Suspend Videos
|
||||
@ -29,12 +26,23 @@ if [ -f $HOME/.local/share/Steam/ubuntu12_32/steamui.so ]; then
|
||||
|
||||
if [ ! -f $HOME/.local/share/Steam/config/uioverrides/movies/deck-suspend-animation-from-throbber.webm ]; then
|
||||
cp /usr/share/ublue-os/bazzite/bazzite-suspend.webm $HOME/.local/share/Steam/config/uioverrides/movies/deck-suspend-animation-from-throbber.webm
|
||||
fi
|
||||
fi
|
||||
|
||||
# Required to maintain the Steam update branch between desktop & Steam Game Mode
|
||||
DECK_OPTION="-steamdeck"
|
||||
fi
|
||||
|
||||
# Make sure Steam has been successfully started at least once. This is needed for desktop images that don't use a bootstrap archive
|
||||
if [ -f $HOME/.local/share/Steam/ubuntu12_32/steamui.so ]; then
|
||||
# Apply Steam Download Speed Fix if not already applied
|
||||
if [ ! -f $HOME/.local/share/Steam/steam_dev.cfg ]; then
|
||||
bash -c 'printf "@nClientDownloadEnableHTTP2PlatformLinux 0\n@fDownloadRateImprovementToAddAnotherConnection 1.0\n" > $HOME/.local/share/Steam/steam_dev.cfg'
|
||||
fi
|
||||
fi
|
||||
|
||||
switcheroo_state="$(switcherooctl list)"
|
||||
DGPU_OPTION=""
|
||||
# If we're running this on a dGPU, apply workaround for blank Steam window
|
||||
# If we're running this on a dGPU in a multi-gpu AMD/Intel system, apply a workaround for the blank Steam window bug
|
||||
if [[ $(echo "${switcheroo_state}" | grep -o 'Device:' | wc -l) -gt 1 ]]; then
|
||||
# TODO: Check if -system-composer is needed with nvidia >=555 driver
|
||||
if ! grep -Pq 'Name:\s+NVIDIA' <<< "$switcheroo_state"; then
|
||||
|
@ -33,6 +33,5 @@ STEAMOS_BTRFS_SDCARD_NTFS_MOUNT_OPTS="rw,noatime,lazytime,uid=1000,gid=1000,big_
|
||||
# Defines the SD card format options to pass to mkfs.ntfs (default: "-f -F")
|
||||
STEAMOS_BTRFS_SDCARD_NTFS_FORMAT_OPTS="-f -F"
|
||||
# Toggle to enable/disable the bind mount for Steam's compatdata/ folder on fat, exfat, ntfs filesystems.
|
||||
# Setting it to 0 will make the eject functionality in the Steam client work again but proton games will not start on it.
|
||||
# DO NOT ENABLE THE BELOW VARIABLE ON BAZZITE
|
||||
# Setting it to 1 will prevent the eject functionality in the Steam client from working but proton games will start.
|
||||
STEAMOS_BTRFS_SDCARD_COMPATDATA_BIND_MOUNT="0"
|
||||
|
@ -0,0 +1,6 @@
|
||||
system:
|
||||
disable_runtime: true
|
||||
gamemode: false
|
||||
gamescope: false
|
||||
pulse_latency: true
|
||||
reset_desktop: true
|
@ -147,7 +147,7 @@ else
|
||||
echo "No karg changes needed"
|
||||
fi
|
||||
|
||||
if [[ $IMAGE_NAME =~ "deck" || $IMAGE_NAME =~ "ally" || $IMAGE_NAME =~ "framegame" ]]; then
|
||||
if [[ $IMAGE_NAME =~ "deck" || $IMAGE_NAME =~ "ally" ]]; then
|
||||
if /usr/libexec/hwsupport/valve-hardware; then
|
||||
if [[ ":Jupiter:" =~ ":$SYS_ID:" ]]; then
|
||||
RESOLUTION=$(lshw -json -c display | jq -r .[]."configuration"."resolution")
|
||||
@ -162,8 +162,6 @@ if [[ $IMAGE_NAME =~ "deck" || $IMAGE_NAME =~ "ally" || $IMAGE_NAME =~ "framegam
|
||||
|
||||
systemctl enable --now jupiter-fan-control.service
|
||||
systemctl enable --now vpower.service
|
||||
# Only enabled on Valve Hardware because HHD handles this elsewhere
|
||||
systemctl enable --now scx-lavd.service
|
||||
else
|
||||
echo "Generic device detected. Performing setup..."
|
||||
systemctl disable --now jupiter-fan-control.service
|
||||
|
@ -85,7 +85,7 @@ fi
|
||||
if [[ $BASE_IMAGE_NAME =~ "kinoite" ]]; then
|
||||
echo 'Running setup for Kinoite'
|
||||
|
||||
if [[ $IMAGE_NAME =~ "deck" || $IMAGE_NAME =~ "ally" || $IMAGE_NAME =~ "framegame" ]]; then
|
||||
if [[ $IMAGE_NAME =~ "deck" || $IMAGE_NAME =~ "ally" ]]; then
|
||||
echo 'Running setup for Kinoite on Steam Deck'
|
||||
if [[ ! -f "$HOME/Desktop/Return.desktop" ]]; then
|
||||
echo 'Re-creating return to gamemode shortcut'
|
||||
@ -151,7 +151,7 @@ else
|
||||
ln -s "/usr/share/doc/mangohud/MangoHud.conf.example" "$TEMPLATES_DIR/MangoHud.conf"
|
||||
fi
|
||||
|
||||
if [[ $IMAGE_NAME =~ "deck" || $IMAGE_NAME =~ "ally" || $IMAGE_NAME =~ "framegame" ]]; then
|
||||
if [[ $IMAGE_NAME =~ "deck" || $IMAGE_NAME =~ "ally" ]]; then
|
||||
echo 'Running setup for Silverblue on Steam Deck'
|
||||
|
||||
echo 'Tweaking GNOME indexer'
|
||||
@ -167,15 +167,14 @@ else
|
||||
fi
|
||||
|
||||
# Deck Build Setup
|
||||
if [[ $IMAGE_NAME =~ "deck" || $IMAGE_NAME =~ "ally" || $IMAGE_NAME =~ "framegame" ]]; then
|
||||
if [[ $IMAGE_NAME =~ "deck" || $IMAGE_NAME =~ "ally" ]]; then
|
||||
# HHD Setup
|
||||
if /usr/libexec/hwsupport/hhd-supported-hardware; then
|
||||
echo 'Enabling HHD'
|
||||
pkexec /usr/libexec/bazzite-enable-hhd "$USER"
|
||||
elif /usr/libexec/hwsupport/valve-hardware; then
|
||||
echo 'Hiding HHD-UI on Deck hardware'
|
||||
cp /usr/share/applications/hhd-ui.desktop "${XDG_DATA_HOME:-$HOME/.local/share}/applications/hhd-ui.desktop"
|
||||
sed -i 's@\[Desktop Entry\]@\[Desktop Entry\]\nNoDisplay=true@g' "${XDG_DATA_HOME:-$HOME/.local/share}/applications/hhd-ui.desktop"
|
||||
echo 'Enabling HHD'
|
||||
pkexec /usr/libexec/bazzite-enable-hhd "$USER"
|
||||
|
||||
if [ -f "${XDG_DATA_HOME:-$HOME/.local/share}/applications/hhd-ui.desktop" ]; then
|
||||
# Remove an old HHD desktop override done on Steam Decks when HHD did not support them
|
||||
rm "${XDG_DATA_HOME:-$HOME/.local/share}/applications/hhd-ui.desktop"
|
||||
fi
|
||||
|
||||
# SDGyroDSU Setup
|
||||
|
8
system_files/desktop/shared/usr/libexec/containerbuild/cleanup.sh
Executable file
8
system_files/desktop/shared/usr/libexec/containerbuild/cleanup.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
set -eoux pipefail
|
||||
shopt -s extglob
|
||||
|
||||
rm -rf /tmp/* || true
|
||||
rm -rf /var/!(cache)
|
||||
rm -rf /var/cache/!(rpm-ostree)
|
@ -1,11 +1,4 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# Show a warning to people that need gamescope-sdl-workaround
|
||||
# Only runs if the script file from the deck image exists
|
||||
if [ -f "/usr/libexec/bazzite-sdl-gpu-warn" ]; then
|
||||
# This will only show a warning if the user has not accepted the warning
|
||||
/usr/libexec/bazzite-sdl-gpu-warn &
|
||||
fi
|
||||
|
||||
# Simply launches the "yafti" GUI with the uBlue image's configuration.
|
||||
/usr/bin/yafti /usr/share/ublue-os/firstboot/yafti.yml
|
||||
|
@ -24,7 +24,7 @@ setup-waydroid ACTION="":
|
||||
OPTION=$(Choose "Initialize Waydroid" "Configure Waydroid" "Select GPU for Waydroid" "Reset Waydroid (also removes waydroid-related files from user folder)")
|
||||
fi
|
||||
if [[ "${OPTION,,}" =~ ^init ]]; then
|
||||
if [[ ! $IMAGE_NAME =~ "deck" && ! $IMAGE_NAME =~ "ally" && ! $IMAGE_NAME =~ "framegame" ]]; then
|
||||
if [[ ! $IMAGE_NAME =~ "deck" && ! $IMAGE_NAME =~ "ally" ]]; then
|
||||
sudo systemctl enable --now waydroid-container
|
||||
fi
|
||||
sudo waydroid init -c 'https://ota.waydro.id/system' -v 'https://ota.waydro.id/vendor'
|
||||
|
Loading…
x
Reference in New Issue
Block a user