mirror of
https://github.com/ublue-os/bazzite.git
synced 2025-03-12 04:14:06 +00:00
Merge branch 'testing'
This commit is contained in:
commit
a94aef713d
29
.github/workflows/build.yml
vendored
29
.github/workflows/build.yml
vendored
@ -31,6 +31,8 @@ on:
|
||||
merge_group:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
handwritten:
|
||||
description: 'Small changelog:'
|
||||
# Run with this periodically to analyze the image again
|
||||
# As package drift will make the plan eventually non-ideal
|
||||
# (existing users will have to redownload most of the image)
|
||||
@ -62,13 +64,13 @@ jobs:
|
||||
base_image_name: [kinoite, silverblue]
|
||||
target_image_flavor: [main, asus]
|
||||
target_nvidia_flavor: [nvidia, nvidia-open]
|
||||
fedora_version: [40]
|
||||
fedora_version: [41]
|
||||
include:
|
||||
- fedora_version: 40
|
||||
- fedora_version: 41
|
||||
is_latest_version: true
|
||||
is_stable_version: true
|
||||
kernel_flavor: fsync-ba # must match a kernel_flavor from akmods repo
|
||||
kernel_version: 6.9.12-210.fsync.fc40.x86_64 # must match a cached version of the above flavor
|
||||
kernel_flavor: bazzite # must match a kernel_flavor from akmods repo
|
||||
kernel_version: 6.11.5-303.bazzite.fc41.x86_64 # must match a cached version of the above flavor
|
||||
exclude:
|
||||
- base_name: bazzite
|
||||
target_nvidia_flavor: nvidia
|
||||
@ -275,6 +277,7 @@ jobs:
|
||||
ref: 'raw-img'
|
||||
prev-ref: '${{ steps.generate-prev-ref.outputs.ref }}'
|
||||
version: '${{ steps.generate-version.outputs.tag }}'
|
||||
skip_compression: 1
|
||||
labels: |
|
||||
io.artifacthub.package.logo-url=https://raw.githubusercontent.com/ublue-os/bazzite/main/repo_content/logo.png
|
||||
io.artifacthub.package.readme-url=https://docs.bazzite.gg
|
||||
@ -319,9 +322,6 @@ jobs:
|
||||
BUILD_TAGS+=("${FEDORA_VERSION}-unstable")
|
||||
BUILD_TAGS+=("unstable-${FEDORA_VERSION}") # flip ver to be last
|
||||
|
||||
# Per upstream ver
|
||||
BUILD_TAGS+=("unstable-${UPSTREAM_TAG}")
|
||||
|
||||
if [ -n "$LATEST" ]; then
|
||||
BUILD_TAGS+=("unstable")
|
||||
fi
|
||||
@ -330,16 +330,12 @@ jobs:
|
||||
BUILD_TAGS+=("${FEDORA_VERSION}-testing")
|
||||
BUILD_TAGS+=("testing-${FEDORA_VERSION}") # flip ver to be last
|
||||
|
||||
# Per upstream ver
|
||||
BUILD_TAGS+=("testing-${UPSTREAM_TAG}")
|
||||
|
||||
if [ -n "$LATEST" ]; then
|
||||
BUILD_TAGS+=("testing")
|
||||
fi
|
||||
else
|
||||
BUILD_TAGS+=("${FEDORA_VERSION}")
|
||||
BUILD_TAGS+=("${UPSTREAM_TAG}")
|
||||
BUILD_TAGS+=("stable-${UPSTREAM_TAG}")
|
||||
BUILD_TAGS+=("stable-${VERSION_TAG}")
|
||||
|
||||
# Per fedora version
|
||||
BUILD_TAGS+=("${FEDORA_VERSION}-stable")
|
||||
@ -427,8 +423,15 @@ jobs:
|
||||
run: |
|
||||
echo "${{ toJSON(steps.push.outputs) }}"
|
||||
|
||||
generate_release:
|
||||
name: Generate Release
|
||||
needs: [push-ghcr]
|
||||
if: github.event_name != 'pull_request'
|
||||
secrets: inherit
|
||||
uses: ./.github/workflows/generate_release.yml
|
||||
|
||||
build_iso:
|
||||
name: build iso
|
||||
name: Build ISO
|
||||
needs: [push-ghcr]
|
||||
if: github.ref_name == 'testing'
|
||||
# Eventually would be nice for building images in PRs
|
||||
|
2
.github/workflows/build_iso.yml
vendored
2
.github/workflows/build_iso.yml
vendored
@ -35,7 +35,7 @@ jobs:
|
||||
- bazzite-gnome-asus-nvidia
|
||||
- bazzite-asus-nvidia-open
|
||||
- bazzite-gnome-asus-nvidia-open
|
||||
major_version: [40]
|
||||
major_version: [41]
|
||||
steps:
|
||||
|
||||
- name: Free Disk Space (Ubuntu)
|
||||
|
416
.github/workflows/changelog.py
vendored
Normal file
416
.github/workflows/changelog.py
vendored
Normal file
@ -0,0 +1,416 @@
|
||||
from itertools import product
|
||||
import subprocess
|
||||
import json
|
||||
import time
|
||||
from typing import Any
|
||||
import re
|
||||
from collections import defaultdict
|
||||
|
||||
REGISTRY = "docker://ghcr.io/ublue-os/"
|
||||
|
||||
IMAGE_MATRIX = {
|
||||
"base": ["desktop", "deck", "nvidia-closed", "nvidia-open"],
|
||||
"de": ["kde", "gnome"],
|
||||
"image_flavor": ["main", "asus"],
|
||||
}
|
||||
|
||||
RETRIES = 3
|
||||
RETRY_WAIT = 5
|
||||
FEDORA_PATTERN = re.compile(r"\.fc\d\d")
|
||||
STABLE_START_PATTERN = re.compile(r"\d\d\.\d")
|
||||
OTHER_START_PATTERN = lambda target: re.compile(rf"{target}-\d\d\.\d")
|
||||
|
||||
PATTERN_ADD = "\n| ✨ | {name} | | {version} |"
|
||||
PATTERN_CHANGE = "\n| 🔄 | {name} | {prev} | {new} |"
|
||||
PATTERN_REMOVE = "\n| ❌ | {name} | {version} | |"
|
||||
PATTERN_PKGREL_CHANGED = "{prev} ➡️ {new}"
|
||||
PATTERN_PKGREL = "{version}"
|
||||
COMMON_PAT = "### All Images\n| | Name | Previous | New |\n| --- | --- | --- | --- |{changes}\n\n"
|
||||
OTHER_NAMES = {
|
||||
"desktop": "### Desktop Images\n| | Name | Previous | New |\n| --- | --- | --- | --- |{changes}\n\n",
|
||||
"deck": "### Deck Images\n| | Name | Previous | New |\n| --- | --- | --- | --- |{changes}\n\n",
|
||||
"kde": "### KDE Images\n| | Name | Previous | New |\n| --- | --- | --- | --- |{changes}\n\n",
|
||||
"gnome": "### Gnome Images\n| | Name | Previous | New |\n| --- | --- | --- | --- |{changes}\n\n",
|
||||
"nvidia": "### Nvidia Images\n| | Name | Previous | New |\n| --- | --- | --- | --- |{changes}\n\n",
|
||||
"asus": "### Asus Images\n| | Name | Previous | New |\n| --- | --- | --- | --- |{changes}\n\n",
|
||||
}
|
||||
|
||||
COMMITS_FORMAT = "### Commits\n| Hash | Subject |\n| --- | --- |{commits}\n\n"
|
||||
COMMIT_FORMAT = "\n| **[{short}](https://github.com/ublue-os/bazzite/commit/{hash})** | {subject} |"
|
||||
|
||||
CHANGELOG_TITLE = "{tag}: {pretty}"
|
||||
CHANGELOG_FORMAT = """\
|
||||
{handwritten}
|
||||
|
||||
From previous `{target}` version `{prev}` there have been the following changes. **One package per new version shown.**
|
||||
|
||||
Visit [bazzite.gg](https://bazzite.gg) for more information and to download Bazzite.
|
||||
|
||||
### Major packages
|
||||
| Name | Version |
|
||||
| --- | --- |
|
||||
| **Kernel** | {pkgrel:kernel} |
|
||||
| **Firmware** | {pkgrel:atheros-firmware} |
|
||||
| **Mesa** | {pkgrel:mesa-filesystem} |
|
||||
| **Gamescope** | {pkgrel:gamescope} |
|
||||
| **Gnome** | {pkgrel:gnome-control-center-filesystem} |
|
||||
| **KDE** | {pkgrel:plasma-desktop} |
|
||||
| **[HHD](https://github.com/hhd-dev/hhd)** | {pkgrel:hhd} |
|
||||
|
||||
{changes}
|
||||
"""
|
||||
HANDWRITTEN_PLACEHOLDER = """\
|
||||
This is an automatically generated changelog for release `{curr}`."""
|
||||
|
||||
BLACKLIST_VERSIONS = [
|
||||
"kernel",
|
||||
"mesa-filesystem",
|
||||
"gamescope",
|
||||
"gnome-control-center-filesystem",
|
||||
"plasma-desktop",
|
||||
"atheros-firmware",
|
||||
]
|
||||
|
||||
|
||||
def get_images():
|
||||
for base, de, image_flavor in product(*IMAGE_MATRIX.values()):
|
||||
img = "bazzite"
|
||||
if base == "deck":
|
||||
if image_flavor == "asus":
|
||||
img += "-ally"
|
||||
else:
|
||||
img += "-deck"
|
||||
|
||||
if de == "gnome":
|
||||
img += "-gnome"
|
||||
|
||||
if base != "deck" and image_flavor == "asus":
|
||||
img += "-asus"
|
||||
|
||||
if base == "nvidia-closed":
|
||||
img += "-nvidia"
|
||||
elif base == "nvidia-open":
|
||||
img += "-nvidia-open"
|
||||
|
||||
yield img, base, de, image_flavor
|
||||
|
||||
|
||||
def get_manifests(target: str):
|
||||
out = {}
|
||||
imgs = list(get_images())
|
||||
for j, (img, _, _, _) in enumerate(imgs):
|
||||
output = None
|
||||
print(f"Getting {img}:{target} manifest ({j+1}/{len(imgs)}).")
|
||||
for i in range(RETRIES):
|
||||
try:
|
||||
output = subprocess.run(
|
||||
["skopeo", "inspect", REGISTRY + img + ":" + target],
|
||||
check=True,
|
||||
stdout=subprocess.PIPE,
|
||||
).stdout
|
||||
break
|
||||
except subprocess.CalledProcessError:
|
||||
print(
|
||||
f"Failed to get {img}:{target}, retrying in {RETRY_WAIT} seconds ({i+1}/{RETRIES})"
|
||||
)
|
||||
time.sleep(RETRY_WAIT)
|
||||
if output is None:
|
||||
print(f"Failed to get {img}:{target}, skipping")
|
||||
continue
|
||||
out[img] = json.loads(output)
|
||||
return out
|
||||
|
||||
|
||||
def get_tags(target: str, manifests: dict[str, Any]):
|
||||
tags = set()
|
||||
|
||||
for manifest in manifests.values():
|
||||
for tag in manifest["RepoTags"]:
|
||||
# Tags ending with .0 should not exist
|
||||
if tag.endswith(".0"):
|
||||
continue
|
||||
if target != "stable":
|
||||
if re.match(OTHER_START_PATTERN(target), tag):
|
||||
tags.add(tag)
|
||||
else:
|
||||
if re.match(STABLE_START_PATTERN, tag):
|
||||
tags.add(tag)
|
||||
|
||||
tags = list(sorted(tags))
|
||||
assert len(tags) > 2, "No current and previous tags found"
|
||||
return tags[-2], tags[-1]
|
||||
|
||||
|
||||
def get_packages(manifests: dict[str, Any]):
|
||||
packages = {}
|
||||
for img, manifest in manifests.items():
|
||||
try:
|
||||
packages[img] = json.loads(manifest["Labels"]["dev.hhd.rechunk.info"])[
|
||||
"packages"
|
||||
]
|
||||
except Exception as e:
|
||||
print(f"Failed to get packages for {img}:\n{e}")
|
||||
return packages
|
||||
|
||||
|
||||
def get_package_groups(prev: dict[str, Any], manifests: dict[str, Any]):
|
||||
common = set()
|
||||
others = {k: set() for k in OTHER_NAMES.keys()}
|
||||
|
||||
npkg = get_packages(manifests)
|
||||
ppkg = get_packages(prev)
|
||||
|
||||
keys = set(npkg.keys()) | set(ppkg.keys())
|
||||
pkg = defaultdict(set)
|
||||
for k in keys:
|
||||
pkg[k] = set(npkg.get(k, {})) | set(ppkg.get(k, {}))
|
||||
|
||||
# Find common packages
|
||||
first = True
|
||||
for img, base, de, image_flavor in get_images():
|
||||
if img not in pkg:
|
||||
continue
|
||||
|
||||
if first:
|
||||
for p in pkg[img]:
|
||||
common.add(p)
|
||||
else:
|
||||
for c in common.copy():
|
||||
if c not in pkg[img]:
|
||||
common.remove(c)
|
||||
|
||||
first = False
|
||||
|
||||
# Find other packages
|
||||
for t, other in others.items():
|
||||
first = True
|
||||
for img, base, de, image_flavor in get_images():
|
||||
if img not in pkg:
|
||||
continue
|
||||
|
||||
if t == "asus" and image_flavor != "asus":
|
||||
continue
|
||||
if t == "nvidia" and "nvidia" not in base:
|
||||
continue
|
||||
if t == "kde" and de != "kde":
|
||||
continue
|
||||
if t == "gnome" and de != "gnome":
|
||||
continue
|
||||
if t == "deck" and base != "deck":
|
||||
continue
|
||||
if t == "desktop" and base == "deck":
|
||||
continue
|
||||
|
||||
if first:
|
||||
for p in pkg[img]:
|
||||
if p not in common:
|
||||
other.add(p)
|
||||
else:
|
||||
for c in other.copy():
|
||||
if c not in pkg[img]:
|
||||
other.remove(c)
|
||||
|
||||
first = False
|
||||
|
||||
return sorted(common), {k: sorted(v) for k, v in others.items()}
|
||||
|
||||
|
||||
def get_versions(manifests: dict[str, Any]):
|
||||
versions = {}
|
||||
pkgs = get_packages(manifests)
|
||||
for img_pkgs in pkgs.values():
|
||||
for pkg, v in img_pkgs.items():
|
||||
versions[pkg] = re.sub(FEDORA_PATTERN, "", v)
|
||||
return versions
|
||||
|
||||
|
||||
def calculate_changes(pkgs: list[str], prev: dict[str, str], curr: dict[str, str]):
|
||||
added = []
|
||||
changed = []
|
||||
removed = []
|
||||
|
||||
blacklist_ver = set([curr.get(v, None) for v in BLACKLIST_VERSIONS])
|
||||
|
||||
for pkg in pkgs:
|
||||
# Clearup changelog by removing mentioned packages
|
||||
if pkg in BLACKLIST_VERSIONS:
|
||||
continue
|
||||
if pkg in curr and curr.get(pkg, None) in blacklist_ver:
|
||||
continue
|
||||
if pkg in prev and prev.get(pkg, None) in blacklist_ver:
|
||||
continue
|
||||
|
||||
if pkg not in prev:
|
||||
added.append(pkg)
|
||||
elif pkg not in curr:
|
||||
removed.append(pkg)
|
||||
elif prev[pkg] != curr[pkg]:
|
||||
changed.append(pkg)
|
||||
|
||||
blacklist_ver.add(curr.get(pkg, None))
|
||||
blacklist_ver.add(prev.get(pkg, None))
|
||||
|
||||
out = ""
|
||||
for pkg in added:
|
||||
out += PATTERN_ADD.format(name=pkg, version=curr[pkg])
|
||||
for pkg in changed:
|
||||
out += PATTERN_CHANGE.format(name=pkg, prev=prev[pkg], new=curr[pkg])
|
||||
for pkg in removed:
|
||||
out += PATTERN_REMOVE.format(name=pkg, version=prev[pkg])
|
||||
return out
|
||||
|
||||
|
||||
def get_commits(prev_manifests, manifests, workdir: str):
|
||||
try:
|
||||
start = next(iter(prev_manifests.values()))["Labels"][
|
||||
"org.opencontainers.image.revision"
|
||||
]
|
||||
finish = next(iter(manifests.values()))["Labels"][
|
||||
"org.opencontainers.image.revision"
|
||||
]
|
||||
|
||||
commits = subprocess.run(
|
||||
[
|
||||
"git",
|
||||
"-C",
|
||||
workdir,
|
||||
"log",
|
||||
"--pretty=format:%H %h %s",
|
||||
f"{start}..{finish}",
|
||||
],
|
||||
check=True,
|
||||
stdout=subprocess.PIPE,
|
||||
).stdout.decode("utf-8")
|
||||
|
||||
out = ""
|
||||
for commit in commits.split("\n"):
|
||||
if not commit:
|
||||
continue
|
||||
hash, short, subject = commit.split(" ", 2)
|
||||
out += (
|
||||
COMMIT_FORMAT.replace("{short}", short)
|
||||
.replace("{subject}", subject)
|
||||
.replace("{hash}", hash)
|
||||
)
|
||||
|
||||
if out:
|
||||
return COMMITS_FORMAT.format(commits=out)
|
||||
return ""
|
||||
except Exception as e:
|
||||
print(f"Failed to get commits:\n{e}")
|
||||
return ""
|
||||
|
||||
|
||||
def generate_changelog(
|
||||
handwritten: str | None,
|
||||
target: str,
|
||||
pretty: str | None,
|
||||
workdir: str,
|
||||
prev_manifests,
|
||||
manifests,
|
||||
):
|
||||
common, others = get_package_groups(prev_manifests, manifests)
|
||||
versions = get_versions(manifests)
|
||||
prev_versions = get_versions(prev_manifests)
|
||||
|
||||
prev, curr = get_tags(target, manifests)
|
||||
|
||||
if not pretty:
|
||||
# Generate pretty version since we dont have it
|
||||
try:
|
||||
finish: str = next(iter(manifests.values()))["Labels"][
|
||||
"org.opencontainers.image.revision"
|
||||
]
|
||||
except Exception as e:
|
||||
print(f"Failed to get finish hash:\n{e}")
|
||||
finish = ""
|
||||
|
||||
# Remove .0 from curr
|
||||
curr = re.sub(r"\.\d{1,2}$", "", curr)
|
||||
# Remove target- from curr
|
||||
curr_pretty = re.sub(rf"^[a-z]+-", "", curr)
|
||||
pretty = target.capitalize() + " (F" + curr_pretty
|
||||
if finish and target != "stable":
|
||||
pretty += ", #" + finish[:7]
|
||||
pretty += ")"
|
||||
|
||||
title = CHANGELOG_TITLE.format_map(defaultdict(str, tag=curr, pretty=pretty))
|
||||
|
||||
changelog = CHANGELOG_FORMAT
|
||||
|
||||
changelog = (
|
||||
changelog.replace("{handwritten}", handwritten if handwritten else HANDWRITTEN_PLACEHOLDER)
|
||||
.replace("{target}", target)
|
||||
.replace("{prev}", prev)
|
||||
.replace("{curr}", curr)
|
||||
)
|
||||
|
||||
for pkg, v in versions.items():
|
||||
if pkg not in prev_versions or prev_versions[pkg] == v:
|
||||
changelog = changelog.replace(
|
||||
"{pkgrel:" + pkg + "}", PATTERN_PKGREL.format(version=v)
|
||||
)
|
||||
else:
|
||||
changelog = changelog.replace(
|
||||
"{pkgrel:" + pkg + "}",
|
||||
PATTERN_PKGREL_CHANGED.format(prev=prev_versions[pkg], new=v),
|
||||
)
|
||||
|
||||
changes = ""
|
||||
changes += get_commits(prev_manifests, manifests, workdir)
|
||||
common = calculate_changes(common, prev_versions, versions)
|
||||
if common:
|
||||
changes += COMMON_PAT.format(changes=common)
|
||||
for k, v in others.items():
|
||||
chg = calculate_changes(v, prev_versions, versions)
|
||||
if chg:
|
||||
changes += OTHER_NAMES[k].format(changes=chg)
|
||||
|
||||
changelog = changelog.replace("{changes}", changes)
|
||||
|
||||
return title, changelog
|
||||
|
||||
|
||||
def main():
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("target", help="Target tag")
|
||||
parser.add_argument("output", help="Output environment file")
|
||||
parser.add_argument("changelog", help="Output changelog file")
|
||||
parser.add_argument("--pretty", help="Subject for the changelog")
|
||||
parser.add_argument("--workdir", help="Git directory for commits")
|
||||
parser.add_argument("--handwritten", help="Handwritten changelog")
|
||||
args = parser.parse_args()
|
||||
|
||||
# Remove refs/tags, refs/heads, refs/remotes e.g.
|
||||
# Tags cannot include / anyway.
|
||||
target = args.target.split('/')[-1]
|
||||
|
||||
manifests = get_manifests(target)
|
||||
prev, curr = get_tags(target, manifests)
|
||||
print(f"Previous tag: {prev}")
|
||||
print(f" Current tag: {curr}")
|
||||
|
||||
prev_manifests = get_manifests(prev)
|
||||
title, changelog = generate_changelog(
|
||||
args.handwritten,
|
||||
target,
|
||||
args.pretty,
|
||||
args.workdir,
|
||||
prev_manifests,
|
||||
manifests,
|
||||
)
|
||||
|
||||
print(f"Changelog:\n# {title}\n{changelog}")
|
||||
print(f"\nOutput:\nTITLE=\"{title}\"\nTAG={curr}")
|
||||
|
||||
with open(args.changelog, "w") as f:
|
||||
f.write(changelog)
|
||||
|
||||
with open(args.output, "w") as f:
|
||||
f.write(f'TITLE="{title}"\nTAG={curr}\n')
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
44
.github/workflows/generate_release.yml
vendored
Normal file
44
.github/workflows/generate_release.yml
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
on:
|
||||
workflow_call:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
handwritten:
|
||||
description: 'Small changelog about changes in this build:'
|
||||
target:
|
||||
description: 'Release Branch (e.g., testing). Defaults to branch name.'
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
name: Generate Release
|
||||
jobs:
|
||||
generate-release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout last 500 commits (for <commits> to work)
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 500
|
||||
|
||||
- name: Get target
|
||||
id: get-target
|
||||
run: |
|
||||
echo "target=${{ github.event.inputs.target || github.ref }}" > $GITHUB_OUTPUT
|
||||
|
||||
- name: Generate Release Text
|
||||
id: generate-release
|
||||
run: |
|
||||
python3 ./.github/workflows/changelog.py \
|
||||
"${{ steps.get-target.outputs.target }}" \
|
||||
./output.env ./changelog.md --workdir . --handwritten "${{ github.event.inputs.handwritten }}"
|
||||
source ./output.env
|
||||
echo "title=${TITLE}" >> $GITHUB_OUTPUT
|
||||
echo "tag=${TAG}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Create Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
name: ${{ steps.generate-release.outputs.title }}
|
||||
tag_name: ${{ steps.generate-release.outputs.tag }}
|
||||
body_path: ./changelog.md
|
||||
make_latest: ${{ steps.get-target.outputs.target == 'stable' }}
|
||||
prerelease: ${{ steps.get-target.outputs.target != 'stable' }}
|
@ -2,18 +2,18 @@ ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME:-kinoite}"
|
||||
ARG BASE_IMAGE_FLAVOR="${BASE_IMAGE_FLAVOR:-main}"
|
||||
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-main}"
|
||||
ARG NVIDIA_FLAVOR="${NVIDIA_FLAVOR:-nvidia}"
|
||||
ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-fsync-ba}"
|
||||
ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-bazzite}"
|
||||
ARG KERNEL_VERSION="${KERNEL_VERSION:-6.9.12-8.fsync.fc40.x86_64}"
|
||||
ARG IMAGE_BRANCH="${IMAGE_BRANCH:-main}"
|
||||
ARG SOURCE_IMAGE="${SOURCE_IMAGE:-$BASE_IMAGE_NAME-$BASE_IMAGE_FLAVOR}"
|
||||
ARG BASE_IMAGE="ghcr.io/ublue-os/${SOURCE_IMAGE}"
|
||||
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-40}"
|
||||
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-41}"
|
||||
ARG JUPITER_FIRMWARE_VERSION="${JUPITER_FIRMWARE_VERSION:-jupiter-20240917.1}"
|
||||
ARG SHA_HEAD_SHORT="${SHA_HEAD_SHORT}"
|
||||
ARG VERSION_TAG="${VERSION_TAG}"
|
||||
ARG VERSION_PRETTY="${VERSION_PRETTY}"
|
||||
|
||||
FROM ghcr.io/ublue-os/${KERNEL_FLAVOR}-kernel:${FEDORA_MAJOR_VERSION}-${KERNEL_VERSION} AS fsync
|
||||
FROM ghcr.io/ublue-os/${KERNEL_FLAVOR}-kernel:${FEDORA_MAJOR_VERSION}-${KERNEL_VERSION} AS kernel
|
||||
FROM ghcr.io/ublue-os/akmods:${KERNEL_FLAVOR}-${FEDORA_MAJOR_VERSION}-${KERNEL_VERSION} AS akmods
|
||||
FROM ghcr.io/ublue-os/akmods-extra:${KERNEL_FLAVOR}-${FEDORA_MAJOR_VERSION}-${KERNEL_VERSION} AS akmods-extra
|
||||
|
||||
@ -23,11 +23,11 @@ ARG IMAGE_NAME="${IMAGE_NAME:-bazzite}"
|
||||
ARG IMAGE_VENDOR="${IMAGE_VENDOR:-ublue-os}"
|
||||
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-main}"
|
||||
ARG NVIDIA_FLAVOR="${NVIDIA_FLAVOR:-nvidia}"
|
||||
ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-fsync-ba}"
|
||||
ARG KERNEL_VERSION="${KERNEL_VERSION:-6.9.12-208.fsync.fc40.x86_64}"
|
||||
ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-bazzite}"
|
||||
ARG KERNEL_VERSION="${KERNEL_VERSION:-6.11.4-301.bazzite.fc41.x86_64}"
|
||||
ARG IMAGE_BRANCH="${IMAGE_BRANCH:-main}"
|
||||
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME:-kinoite}"
|
||||
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-40}"
|
||||
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-41}"
|
||||
ARG JUPITER_FIRMWARE_VERSION="${JUPITER_FIRMWARE_VERSION:-jupiter-20240917.1}"
|
||||
ARG SHA_HEAD_SHORT="${SHA_HEAD_SHORT}"
|
||||
ARG VERSION_TAG="${VERSION_TAG}"
|
||||
@ -211,9 +211,6 @@ RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
curl -Lo /etc/yum.repos.d/_copr_hikariknight-looking-glass-kvmfr.repo https://copr.fedorainfracloud.org/coprs/hikariknight/looking-glass-kvmfr/repo/fedora-"${FEDORA_MAJOR_VERSION}"/hikariknight-looking-glass-kvmfr-fedora-"${FEDORA_MAJOR_VERSION}".repo && \
|
||||
curl -Lo /etc/yum.repos.d/_copr_mavit-discover-overlay.repo https://copr.fedorainfracloud.org/coprs/mavit/discover-overlay/repo/fedora-"${FEDORA_MAJOR_VERSION}"/mavit-discover-overlay-fedora-"${FEDORA_MAJOR_VERSION}".repo && \
|
||||
curl -Lo /etc/yum.repos.d/_copr_matte-schwartz-sunshine.repo https://copr.fedorainfracloud.org/coprs/matte-schwartz/sunshine/repo/fedora-"${FEDORA_MAJOR_VERSION}"/matte-schwartz-sunshine-fedora-"${FEDORA_MAJOR_VERSION}".repo && \
|
||||
curl -Lo /etc/yum.repos.d/_copr_rok-cdemu.repo https://copr.fedorainfracloud.org/coprs/rok/cdemu/repo/fedora-"${FEDORA_MAJOR_VERSION}"/rok-cdemu-fedora-"${FEDORA_MAJOR_VERSION}".rep && \
|
||||
curl -Lo /etc/yum.repos.d/_copr_rodoma92-kde-cdemu-manager.repo https://copr.fedorainfracloud.org/coprs/rodoma92/kde-cdemu-manager/repo/fedora-"${FEDORA_MAJOR_VERSION}"/rodoma92-kde-cdemu-manager-fedora-"${FEDORA_MAJOR_VERSION}".repo && \
|
||||
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 && \
|
||||
rpm-ostree install \
|
||||
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
|
||||
@ -225,21 +222,17 @@ RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
# Install kernel-fsync
|
||||
# Install kernel
|
||||
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
--mount=type=bind,from=fsync,src=/tmp/rpms,dst=/tmp/fsync-rpms \
|
||||
--mount=type=bind,from=kernel,src=/tmp/rpms,dst=/tmp/kernel-rpms \
|
||||
rpm-ostree cliwrap install-to-root / && \
|
||||
if [[ "${KERNEL_FLAVOR}" =~ "fsync" ]]; then \
|
||||
echo "Will install ${KERNEL_FLAVOR} kernel" && \
|
||||
rpm-ostree override replace \
|
||||
--experimental \
|
||||
/tmp/fsync-rpms/kernel-[0-9]*.rpm \
|
||||
/tmp/fsync-rpms/kernel-core-*.rpm \
|
||||
/tmp/fsync-rpms/kernel-modules-*.rpm \
|
||||
/tmp/fsync-rpms/kernel-uki-virt-*.rpm \
|
||||
; else \
|
||||
echo "will use kernel from ${KERNEL_FLAVOR} images" \
|
||||
; fi && \
|
||||
echo "Will install ${KERNEL_FLAVOR} kernel" && \
|
||||
rpm-ostree override replace \
|
||||
--experimental \
|
||||
/tmp/kernel-rpms/kernel-[0-9]*.rpm \
|
||||
/tmp/kernel-rpms/kernel-core-*.rpm \
|
||||
/tmp/kernel-rpms/kernel-modules-*.rpm \
|
||||
/tmp/kernel-rpms/kernel-uki-virt-*.rpm && \
|
||||
rpm-ostree install \
|
||||
scx-scheds && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
@ -301,12 +294,10 @@ RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
/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 \
|
||||
/tmp/akmods-extra-rpms/kmods/*evdi*.rpm && \
|
||||
/tmp/akmods-extra-rpms/kmods/*ryzen-smu*.rpm && \
|
||||
rpm-ostree override replace \
|
||||
--experimental \
|
||||
--from repo=copr:copr.fedorainfracloud.org:ublue-os:staging \
|
||||
@ -365,13 +356,6 @@ RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
firefox \
|
||||
firefox-langpacks \
|
||||
htop && \
|
||||
rpm-ostree override remove \
|
||||
power-profiles-daemon \
|
||||
|| true && \
|
||||
rpm-ostree override remove \
|
||||
tlp \
|
||||
tlp-rdw \
|
||||
|| true && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
@ -389,10 +373,6 @@ RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
compsize \
|
||||
ryzenadj \
|
||||
input-remapper \
|
||||
tuned \
|
||||
tuned-ppd \
|
||||
tuned-utils \
|
||||
tuned-gtk \
|
||||
tuned-profiles-cpu-partitioning \
|
||||
i2c-tools \
|
||||
udica \
|
||||
@ -446,7 +426,6 @@ RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
sed -i 's/max_cpu_load_percent.*/max_cpu_load_percent = 100.0/' /etc/ublue-update/ublue-update.toml && \
|
||||
sed -i 's/max_mem_percent.*/max_mem_percent = 90.0/' /etc/ublue-update/ublue-update.toml && \
|
||||
sed -i 's/dbus_notify.*/dbus_notify = false/' /etc/ublue-update/ublue-update.toml && \
|
||||
sed -i 's@Name=tuned-gui@Name=TuneD Manager@g' /usr/share/applications/tuned-gui.desktop && \
|
||||
curl -Lo /usr/bin/installcab https://raw.githubusercontent.com/KyleGospo/steam-proton-mf-wmv/master/installcab.py && \
|
||||
chmod +x /usr/bin/installcab && \
|
||||
curl -Lo /usr/bin/install-mf-wmv https://github.com/KyleGospo/steam-proton-mf-wmv/blob/master/install-mf-wmv.sh && \
|
||||
@ -506,9 +485,6 @@ RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
libobs_glcapture.x86_64 \
|
||||
libobs_vkcapture.i686 \
|
||||
libobs_glcapture.i686 && \
|
||||
ln -s wine32 /usr/bin/wine && \
|
||||
ln -s wine32-preloader /usr/bin/wine-preloader && \
|
||||
ln -s wineserver64 /usr/bin/wineserver && \
|
||||
sed -i 's@\[Desktop Entry\]@\[Desktop Entry\]\nNoDisplay=true@g' /usr/share/applications/winetricks.desktop && \
|
||||
curl -Lo /tmp/latencyflex.tar.xz $(curl https://api.github.com/repos/ishitatsuyuki/LatencyFleX/releases/latest | jq -r '.assets[] | select(.name| test(".*.tar.xz$")).browser_download_url') && \
|
||||
mkdir -p /tmp/latencyflex && \
|
||||
@ -531,7 +507,8 @@ RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
qt \
|
||||
krdp && \
|
||||
rpm-ostree override remove \
|
||||
plasma-welcome && \
|
||||
plasma-welcome \
|
||||
plasma-welcome-fedora && \
|
||||
rpm-ostree override replace \
|
||||
--experimental \
|
||||
--from repo=copr:copr.fedorainfracloud.org:ublue-os:staging \
|
||||
@ -570,12 +547,8 @@ RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
rpm-ostree override replace \
|
||||
--experimental \
|
||||
--from repo=copr:copr.fedorainfracloud.org:ublue-os:staging \
|
||||
mutter \
|
||||
mutter-common \
|
||||
gnome-shell && \
|
||||
rpm-ostree install \
|
||||
ptyxis \
|
||||
nautilus-open-any-terminal \
|
||||
nautilus-gsconnect \
|
||||
steamdeck-backgrounds \
|
||||
gnome-randr-rust \
|
||||
@ -596,11 +569,8 @@ RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
rpm-ostree override remove \
|
||||
gnome-software-rpm-ostree \
|
||||
gnome-classic-session \
|
||||
gnome-classic-session-xsession \
|
||||
gnome-tour \
|
||||
gnome-extensions-app \
|
||||
gnome-terminal \
|
||||
gnome-terminal-nautilus \
|
||||
gnome-system-monitor \
|
||||
gnome-initial-setup \
|
||||
gnome-shell-extension-background-logo \
|
||||
@ -679,9 +649,7 @@ RUN rm -f /etc/profile.d/toolbox.sh && \
|
||||
echo "import \"/usr/share/ublue-os/just/80-bazzite.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
echo "import \"/usr/share/ublue-os/just/81-bazzite-fixes.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
echo "import \"/usr/share/ublue-os/just/82-bazzite-apps.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
echo "import \"/usr/share/ublue-os/just/82-bazzite-cdemu.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
echo "import \"/usr/share/ublue-os/just/82-bazzite-sunshine.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
echo "import \"/usr/share/ublue-os/just/82-bazzite-rmlint.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
echo "import \"/usr/share/ublue-os/just/82-bazzite-waydroid.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
echo "import \"/usr/share/ublue-os/just/83-bazzite-audio.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
echo "import \"/usr/share/ublue-os/just/84-bazzite-virt.just\"" >> /usr/share/ublue-os/justfile && \
|
||||
@ -732,13 +700,11 @@ RUN rm -f /etc/profile.d/toolbox.sh && \
|
||||
sed -i 's@enabled=1@enabled=0@g' /etc/yum.repos.d/negativo17-fedora-rar.repo && \
|
||||
mkdir -p /etc/flatpak/remotes.d && \
|
||||
curl -Lo /etc/flatpak/remotes.d/flathub.flatpakrepo https://dl.flathub.org/repo/flathub.flatpakrepo && \
|
||||
systemctl enable tuned.service && \
|
||||
systemctl enable brew-dir-fix.service && \
|
||||
systemctl enable brew-setup.service && \
|
||||
systemctl disable brew-upgrade.timer && \
|
||||
systemctl disable brew-update.timer && \
|
||||
systemctl enable btrfs-dedup@var-home.timer && \
|
||||
systemctl disable displaylink.service && \
|
||||
systemctl enable input-remapper.service && \
|
||||
systemctl unmask bazzite-flatpak-manager.service && \
|
||||
systemctl enable bazzite-flatpak-manager.service && \
|
||||
@ -769,11 +735,11 @@ ARG IMAGE_NAME="${IMAGE_NAME:-bazzite-deck}"
|
||||
ARG IMAGE_VENDOR="${IMAGE_VENDOR:-ublue-os}"
|
||||
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-main}"
|
||||
ARG NVIDIA_FLAVOR="${NVIDIA_FLAVOR:-nvidia}"
|
||||
ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-fsync-ba}"
|
||||
ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-bazzite}"
|
||||
ARG KERNEL_VERSION="${KERNEL_VERSION:-6.9.12-206.fsync.fc40.x86_64}"
|
||||
ARG IMAGE_BRANCH="${IMAGE_BRANCH:-main}"
|
||||
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME:-kinoite}"
|
||||
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-40}"
|
||||
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-41}"
|
||||
ARG VERSION_TAG="${VERSION_TAG}"
|
||||
ARG VERSION_PRETTY="${VERSION_PRETTY}"
|
||||
|
||||
@ -855,8 +821,6 @@ RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
|
||||
--from repo=copr:copr.fedorainfracloud.org:kylegospo:bazzite \
|
||||
upower \
|
||||
upower-libs && \
|
||||
rpm-ostree override remove \
|
||||
tuned-gtk && \
|
||||
/usr/libexec/containerbuild/cleanup.sh && \
|
||||
ostree container commit
|
||||
|
||||
@ -908,6 +872,8 @@ RUN /usr/libexec/containerbuild/image-info && \
|
||||
echo "Compiling gschema to include Bazzite Deck setting overrides" && \
|
||||
glib-compile-schemas /usr/share/glib-2.0/schemas &>/dev/null && \
|
||||
rm -r /tmp/bazzite-schema-test && \
|
||||
echo "Removing Steam BPM workaround .desktop file" && \
|
||||
{ rm -v /usr/share/applications/bazzite-steam-bpm.desktop || true; } && \
|
||||
systemctl enable bazzite-autologin.service && \
|
||||
systemctl enable wireplumber-workaround.service && \
|
||||
systemctl enable wireplumber-sysconf.service && \
|
||||
@ -939,11 +905,11 @@ ARG IMAGE_NAME="${IMAGE_NAME:-bazzite-nvidia}"
|
||||
ARG IMAGE_VENDOR="${IMAGE_VENDOR:-ublue-os}"
|
||||
ARG IMAGE_FLAVOR="${IMAGE_FLAVOR:-nvidia}"
|
||||
ARG NVIDIA_FLAVOR="${NVIDIA_FLAVOR:-nvidia}"
|
||||
ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-fsync-ba}"
|
||||
ARG KERNEL_VERSION="${KERNEL_VERSION:-6.9.12-208.fsync.fc40.x86_64}"
|
||||
ARG KERNEL_FLAVOR="${KERNEL_FLAVOR:-bazzite}"
|
||||
ARG KERNEL_VERSION="${KERNEL_VERSION:-6.11.4-301.bazzite.fc41.x86_64}"
|
||||
ARG IMAGE_BRANCH="${IMAGE_BRANCH:-main}"
|
||||
ARG BASE_IMAGE_NAME="${BASE_IMAGE_NAME:-kinoite}"
|
||||
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-40}"
|
||||
ARG FEDORA_MAJOR_VERSION="${FEDORA_MAJOR_VERSION:-41}"
|
||||
ARG VERSION_TAG="${VERSION_TAG}"
|
||||
ARG VERSION_PRETTY="${VERSION_PRETTY}"
|
||||
|
||||
|
@ -22,6 +22,7 @@ app/org.gnome.baobab/x86_64/stable
|
||||
app/org.gnome.clocks/x86_64/stable
|
||||
app/org.gnome.font-viewer/x86_64/stable
|
||||
app/io.github.nokse22.Exhibit/x86_64/stable
|
||||
app/de.leopoldluley.Clapgrep/x86_64/stable
|
||||
runtime/org.freedesktop.Platform.VulkanLayer.MangoHud/x86_64/23.08
|
||||
runtime/org.freedesktop.Platform.VulkanLayer.vkBasalt/x86_64/23.08
|
||||
runtime/org.freedesktop.Platform.VulkanLayer.OBSVkCapture/x86_64/23.08
|
||||
|
@ -11,6 +11,7 @@ app/com.github.tchx84.Flatseal/x86_64/stable
|
||||
app/com.github.Matoking.protontricks/x86_64/stable
|
||||
app/io.github.flattool.Warehouse/x86_64/stable
|
||||
app/net.davidotek.pupgui2/x86_64/stable
|
||||
app/de.leopoldluley.Clapgrep/x86_64/stable
|
||||
runtime/org.freedesktop.Platform.VulkanLayer.MangoHud/x86_64/23.08
|
||||
runtime/org.freedesktop.Platform.VulkanLayer.vkBasalt/x86_64/23.08
|
||||
runtime/org.freedesktop.Platform.VulkanLayer.OBSVkCapture/x86_64/23.08
|
||||
|
@ -1,31 +0,0 @@
|
||||
From d1424ea9ffa5d51d1cfa004b0861e345c4300902 Mon Sep 17 00:00:00 2001
|
||||
From: Adam Williamson <awilliam@redhat.com>
|
||||
Date: Wed, 6 Mar 2024 17:26:45 -0800
|
||||
Subject: [PATCH] bootupd: call bootupctl with --update-firmware
|
||||
|
||||
This is required to write an entry to the EFI boot manager,
|
||||
which we ought to do (anaconda does it when installing the
|
||||
bootloader itself). Without this, boot of the installed system
|
||||
will only work if it's configured to try and boot from the
|
||||
hard disk using the fallback path.
|
||||
|
||||
Signed-off-by: Adam Williamson <awilliam@redhat.com>
|
||||
---
|
||||
.../modules/payloads/payload/rpm_ostree/installation.py | 1 +
|
||||
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/pyanaconda/modules/payloads/payload/rpm_ostree/installation.py b/pyanaconda/modules/payloads/payload/rpm_ostree/installation.py
|
||||
index 0ac8583b78..f5ea666cf2 100644
|
||||
--- a/pyanaconda/modules/payloads/payload/rpm_ostree/installation.py
|
||||
+++ b/pyanaconda/modules/payloads/payload/rpm_ostree/installation.py
|
||||
@@ -520,6 +520,7 @@ class ConfigureBootloader(Task):
|
||||
"install",
|
||||
"--auto",
|
||||
"--write-uuid",
|
||||
+ "--update-firmware",
|
||||
"--device",
|
||||
dev_data.path,
|
||||
"/",
|
||||
--
|
||||
2.44.0
|
||||
|
@ -1,7 +1,7 @@
|
||||
Summary: Graphical system installer
|
||||
Name: anaconda
|
||||
Version: 40.22.3
|
||||
Release: 101.bazzite
|
||||
Version: 41.35
|
||||
Release: 100.bazzite
|
||||
License: GPL-2.0-or-later
|
||||
URL: http://fedoraproject.org/wiki/Anaconda
|
||||
|
||||
@ -10,13 +10,9 @@ URL: http://fedoraproject.org/wiki/Anaconda
|
||||
# git checkout -b archive-branch anaconda-%%{version}-%%{release}
|
||||
# ./autogen.sh
|
||||
# make dist
|
||||
Source0: https://github.com/rhinstaller/%{name}/releases/download/%{name}-%{version}-1/%{name}-%{version}.tar.bz2
|
||||
# https://github.com/rhinstaller/anaconda/pull/5508
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2268505
|
||||
# Fix bootupd UEFI path to create an EFI boot manager entry
|
||||
Patch0: 0001-bootupd-call-bootupctl-with-update-firmware.patch
|
||||
Source0: https://github.com/rhinstaller/%{name}/releases/download/%{name}-%{version}/%{name}-%{version}.tar.bz2
|
||||
|
||||
Patch1: bazzite.patch
|
||||
Patch0: bazzite.patch
|
||||
|
||||
# Versions of required components (done so we make sure the buildrequires
|
||||
# match the requires versions of things).
|
||||
@ -44,7 +40,7 @@ Patch1: bazzite.patch
|
||||
%define libxklavierver 5.4
|
||||
%define mehver 0.23-1
|
||||
%define nmver 1.0
|
||||
%define pykickstartver 3.52-1
|
||||
%define pykickstartver 3.58-1
|
||||
%define pypartedver 2.5-2
|
||||
%define pythonblivetver 1:3.9.0-1
|
||||
%define rpmver 4.15.0
|
||||
@ -90,11 +86,16 @@ Summary: Core of the Anaconda installer
|
||||
# core/signal.py is under MIT
|
||||
License: GPL-2.0-or-later AND MIT
|
||||
Requires: python3-libs
|
||||
%if 0%{?rhel} > 10 || 0%{?fedora} > 40
|
||||
Requires: python3-crypt-r
|
||||
%endif
|
||||
Requires: python3-dnf >= %{dnfver}
|
||||
Requires: python3-blivet >= %{pythonblivetver}
|
||||
Requires: python3-blockdev >= %{libblockdevver}
|
||||
Requires: python3-meh >= %{mehver}
|
||||
%if 0%{?rhel} < 10 || 0%{?fedora}
|
||||
Requires: libreport-anaconda >= %{libreportanacondaver}
|
||||
%endif
|
||||
Requires: libselinux-python3
|
||||
Requires: python3-rpm >= %{rpmver}
|
||||
Requires: python3-pyparted >= %{pypartedver}
|
||||
@ -118,17 +119,19 @@ Requires: subscription-manager >= %{subscriptionmanagerver}
|
||||
# which is apparently great for containers but unhelpful for the rest of us
|
||||
Requires: cracklib-dicts
|
||||
|
||||
%if 0%{?rhel} < 10 || 0%{?fedora}
|
||||
Requires: teamd
|
||||
Requires: NetworkManager-team
|
||||
%endif
|
||||
%ifarch s390 s390x
|
||||
Requires: openssh
|
||||
%endif
|
||||
Requires: NetworkManager >= %{nmver}
|
||||
Requires: NetworkManager-libnm >= %{nmver}
|
||||
Requires: NetworkManager-team
|
||||
Requires: kbd
|
||||
Requires: chrony
|
||||
Requires: systemd
|
||||
%if ! 0%{?rhel}
|
||||
%if 0%{?rhel} > 10 || 0%{?fedora}
|
||||
Requires: systemd-resolved
|
||||
%endif
|
||||
Requires: python3-pid
|
||||
@ -173,7 +176,6 @@ BuildArchitectures: noarch
|
||||
BuildRequires: desktop-file-utils
|
||||
# live installation currently implies a graphical installation
|
||||
Requires: anaconda-gui = %{version}-%{release}
|
||||
Requires: usermode
|
||||
Requires: zenity
|
||||
Requires: xisxwayland
|
||||
Recommends: xhost
|
||||
@ -225,6 +227,8 @@ Requires: f2fs-tools
|
||||
Requires: xfsprogs
|
||||
Requires: dosfstools
|
||||
Requires: e2fsprogs
|
||||
# External tooling for managing NVMe-FC devices in the installation environment
|
||||
Recommends: nvme-cli
|
||||
|
||||
%description install-env-deps
|
||||
The anaconda-install-env-deps metapackage lists all installation environment
|
||||
@ -268,6 +272,10 @@ Requires: rpm-ostree >= %{rpmostreever}
|
||||
Requires: ostree
|
||||
# used by ostree command for native containers
|
||||
Requires: skopeo
|
||||
# External tooling for managing NVMe-FC devices in the installation environment
|
||||
Requires: nvme-cli
|
||||
# Needed for bootc
|
||||
Requires: podman
|
||||
|
||||
%description install-img-deps
|
||||
The anaconda-install-img-deps metapackage lists all boot.iso installation
|
||||
@ -335,6 +343,7 @@ Requires: dracut-network
|
||||
Requires: dracut-live
|
||||
Requires: xz
|
||||
Requires: python3-kickstart
|
||||
Requires: iputils
|
||||
|
||||
%description dracut
|
||||
The 'anaconda' dracut module handles installer-specific boot tasks and
|
||||
@ -343,7 +352,6 @@ runtime on NFS/HTTP/FTP servers or local disks.
|
||||
|
||||
%prep
|
||||
%autosetup -p 1
|
||||
rm pyanaconda/threading.py
|
||||
|
||||
%build
|
||||
# use actual build-time release number, not tarball creation time release number
|
||||
@ -474,25 +482,166 @@ rm -rf \
|
||||
%{_prefix}/libexec/anaconda/dd_*
|
||||
|
||||
%changelog
|
||||
* Mon Mar 25 2024 Packit <hello@packit.dev> - 40.22.3-1
|
||||
- Disable preexec for vtActivate() (mkolman)
|
||||
- Lower permissions for kickstart logs in /tmp (jkonecny)
|
||||
- Copy /etc/resolv.conf to system only if there is no systemd-resolved
|
||||
(rvykydal)
|
||||
- Revert "Do not copy /etc/resolv.conf to chroot before installation"
|
||||
(rvykydal)
|
||||
- Do not use systemd-resolved in installer environment on RHEL (rvykydal)
|
||||
- Do not write LVM devices file during image installation (vtrefny)
|
||||
* Thu Oct 17 2024 Packit <hello@packit.dev> - 41.35-1
|
||||
- Fix checking whether a disk can be cleared during autopart (vtrefny)
|
||||
|
||||
* Wed Mar 06 2024 Adam Williamson <awilliam@redhat.com> - 40.22.2-2
|
||||
* Thu Sep 26 2024 Packit <hello@packit.dev> - 41.34-1
|
||||
- Fix scheduling actions in reclaim space dialog (#2311936) (vtrefny)
|
||||
|
||||
* Mon Sep 23 2024 Packit <hello@packit.dev> - 41.33-1
|
||||
- New version - 41.33 (k.koukiou)
|
||||
|
||||
* Thu Aug 22 2024 Packit <hello@packit.dev> - 41.31-1
|
||||
- docs: update release note about modularity deprecation (kkoukiou)
|
||||
- Add support for creating LUKS HW-OPAL devices (vtrefny)
|
||||
- Adjust to pykickstart moving new partition and autopart commands to F41
|
||||
(kkoukiou)
|
||||
- pyanaconda: remove code paths around module command parsing as this was
|
||||
deprecated (kkoukiou)
|
||||
- Improve code based on min/max recommendation (jkonecny)
|
||||
- Support DNF5's config-manager (marusak.matej)
|
||||
- network: ignore kickstart configuration of nBFT devices (rvykydal)
|
||||
- network: do not dump configurations of nBFT devices (rvykydal)
|
||||
- network: ignore nBFT devices connections in network configuration (rvykydal)
|
||||
- network: add a test for ignoring ifname=nbft* for device renaming (rvykydal)
|
||||
- network: do not create empty dir for only ifname=nbft* options (rvykydal)
|
||||
- network: Avoid creating link files for 'nbft' interfaces (tbzatek)
|
||||
|
||||
* Tue Aug 20 2024 Packit <hello@packit.dev> - 41.30-1
|
||||
- Use proxy server also for FTP .treeinfo download (jkonecny)
|
||||
- Fix the VNC question (#2293672) (mkolman)
|
||||
- Check if text mode was actually requested by kickstart (#2293672) (mkolman)
|
||||
|
||||
* Tue Aug 13 2024 Packit <hello@packit.dev> - 41.29-1
|
||||
- Remove deprecated warnings for inst prefix (rolivier)
|
||||
- Fix using kickstart mount command with device ID (vtrefny)
|
||||
- Update documentation for the update_iso script (jkonecny)
|
||||
- Add support for Live ISO to rebuild_boot_iso (jkonecny)
|
||||
|
||||
* Tue Aug 06 2024 Packit <hello@packit.dev> - 41.28-1
|
||||
- Adjust custom partitioning and storage spokes to the device ID API (vtrefny)
|
||||
- Adjust resize module to the device ID API (vtrefny)
|
||||
- Add a custom function for recreating btrfs subvolumes (vtrefny)
|
||||
- Use blivet's "device ID" as a unique device identifier (vtrefny)
|
||||
- Fix mock LUKS devices logic in tests (vtrefny)
|
||||
- Fix checking for locked LUKS devices (vtrefny)
|
||||
- util: Add additional information for EFI systems (riehecky)
|
||||
- Add release note for network port devices' default configuration profiles
|
||||
(rvykydal)
|
||||
|
||||
* Tue Jul 30 2024 Packit <hello@packit.dev> - 41.27-1
|
||||
- Remove threading compatibility layer (kkoukiou)
|
||||
|
||||
* Tue Jul 23 2024 Packit <hello@packit.dev> - 41.26-1
|
||||
- Don't use tmpfs in build if not enough RAM (lifto)
|
||||
- Document RHEL 10 specifics for container shell (mkolman)
|
||||
- storage: add EFI partition in the windows OS devices if it's detected
|
||||
(kkoukiou)
|
||||
- storage: add windows system to GetExistingSystems (kkoukiou)
|
||||
- storage: store the partition type name in device attrs for partitions
|
||||
(kkoukiou)
|
||||
- Clean up the code by removing the utils directory (rolivier)
|
||||
|
||||
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 41.25-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Tue Jul 16 2024 Packit <hello@packit.dev> - 41.25-1
|
||||
- makeupdates: Bump Python version in site packages path to 3.13 (vtrefny)
|
||||
- Apply suggestions from Rodolfo (martin.kolman)
|
||||
- Scripts for local boot.iso updates workflow (mkolman)
|
||||
- Fix unit_tests/pyanaconda_tests/core/test_threads.py:140:20: E721 (kkoukiou)
|
||||
- Fix pyanaconda/modules/network/nm_client.py:576:21: PLR1704 (kkoukiou)
|
||||
- Fix pyanaconda/core/users.py:408:21: PLR1704 (kkoukiou)
|
||||
|
||||
* Tue Jul 09 2024 Packit <hello@packit.dev> - 41.24-1
|
||||
- Update translations from Weblate for master (github-actions)
|
||||
- tests: storage: conditionally run btrfs tests if command is not removed
|
||||
(kkoukiou)
|
||||
- tests: allow the module specification to contain removed commands (kkoukiou)
|
||||
|
||||
* Tue Jul 02 2024 Packit <hello@packit.dev> - 41.23-1
|
||||
- Update translations from Weblate for master (github-actions)
|
||||
- chore: remove unused atk in BaseWindow.c (freya)
|
||||
- Replace deprecated methods to avoid warnings (rolivier)
|
||||
- Do not mark ancestors of device with source or stage2 as protected (rvykydal)
|
||||
|
||||
* Tue Jun 25 2024 Packit <hello@packit.dev> - 41.22-1
|
||||
- Update translations from Weblate for master (github-actions)
|
||||
|
||||
* Tue Jun 11 2024 Python Maint <python-maint@redhat.com> - 41.20-2
|
||||
- Rebuilt for Python 3.13
|
||||
|
||||
* Tue Jun 11 2024 Packit <hello@packit.dev> - 41.20-1
|
||||
- Update translations from Weblate for master (github-actions)
|
||||
- Fix issues for new pylint check (jkonecny)
|
||||
- Use InconsistentParentSectorSize instead of InconsistentPVSectorSize
|
||||
(vtrefny)
|
||||
- Do not require libreport on RHEL 10 (mkolman)
|
||||
- Update translations from Weblate for master (github-actions)
|
||||
- Get kickstart data via DBus (akankovs)
|
||||
- Adding a implementation for runtime and ui commands (akankovs)
|
||||
- Update tests for kickstart commands (akankovs)
|
||||
- Migration of the remaining kickstart commands to the Runtime module
|
||||
(akankovs)
|
||||
|
||||
* Fri Jun 07 2024 Python Maint <python-maint@redhat.com> - 41.19-2
|
||||
- Rebuilt for Python 3.13
|
||||
|
||||
* Tue Jun 04 2024 Packit <hello@packit.dev> - 41.19-1
|
||||
- dracut: Remove 'linear' from modules to load (vtrefny)
|
||||
- Remove 'linear' from list of expected MD RAID levels (vtrefny)
|
||||
|
||||
* Tue May 28 2024 Packit <hello@packit.dev> - 41.18-1
|
||||
- Do not imply that Fedora ELN has an EULA (sgallagh)
|
||||
- Update translations from Weblate for master (github-actions)
|
||||
- Deprecate kickstart modularity module (marusak.matej)
|
||||
- Remove Javascript leftovers from Makefile (jkonecny)
|
||||
- Revert "Ignore npm packages files for translation" (jkonecny)
|
||||
- Update translations from Weblate for master (github-actions)
|
||||
- docs: Add guide how to debug/develop GH workflows (jkonecny)
|
||||
|
||||
* Tue May 21 2024 Packit <hello@packit.dev> - 41.17-1
|
||||
- RHEL moved from Bugzilla to Jira (jstodola)
|
||||
- Update translations from Weblate for master (github-actions)
|
||||
- docs: Fix link on ci-status page (jkonecny)
|
||||
- docs: Fix link on ci status for container updates (jkonecny)
|
||||
- gui: Fix displaying of the device label (yueyuankun)
|
||||
- Stop pretending liveinst+vnc is supported (#678354) (kkoukiou)
|
||||
- Use the standalone crypt_r package on Fedora 41+ (miro)
|
||||
- Write a warning rescue selinux (akankovs)
|
||||
Resolves: RHEL-14005
|
||||
|
||||
* Tue Apr 30 2024 Katerina Koukiou <kkoukiou@redhat.com> - 41.15-1
|
||||
- Update to upstream release 41.15
|
||||
|
||||
* Tue Apr 23 2024 Packit <hello@packit.dev> - 41.14-1
|
||||
- Revert "infra: Packit fix empty jobs field" (kkoukiou)
|
||||
|
||||
* Thu Apr 18 2024 Packit <hello@packit.dev> - 41.13-1
|
||||
- Fix signature of the method passed to DNF (jkonecny)
|
||||
- Do not include teamd on RHEL (rvykydal)
|
||||
- network: guard team devices configuration in kickstart by capabilities
|
||||
(rvykydal)
|
||||
|
||||
* Tue Apr 09 2024 Packit <hello@packit.dev> - 41.9-1
|
||||
- Update translations from Weblate for master (github-actions)
|
||||
|
||||
* Tue Mar 26 2024 Packit <hello@packit.dev> - 41.7-1
|
||||
- Update translations from Weblate for master (github-actions)
|
||||
- Disable preexec for vtActivate() (mkolman)
|
||||
|
||||
* Tue Mar 19 2024 Packit <hello@packit.dev> - 41.6-1
|
||||
- install-img-deps: Require podman (walters)
|
||||
|
||||
* Wed Mar 06 2024 Adam Williamson <awilliam@redhat.com> - 41.2-2
|
||||
- Backport PR #5508 to make bootupd create EFI boot manager entries (#2268505)
|
||||
|
||||
* Tue Feb 20 2024 Packit <hello@packit.dev> - 40.22.2-1
|
||||
* Tue Feb 20 2024 Packit <hello@packit.dev> - 41.2-1
|
||||
- Test for task category and category API (akankovs)
|
||||
- Creating categories dbus API for installation phases (akankovs)
|
||||
|
||||
* Thu Feb 15 2024 Packit <hello@packit.dev> - 40.22.1-1
|
||||
- Set up the fedora-40 branch (mkolman)
|
||||
* Fri Feb 16 2024 Packit <hello@packit.dev> - 41.1-1
|
||||
- bump major version number for Rawhide after F40 branching (mkolman)
|
||||
|
||||
* Tue Feb 06 2024 Adam Williamson <awilliam@redhat.com> - 40.21-2
|
||||
- Backport PR #5460 to fix ostree btrfs installs with new util-linux (#2262892)
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
Name: gamescope
|
||||
Version: 100.%{gamescope_tag}
|
||||
Release: 8.bazzite
|
||||
Release: 10.bazzite
|
||||
Summary: Micro-compositor for video games on Wayland
|
||||
|
||||
License: BSD
|
||||
@ -17,9 +17,9 @@ Source0: stb.pc
|
||||
|
||||
Patch0: 0001-cstdint.patch
|
||||
|
||||
# https://hhd.dev/
|
||||
# https://github.com/ChimeraOS/gamescope
|
||||
# Cleaned up by + patches from https://hhd.dev/
|
||||
Patch1: chimeraos-cleanup-v1.patch
|
||||
Patch1: handheld.patch
|
||||
|
||||
# https://github.com/ValveSoftware/gamescope/pull/740
|
||||
Patch2: 740.patch
|
||||
@ -55,8 +55,8 @@ BuildRequires: pkgconfig(xkbcommon)
|
||||
BuildRequires: pkgconfig(sdl2)
|
||||
BuildRequires: pkgconfig(libpipewire-0.3)
|
||||
BuildRequires: pkgconfig(libavif)
|
||||
BuildRequires: (pkgconfig(wlroots) >= 0.18.0 with pkgconfig(wlroots) < 0.19.0)
|
||||
BuildRequires: (pkgconfig(libliftoff) >= 0.4.1 with pkgconfig(libliftoff) < 0.5)
|
||||
BuildRequires: pkgconfig(wlroots)
|
||||
BuildRequires: pkgconfig(libliftoff)
|
||||
BuildRequires: pkgconfig(libcap)
|
||||
BuildRequires: pkgconfig(hwdata)
|
||||
BuildRequires: pkgconfig(lcms2)
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 503b9235a9379dcc625857dbd062dbab386ec112 Mon Sep 17 00:00:00 2001
|
||||
From e0e74b9862ca591302a01ef89994e3eaf8d1245e Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Anderson <ruinairas1992@gmail.com>
|
||||
Date: Fri, 17 May 2024 21:56:55 -0500
|
||||
Subject: [PATCH v1 1/8] feat: add --custom-refresh-rates option (+ fixes)
|
||||
Subject: [PATCH v2 01/12] feat: add --custom-refresh-rates option (+ fixes)
|
||||
|
||||
Commit originally by Matthew, external fixes by Kyle, and new system check
|
||||
move by Antheas.
|
||||
@ -15,10 +15,10 @@ Co-authored-by: Antheas Kapenekakis <git@antheas.dev>
|
||||
3 files changed, 38 insertions(+)
|
||||
|
||||
diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp
|
||||
index 3a996af..b0c7670 100644
|
||||
index 0b121e8..75c3258 100644
|
||||
--- a/src/Backends/DRMBackend.cpp
|
||||
+++ b/src/Backends/DRMBackend.cpp
|
||||
@@ -2220,6 +2220,11 @@ namespace gamescope
|
||||
@@ -2243,6 +2243,11 @@ namespace gamescope
|
||||
bHasKnownHDRInfo = true;
|
||||
}
|
||||
}
|
||||
@ -31,7 +31,7 @@ index 3a996af..b0c7670 100644
|
||||
|
||||
if ( !bHasKnownColorimetry )
|
||||
diff --git a/src/main.cpp b/src/main.cpp
|
||||
index c074f82..f1db9cc 100644
|
||||
index 9dff5c4..8381889 100644
|
||||
--- a/src/main.cpp
|
||||
+++ b/src/main.cpp
|
||||
@@ -129,6 +129,7 @@ const struct option *gamescope_options = (struct option[]){
|
||||
@ -84,7 +84,7 @@ index c074f82..f1db9cc 100644
|
||||
struct sigaction handle_signal_action = {};
|
||||
|
||||
void ShutdownGamescope()
|
||||
@@ -749,6 +778,8 @@ int main(int argc, char **argv)
|
||||
@@ -746,6 +775,8 @@ int main(int argc, char **argv)
|
||||
g_eGamescopeModeGeneration = parse_gamescope_mode_generation( optarg );
|
||||
} else if (strcmp(opt_name, "force-orientation") == 0) {
|
||||
g_DesiredInternalOrientation = force_orientation( optarg );
|
||||
@ -114,13 +114,13 @@ index 2e6fb83..390c04a 100644
|
||||
enum class GamescopeUpscaleFilter : uint32_t
|
||||
{
|
||||
--
|
||||
2.46.2
|
||||
2.47.0
|
||||
|
||||
|
||||
From 99d77e08b6165a1f48e8870859dd8bb630f7c591 Mon Sep 17 00:00:00 2001
|
||||
From 304c0c2297bc2f24be9edff4088fdfae418adaf0 Mon Sep 17 00:00:00 2001
|
||||
From: Alesh Slovak <alesh@playtron.one>
|
||||
Date: Thu, 26 Sep 2024 07:13:24 -0400
|
||||
Subject: [PATCH v1 2/8] fix(vrr): Revert "steamcompmgr: Move
|
||||
Subject: [PATCH v2 02/12] fix(vrr): Revert "steamcompmgr: Move
|
||||
outdatedInteractiveFocus to window"
|
||||
|
||||
This reverts commit 299bc3410dcfd46da5e3c988354b60ed3a356900.
|
||||
@ -207,13 +207,13 @@ index 095694e..e41fad9 100644
|
||||
bool hasHwndStyle = false;
|
||||
uint32_t hwndStyle = 0;
|
||||
--
|
||||
2.46.2
|
||||
2.47.0
|
||||
|
||||
|
||||
From 6bffd653d8f9e6539008b4be898cca67c1414b37 Mon Sep 17 00:00:00 2001
|
||||
From 2a9e687172b569681eea53fb8f4848b0a758e680 Mon Sep 17 00:00:00 2001
|
||||
From: Renn <8340896+AkazaRenn@users.noreply.github.com>
|
||||
Date: Fri, 11 Oct 2024 17:48:26 +0200
|
||||
Subject: [PATCH v1 3/8] fix(deck): Use super + 1/2 for Overlay/QAM
|
||||
Subject: [PATCH v2 03/12] fix(deck): Use super + 1/2 for Overlay/QAM
|
||||
|
||||
Replaces the patch for CTRL + 1/2 for Overlay/QAM with Super + 1/2 and
|
||||
allows for CTRL for a smooth transition.
|
||||
@ -268,13 +268,13 @@ index 78a86ee..99df8aa 100644
|
||||
wlserver_keyboardfocus( old_kb_surf, false );
|
||||
return;
|
||||
--
|
||||
2.46.2
|
||||
2.47.0
|
||||
|
||||
|
||||
From 7d6fcc2580d34208e0860762ddbc8560a9b47af8 Mon Sep 17 00:00:00 2001
|
||||
From dde7f34921a70953fca2020dc22f89c544bdaf65 Mon Sep 17 00:00:00 2001
|
||||
From: Antheas Kapenekakis <git@antheas.dev>
|
||||
Date: Fri, 11 Oct 2024 17:52:48 +0200
|
||||
Subject: [PATCH v1 4/8] fix: allow for disabling touch atom click
|
||||
Subject: [PATCH v2 04/12] fix: allow for disabling touch atom click
|
||||
|
||||
Causes issues in certain devices (or not anymore?).
|
||||
|
||||
@ -287,7 +287,7 @@ Co-authored-by: Kyle Gospodnetich <me@kylegospodneti.ch>
|
||||
2 files changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/main.cpp b/src/main.cpp
|
||||
index f1db9cc..d08f0e7 100644
|
||||
index 8381889..a76b51b 100644
|
||||
--- a/src/main.cpp
|
||||
+++ b/src/main.cpp
|
||||
@@ -128,6 +128,7 @@ const struct option *gamescope_options = (struct option[]){
|
||||
@ -337,13 +337,13 @@ index df7616d..4a17499 100644
|
||||
break;
|
||||
case '?':
|
||||
--
|
||||
2.46.2
|
||||
2.47.0
|
||||
|
||||
|
||||
From fb371b1a06b1fba53e278bbcdfb491bcaec73099 Mon Sep 17 00:00:00 2001
|
||||
From 033b1b8ce87267e9e1b75a889d5ba3d8c47ed4fe Mon Sep 17 00:00:00 2001
|
||||
From: Antheas Kapenekakis <git@antheas.dev>
|
||||
Date: Fri, 11 Oct 2024 21:56:54 +0200
|
||||
Subject: [PATCH v1 5/8] fix(intel-gpu): allow for (enabling) hacky texture
|
||||
Subject: [PATCH v2 05/12] fix(intel-gpu): allow for (enabling) hacky texture
|
||||
|
||||
Disabling hacky texture will use more hardware planes, causing some devices to composite yielding lower fps. Required for intel to work
|
||||
---
|
||||
@ -352,7 +352,7 @@ Disabling hacky texture will use more hardware planes, causing some devices to c
|
||||
2 files changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/main.cpp b/src/main.cpp
|
||||
index d08f0e7..9b4ac91 100644
|
||||
index a76b51b..84e05a9 100644
|
||||
--- a/src/main.cpp
|
||||
+++ b/src/main.cpp
|
||||
@@ -128,6 +128,7 @@ const struct option *gamescope_options = (struct option[]){
|
||||
@ -402,21 +402,21 @@ index 4a17499..da3115f 100644
|
||||
break;
|
||||
case '?':
|
||||
--
|
||||
2.46.2
|
||||
2.47.0
|
||||
|
||||
|
||||
From 4118463a5fab5b6d19e225507e5206a87711e66e Mon Sep 17 00:00:00 2001
|
||||
From 8e64da6cabcd2a6fc9d9fad12cb95ff203985d1b Mon Sep 17 00:00:00 2001
|
||||
From: Antheas Kapenekakis <git@antheas.dev>
|
||||
Date: Fri, 11 Oct 2024 23:01:13 +0200
|
||||
Subject: [PATCH v1 6/8] fix: re-add external orientation options to not break
|
||||
current sessions (incl. applying ext. orientation)
|
||||
Subject: [PATCH v2 06/12] fix: re-add external orientation options to not
|
||||
break current sessions (incl. applying ext. orientation)
|
||||
|
||||
---
|
||||
src/main.cpp | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/main.cpp b/src/main.cpp
|
||||
index 9b4ac91..1338e94 100644
|
||||
index 84e05a9..2398535 100644
|
||||
--- a/src/main.cpp
|
||||
+++ b/src/main.cpp
|
||||
@@ -129,6 +129,8 @@ const struct option *gamescope_options = (struct option[]){
|
||||
@ -428,7 +428,7 @@ index 9b4ac91..1338e94 100644
|
||||
{ "disable-touch-click", no_argument, nullptr, 0 },
|
||||
{ "force-windows-fullscreen", no_argument, nullptr, 0 },
|
||||
{ "custom-refresh-rates", required_argument, nullptr, 0 },
|
||||
@@ -780,7 +782,7 @@ int main(int argc, char **argv)
|
||||
@@ -777,7 +779,7 @@ int main(int argc, char **argv)
|
||||
gamescope::cv_touch_click_mode = (gamescope::TouchClickMode) atoi( optarg );
|
||||
} else if (strcmp(opt_name, "generate-drm-mode") == 0) {
|
||||
g_eGamescopeModeGeneration = parse_gamescope_mode_generation( optarg );
|
||||
@ -438,13 +438,46 @@ index 9b4ac91..1338e94 100644
|
||||
} else if (strcmp(opt_name, "custom-refresh-rates") == 0) {
|
||||
g_customRefreshRates = parse_custom_refresh_rates( optarg );
|
||||
--
|
||||
2.46.2
|
||||
2.47.0
|
||||
|
||||
|
||||
From c0368c80d256c24f43aa1c0a28695a6ec9c1dbab Mon Sep 17 00:00:00 2001
|
||||
From 14d19b8d86c485fe57e1489de905c908c67fd77e Mon Sep 17 00:00:00 2001
|
||||
From: honjow <honjow311@gmail.com>
|
||||
Date: Wed, 16 Oct 2024 00:23:58 +0800
|
||||
Subject: [PATCH v2 07/12] fix(external): fix crash when using external
|
||||
touchscreens
|
||||
|
||||
---
|
||||
src/wlserver.cpp | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/wlserver.cpp b/src/wlserver.cpp
|
||||
index 99df8aa..5e8f516 100644
|
||||
--- a/src/wlserver.cpp
|
||||
+++ b/src/wlserver.cpp
|
||||
@@ -2492,8 +2492,12 @@ static void apply_touchscreen_orientation(double *x, double *y )
|
||||
double tx = 0;
|
||||
double ty = 0;
|
||||
|
||||
- // Use internal screen always for orientation purposes.
|
||||
- switch ( GetBackend()->GetConnector( gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL )->GetCurrentOrientation() )
|
||||
+ auto orientation = GAMESCOPE_PANEL_ORIENTATION_AUTO;
|
||||
+ if ( GetBackend() && GetBackend()->GetCurrentConnector( ) )
|
||||
+ {
|
||||
+ orientation = GetBackend()->GetCurrentConnector()->GetCurrentOrientation();
|
||||
+ }
|
||||
+ switch ( orientation )
|
||||
{
|
||||
default:
|
||||
case GAMESCOPE_PANEL_ORIENTATION_AUTO:
|
||||
--
|
||||
2.47.0
|
||||
|
||||
|
||||
From 9e4ee4341a7480a0af883cc47d3c6e6ee91de74a Mon Sep 17 00:00:00 2001
|
||||
From: Antheas Kapenekakis <git@antheas.dev>
|
||||
Date: Fri, 11 Oct 2024 23:47:59 +0200
|
||||
Subject: [PATCH v1 7/8] feat(vrr): allow for setting refresh rate if the
|
||||
Subject: [PATCH v2 08/12] feat(vrr): allow for setting refresh rate if the
|
||||
internal display allows
|
||||
|
||||
For the Ally, we have a set of VFP that work to set the refresh rate.
|
||||
@ -456,7 +489,7 @@ it. Therefore, bypass some checks to allow it to work just for this usecase.
|
||||
2 files changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/main.cpp b/src/main.cpp
|
||||
index 1338e94..6453702 100644
|
||||
index 2398535..0621c65 100644
|
||||
--- a/src/main.cpp
|
||||
+++ b/src/main.cpp
|
||||
@@ -132,6 +132,7 @@ const struct option *gamescope_options = (struct option[]){
|
||||
@ -515,13 +548,14 @@ index da3115f..69fd348 100644
|
||||
g_bHackyEnabled = true;
|
||||
}
|
||||
--
|
||||
2.46.2
|
||||
2.47.0
|
||||
|
||||
|
||||
From cfca9d99ab80df9ab3f83ce304345a17f7a52d4c Mon Sep 17 00:00:00 2001
|
||||
From dc2d5db6f62ac4c5a160d200be346100d923b1c3 Mon Sep 17 00:00:00 2001
|
||||
From: Antheas Kapenekakis <git@antheas.dev>
|
||||
Date: Fri, 11 Oct 2024 19:09:05 +0200
|
||||
Subject: [PATCH v1 8/8] feat: add external option that now only lies to steam
|
||||
Subject: [PATCH v2 09/12] feat: add external option that now only lies to
|
||||
steam
|
||||
|
||||
Previously, there was a force-panel option that allowed for VRR.
|
||||
However, this is no longer the case and VRR works fine.
|
||||
@ -536,7 +570,7 @@ variant of the patch that only does that.
|
||||
5 files changed, 20 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/main.cpp b/src/main.cpp
|
||||
index 6453702..7ec6020 100644
|
||||
index 0621c65..056e1c1 100644
|
||||
--- a/src/main.cpp
|
||||
+++ b/src/main.cpp
|
||||
@@ -199,6 +199,7 @@ const char usage[] =
|
||||
@ -567,7 +601,7 @@ index 6453702..7ec6020 100644
|
||||
static enum GamescopeUpscaleScaler parse_upscaler_scaler(const char *str)
|
||||
{
|
||||
if (strcmp(str, "auto") == 0) {
|
||||
@@ -786,6 +800,8 @@ int main(int argc, char **argv)
|
||||
@@ -783,6 +797,8 @@ int main(int argc, char **argv)
|
||||
g_eGamescopeModeGeneration = parse_gamescope_mode_generation( optarg );
|
||||
} else if (strcmp(opt_name, "force-orientation") == 0 || strcmp(opt_name, "force-external-orientation") == 0) {
|
||||
g_DesiredInternalOrientation = force_orientation( optarg );
|
||||
@ -602,7 +636,7 @@ index 9f384c4..30e48e8 100644
|
||||
|
||||
extern uint32_t inputCounter;
|
||||
diff --git a/src/wlserver.cpp b/src/wlserver.cpp
|
||||
index 99df8aa..39010ab 100644
|
||||
index 5e8f516..1eeaa25 100644
|
||||
--- a/src/wlserver.cpp
|
||||
+++ b/src/wlserver.cpp
|
||||
@@ -1078,7 +1078,7 @@ static uint32_t get_conn_display_info_flags()
|
||||
@ -627,5 +661,216 @@ index 0569472..104f7a2 100644
|
||||
std::vector<ResListEntry_t> wlserver_xdg_commit_queue();
|
||||
|
||||
--
|
||||
2.46.2
|
||||
2.47.0
|
||||
|
||||
|
||||
From b8e8677a811bbebe5f0f743ac22da7a83436d443 Mon Sep 17 00:00:00 2001
|
||||
From: Antheas Kapenekakis <git@antheas.dev>
|
||||
Date: Mon, 14 Oct 2024 22:42:20 +0200
|
||||
Subject: [PATCH v2 10/12] fix(display-config): always fill in mutable refresh
|
||||
rates
|
||||
|
||||
Assume the user is not lying to us when they fill in dynamic_refresh_rates
|
||||
and that gamescope will work with e.g., CVT, so accept it even if no
|
||||
custom modeline generation has been provided.
|
||||
---
|
||||
src/Backends/DRMBackend.cpp | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp
|
||||
index 75c3258..f014be9 100644
|
||||
--- a/src/Backends/DRMBackend.cpp
|
||||
+++ b/src/Backends/DRMBackend.cpp
|
||||
@@ -2161,7 +2161,9 @@ namespace gamescope
|
||||
sol::optional<sol::table> otDynamicRefreshRates = tTable["dynamic_refresh_rates"];
|
||||
sol::optional<sol::function> ofnDynamicModegen = tTable["dynamic_modegen"];
|
||||
|
||||
- if ( otDynamicRefreshRates && ofnDynamicModegen )
|
||||
+ if ( otDynamicRefreshRates && !ofnDynamicModegen )
|
||||
+ m_Mutable.ValidDynamicRefreshRates = TableToVector<uint32_t>( *otDynamicRefreshRates );
|
||||
+ else if ( otDynamicRefreshRates && ofnDynamicModegen )
|
||||
{
|
||||
m_Mutable.ValidDynamicRefreshRates = TableToVector<uint32_t>( *otDynamicRefreshRates );
|
||||
|
||||
--
|
||||
2.47.0
|
||||
|
||||
|
||||
From 2d96bb5b3fc75690d60249a8e8ea29f3c667ef55 Mon Sep 17 00:00:00 2001
|
||||
From: Antheas Kapenekakis <git@antheas.dev>
|
||||
Date: Fri, 25 Oct 2024 21:22:10 +0200
|
||||
Subject: [PATCH v2 11/12] fix(vrr): allow frame limiter to work with VRR
|
||||
enabled
|
||||
|
||||
Down to 48hz, modeset the correct framerate. Below 48hz,
|
||||
disable VRR and use the classic frame limiter.
|
||||
---
|
||||
src/steamcompmgr.cpp | 30 ++++++++++++++++++++++++++++--
|
||||
1 file changed, 28 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp
|
||||
index 3dd64f8..7dacfe7 100644
|
||||
--- a/src/steamcompmgr.cpp
|
||||
+++ b/src/steamcompmgr.cpp
|
||||
@@ -165,6 +165,7 @@ uint32_t g_reshade_technique_idx = 0;
|
||||
|
||||
bool g_bSteamIsActiveWindow = false;
|
||||
bool g_bForceInternal = false;
|
||||
+bool g_bVRRRequested = false;
|
||||
|
||||
static std::vector< steamcompmgr_win_t* > GetGlobalPossibleFocusWindows();
|
||||
static bool
|
||||
@@ -827,6 +828,28 @@ static void _update_app_target_refresh_cycle()
|
||||
{
|
||||
auto rates = GetBackend()->GetCurrentConnector()->GetValidDynamicRefreshRates();
|
||||
|
||||
+ if (g_bVRRModesetting) {
|
||||
+ if (g_bVRRRequested) {
|
||||
+ // If modeset VRR, go upwards to match the refresh rate 1-1. Refresh
|
||||
+ // doubling would hurt us here by breaking the frame limiter.
|
||||
+ for ( auto rate = rates.begin(); rate != rates.end(); rate++ )
|
||||
+ {
|
||||
+ if ((int)*rate == target_fps)
|
||||
+ {
|
||||
+ g_nDynamicRefreshRate[ type ] = *rate;
|
||||
+ // Enable VRR as we have the correct refresh rate
|
||||
+ cv_adaptive_sync = true;
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+ // Otherwise, disable VRR as we can't match the refresh rate 1-1
|
||||
+ // (e.g., below 48hz).
|
||||
+ cv_adaptive_sync = false;
|
||||
+ } else {
|
||||
+ cv_adaptive_sync = false;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
// Find highest mode to do refresh doubling with.
|
||||
for ( auto rate = rates.rbegin(); rate != rates.rend(); rate++ )
|
||||
{
|
||||
@@ -5522,8 +5545,11 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev)
|
||||
}
|
||||
if ( ev->atom == ctx->atoms.gamescopeVRREnabled )
|
||||
{
|
||||
- bool enabled = !!get_prop( ctx, ctx->root, ctx->atoms.gamescopeVRREnabled, 0 );
|
||||
- cv_adaptive_sync = enabled;
|
||||
+ g_bVRRRequested = !!get_prop( ctx, ctx->root, ctx->atoms.gamescopeVRREnabled, 0 );
|
||||
+ // Try to match refresh rate and have that set the cv_adaptive_sync only if it can
|
||||
+ if (g_bVRRModesetting) update_app_target_refresh_cycle();
|
||||
+ // otherwise, fall back to original behavior
|
||||
+ else cv_adaptive_sync = g_bVRRRequested;
|
||||
}
|
||||
if ( ev->atom == ctx->atoms.gamescopeDisplayForceInternal )
|
||||
{
|
||||
--
|
||||
2.47.0
|
||||
|
||||
|
||||
From 61ea8edafedd5c8cce320bf6415e6151555ce594 Mon Sep 17 00:00:00 2001
|
||||
From: Antheas Kapenekakis <git@antheas.dev>
|
||||
Date: Wed, 23 Oct 2024 23:33:53 +0200
|
||||
Subject: [PATCH v2 12/12] fix(battery): run at half hz while at steamUI and
|
||||
disable VRR
|
||||
|
||||
---
|
||||
src/steamcompmgr.cpp | 34 +++++++++++++++++++++++++---------
|
||||
1 file changed, 25 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp
|
||||
index 7dacfe7..f4446f0 100644
|
||||
--- a/src/steamcompmgr.cpp
|
||||
+++ b/src/steamcompmgr.cpp
|
||||
@@ -149,6 +149,7 @@ extern int g_nDynamicRefreshHz;
|
||||
bool g_bForceHDRSupportDebug = false;
|
||||
bool g_bHackyEnabled = false;
|
||||
bool g_bVRRModesetting = false;
|
||||
+bool g_refreshHalve = false;
|
||||
extern float g_flInternalDisplayBrightnessNits;
|
||||
extern float g_flHDRItmSdrNits;
|
||||
extern float g_flHDRItmTargetNits;
|
||||
@@ -166,6 +167,7 @@ uint32_t g_reshade_technique_idx = 0;
|
||||
bool g_bSteamIsActiveWindow = false;
|
||||
bool g_bForceInternal = false;
|
||||
bool g_bVRRRequested = false;
|
||||
+bool g_bVRRCanEnable = false;
|
||||
|
||||
static std::vector< steamcompmgr_win_t* > GetGlobalPossibleFocusWindows();
|
||||
static bool
|
||||
@@ -838,15 +840,15 @@ static void _update_app_target_refresh_cycle()
|
||||
{
|
||||
g_nDynamicRefreshRate[ type ] = *rate;
|
||||
// Enable VRR as we have the correct refresh rate
|
||||
- cv_adaptive_sync = true;
|
||||
+ g_bVRRCanEnable = true;
|
||||
return;
|
||||
}
|
||||
}
|
||||
// Otherwise, disable VRR as we can't match the refresh rate 1-1
|
||||
// (e.g., below 48hz).
|
||||
- cv_adaptive_sync = false;
|
||||
+ g_bVRRCanEnable = false;
|
||||
} else {
|
||||
- cv_adaptive_sync = false;
|
||||
+ g_bVRRCanEnable = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5105,19 +5107,24 @@ static bool steamcompmgr_should_vblank_window( bool bShouldLimitFPS, uint64_t vb
|
||||
if ( GetBackend()->IsVRRActive() )
|
||||
return true;
|
||||
|
||||
- bool bSendCallback = true;
|
||||
-
|
||||
int nRefreshHz = gamescope::ConvertmHzToHz( g_nNestedRefresh ? g_nNestedRefresh : g_nOutputRefresh );
|
||||
int nTargetFPS = g_nSteamCompMgrTargetFPS;
|
||||
- if ( g_nSteamCompMgrTargetFPS && bShouldLimitFPS && nRefreshHz > nTargetFPS )
|
||||
+
|
||||
+ if ( nRefreshHz > 90 && g_refreshHalve )
|
||||
+ {
|
||||
+ // Refresh halve above 90Hz if steamui is active
|
||||
+ if ( vblank_idx % 2 != 0 )
|
||||
+ return false;
|
||||
+ }
|
||||
+ else if ( g_nSteamCompMgrTargetFPS && bShouldLimitFPS && nRefreshHz > nTargetFPS )
|
||||
{
|
||||
int nVblankDivisor = nRefreshHz / nTargetFPS;
|
||||
|
||||
if ( vblank_idx % nVblankDivisor != 0 )
|
||||
- bSendCallback = false;
|
||||
+ return false;
|
||||
}
|
||||
|
||||
- return bSendCallback;
|
||||
+ return true;
|
||||
}
|
||||
|
||||
static bool steamcompmgr_should_vblank_window( steamcompmgr_win_t *w, uint64_t vblank_idx )
|
||||
@@ -5549,7 +5556,7 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev)
|
||||
// Try to match refresh rate and have that set the cv_adaptive_sync only if it can
|
||||
if (g_bVRRModesetting) update_app_target_refresh_cycle();
|
||||
// otherwise, fall back to original behavior
|
||||
- else cv_adaptive_sync = g_bVRRRequested;
|
||||
+ else g_bVRRCanEnable = g_bVRRRequested;
|
||||
}
|
||||
if ( ev->atom == ctx->atoms.gamescopeDisplayForceInternal )
|
||||
{
|
||||
@@ -7628,6 +7635,15 @@ steamcompmgr_main(int argc, char **argv)
|
||||
// as a question.
|
||||
const bool bIsVBlankFromTimer = vblank;
|
||||
|
||||
+ if ( window_is_steam( global_focus.focusWindow ) ) {
|
||||
+ // Halve refresh rate and disable vrr on SteamUI
|
||||
+ cv_adaptive_sync = false;
|
||||
+ g_refreshHalve = true;
|
||||
+ } else {
|
||||
+ cv_adaptive_sync = g_bVRRCanEnable;
|
||||
+ g_refreshHalve = false;
|
||||
+ }
|
||||
+
|
||||
// We can always vblank if VRR.
|
||||
const bool bVRR = GetBackend()->IsVRRActive();
|
||||
if ( bVRR )
|
||||
--
|
||||
2.47.0
|
||||
|
@ -1,339 +0,0 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
@ -1,25 +0,0 @@
|
||||
Name: mesa-va-drivers
|
||||
Version: 1000.0.0
|
||||
Release: 1%{?dist}
|
||||
Summary: Corrects a dependency issue between steam and mesa-va-drivers-freeworld on rpm-ostree distributions
|
||||
License: GPLv2
|
||||
URL: https://github.com/ublue-os/bazzite
|
||||
BuildArch: noarch
|
||||
|
||||
Source0: https://raw.githubusercontent.com/ublue-os/bazzite/main/spec_files/%{name}/LICENSE
|
||||
|
||||
Requires: mesa-va-drivers-freeworld
|
||||
Provides: mesa-va-drivers = %{version}
|
||||
|
||||
# Disable debug packages
|
||||
%define debug_package %{nil}
|
||||
|
||||
%description
|
||||
Corrects a dependency issue between steam and mesa-va-drivers-freeworld on rpm-ostree distributions
|
||||
|
||||
%install
|
||||
mkdir -p %{buildroot}%{_datadir}/licenses/%{name}
|
||||
cp %{SOURCE0} %{buildroot}%{_datadir}/licenses/%{name}/LICENSE
|
||||
|
||||
%files
|
||||
%license LICENSE
|
@ -11,11 +11,12 @@
|
||||
%global with_r300 1
|
||||
%global with_r600 1
|
||||
%global with_nine 1
|
||||
%global with_nvk %{with vulkan_hw}
|
||||
%global with_omx 1
|
||||
%if 0%{?with_vulkan_hw}
|
||||
%global with_nvk %{with_vulkan_hw}
|
||||
%endif
|
||||
%global with_opencl 1
|
||||
%endif
|
||||
%global base_vulkan ,amd
|
||||
%global base_vulkan %{?with_vulkan_hw:,amd}%{!?with_vulkan_hw:%{nil}}
|
||||
%endif
|
||||
|
||||
%ifnarch %{ix86}
|
||||
@ -30,25 +31,27 @@
|
||||
%global with_iris 1
|
||||
%global with_xa 1
|
||||
%global with_intel_clc 1
|
||||
%global intel_platform_vulkan ,intel,intel_hasvk
|
||||
%global intel_platform_vulkan %{?with_vulkan_hw:,intel,intel_hasvk}%{!?with_vulkan_hw:%{nil}}
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
%if !0%{?with_vulkan_hw}
|
||||
%global with_intel_vk_rt 1
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%ifarch aarch64 x86_64 %{ix86}
|
||||
%global with_kmsro 1
|
||||
%if !0%{?rhel}
|
||||
%global with_lima 1
|
||||
%global with_vc4 1
|
||||
%endif
|
||||
%global with_etnaviv 1
|
||||
%global with_freedreno 1
|
||||
%global with_kmsro 1
|
||||
%global with_panfrost 1
|
||||
%global with_tegra 1
|
||||
%endif
|
||||
%global with_freedreno 1
|
||||
%global with_panfrost 1
|
||||
%global with_v3d 1
|
||||
%global with_xa 1
|
||||
%global extra_platform_vulkan ,broadcom,freedreno,panfrost,imagination-experimental
|
||||
%global extra_platform_vulkan %{?with_vulkan_hw:,broadcom,freedreno,panfrost,imagination-experimental}%{!?with_vulkan_hw:%{nil}}
|
||||
%endif
|
||||
|
||||
%if !0%{?rhel}
|
||||
@ -66,7 +69,7 @@
|
||||
|
||||
Name: mesa
|
||||
Summary: Mesa graphics libraries
|
||||
%global ver 24.1.7
|
||||
%global ver 24.2.4
|
||||
Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)}
|
||||
Epoch: 1
|
||||
%global orig_release 1%{?dist}
|
||||
@ -95,7 +98,7 @@ BuildRequires: kernel-headers
|
||||
# We only check for the minimum version of pkgconfig(libdrm) needed so that the
|
||||
# SRPMs for each arch still have the same build dependencies. See:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1859515
|
||||
BuildRequires: pkgconfig(libdrm) >= 2.4.119
|
||||
BuildRequires: pkgconfig(libdrm) >= 2.4.122
|
||||
%if 0%{?with_libunwind}
|
||||
BuildRequires: pkgconfig(libunwind)
|
||||
%endif
|
||||
@ -137,9 +140,6 @@ BuildRequires: pkgconfig(vdpau) >= 1.1
|
||||
%if 0%{?with_va}
|
||||
BuildRequires: pkgconfig(libva) >= 0.38.0
|
||||
%endif
|
||||
%if 0%{?with_omx}
|
||||
BuildRequires: pkgconfig(libomxil-bellagio)
|
||||
%endif
|
||||
BuildRequires: pkgconfig(libelf)
|
||||
BuildRequires: pkgconfig(libglvnd) >= 1.3.2
|
||||
BuildRequires: llvm-devel >= 7.0.0
|
||||
@ -175,6 +175,7 @@ BuildRequires: python3-mako
|
||||
BuildRequires: python3-ply
|
||||
%endif
|
||||
BuildRequires: python3-pycparser
|
||||
BuildRequires: python3-pyyaml
|
||||
BuildRequires: vulkan-headers
|
||||
BuildRequires: glslang
|
||||
%if 0%{?with_vulkan_hw}
|
||||
@ -187,6 +188,7 @@ BuildRequires: pkgconfig(vulkan)
|
||||
%package filesystem
|
||||
Summary: Mesa driver filesystem
|
||||
Provides: mesa-dri-filesystem = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Obsoletes: mesa-omx-drivers < %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%description filesystem
|
||||
%{summary}.
|
||||
@ -234,6 +236,7 @@ Provides: libEGL-devel%{?_isa}
|
||||
|
||||
%package dri-drivers
|
||||
Summary: Mesa-based DRI drivers
|
||||
# Bazzite: Compatibility with Negativo17
|
||||
Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{orig_release}
|
||||
Requires: %{name}-libglapi%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
%if 0%{?with_va}
|
||||
@ -243,18 +246,10 @@ Recommends: %{name}-va-drivers%{?_isa}
|
||||
%description dri-drivers
|
||||
%{summary}.
|
||||
|
||||
%if 0%{?with_omx}
|
||||
%package omx-drivers
|
||||
Summary: Mesa-based OMX drivers
|
||||
Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{orig_release}
|
||||
|
||||
%description omx-drivers
|
||||
%{summary}.
|
||||
%endif
|
||||
|
||||
%if 0%{?with_va}
|
||||
%package va-drivers
|
||||
Summary: Mesa-based VA-API video acceleration drivers
|
||||
# Bazzite: Compatibility with Negativo17
|
||||
Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{orig_release}
|
||||
Obsoletes: %{name}-vaapi-drivers < 22.2.0-5
|
||||
|
||||
@ -265,6 +260,7 @@ Obsoletes: %{name}-vaapi-drivers < 22.2.0-5
|
||||
%if 0%{?with_vdpau}
|
||||
%package vdpau-drivers
|
||||
Summary: Mesa-based VDPAU drivers
|
||||
# Bazzite: Compatibility with Negativo17
|
||||
Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{orig_release}
|
||||
|
||||
%description vdpau-drivers
|
||||
@ -385,6 +381,8 @@ Requires: %{name}-libd3d%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release
|
||||
%package vulkan-drivers
|
||||
Summary: Mesa Vulkan drivers
|
||||
Requires: vulkan%{_isa}
|
||||
# Bazzite: Compatibility with Negativo17
|
||||
Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{orig_release}
|
||||
Obsoletes: mesa-vulkan-devel < %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%description vulkan-drivers
|
||||
@ -421,12 +419,11 @@ export MESON_PACKAGE_CACHE_DIR="%{cargo_registry}/"
|
||||
-Ddri3=enabled \
|
||||
-Dosmesa=true \
|
||||
%if 0%{?with_hardware}
|
||||
-Dgallium-drivers=swrast,virgl,nouveau%{?with_r300:,r300}%{?with_crocus:,crocus}%{?with_i915:,i915}%{?with_iris:,iris}%{?with_vmware:,svga}%{?with_radeonsi:,radeonsi}%{?with_r600:,r600}%{?with_freedreno:,freedreno}%{?with_etnaviv:,etnaviv}%{?with_tegra:,tegra}%{?with_vc4:,vc4}%{?with_v3d:,v3d}%{?with_kmsro:,kmsro}%{?with_lima:,lima}%{?with_panfrost:,panfrost}%{?with_vulkan_hw:,zink} \
|
||||
-Dgallium-drivers=swrast,virgl,nouveau%{?with_r300:,r300}%{?with_crocus:,crocus}%{?with_i915:,i915}%{?with_iris:,iris}%{?with_vmware:,svga}%{?with_radeonsi:,radeonsi}%{?with_r600:,r600}%{?with_freedreno:,freedreno}%{?with_etnaviv:,etnaviv}%{?with_tegra:,tegra}%{?with_vc4:,vc4}%{?with_v3d:,v3d}%{?with_lima:,lima}%{?with_panfrost:,panfrost}%{?with_vulkan_hw:,zink} \
|
||||
%else
|
||||
-Dgallium-drivers=swrast,virgl \
|
||||
%endif
|
||||
-Dgallium-vdpau=%{?with_vdpau:enabled}%{!?with_vdpau:disabled} \
|
||||
-Dgallium-omx=%{?with_omx:bellagio}%{!?with_omx:disabled} \
|
||||
-Dgallium-va=%{?with_va:enabled}%{!?with_va:disabled} \
|
||||
-Dgallium-xa=%{?with_xa:enabled}%{!?with_xa:disabled} \
|
||||
-Dgallium-nine=%{?with_nine:true}%{!?with_nine:false} \
|
||||
@ -493,16 +490,13 @@ popd
|
||||
%files filesystem
|
||||
%doc docs/Mesa-MLAA-License-Clarification-Email.txt
|
||||
%dir %{_libdir}/dri
|
||||
%if 0%{?with_hardware}
|
||||
%if 0%{?with_vdpau}
|
||||
%dir %{_libdir}/vdpau
|
||||
%endif
|
||||
%endif
|
||||
%dir %{_datadir}/drirc.d
|
||||
|
||||
%files libGL
|
||||
%{_libdir}/libGLX_mesa.so.0*
|
||||
%{_libdir}/libGLX_system.so.0*
|
||||
%files libGL-devel
|
||||
%dir %{_includedir}/GL
|
||||
%dir %{_includedir}/GL/internal
|
||||
%{_includedir}/GL/internal/dri_interface.h
|
||||
%{_libdir}/pkgconfig/dri.pc
|
||||
@ -582,9 +576,10 @@ popd
|
||||
%endif
|
||||
|
||||
%files dri-drivers
|
||||
%dir %{_datadir}/drirc.d
|
||||
%{_datadir}/drirc.d/00-mesa-defaults.conf
|
||||
%{_libdir}/libgallium-*.so
|
||||
%{_libdir}/dri/kms_swrast_dri.so
|
||||
%{_libdir}/dri/libdril_dri.so
|
||||
%{_libdir}/dri/swrast_dri.so
|
||||
%{_libdir}/dri/virtio_gpu_dri.so
|
||||
|
||||
@ -672,17 +667,13 @@ popd
|
||||
%{_libdir}/dri/sti_dri.so
|
||||
%{_libdir}/dri/sun4i-drm_dri.so
|
||||
%{_libdir}/dri/udl_dri.so
|
||||
%{_libdir}/dri/vkms_dri.so
|
||||
%{_libdir}/dri/zynqmp-dpsub_dri.so
|
||||
%endif
|
||||
%if 0%{?with_vulkan_hw}
|
||||
%{_libdir}/dri/zink_dri.so
|
||||
%endif
|
||||
|
||||
%if 0%{?with_omx}
|
||||
%files omx-drivers
|
||||
%{_libdir}/bellagio/libomx_mesa.so
|
||||
%endif
|
||||
|
||||
%if 0%{?with_va}
|
||||
%files va-drivers
|
||||
%{_libdir}/dri/nouveau_drv_video.so
|
||||
@ -697,6 +688,7 @@ popd
|
||||
|
||||
%if 0%{?with_vdpau}
|
||||
%files vdpau-drivers
|
||||
%dir %{_libdir}/vdpau
|
||||
%{_libdir}/vdpau/libvdpau_nouveau.so.1*
|
||||
%if 0%{?with_r600}
|
||||
%{_libdir}/vdpau/libvdpau_r600.so.1*
|
||||
|
@ -1,84 +0,0 @@
|
||||
diff --git a/spa/plugins/bluez5/backend-native.c b/spa/plugins/bluez5/backend-native.c
|
||||
index 8144b09..51331a6 100644
|
||||
--- a/spa/plugins/bluez5/backend-native.c
|
||||
+++ b/spa/plugins/bluez5/backend-native.c
|
||||
@@ -422,7 +422,7 @@ static void rfcomm_emit_volume_changed(struct rfcomm *rfcomm, int id, int hw_vol
|
||||
static bool rfcomm_hsp_ag(struct rfcomm *rfcomm, char* buf)
|
||||
{
|
||||
struct impl *backend = rfcomm->backend;
|
||||
- unsigned int gain, dummy;
|
||||
+ unsigned int gain;
|
||||
|
||||
/* There are only three HSP AT commands:
|
||||
* AT+VGS=value: value between 0 and 15, sent by the HS to AG to set the speaker gain.
|
||||
@@ -445,8 +445,9 @@ static bool rfcomm_hsp_ag(struct rfcomm *rfcomm, char* buf)
|
||||
rfcomm_send_reply(rfcomm, "ERROR");
|
||||
spa_log_debug(backend->log, "RFCOMM receive unsupported VGM gain: %s", buf);
|
||||
}
|
||||
- } else if (sscanf(buf, "AT+CKPD=%d", &dummy) == 1) {
|
||||
+ } else if (spa_strstartswith(buf, "AT+CKPD=200") == 1) {
|
||||
rfcomm_send_reply(rfcomm, "OK");
|
||||
+ spa_bt_device_emit_switch_profile(rfcomm->device);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
diff --git a/spa/plugins/bluez5/bluez5-device.c b/spa/plugins/bluez5/bluez5-device.c
|
||||
index 8d6ef49..40acd24 100644
|
||||
--- a/spa/plugins/bluez5/bluez5-device.c
|
||||
+++ b/spa/plugins/bluez5/bluez5-device.c
|
||||
@@ -1370,11 +1370,33 @@ static void device_connected(void *userdata, bool connected)
|
||||
}
|
||||
}
|
||||
|
||||
+static void device_switch_profile(void *userdata)
|
||||
+{
|
||||
+ struct impl *this = userdata;
|
||||
+ uint32_t profile;
|
||||
+
|
||||
+ switch(this->profile) {
|
||||
+ case DEVICE_PROFILE_OFF:
|
||||
+ profile = DEVICE_PROFILE_HSP_HFP;
|
||||
+ break;
|
||||
+ case DEVICE_PROFILE_HSP_HFP:
|
||||
+ profile = DEVICE_PROFILE_OFF;
|
||||
+ break;
|
||||
+ default:
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ spa_log_debug(this->log, "%p: device switch profile %d -> %d", this, this->profile, profile);
|
||||
+
|
||||
+ set_profile(this, profile, 0, false);
|
||||
+}
|
||||
+
|
||||
static const struct spa_bt_device_events bt_dev_events = {
|
||||
SPA_VERSION_BT_DEVICE_EVENTS,
|
||||
.connected = device_connected,
|
||||
.codec_switched = codec_switched,
|
||||
.profiles_changed = profiles_changed,
|
||||
+ .switch_profile = device_switch_profile,
|
||||
.device_set_changed = device_set_changed,
|
||||
};
|
||||
|
||||
diff --git a/spa/plugins/bluez5/defs.h b/spa/plugins/bluez5/defs.h
|
||||
index 81e5164..258b4f6 100644
|
||||
--- a/spa/plugins/bluez5/defs.h
|
||||
+++ b/spa/plugins/bluez5/defs.h
|
||||
@@ -459,6 +459,9 @@ struct spa_bt_device_events {
|
||||
/** Profile configuration changed */
|
||||
void (*profiles_changed) (void *data, uint32_t prev_profiles, uint32_t prev_connected);
|
||||
|
||||
+ /** Switch profile between OFF and HSP_HFP */
|
||||
+ void (*switch_profile) (void *data);
|
||||
+
|
||||
/** Device set configuration changed */
|
||||
void (*device_set_changed) (void *data);
|
||||
|
||||
@@ -553,6 +556,7 @@ void spa_bt_device_update_last_bluez_action_time(struct spa_bt_device *device);
|
||||
#define spa_bt_device_emit_connected(d,...) spa_bt_device_emit(d, connected, 0, __VA_ARGS__)
|
||||
#define spa_bt_device_emit_codec_switched(d,...) spa_bt_device_emit(d, codec_switched, 0, __VA_ARGS__)
|
||||
#define spa_bt_device_emit_profiles_changed(d,...) spa_bt_device_emit(d, profiles_changed, 0, __VA_ARGS__)
|
||||
+#define spa_bt_device_emit_switch_profile(d) spa_bt_device_emit(d, switch_profile, 0)
|
||||
#define spa_bt_device_emit_device_set_changed(d) spa_bt_device_emit(d, device_set_changed, 0)
|
||||
#define spa_bt_device_emit_destroy(d) spa_bt_device_emit(d, destroy, 0)
|
||||
#define spa_bt_device_add_listener(d,listener,events,data) \
|
@ -1,6 +1,6 @@
|
||||
%global majorversion 1
|
||||
%global minorversion 0
|
||||
%global microversion 8
|
||||
%global minorversion 2
|
||||
%global microversion 6
|
||||
|
||||
%global apiversion 0.3
|
||||
%global spaversion 0.2
|
||||
@ -83,9 +83,7 @@ Source1: pipewire.sysusers
|
||||
|
||||
## valve patches
|
||||
# Holo: TODO: Bug reference
|
||||
Patch10: bc435841c141ad38768b6cb1a7ad45e8bb13c7d2.patch
|
||||
# Holo: upstream MR 1792
|
||||
Patch30: 0001-Bluez5-backend-native-HSP-AG-release-SCO-link-on-AT-.patch
|
||||
Patch10: bc435841c141ad38768b6cb1a7ad45e8bb13c7d2.patch
|
||||
|
||||
BuildRequires: gettext
|
||||
BuildRequires: meson >= 0.59.0
|
||||
@ -143,6 +141,8 @@ Requires: rtkit
|
||||
Requires: pipewire-session-manager
|
||||
# Prefer WirePlumber for session manager
|
||||
Suggests: wireplumber
|
||||
# Bring in libcamera plugin for MIPI / complex camera support
|
||||
Recommends: pipewire-plugin-libcamera
|
||||
|
||||
%description
|
||||
PipeWire is a multimedia server for Linux and other Unix like operating
|
||||
@ -217,6 +217,9 @@ Summary: PipeWire JACK implementation libraries
|
||||
License: MIT
|
||||
Recommends: %{name}%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
%if 0%{?rhel}
|
||||
Requires: %{name}-jack-audio-connection-kit%{?_isa} = %{version}-%{release}
|
||||
%endif
|
||||
# Fixed jack subpackages
|
||||
Conflicts: %{name}-libjack < 0.3.13-6
|
||||
Conflicts: %{name}-jack-audio-connection-kit < 0.3.13-6
|
||||
@ -411,6 +414,25 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
This package contains the mysofa support for PipeWire filter-chain.
|
||||
%endif
|
||||
|
||||
%package config-rates
|
||||
Summary: PipeWire media server multirate configuration
|
||||
License: MIT
|
||||
Recommends: %{name}%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description config-rates
|
||||
This package contains the configuration files to support multiple
|
||||
sample rates.
|
||||
|
||||
%package config-upmix
|
||||
Summary: PipeWire media server upmixing configuration
|
||||
License: MIT
|
||||
Recommends: %{name}%{?_isa} = %{version}-%{release}
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description config-upmix
|
||||
This package contains the configuration files to support upmixing.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -p1 %{?snapdate:-n %{name}-%{gitcommit}}
|
||||
@ -423,26 +445,27 @@ cp %{SOURCE1} subprojects/packagefiles/
|
||||
|
||||
%build
|
||||
%meson \
|
||||
-D docs=enabled -D man=enabled -D gstreamer=enabled -D systemd=enabled \
|
||||
-D sdl2=disabled \
|
||||
-D audiotestsrc=disabled -D videotestsrc=disabled \
|
||||
-D volume=disabled -D bluez5-codec-aptx=disabled \
|
||||
-D bluez5-codec-lc3plus=disabled -D bluez5-codec-lc3=enabled \
|
||||
-D docs=enabled -D man=enabled -D gstreamer=enabled -D systemd=enabled \
|
||||
-D sdl2=disabled \
|
||||
-D audiotestsrc=disabled -D videotestsrc=disabled \
|
||||
-D volume=disabled -D bluez5-codec-aptx=disabled \
|
||||
-D bluez5-codec-lc3plus=disabled -D bluez5-codec-lc3=enabled \
|
||||
%ifarch s390x
|
||||
-D bluez5-codec-ldac=disabled \
|
||||
-D bluez5-codec-ldac=disabled \
|
||||
%endif
|
||||
-D session-managers=[] \
|
||||
-D rtprio-server=60 -D rtprio-client=55 -D rlimits-rtprio=70 \
|
||||
%{!?with_jack:-D pipewire-jack=disabled} \
|
||||
%{!?with_jackserver_plugin:-D jack=disabled} \
|
||||
%{!?with_libcamera_plugin:-D libcamera=disabled} \
|
||||
%{?with_jack:-D jack-devel=true} \
|
||||
%{!?with_alsa:-D pipewire-alsa=disabled} \
|
||||
%{?with_vulkan:-D vulkan=enabled} \
|
||||
%{!?with_libmysofa:-D libmysofa=disabled} \
|
||||
%{!?with_lv2:-D lv2=disabled} \
|
||||
%{!?with_roc:-D roc=disabled} \
|
||||
%{!?with_ffado:-D libffado=disabled} \
|
||||
-D session-managers=[] \
|
||||
-D rtprio-server=60 -D rtprio-client=55 -D rlimits-rtprio=70 \
|
||||
-D snap=disabled \
|
||||
%{!?with_jack:-D pipewire-jack=disabled} \
|
||||
%{!?with_jackserver_plugin:-D jack=disabled} \
|
||||
%{!?with_libcamera_plugin:-D libcamera=disabled} \
|
||||
%{?with_jack:-D jack-devel=true} \
|
||||
%{!?with_alsa:-D pipewire-alsa=disabled} \
|
||||
%{?with_vulkan:-D vulkan=enabled} \
|
||||
%{!?with_libmysofa:-D libmysofa=disabled} \
|
||||
%{!?with_lv2:-D lv2=disabled} \
|
||||
%{!?with_roc:-D roc=disabled} \
|
||||
%{!?with_ffado:-D libffado=disabled} \
|
||||
%{nil}
|
||||
%meson_build
|
||||
|
||||
@ -452,6 +475,8 @@ install -p -D -m 0644 %{SOURCE1} %{buildroot}%{_sysusersdir}/pipewire.conf
|
||||
|
||||
# Own this directory so add-ons can use it
|
||||
install -d -m 0755 %{buildroot}%{_datadir}/pipewire/pipewire.conf.d/
|
||||
install -d -m 0755 %{buildroot}%{_datadir}/pipewire/client.conf.d/
|
||||
install -d -m 0755 %{buildroot}%{_datadir}/pipewire/client-rt.conf.d/
|
||||
|
||||
%if %{with jack}
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/
|
||||
@ -481,15 +506,26 @@ rm %{buildroot}%{_datadir}/pipewire/pipewire-pulse.conf
|
||||
%if %{with pulse}
|
||||
# Own this directory so add-ons can use it
|
||||
install -d -m 0755 %{buildroot}%{_datadir}/pipewire/pipewire-pulse.conf.d/
|
||||
|
||||
ln -s ../pipewire-pulse.conf.avail/20-upmix.conf \
|
||||
%{buildroot}%{_datadir}/pipewire/pipewire-pulse.conf.d/20-upmix.conf
|
||||
%endif
|
||||
|
||||
# rates config
|
||||
ln -s ../pipewire.conf.avail/10-rates.conf \
|
||||
%{buildroot}%{_datadir}/pipewire/pipewire.conf.d/10-rates.conf
|
||||
|
||||
# upmix config
|
||||
ln -s ../pipewire.conf.avail/20-upmix.conf \
|
||||
%{buildroot}%{_datadir}/pipewire/pipewire.conf.d/20-upmix.conf
|
||||
ln -s ../client.conf.avail/20-upmix.conf \
|
||||
%{buildroot}%{_datadir}/pipewire/client.conf.d/20-upmix.conf
|
||||
ln -s ../client-rt.conf.avail/20-upmix.conf \
|
||||
%{buildroot}%{_datadir}/pipewire/client-rt.conf.d/20-upmix.conf
|
||||
|
||||
|
||||
%find_lang %{name}
|
||||
|
||||
# upstream should use udev.pc
|
||||
mkdir -p %{buildroot}%{_prefix}/lib/udev/rules.d
|
||||
mv -fv %{buildroot}/lib/udev/rules.d/90-pipewire-alsa.rules %{buildroot}%{_prefix}/lib/udev/rules.d
|
||||
|
||||
|
||||
%check
|
||||
%meson_test || TESTS_ERROR=$?
|
||||
if [ "${TESTS_ERROR}" != "" ]; then
|
||||
@ -560,6 +596,7 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-metadata.so
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-netjack2-driver.so
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-netjack2-manager.so
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-parametric-equalizer.so
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-pipe-tunnel.so
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-portal.so
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-profiler.so
|
||||
@ -575,6 +612,7 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-rtp-source.so
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-rt.so
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-session-manager.so
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-snapcast-discover.so
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-spa-device-factory.so
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-spa-device.so
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-spa-node-factory.so
|
||||
@ -601,11 +639,13 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
|
||||
%{_libdir}/spa-%{spaversion}/v4l2/
|
||||
%{_libdir}/spa-%{spaversion}/videoconvert/
|
||||
%{_datadir}/pipewire/client.conf
|
||||
%dir %{_datadir}/pipewire/client.conf.d/
|
||||
%{_datadir}/pipewire/client.conf.avail/20-upmix.conf
|
||||
%{_datadir}/pipewire/client-rt.conf
|
||||
%dir %{_datadir}/pipewire/client-rt.conf.d/
|
||||
%{_datadir}/pipewire/client-rt.conf.avail/20-upmix.conf
|
||||
%{_mandir}/man5/pipewire-client.conf.5.gz
|
||||
%{_mandir}/man7/pipewire-devices.7.gz
|
||||
%{_mandir}/man7/pipewire-props.7.gz
|
||||
%{_mandir}/man7/libpipewire-module-access.7.gz
|
||||
%{_mandir}/man7/libpipewire-module-adapter.7.gz
|
||||
%{_mandir}/man7/libpipewire-module-avb.7.gz
|
||||
@ -626,6 +666,7 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
|
||||
%{_mandir}/man7/libpipewire-module-metadata.7.gz
|
||||
%{_mandir}/man7/libpipewire-module-netjack2-driver.7.gz
|
||||
%{_mandir}/man7/libpipewire-module-netjack2-manager.7.gz
|
||||
%{_mandir}/man7/libpipewire-module-parametric-equalizer.7.gz
|
||||
%{_mandir}/man7/libpipewire-module-pipe-tunnel.7.gz
|
||||
%{_mandir}/man7/libpipewire-module-portal.7.gz
|
||||
%{_mandir}/man7/libpipewire-module-profiler.7.gz
|
||||
@ -643,6 +684,7 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
|
||||
%{_mandir}/man7/libpipewire-module-rtp-sink.7.gz
|
||||
%{_mandir}/man7/libpipewire-module-rtp-source.7.gz
|
||||
%{_mandir}/man7/libpipewire-module-session-manager.7.gz
|
||||
%{_mandir}/man7/libpipewire-module-snapcast-discover.7.gz
|
||||
%{_mandir}/man7/libpipewire-module-vban-recv.7.gz
|
||||
%{_mandir}/man7/libpipewire-module-vban-send.7.gz
|
||||
%{_mandir}/man7/libpipewire-module-x11-bell.7.gz
|
||||
@ -668,6 +710,7 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
|
||||
%{_bindir}/pw-cat
|
||||
%{_bindir}/pw-cli
|
||||
%{_bindir}/pw-config
|
||||
%{_bindir}/pw-container
|
||||
%{_bindir}/pw-dot
|
||||
%{_bindir}/pw-dsdplay
|
||||
%{_bindir}/pw-dump
|
||||
@ -687,6 +730,7 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
|
||||
%{_mandir}/man1/pw-cat.1*
|
||||
%{_mandir}/man1/pw-cli.1*
|
||||
%{_mandir}/man1/pw-config.1*
|
||||
%{_mandir}/man1/pw-container.1*
|
||||
%{_mandir}/man1/pw-dot.1*
|
||||
%{_mandir}/man1/pw-dump.1*
|
||||
%{_mandir}/man1/pw-link.1*
|
||||
@ -764,6 +808,7 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
|
||||
%{_datadir}/pipewire/pipewire-pulse.conf
|
||||
%dir %{_datadir}/pipewire/pipewire-pulse.conf.d/
|
||||
%{_datadir}/pipewire/pipewire-pulse.conf.avail/20-upmix.conf
|
||||
%{_datadir}/glib-2.0/schemas/org.freedesktop.pulseaudio.gschema.xml
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-protocol-pulse.so
|
||||
%{_mandir}/man1/pipewire-pulse.1*
|
||||
%{_mandir}/man5/pipewire-pulse.conf.5.gz
|
||||
@ -771,6 +816,8 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
|
||||
%{_mandir}/man7/pipewire-pulse-module-alsa-source.7.gz
|
||||
%{_mandir}/man7/pipewire-pulse-module-always-sink.7.gz
|
||||
%{_mandir}/man7/pipewire-pulse-module-combine-sink.7.gz
|
||||
%{_mandir}/man7/pipewire-pulse-module-device-manager.7.gz
|
||||
%{_mandir}/man7/pipewire-pulse-module-device-restore.7.gz
|
||||
%{_mandir}/man7/pipewire-pulse-module-echo-cancel.7.gz
|
||||
%{_mandir}/man7/pipewire-pulse-module-gsettings.7.gz
|
||||
%{_mandir}/man7/pipewire-pulse-module-jackdbus-detect.7.gz
|
||||
@ -790,6 +837,7 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
|
||||
%{_mandir}/man7/pipewire-pulse-module-rtp-recv.7.gz
|
||||
%{_mandir}/man7/pipewire-pulse-module-rtp-send.7.gz
|
||||
%{_mandir}/man7/pipewire-pulse-module-simple-protocol-tcp.7.gz
|
||||
%{_mandir}/man7/pipewire-pulse-module-stream-restore.7.gz
|
||||
%{_mandir}/man7/pipewire-pulse-module-switch-on-connect.7.gz
|
||||
%{_mandir}/man7/pipewire-pulse-module-tunnel-sink.7.gz
|
||||
%{_mandir}/man7/pipewire-pulse-module-tunnel-source.7.gz
|
||||
@ -832,15 +880,61 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
|
||||
%{_libdir}/pipewire-%{apiversion}/libpipewire-module-filter-chain-lv2.so
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Sep 19 2024 Wim Taymans <wtaymans@redhat.com> - 1.0.8-1
|
||||
- Update version to 1.0.8
|
||||
%files config-rates
|
||||
%{_datadir}/pipewire/pipewire.conf.d/10-rates.conf
|
||||
|
||||
* Tue Jun 18 2024 Peter Robinson <pbrobinson@fedoraproject.org> - 1.0.7-2
|
||||
%files config-upmix
|
||||
%{_datadir}/pipewire/pipewire.conf.d/20-upmix.conf
|
||||
%{_datadir}/pipewire/client.conf.d/20-upmix.conf
|
||||
%{_datadir}/pipewire/client-rt.conf.d/20-upmix.conf
|
||||
%if %{with pulse}
|
||||
%{_datadir}/pipewire/pipewire-pulse.conf.d/20-upmix.conf
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed Oct 23 2024 Wim Taymans <wtaymans@redhat.com> - 1.2.6-1
|
||||
- Update version to 1.2.6
|
||||
|
||||
* Fri Sep 27 2024 Wim Taymans <wtaymans@redhat.com> - 1.2.5-1
|
||||
- Update version to 1.2.5
|
||||
- Add config packages
|
||||
|
||||
* Thu Sep 19 2024 Wim Taymans <wtaymans@redhat.com> - 1.2.4-1
|
||||
- Update version to 1.2.4
|
||||
- Add Recommends: pipewire-plugin-libcamera for MIPI camera support
|
||||
|
||||
* Thu Aug 22 2024 Wim Taymans <wtaymans@redhat.com> - 1.2.3-1
|
||||
- Update version to 1.2.3
|
||||
|
||||
* Sun Aug 04 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 1.2.1-3
|
||||
- pipewire-jack-libs Requires pipewire-jack on RHEL
|
||||
|
||||
* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Fri Jul 12 2024 Wim Taymans <wtaymans@redhat.com> - 1.2.1-1
|
||||
- Update version to 1.2.1
|
||||
|
||||
* Mon Jul 1 2024 Wim Taymans <wtaymans@redhat.com> - 1.2.0-3
|
||||
- Add patch for Ardour export regresssion.
|
||||
|
||||
* Mon Jul 1 2024 Wim Taymans <wtaymans@redhat.com> - 1.2.0-2
|
||||
- Add patch for KODI regresssion.
|
||||
|
||||
* Thu Jun 27 2024 Wim Taymans <wtaymans@redhat.com> - 1.2.0-1
|
||||
- Update version to 1.2.0
|
||||
|
||||
* Tue Jun 18 2024 Wim Taymans <wtaymans@redhat.com> - 1.1.83-1
|
||||
- Update version to 1.1.83
|
||||
|
||||
* Fri May 24 2024 Wim Taymans <wtaymans@redhat.com> - 1.1.82-1
|
||||
- Update version to 1.1.82
|
||||
|
||||
* Thu May 23 2024 Peter Robinson <pbrobinson@fedoraproject.org> - 1.1.81-2
|
||||
- Rebuild for libcamera 0.3
|
||||
|
||||
* Fri May 24 2024 Wim Taymans <wtaymans@redhat.com> - 1.0.7-1
|
||||
- Update version to 1.0.7
|
||||
* Thu May 16 2024 Wim Taymans <wtaymans@redhat.com> - 1.1.81-1
|
||||
- Update version to 1.1.81
|
||||
|
||||
* Thu May 09 2024 Wim Taymans <wtaymans@redhat.com> - 1.0.6-1
|
||||
- Update version to 1.0.6
|
||||
|
@ -63,8 +63,6 @@ rm %{buildroot}%{_datadir}/pipewire/hardware-profiles/default
|
||||
%{_datadir}/alsa/ucm2/conf.d/acp5x/*.conf
|
||||
%{_datadir}/alsa/ucm2/conf.d/sof-nau8821-max/*.conf
|
||||
%{_datadir}/wireplumber/hardware-profiles/*
|
||||
%{_datadir}/wireplumber/main.lua.d/*.lua
|
||||
%{_datadir}/wireplumber/scripts/*.lua
|
||||
%{_unitdir}/wireplumber-sysconf.service
|
||||
%{_datadir}/pipewire/hardware-profiles/*
|
||||
%{_unitdir}/pipewire-sysconf.service
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
Summary: Xwayland
|
||||
Name: xorg-x11-server-Xwayland
|
||||
%global xwayland_version 24.1.2
|
||||
%global xwayland_version 24.1.3
|
||||
Version: %{xwayland_version}.bazzite.{{{ git_dir_version }}}
|
||||
Release: 1%{?gitdate:.%{gitdate}git%{shortcommit}}%{?dist}
|
||||
|
||||
@ -19,6 +19,7 @@ Source0: https://gitlab.freedesktop.org/xorg/%{pkgname}/-/archive/%{commit}/%{
|
||||
Source0: https://www.x.org/pub/individual/xserver/%{pkgname}-%{xwayland_version}.tar.xz
|
||||
%endif
|
||||
|
||||
# Nobara
|
||||
Patch0: xwayland-pointer-warp-fix.patch
|
||||
|
||||
License: MIT
|
||||
@ -54,8 +55,6 @@ BuildRequires: pkgconfig(xi)
|
||||
BuildRequires: pkgconfig(xinerama)
|
||||
BuildRequires: pkgconfig(xkbfile)
|
||||
BuildRequires: pkgconfig(xmu)
|
||||
BuildRequires: pkgconfig(xorg-macros) >= 1.17
|
||||
BuildRequires: pkgconfig(xpm)
|
||||
BuildRequires: pkgconfig(xrender)
|
||||
BuildRequires: pkgconfig(xres)
|
||||
BuildRequires: pkgconfig(xshmfence) >= 1.1
|
||||
@ -138,6 +137,12 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
||||
%{_libdir}/pkgconfig/xwayland.pc
|
||||
|
||||
%changelog
|
||||
* Wed Oct 2 2024 Olivier Fourdan <ofourdan@redhat.com> - 24.1.3-1
|
||||
- xwayland 24.1.3 - (#2313799)
|
||||
|
||||
* Wed Sep 4 2024 Olivier Fourdan <ofourdan@redhat.com> - 24.1.2-2
|
||||
- Remove unneeded build dependencies on xorg-x11-util-macros and libXpm
|
||||
|
||||
* Wed Aug 7 2024 Olivier Fourdan <ofourdan@redhat.com> - 24.1.2-1
|
||||
- xwayland 24.1.2 - (#2303450)
|
||||
- Remove unneeded build dependency on wayland-eglstream-protocols
|
||||
|
@ -64,6 +64,17 @@ if [[ "${XDG_SESSION_TYPE}" = "wayland" ]]; then
|
||||
|| true
|
||||
fi
|
||||
fi
|
||||
|
||||
# TEMP workaround for a bug causing the screen to not come back on input on handhelds
|
||||
# if it was turned off from idling, this just disables the display idle in kde until
|
||||
# we can figure out what causes the bug, as it does not happen on laptops/desktops.
|
||||
# If this is valve hardware or a handheld that hhd supports (easiest way to just cover all handhelds)
|
||||
# do not turn off the screen when idle (sleep still works normal)
|
||||
if /usr/libexec/hwsupport/valve-hardware; then
|
||||
perl -pi -e 's/TurnOffDisplayIdleTimeoutSec=\d{1,4}/TurnOffDisplayIdleTimeoutSec=-1\nTurnOffDisplayWhenIdle=false/g' ~/.config/powerdevilrc
|
||||
elif /usr/libexec/hwsupport/hhd-supported-hardware; then
|
||||
perl -pi -e 's/TurnOffDisplayIdleTimeoutSec=\d{1,4}/TurnOffDisplayIdleTimeoutSec=-1\nTurnOffDisplayWhenIdle=false/g' ~/.config/powerdevilrc
|
||||
fi
|
||||
elif [[ $BASE_IMAGE_NAME =~ "silverblue" ]]; then
|
||||
# Set scale on GNOME desktops, rotation tends to work without issue.
|
||||
if /usr/libexec/hwsupport/needs-100-scale; then
|
||||
|
@ -89,6 +89,18 @@ enable-ryzenadj-max-performance:
|
||||
sudo udevadm control --reload-rules
|
||||
echo 'installation complete. Reboot to take effect'
|
||||
|
||||
# toggles password prompt feedback in terminal, where sudo password prompts will display asterisks when enabled
|
||||
toggle-password-feedback:
|
||||
#!/usr/bin/bash
|
||||
PWFEEDBACK_FILE="/etc/sudoers.d/enable-pwfeedback"
|
||||
if sudo test -f $PWFEEDBACK_FILE; then
|
||||
sudo rm -f $PWFEEDBACK_FILE
|
||||
echo "disabled pwfeedback. restart your terminal to see changes"
|
||||
else
|
||||
echo 'Defaults pwfeedback' | sudo tee $PWFEEDBACK_FILE
|
||||
echo "enabled, restart terminal to see changes"
|
||||
fi
|
||||
|
||||
# disables ryzenadj --max-performance on AC power
|
||||
disable-ryzenadj-max-performance:
|
||||
#/bin/bash
|
||||
|
71
system_files/desktop/shared/usr/bin/bazzite-steam-bpm
Executable file
71
system_files/desktop/shared/usr/bin/bazzite-steam-bpm
Executable file
@ -0,0 +1,71 @@
|
||||
#!/usr/bin/bash
|
||||
# Stop Steam client and it in Big Picture Mode
|
||||
#
|
||||
# This is a workaround for Big Picture Mode running slugish when switching from
|
||||
# desktop mode to BPM from the client. See https://github.com/ublue-os/bazzite/issues/1675
|
||||
|
||||
# TODO 20/10/2024: Remove me whenever the issue above gets solved
|
||||
|
||||
# Check if we are running from a terminal or from a .desktop shortcut
|
||||
if ((SHLVL > 1)); then
|
||||
function echoerr() {
|
||||
echo >&2 "$@"
|
||||
}
|
||||
else
|
||||
function echoerr() {
|
||||
zenity --error --icon=bazzite-logo --text="$*"
|
||||
}
|
||||
fi
|
||||
|
||||
STEAM_BIN=/usr/bin/steam
|
||||
BAZZITE_STEAM_BIN="/usr/bin/bazzite-steam"
|
||||
# BAZZITE_STEAM_BIN="$(type -P bazzite-steam)"
|
||||
STEAM_DIR="${HOME}/.local/share/Steam"
|
||||
TIMEOUT_SECS=30
|
||||
|
||||
# List of binaries to check with lsof to prove steam is running
|
||||
BIN_WATCH=(
|
||||
"${STEAM_BIN}"
|
||||
"${BAZZITE_STEAM_BIN}"
|
||||
"${STEAM_DIR}/steam.sh"
|
||||
"${STEAM_DIR}"/ubuntu*/steam
|
||||
)
|
||||
|
||||
# Echo pids of steam processes
|
||||
function get_steam_pids() {
|
||||
lsof -t -- "${BIN_WATCH[@]}" 2>/dev/null || true
|
||||
}
|
||||
|
||||
# Return err if steam is not running
|
||||
function is_steam_running() {
|
||||
(($(get_steam_pids | wc --lines) > 0))
|
||||
return
|
||||
}
|
||||
|
||||
function main() {
|
||||
# Check if steam is running
|
||||
if is_steam_running; then
|
||||
# Stop it
|
||||
${STEAM_BIN} +quit
|
||||
|
||||
# Wait to be fully stopped
|
||||
# shellcheck disable=SC2046
|
||||
if ! waitpid --exited --timeout ${TIMEOUT_SECS} $(get_steam_pids); then
|
||||
# Check if we timed out
|
||||
local err=$?
|
||||
if ((err == 3)); then
|
||||
echoerr "ERROR: Timed out stopping Steam. Stopping script..."
|
||||
exit 1
|
||||
|
||||
else # Something else happened
|
||||
echoerr "ERROR: code=${err}; This is strange..."
|
||||
exit ${err}
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Start steam in big picture mode
|
||||
${BAZZITE_STEAM_BIN} steam://open/bigpicture "$@"
|
||||
}
|
||||
|
||||
main "$@"
|
@ -1,6 +0,0 @@
|
||||
vm.swappiness=180
|
||||
vm.watermark_boost_factor=0
|
||||
vm.watermark_scale_factor=125
|
||||
vm.dirty_bytes=268435456
|
||||
vm.dirty_background_bytes=134217728
|
||||
vm.page-cluster=0
|
@ -0,0 +1,48 @@
|
||||
#
|
||||
# tuned configuration
|
||||
#
|
||||
|
||||
[main]
|
||||
summary=General non-specialized tuned profile
|
||||
|
||||
[modules]
|
||||
cpufreq_conservative=+r
|
||||
|
||||
[cpu]
|
||||
priority=10
|
||||
governor=conservative|powersave
|
||||
energy_perf_bias=normal
|
||||
energy_performance_preference=balance_performance
|
||||
boost=1
|
||||
|
||||
[acpi]
|
||||
platform_profile=balanced
|
||||
|
||||
[audio]
|
||||
timeout=10
|
||||
|
||||
[video]
|
||||
radeon_powersave=dpm-balanced, auto
|
||||
panel_power_savings=0
|
||||
|
||||
[disk]
|
||||
# Comma separated list of devices, all devices if commented out.
|
||||
# devices=sda
|
||||
|
||||
[sysctl]
|
||||
# The swappiness parameter controls the tendency of the kernel to move
|
||||
# processes out of physical memory and onto the swap disk.
|
||||
# 0 tells the kernel to avoid swapping processes out of physical memory
|
||||
# for as long as possible
|
||||
# 100 tells the kernel to aggressively swap processes out of physical memory
|
||||
# and move them to swap cache
|
||||
vm.swappiness=180
|
||||
|
||||
vm.watermark_boost_factor=0
|
||||
vm.watermark_scale_factor=125
|
||||
vm.dirty_bytes=268435456
|
||||
vm.dirty_background_bytes=134217728
|
||||
vm.page-cluster=0
|
||||
|
||||
[scsi_host]
|
||||
alpm=medium_power
|
@ -0,0 +1,70 @@
|
||||
#
|
||||
# tuned configuration
|
||||
#
|
||||
|
||||
[main]
|
||||
summary=Broadly applicable tuning that provides excellent performance across a variety of common server workloads
|
||||
|
||||
[variables]
|
||||
thunderx_cpuinfo_regex=CPU part\s+:\s+(0x0?516)|(0x0?af)|(0x0?a[0-3])|(0x0?b8)\b
|
||||
|
||||
[cpu]
|
||||
governor=performance
|
||||
energy_perf_bias=performance
|
||||
min_perf_pct=100
|
||||
energy_performance_preference=performance
|
||||
|
||||
[acpi]
|
||||
platform_profile=performance
|
||||
|
||||
# Marvell ThunderX
|
||||
[vm.thunderx]
|
||||
type=vm
|
||||
uname_regex=aarch64
|
||||
cpuinfo_regex=${thunderx_cpuinfo_regex}
|
||||
transparent_hugepages=never
|
||||
|
||||
[disk]
|
||||
# The default unit for readahead is KiB. This can be adjusted to sectors
|
||||
# by specifying the relevant suffix, eg. (readahead => 8192 s). There must
|
||||
# be at least one space between the number and suffix (if suffix is specified).
|
||||
readahead=>4096
|
||||
|
||||
[sysctl]
|
||||
# PID allocation wrap value. When the kernel's next PID value
|
||||
# reaches this value, it wraps back to a minimum PID value.
|
||||
# PIDs of value pid_max or larger are not allocated.
|
||||
#
|
||||
# A suggested value for pid_max is 1024 * <# of cpu cores/threads in system>
|
||||
# e.g., a box with 32 cpus, the default of 32768 is reasonable, for 64 cpus,
|
||||
# 65536, for 4096 cpus, 4194304 (which is the upper limit possible).
|
||||
#kernel.pid_max = 65536
|
||||
|
||||
# The swappiness parameter controls the tendency of the kernel to move
|
||||
# processes out of physical memory and onto the swap disk.
|
||||
# 0 tells the kernel to avoid swapping processes out of physical memory
|
||||
# for as long as possible
|
||||
# 100 tells the kernel to aggressively swap processes out of physical memory
|
||||
# and move them to swap cache
|
||||
vm.swappiness=180
|
||||
|
||||
vm.watermark_boost_factor=0
|
||||
vm.watermark_scale_factor=125
|
||||
vm.dirty_bytes=268435456
|
||||
vm.dirty_background_bytes=134217728
|
||||
vm.page-cluster=0
|
||||
|
||||
# The default kernel value 128 was over twenty years old default,
|
||||
# kernel-5.4 increased it to 4096, thus do not have it lower than 2048
|
||||
# on older kernels
|
||||
net.core.somaxconn=>2048
|
||||
|
||||
# Marvell ThunderX
|
||||
[sysctl.thunderx]
|
||||
type=sysctl
|
||||
uname_regex=aarch64
|
||||
cpuinfo_regex=${thunderx_cpuinfo_regex}
|
||||
kernel.numa_balancing=0
|
||||
|
||||
[video]
|
||||
panel_power_savings=0
|
@ -242,8 +242,8 @@ if [[ ":Framework:" =~ ":$VEN_ID:" ]]; then
|
||||
if [[ $SYS_ID == "Laptop ("* ]]; then
|
||||
if [[ ! -f /etc/modprobe.d/alsa.conf ]]; then
|
||||
echo 'Fixing 3.5mm jack'
|
||||
sudo tee /etc/modprobe.d/alsa.conf <<< "options snd-hda-intel index=1,0 model=auto,dell-headset-multi"
|
||||
echo 0 | sudo tee /sys/module/snd_hda_intel/parameters/power_save
|
||||
echo "options snd-hda-intel index=1,0 model=auto,dell-headset-multi" > /etc/modprobe.d/alsa.conf
|
||||
echo 0 > /sys/module/snd_hda_intel/parameters/power_save
|
||||
fi
|
||||
if [[ ! -f /etc/udev/rules.d/20-suspend-fixes.rules ]]; then
|
||||
echo 'Fixing suspend issue'
|
||||
@ -253,13 +253,6 @@ if [[ ":Framework:" =~ ":$VEN_ID:" ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# ALLY POWER SAVE FIX
|
||||
if [[ ":ROG Ally X RC72LA:" =~ ":$SYS_ID:" ]]; then
|
||||
# Disable amd_pmf until patched upstream
|
||||
modprobe -r amd_pmf
|
||||
echo "blacklist amd_pmf" | sudo tee /etc/modprobe.d/hhd-blacklist.conf
|
||||
fi
|
||||
|
||||
# WAYDROID FIX
|
||||
if [[ -f "/var/lib/waydroid/lxc/waydroid/config" ]]; then
|
||||
echo "Removing unneeded apparmor entry from Waydroid LXC"
|
||||
|
@ -0,0 +1,7 @@
|
||||
[Desktop Entry]
|
||||
Name=Steam Big Picture Mode
|
||||
Exec=/usr/bin/bazzite-steam-bpm %U
|
||||
Icon=steam
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Network;FileTransfer;Game;
|
@ -1,89 +0,0 @@
|
||||
# vim: set ft=make :
|
||||
|
||||
# Setup and configure CDEmu Daemon and Client plus GUI Apps
|
||||
setup-cdemu ACTION="":
|
||||
#!/usr/bin/bash
|
||||
source /usr/lib/ujust/ujust.sh
|
||||
CDEMU_STATE="$(rpm -qa cdemu-daemon)"
|
||||
GUI_EDITION="$(cat /etc/os-release | grep VARIANT_ID | sed 's/^.*=//')"
|
||||
OPTION={{ ACTION }}
|
||||
if [ "$CDEMU_STATE" == "" ]; then
|
||||
CDEMU_STATE="${red}${b}Not Installed${n}"
|
||||
CDEMU_STATE_FLAG="0"
|
||||
else
|
||||
CDEMU_STATE="${green}${b}Installed${n}"
|
||||
CDEMU_STATE_FLAG="1"
|
||||
fi
|
||||
if [ "$OPTION" == "help" ]; then
|
||||
echo "Usage: ujust setup-cdemu <option>"
|
||||
echo " <option>: Specify the quick option to skip the prompt"
|
||||
echo " Use 'install' to select Install CDEmu"
|
||||
echo " Use 'remove' to select Remove CDEmu"
|
||||
echo " Use 'remove-gui-helper' if you don't want to have the GUI"
|
||||
exit 0
|
||||
elif [ "$OPTION" == "" ]; then
|
||||
echo "${bold}CDEmu setup and configuration${normal}"
|
||||
echo "CDEmu is $CDEMU_STATE"
|
||||
OPTION=$(Choose "Install CDEmu" "Remove CDEmu" "Remove GUI Helper")
|
||||
fi
|
||||
if [[ "${OPTION,,}" =~ ^install ]]; then
|
||||
if [[ "$CDEMU_STATE_FLAG" == "1" ]]; then
|
||||
echo "${red} CDEmu has already been installed!"
|
||||
exit 0
|
||||
fi
|
||||
ublue-update --wait
|
||||
if [[ "$GUI_EDITION" == "kinoite" ]]; then
|
||||
# Install packages for KDE 6
|
||||
rpm-ostree install --apply-live -y cdemu-daemon cdemu-client kde-cdemu-manager-kf6
|
||||
else
|
||||
# Install packages for GNOME
|
||||
rpm-ostree install --apply-live -y cdemu-daemon cdemu-client gcdemu
|
||||
fi
|
||||
# Kickstart the service manually on first install, it doesn't seem to be doing that by default.
|
||||
systemctl start --user cdemu-daemon.service
|
||||
echo "CDEmu is installed!"
|
||||
elif [[ "${OPTION,,}" =~ ^(remove|uninstall) ]]; then
|
||||
if [[ "$CDEMU_STATE_FLAG" == "0" ]]; then
|
||||
echo "${red} CDEmu has already been removed!"
|
||||
exit 0
|
||||
fi
|
||||
ublue-update --wait
|
||||
if [[ "$GUI_EDITION" == "kinoite" ]]; then
|
||||
# Remove packages for KDE 6
|
||||
GUI_STATE="$(rpm -qa kde-cdemu-manager-kf6)"
|
||||
#GUI already removed
|
||||
if [[GUI_STATE == ""]]; then
|
||||
rpm-ostree remove -y cdemu-daemon cdemu-client
|
||||
else
|
||||
rpm-ostree remove -y cdemu-daemon cdemu-client kde-cdemu-manager-kf6
|
||||
fi
|
||||
else
|
||||
# Remove packages for GNOME
|
||||
GUI_STATE="$(rpm -qa gcdemu)"
|
||||
#GUI already removed
|
||||
if [["${GUI_STATE,,}" == ""]]; then
|
||||
rpm-ostree remove -y cdemu-daemon cdemu-client
|
||||
else
|
||||
rpm-ostree remove -y cdemu-daemon cdemu-client gcdemu
|
||||
fi
|
||||
fi
|
||||
echo "CDEmu has been uninstalled."
|
||||
elif [[ "${OPTION,,}" =~ helper ]]; then
|
||||
if [[ "$GUI_EDITION" == "kinoite" ]]; then
|
||||
GUI_STATE="$(rpm -qa kde-cdemu-manager-kf6)"
|
||||
if [["$GUI_STATE" == ""]]; then
|
||||
echo "GUI has already been removed or the package is not yet installed!"
|
||||
else
|
||||
rpm-ostree remove -y kde-cdemu-manager-kf6
|
||||
echo "GUI has been removed, you can still mount images using the CLI with the cdemu command."
|
||||
fi
|
||||
else
|
||||
GUI_STATE="$(rpm -qa gcdemu)"
|
||||
if [["$GUI_STATE" == ""]]; then
|
||||
echo "GUI has already been removed or the package is not yet installed!"
|
||||
else
|
||||
rpm-ostree remove -y gcdemu
|
||||
echo "GUI has been removed, you can still mount images using the CLI with the cdemu command."
|
||||
fi
|
||||
fi
|
||||
fi
|
@ -1,43 +0,0 @@
|
||||
# vim: set ft=make :
|
||||
|
||||
# Reenable rmlint trim feature
|
||||
enable-rmlint ACTION="":
|
||||
#!/usr/bin/bash
|
||||
source /usr/lib/ujust/ujust.sh
|
||||
OPTION={{ ACTION }}
|
||||
STATUS="$(cat /etc/conf.d/btrfs-dedup | grep RMLINT_SKIP=\"1\")"
|
||||
if [[ $STATUS != "" ]]; then
|
||||
RMLINT_STATE="${red}${b}not enabled${n}"
|
||||
else
|
||||
RMLINT_STATE="${green}${b}already enabled${n}"
|
||||
fi
|
||||
if [ "$OPTION" == "help" ]; then
|
||||
echo "Usage: ujust enable-rmlint <option>"
|
||||
echo " <option>: Specify the quick option to skip the prompt"
|
||||
echo " Use 'enable' to reenable rmlint functionality"
|
||||
echo " Use 'disable' to revert to UBlue stock configuration (only duperemove is executed)"
|
||||
exit 0
|
||||
elif [ "$OPTION" == "" ]; then
|
||||
echo "${bold}rmlint configuration${normal}"
|
||||
echo "rmlint conf is $RMLINT_STATE"
|
||||
OPTION=$(Choose "Enable rmlint" "Disable rmlint")
|
||||
fi
|
||||
if [[ "${OPTION,,}" =~ ^enable ]]; then
|
||||
if [[ "${RMLINT_STATE,,}" =~ "^already" ]]; then
|
||||
echo "${red} rmlint has already been enabled!"
|
||||
exit 0
|
||||
fi
|
||||
ublue-update --wait
|
||||
rpm-ostree install --apply-live -y rmlint
|
||||
sudo sed -i 's@RMLINT_SKIP="1"@RMLINT_SKIP="0"@g' /etc/conf.d/btrfs-dedup
|
||||
echo "rmlint has been reenabled!"
|
||||
elif [[ "${OPTION,,}" =~ ^(disable|uninstall) ]]; then
|
||||
if [[ "${RMLINT_STATE,,}" =~ "^not" ]]; then
|
||||
echo "${red} rmlint has already been disabled!"
|
||||
exit 0
|
||||
fi
|
||||
ublue-update --wait
|
||||
rpm-ostree remove -y rmlint
|
||||
sudo sed -i 's@RMLINT_SKIP="0"@RMLINT_SKIP="1"@g' /etc/conf.d/btrfs-dedup
|
||||
echo "rmlint has been disabled."
|
||||
fi
|
@ -1,30 +0,0 @@
|
||||
[Unit]
|
||||
Description=Btrfs deduplication on %f
|
||||
ConditionPathIsMountPoint=%f
|
||||
RequiresMountsFor=%f
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
MemoryHigh=1G
|
||||
ExecCondition=sh -c '[ "$(stat -f -c "%%T" "$1")" = btrfs ]' _ %f/
|
||||
ExecStartPre=-find %f/ -mindepth 1 -maxdepth 1 -mtime +14 -name .duperemove.hash -exec rm -f '{}' \;
|
||||
ExecStartPre=-cp -a %f/.duperemove.hash duperemove.hash
|
||||
ExecStartPre=-compsize %f/
|
||||
ExecStart=rmlint --hidden --types="duplicates" --config=sh:handler=clone %f/
|
||||
ExecStart=sh -c 'exec ./rmlint.sh -d -p -r -k'
|
||||
ExecStart=-compsize %f/
|
||||
ExecStart=-sh -c "[ $(sqlite3 -readonly duperemove.hash \"SELECT keyval FROM config where keyname='version_major'\") -ge 4 ] || rm -f duperemove.hash"
|
||||
ExecStart=duperemove -r -d -h -q --hashfile=duperemove.hash --skip-zeroes --exclude="%f/.duperemove.hash" --exclude="%f/@swapfile/swapfile" %f/
|
||||
ExecStartPost=-compsize %f/
|
||||
ExecStopPost=-cp -a duperemove.hash %f/.duperemove.hash
|
||||
TimeoutStartSec=4h
|
||||
RuntimeDirectory=%p/%i
|
||||
WorkingDirectory=%t/%p/%i
|
||||
Nice=19
|
||||
CPUSchedulingPolicy=batch
|
||||
IOSchedulingClass=best-effort
|
||||
IOSchedulingPriority=7
|
||||
OOMScoreAdjust=1000
|
||||
CPUWeight=30
|
||||
CPUQuota=300%
|
||||
IOWeight=30
|
@ -12,7 +12,7 @@ name='X-Pardus-Apps.directory'
|
||||
translate=true
|
||||
|
||||
[org/gnome/desktop/app-folders/folders/Utilities]
|
||||
apps=['yafti.desktop', 'system-update.desktop', 'webapp-manager.desktop', 'tuned-gui.desktop', 'rog-control-center.desktop', 'fish.desktop', 'tuned-gui.desktop', 'nvtop.desktop', 'yelp.desktop', 'btop.desktop', 'com.github.tchx84.Flatseal.desktop', 'io.github.flattool.Warehouse.desktop', 'it.mijorus.gearlever.desktop', 'com.mattjakeman.ExtensionManager.desktop', 'org.gnome.tweaks.desktop', 'com.github.GradienceTeam.Gradience', 'io.github.fastrizwaan.WineZGUI.desktop', 'setroubleshoot.desktop', 'org.rncbc.qsynth.desktop', 'bazzite-documentation.desktop', 'bazzite-landing.desktop', 'discourse.desktop']
|
||||
apps=['yafti.desktop', 'system-update.desktop', 'webapp-manager.desktop', 'tuned-gui.desktop', 'rog-control-center.desktop', 'fish.desktop', 'tuned-gui.desktop', 'nvtop.desktop', 'yelp.desktop', 'btop.desktop', 'com.github.tchx84.Flatseal.desktop', 'io.github.flattool.Warehouse.desktop', 'it.mijorus.gearlever.desktop', 'com.mattjakeman.ExtensionManager.desktop', 'org.gnome.tweaks.desktop', 'com.github.GradienceTeam.Gradience', 'io.github.fastrizwaan.WineZGUI.desktop', 'setroubleshoot.desktop', 'org.rncbc.qsynth.desktop', 'bazzite-documentation.desktop', 'bazzite-landing.desktop', 'discourse.desktop', 'de.leopoldluley.Clapgrep.desktop']
|
||||
categories=['X-GNOME-Utilities']
|
||||
name='X-GNOME-Utilities.directory'
|
||||
translate=true
|
||||
|
@ -17,7 +17,7 @@ sort-directories-first=true
|
||||
show-create-link=true
|
||||
|
||||
[org.gnome.mutter]
|
||||
experimental-features=['variable-refresh-rate', 'scale-monitor-framebuffer']
|
||||
experimental-features=['variable-refresh-rate', 'scale-monitor-framebuffer', 'xwayland-native-scaling']
|
||||
check-alive-timeout=uint32 20000
|
||||
|
||||
[org.gnome.software]
|
||||
|
@ -11,6 +11,7 @@ enable-hot-corners=false
|
||||
document-font-name='Noto Sans 11'
|
||||
font-name='Noto Sans 11'
|
||||
monospace-font-name='Fira Code weight=450 10'
|
||||
accent-color='purple'
|
||||
|
||||
[org.gnome.mutter]
|
||||
center-new-windows=true
|
||||
|
Loading…
x
Reference in New Issue
Block a user