Compare commits

..

8 Commits

Author SHA1 Message Date
Gilver 56a2e73176 Merge branch 'frawhide' into gil/add/vlc 2025-12-26 08:48:17 -06:00
Gilver f7915c8adf chore: Port spec changes from F43 2025-12-19 23:27:01 -06:00
Gilver 1ce7b2f873 Cleanup 2025-12-19 20:56:16 -06:00
Gilver fc3c1dcc3a cleanup: New macros and bump release down 2025-12-19 20:14:23 -06:00
Gilver 177153e227 feat: Handle Freeworld 2025-12-19 19:44:55 -06:00
Gilver 47bad035e5 cleanup: Remove Flatpak stuff, add patches 2025-12-19 19:36:48 -06:00
Gilver ec642693d1 ??? 2025-12-19 19:33:31 -06:00
Gilver 9f79730638 add: VLC 2025-12-19 19:32:57 -06:00
777 changed files with 6478 additions and 8762 deletions
-63
View File
@@ -1,63 +0,0 @@
name: Package Bug Report
description: Report an issue with a package.
title: "[BUG] "
labels: ["bug", "triage"]
#projects: ["octo-org/1", "octo-org/44"]
assignees:
- hamachitan
#type: bug
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: input
id: pkg
attributes:
label: Full Package Name
description: If you report multiple packages, only the main package is needed if applicable, or separate them with spaces otherwise. Obtain the full package name using `rpm -qa pkg-name`.
placeholder: anda-0.4.14-1.fc43.x86_64
validations:
required: true
- type: dropdown
id: releasever
attributes:
label: Release Version
description: Which version of Terra are you using?
options:
- frawhide
- f43
- f42
- el10
default: 1
- type: textarea
id: description
attributes:
label: Describe the Bug
description: A clear and concise description of what the bug is. Please only report issues with packaging or Terra itself, report upstream bugs to the respective project.
placeholder: A bug happened!
validations:
required: true
- type: textarea
id: repro
attributes:
label: To Reproduce
description: How can the bug be reproduced?
placeholder: |
1. `dnf install this-package`
2. run `this-package`
3. see error
validations:
required: true
- type: textarea
id: expect
attributes:
label: Expected Behavior
description: A clear and concise description of what you expected to happen.
placeholder: Running it should show hello world!
- type: textarea
id: logs
attributes:
label: Relevant Log Output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
@@ -1,14 +1,14 @@
---
name: Incident Report
about: Report an issue with Terra itself
title: '[INCIDENT] '
labels: incident
assignees: ['madonuko', 'korewaChino', 'lleyton']
name: Bug report
about: Report an issue with a package (or Terra itself)
title: '[BUG] '
labels: bug
assignees: ''
---
**Describe the Incident**
A clear and concise description of what is going on. **If you want to report a problem with a package, please use the Package Bug Report option instead.**
**Describe the bug**
A clear and concise description of what the bug is. Please only report issues with packaging or Terra itself, report upstream bugs to the respective project.
**To Reproduce**
Steps to reproduce the behavior:
@@ -23,7 +23,7 @@ If applicable, add screenshots to help explain your problem.
**Affected (please complete the following information):**
- Distro [e.g. Fedora]
- Other relevant environments
- Package [e.g. melody, srpm-macros]
**Additional context**
Add any other context about the problem here.
+6 -84
View File
@@ -4,19 +4,15 @@ name: Automatically build packages
permissions:
contents: read
on:
# push:
# paths:
# - anda/**
# branches:
# - frawhide
pull_request:
push:
paths:
- anda/**
branches:
- frawhide
pull_request:
branches:
- frawhide
merge_group:
paths:
- anda/**
branches:
- frawhide
workflow_dispatch:
@@ -34,7 +30,7 @@ jobs:
- name: Set workspace as safe
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Generate build matrix
@@ -48,14 +44,6 @@ jobs:
packages: ${{ needs.manifest.outputs.build_matrix }}
publish: ${{ github.event_name == 'push' }}
automerge:
needs: build
runs-on: ubuntu-24.04-arm
steps:
- name: Merge PR on Success Build
if: github.event.pull_request.commits == 1 && github.event.pull_request.user.login == 'raboneko'
run: gh pr merge ${{ github.event.number }} --admin --squash
appstream:
needs: build
runs-on: ubuntu-latest
@@ -63,7 +51,7 @@ jobs:
image: ghcr.io/terrapkg/appstream-generator:main
steps:
- name: Download artifacts
uses: actions/download-artifact@v7
uses: actions/download-artifact@v5
with:
merge-multiple: true
path: ./artifacts
@@ -118,69 +106,3 @@ jobs:
echo '```' >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
done
lintUpdate:
needs: manifest
runs-on: ubuntu-24.04-arm
permissions:
contents: read
pull-requests: write
container:
image: ghcr.io/terrapkg/builder:frawhide
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 2
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
- name: Install SSH signing key & Set up git repository
run: |
mkdir -p ${{ runner.temp }}
echo "${{ secrets.SSH_SIGNING_KEY }}" > ${{ runner.temp }}/signing_key
chmod 0700 ${{ runner.temp }}/signing_key
git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Collect update scripts from last commit
id: last_commit_update_scripts
run: |
scripts=$(git diff-tree --no-commit-id --name-only HEAD -r | grep -E '/update\.rhai$' || true)
scripts=$(printf "%s" "$scripts" | tr '\n' ' ')
echo "upd_scripts=${scripts}" >> $GITHUB_OUTPUT
- name: Run update scripts from last commit
if: steps.last_commit_update_scripts.outputs.upd_scripts != ''
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -euo pipefail
pr_number="${{ github.event.pull_request.number }}"
for script in ${{ steps.last_commit_update_scripts.outputs.upd_scripts }}; do
echo "Running update script: $script"
dir=$(dirname "$script")
hcl="$dir/anda.hcl"
if [ ! -f "$hcl" ]; then
echo "Missing anda.hcl for $script"
continue
fi
backup="$hcl.autobuild_upd_test.bak"
cp $hcl $backup
if ! grep -qE 'labels {' $hcl; then
sed -E '/rpm\s*{/i labels { autobuild_upd_test = 1 }' -i $hcl
else
sed -E '/labels\s*{/a autobuild_upd_test = 1' -i $hcl
fi
output=$(anda run "$script" -f autobuild_upd_test=1 2>&1) || status=$?
status=${status:-0}
echo "$output"
mv "$backup" "$hcl" # do we want to commit this too?
if echo "$output" | grep -q "ERROR" || [ "$status" -ne 0 ]; then
gh pr comment ${{ github.event.pull_request.number }} --body "Update script failed: $script\n\n\`\`\`\n$output\n\`\`\`"
exit 1
fi
done
+1 -1
View File
@@ -21,7 +21,7 @@ jobs:
dnf5 swap -y --setopt=install_weak_deps=False systemd-standalone-sysusers systemd
dnf5 install -y --setopt=install_weak_deps=False curl wget git-core openssl-devel cargo podman fuse-overlayfs dnf5-plugins rpmbuild script
- uses: actions/checkout@v6
- uses: actions/checkout@v4
with:
ref: f${{ matrix.version }}
fetch-depth: 1
+1 -1
View File
@@ -29,7 +29,7 @@ jobs:
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Git
+4 -4
View File
@@ -36,7 +36,7 @@ on:
default: true
env:
RUSTC_WRAPPER: "/usr/bin/sccache"
RUSTC_WRAPPER: sccache
# SCCACHE_NO_DAEMON: "1"
# Disable incremental compilation so sccache works better
CARGO_INCREMENTAL: "false"
@@ -54,7 +54,7 @@ jobs:
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
fetch-depth: 0
@@ -98,7 +98,7 @@ jobs:
x=${NAME//\//@}
echo "name=$x" >> $GITHUB_OUTPUT
- uses: actions/upload-artifact@v6
- uses: actions/upload-artifact@v4
with:
name: ${{ steps.art.outputs.name }}
compression-level: 0 # The RPMs are already compressed :p
@@ -129,4 +129,4 @@ jobs:
run: ./.github/workflows/mg.sh true "${{matrix.pkg.pkg}}" "${{matrix.version}}" "${{matrix.pkg.arch}}" "${{github.run_id}}" "${{secrets.MADOGUCHI_JWT}}" "$GITHUB_SHA"
- name: Notify Madoguchi (Failure)
if: inputs.publish && (cancelled() || failure())
run: ./.github/workflows/mg.sh false "${{matrix.pkg.pkg}}" "${{matrix.version}}" "${{matrix.pkg.arch}}" "${{github.run_id}}" "${{secrets.MADOGUCHI_JWT}}" "$GITHUB_SHA"
run: ./.github/workflows/mg.sh false "${{matrix.pkg.pkg}}" "${{matrix.version}}" "${{matrix.pkg.arch}}" "${{github.run_id}}" "${{secrets.MADOGUCHI_JWT}}" "$GITHUB_SHA"
+4 -5
View File
@@ -1,7 +1,6 @@
name: Update per branch
permissions:
contents: write
pull-requests: write
on:
schedule:
- cron: "*/30 * * * *"
@@ -22,7 +21,7 @@ jobs:
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
ref: ${{ matrix.branch }}
fetch-depth: 0
@@ -51,7 +50,7 @@ jobs:
git config user.email "raboneko@fyralabs.com"
git config gpg.format "ssh"
git config user.signingkey "${{ runner.temp }}/signing_key"
anda run andax/ci/update_pr.rhai -l scope=branch
msg="bump(branch): $(anda run andax/ci/update_commit_message.rhai)"
git commit -S -a -m "$msg"
git push -u origin --all
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+1 -1
View File
@@ -19,7 +19,7 @@ jobs:
container:
image: ghcr.io/terrapkg/builder:frawhide
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v4
- name: Push to subatomic
run: |
branch=${{ github.ref_name }}
+14 -5
View File
@@ -1,7 +1,6 @@
name: Nightly Update
permissions:
contents: write
pull-requests: write
on:
schedule:
- cron: "0 0 * * *"
@@ -15,7 +14,7 @@ jobs:
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
fetch-depth: 0
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
@@ -40,7 +39,17 @@ jobs:
git config user.email "raboneko@fyralabs.com"
git config gpg.format "ssh"
git config user.signingkey "${{ runner.temp }}/signing_key"
anda run andax/ci/update_pr.rhai -l scope=nightly
msg="bump(nightly): $(anda run andax/ci/update_commit_message.rhai)"
git commit -S -a -m "$msg"
git format-patch HEAD^
copy_over () {
git checkout $1
git apply *.patch || true
git add anda
git commit -S -a -m "$msg"
}
copy_over f43 || true
copy_over f42 || true
copy_over el10 || true
git push -u origin --all
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+14 -5
View File
@@ -1,7 +1,6 @@
name: Weekly Update
permissions:
contents: write
pull-requests: write
on:
schedule:
- cron: "0 0 * * *"
@@ -15,7 +14,7 @@ jobs:
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
fetch-depth: 0
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
@@ -40,7 +39,17 @@ jobs:
git config user.email "raboneko@fyralabs.com"
git config gpg.format "ssh"
git config user.signingkey "${{ runner.temp }}/signing_key"
anda run andax/ci/update_pr.rhai -l scope=weekly
msg="bump(weekly): $(anda run andax/ci/update_commit_message.rhai)"
git commit -S -a -m "$msg"
git format-patch HEAD^
copy_over () {
git checkout $1
git apply *.patch || true
git add anda
git commit -S -a -m "$msg"
}
copy_over f43 || true
copy_over f42 || true
copy_over el10 || true
git push -u origin --all
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+15 -6
View File
@@ -1,7 +1,6 @@
name: Update
permissions:
contents: write
pull-requests: write
on:
schedule:
- cron: "*/10 * * * *"
@@ -15,7 +14,7 @@ jobs:
options: --cap-add=SYS_ADMIN --privileged
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v4
with:
fetch-depth: 0
ssh-key: ${{ secrets.SSH_AUTHENTICATION_KEY }}
@@ -28,7 +27,7 @@ jobs:
git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Run Update
run: anda update -e nightly=1 -e updbranch=1 -e weekly=0 -e weekly=1 -e weekly=2 -e weekly=3 -e weekly=4 -e weekly=5 -e weekly=6
run: anda update --excludes nightly=1 --excludes weekly=1 --excludes updbranch=1
env:
GITHUB_TOKEN: ${{ secrets.AUTOUPDATE_GH_TOKEN }}
RUST_BACKTRACE: full
@@ -40,7 +39,17 @@ jobs:
git config user.email "raboneko@fyralabs.com"
git config gpg.format "ssh"
git config user.signingkey "${{ runner.temp }}/signing_key"
anda run andax/ci/update_pr.rhai -l scope=auto
msg="bump: $(anda run andax/ci/update_commit_message.rhai)"
git commit -S -a -m "$msg"
git format-patch HEAD^
copy_over () {
git checkout $1
git apply *.patch || true
git add anda
git commit -S -a -m "$msg"
}
copy_over f43 || true
copy_over f42 || true
copy_over el10 || true
git push -u origin --all
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-4
View File
@@ -2,7 +2,3 @@ anda-build/
**/*.tar*
**/*.crate
**/*.zip
**/*.minisig
**/*.nupkg
**/*.rpm
**/*.kate-swp
+4 -9
View File
@@ -25,14 +25,8 @@ If you are using immutable/atomic editions of Fedora, run the following commands
curl -fsSL https://github.com/terrapkg/subatomic-repos/raw/main/terra.repo | pkexec tee /etc/yum.repos.d/terra.repo
sudo rpm-ostree install terra-release
```
#### Subrepos
On Fedora, you can optionally install the Terra subrepos. Extra care and caution may be needed as some of these packages may conflict with other repositories such as RPM Fusion.
- Install `terra-release-extras` to enable the Extras subrepo. This repo contains packages which conflict with Fedora packages in some way, such as being a patched version of the same package.
- Install `terra-release-mesa` to install the Mesa subrepo which contains a patched and codec complete Mesa.
- Install `terra-release-nvidia` to install the NVIDIA subrepo which contains NVIDIA drivers.
- Install `terra-release-multimedia` for mutltimedia packages in Terra. This repository is currently considered a work in progress.
Optionally, you can install `terra-release-extra` to use the Extras repository. This also installs the Nvidia, and Mesa streams but does not enable them.
### Enterprise Linux (EL)
@@ -56,7 +50,8 @@ First of all, thanks for being interested in contributing to Terra! If you have
- [Contribution Guide](https://developer.fyralabs.com/terra/contributing)
- [FAQ](https://developer.fyralabs.com/terra/faq)
- [Guidelines](https://developer.fyralabs.com/terra/guidelines)
- [Policy](https://developer.fyralabs.com/terra/policy)
## Documentation
@@ -72,4 +67,4 @@ Feel free to reach out by [joining our community](https://wiki.ultramarine-linux
- [Contribution Guide](https://developer.fyralabs.com/terra/contributing)
- [FAQ](https://developer.fyralabs.com/terra/faq)
- [Guidelines](https://developer.fyralabs.com/terra/guidelines)
- [Policy](https://developer.fyralabs.com/terra/policy)
+1 -1
View File
@@ -74,5 +74,5 @@ rm -rf %buildroot%_bindir/{distro,flask,jsonschema,markdown_py,normalizer,send2t
* Fri Nov 10 2023 hazel-bunny <dabiswas112@gmail.com> - 23.10-2
- Add python3-orjson and mpv as dependencies
* Wed Jan 11 2023 madonuko <mado@fyralabs.com> - 2.1.60
* Wed Jan 11 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.1.60
- Initial package
+1 -1
View File
@@ -62,5 +62,5 @@ find %{buildroot} -iname direct_url.json | xargs -r rm -rf
/usr/lib64/python*/site-packages/anki-%{version}.dist-info/
%changelog
* Tue Jan 3 2023 madonuko <mado@fyralabs.com> - 2.1.60
* Tue Jan 3 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.1.60
- Initial package
+1 -1
View File
@@ -68,5 +68,5 @@ chmod 755 %{buildroot}%{_bindir}/anki
%changelog
* Tue Jan 3 2023 madonuko <mado@fyralabs.com> - 2.1.60
* Tue Jan 3 2023 windowsboy111 <windowsboy111@fyralabs.com> - 2.1.60
- Initial package
-6
View File
@@ -1,6 +0,0 @@
project pkg {
arches = ["x86_64"]
rpm {
spec = "bazzite-portal.spec"
}
}
@@ -1,39 +0,0 @@
Name: bazzite-portal
Version: 0.1.6
Release: 2%?dist
Summary: Bazzite Portal is a tabbed frontend for curated script execution, with a focus on distro specific QOL shortcuts
URL: https://github.com/ublue-os/yafti-gtk
Source0: https://github.com/ublue-os/yafti-gtk/archive/refs/tags/v%{version}.tar.gz
License: GPL-3.0-only
Requires: python3-gobject
Requires: python3-PyYAML
Requires: gtk3
Provides: Bazzite-Portal
BuildArch: noarch
Packager: Zacharias Xenakis <xarishark@outlook.com>
%description
%{summary}.
%prep
%autosetup -n yafti-gtk-%{version}
%build
%install
install -Dm 755 yafti_gtk.py %{buildroot}%{_bindir}/yafti_gtk.py
install -Dm 644 io.github.ublue_os.yafti_gtk.desktop %{buildroot}%{_appsdir}/io.github.ublue_os.yafti_gtk.desktop
install -Dm 644 portal.svg %{buildroot}%{_scalableiconsdir}/io.github.ublue_os.yafti_gtk.svg
install -Dm 644 io.github.ublue_os.yafti_gtk.metainfo.xml %{buildroot}%{_metainfodir}/io.github.ublue_os.yafti_gtk.metainfo.xml
%files
%doc README.md
%license LICENSE
%{_bindir}/yafti_gtk.py
%{_appsdir}/io.github.ublue_os.yafti_gtk.desktop
%{_scalableiconsdir}/io.github.ublue_os.yafti_gtk.svg
%{_metainfodir}/io.github.ublue_os.yafti_gtk.metainfo.xml
%changelog
* Wed Jan 28 2026 Xarishark <xarishark@outlook.com>
- Initial commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("ublue-os/yafti-gtk"));
@@ -1,5 +1,5 @@
Name: bitwarden-cli.bin
Version: 2026.1.0
Version: 2025.12.0
Release: 1%?dist
Summary: Bitwarden command-line client
License: GPL-3.0-only
+1 -1
View File
@@ -6,7 +6,7 @@
%endif
Name: bitwarden-cli
Version: 2026.1.0
Version: 2025.12.0
Release: 1%?dist
Summary: Bitwarden command-line client
License: GPL-3.0-only
+1 -1
View File
@@ -1,7 +1,7 @@
%undefine __brp_mangle_shebangs
Name: chdig
Version: 26.2.1
Version: 25.12.1
Release: 1%?dist
Summary: Dig into ClickHouse with TUI interface
URL: https://github.com/azat/chdig
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "chrultrabook-tools.spec"
}
}
@@ -1,74 +0,0 @@
%undefine __brp_mangle_shebangs
Name: chrultrabook-tools
Version: 3.1.3
Release: 2%?dist
Summary: User-friendly configuration utility for Chromebooks running an alternate OS
URL: https://github.com/death7654/Chrultrabook-Tools
Source0: %url/archive/refs/tags/%version.tar.gz
License: GPL-3.0-only AND MPL-2.0 AND MIT-0 AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND (CC0-1.0 OR Apache-2.0) AND BSL-1.0 AND BlueOak-1.0.0 AND CC0-1.0 AND (BSD-3-Clause OR Apache-2.0) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause AND ISC AND MIT AND (Apache-2.0 OR MIT) AND BSD-3-Clause AND NCSA AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT) AND (Apache-2.0/MIT) AND CDLA-Permissive-2.0 AND (MIT OR Zlib OR Apache-2.0) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Apache-2.0 OR BSD-1-Clause) AND Unlicense
BuildRequires: cargo
BuildRequires: glib2
BuildRequires: glib2-devel
BuildRequires: gtk3
BuildRequires: gtk3-devel
BuildRequires: javascriptcoregtk4.1
BuildRequires: javascriptcoregtk4.1-devel
BuildRequires: libsoup3
BuildRequires: libsoup3-devel
BuildRequires: libappindicator-gtk3
BuildRequires: libappindicator-devel
BuildRequires: gstreamer1
BuildRequires: gstreamer1-devel
BuildRequires: patchelf
BuildRequires: libstdc++-static
BuildRequires: libxdo-devel
BuildRequires: anda-srpm-macros
BuildRequires: rustc
BuildRequires: %{tauri_buildrequires -a}
# This may seem weird, but https://github.com/nodejs/node/issues/51752#issuecomment-2970163641
BuildRequires: nodejs-full-i18n
Requires: chromium-ectool
Requires: coreboot-utils-cbmem
Requires: libayatana-appindicator-gtk3
Requires: libayatana-ido-gtk3
Requires: libayatana-indicator-gtk3
Packager: Owen Zimmerman owen@fyralabs.com
%description
%summary.
%prep
%autosetup -n Chrultrabook-Tools-%version
%tauri_prep
%build
%npm_build -r build -B
%install
%tauri_install
install -Dm755 src-tauri/linux/chrultrabook-tools-root %{buildroot}%{_bindir}/chrultrabook-tools-root
install -Dm644 src-tauri/linux/chrultrabook-tools.desktop %{buildroot}%{_appsdir}/chrultrabook-tools.desktop
install -Dm644 src-tauri/icons/128x128.png %{buildroot}%{_hicolordir}/128x128/apps/chrultrabook-tools.png
# Not matching, but upstream does it this way. Working with upstream to correct this issue.
install -Dm644 src-tauri/icons/128x128@2x.png %{buildroot}%{_hicolordir}/256x256@2/apps/chrultrabook-tools.png
install -Dm644 src-tauri/icons/32x32.png %{buildroot}%{_hicolordir}/32x32/apps/chrultrabook-tools.png
install -Dm644 src-tauri/linux/com.chrultrabook.tools.policy %{buildroot}%{_datadir}/polkit-1/actions/com.chrultrabook.tools.policy
%{tauri_cargo_license} > LICENSE.dependencies
%files
%doc README.md
%license LICENSE
%license LICENSE.dependencies
%{_bindir}/chrultrabook-tools
%{_bindir}/chrultrabook-tools-root
%{_appsdir}/chrultrabook-tools.desktop
%{_hicolordir}/*x*/apps/chrultrabook-tools.png
%{_datadir}/polkit-1/actions/com.chrultrabook.tools.policy
%changelog
* Mon Jan 19 2026 Owen Zimmerman <owen@fyralabs.com>
- Initial commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("death7654/Chrultrabook-Tools"));
+1 -1
View File
@@ -8,7 +8,7 @@ for background device management, as well as a GUI to expertly customize your se
%global __brp_mangle_shebangs %{nil}
Name: coolercontrol
Version: 3.1.1
Version: 3.0.2
Release: 1%?dist
Summary: Cooling device control for Linux
License: GPL-3.0-or-later
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-canary-openasar
Version: 0.0.864
Version: 0.0.839
Release: 1%?dist
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
@@ -54,7 +54,7 @@ ln -s %_datadir/discord-canary-openasar/DiscordCanary %buildroot%_bindir/discord
%changelog
* Wed Jan 18 2023 madonuko <mado@fyralabs.com> - 0.0.146-1
* Wed Jan 18 2023 windowsboy111 <windowsboy111@fyralabs.com> - 0.0.146-1
- Renamed from openasar-canary to discord-canary-openasar
- Fix issues after removing discord-canary package
- Bundle discord-canary
+4 -4
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-canary
Version: 0.0.864
Version: 0.0.839
Release: 1%?dist
Summary: Free Voice and Text Chat for Gamers
URL: discord.com
@@ -45,7 +45,7 @@ ln -s %_datadir/discord-canary/DiscordCanary %buildroot%_bindir/discord-canary
* Thu Dec 01 2022 root - 0.0.144-1
- new version
* Thu Nov 17 2022 madonuko <mado@fyralabs.com> - 0.0.143-1
* Thu Nov 17 2022 windowsboy111 <wboy111@outlook.com> - 0.0.143-1
- new version
* Fri Oct 28 2022 root - 0.0.142-1
@@ -60,10 +60,10 @@ ln -s %_datadir/discord-canary/DiscordCanary %buildroot%_bindir/discord-canary
* Thu Oct 27 2022 root - 0.0.141-1
- new version
* Wed Oct 19 2022 madonuko <mado@fyralabs.com> - 0.0.140-1
* Wed Oct 19 2022 windowsboy111 <wboy111@outlook.com> - 0.0.140-1
- new version
* Sun Oct 16 2022 madonuko <mado@fyralabs.com> - 0.0.139
* Sun Oct 16 2022 windowsboy111 <wboy111@outlook.com> - 0.0.139
- Repackaged for Terra
* Tue Feb 22 2022 Ultramarine Release Tracking Service - 0.0.133-2
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-openasar
Version: 0.0.123
Version: 0.0.119
Release: 1%?dist
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
@@ -54,5 +54,5 @@ ln -s %_datadir/discord-openasar/Discord %buildroot%_bindir/discord-openasar
%changelog
* Sat Jan 21 2023 madonuko <mado@fyralabs.com> - 0.0.38-1
* Sat Jan 21 2023 windowsboy111 <windowsboy111@fyralabs.com> - 0.0.38-1
- Initial package
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-ptb-openasar
Version: 0.0.176
Version: 0.0.171
Release: 1%?dist
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
@@ -56,5 +56,5 @@ ln -s %_datadir/discord-ptb-openasar/Discord %buildroot%_bindir/discord-ptb-open
%changelog
* Sat Jan 21 2023 madonuko <mado@fyralabs.com> - 0.0.38-1
* Sat Jan 21 2023 windowsboy111 <windowsboy111@fyralabs.com> - 0.0.38-1
- Initial package
+4 -4
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-ptb
Version: 0.0.176
Version: 0.0.171
Release: 1%?dist
Summary: Free Voice and Text Chat for Gamers.
URL: https://discord.com
@@ -46,11 +46,11 @@ ln -s %_datadir/discord-ptb/Discord %buildroot%_bindir/discord-ptb
%{_datadir}/pixmaps/discord-ptb.png
%changelog
* Thu Nov 17 2022 madonuko <mado@fyralabs.com> - 0.0.35-1
* Thu Nov 17 2022 windowsboy111 <wboy111@outlook.com> - 0.0.35-1
- new version
* Thu Oct 20 2022 madonuko <mado@fyralabs.com> - 0.0.34-1
* Thu Oct 20 2022 windowsboy111 <wboy111@outlook.com> - 0.0.34-1
- new version
* Sun Oct 16 2022 madonuko <mado@fyralabs.com> - 0.0.33
* Sun Oct 16 2022 windowsboy111 <wboy111@outlook.com> - 0.0.33
- Initial Package.
+2 -2
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord
Version: 0.0.123
Version: 0.0.119
Release: 1%?dist
Summary: Free Voice and Text Chat for Gamers
URL: https://discord.com
@@ -46,5 +46,5 @@ ln -s %_datadir/discord/Discord %buildroot%_bindir/discord
%{_datadir}/pixmaps/discord.png
%changelog
* Thu Jan 19 2023 madonuko <mado@fyralabs.com> - 0.0.143-1
* Thu Jan 19 2023 windowsboy111 <wboy111@outlook.com> - 0.0.143-1
- Initial package
+1 -1
View File
@@ -1,7 +1,7 @@
%undefine __brp_mangle_shebangs
Name: dorion
Version: 6.12.0
Version: 6.11.0
Release: 1%?dist
Summary: Tiny alternative Discord client with a smaller footprint, snappier startup, themes, plugins and more!
SourceLicense: GPL-3.0-only
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "falcond-gui.spec"
}
}
-52
View File
@@ -1,52 +0,0 @@
Name: falcond-gui
Version: 1.0.1
Release: 1%{?dist}
Summary: A GTK4/LibAdwaita application to control and monitor the Falcond gaming optimization daemon
SourceLicense: MIT
License: (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND CC0-1.0 AND ISC AND (MIT OR Apache-2.0) AND MIT AND (Unlicense OR MIT)
URL: https://git.pika-os.com/general-packages/falcond-gui
Source0: %{url}/archive/v%{version}.tar.gz
BuildRequires: anda-srpm-macros
BuildRequires: cargo-rpm-macros
BuildRequires: desktop-file-utils
BuildRequires: gtk4-devel
BuildRequires: libadwaita-devel
BuildRequires: mold
Requires: gtk4
Requires: falcond
Requires: falcond-profiles
Requires: libadwaita
Requires(post): gtk-update-icon-cache
Packager: Gilver E. <roachy@fyralabs.com>
%description
falcond-gui provides a user-friendly graphical interface for managing falcond. It allows users to view the status of the daemon and customize its behavior.
%prep
%autosetup -n %{name}/%{name}
%cargo_prep_online
%build
%install
%cargo_install
desktop-file-install res/%{name}.desktop
install -Dm644 res/falcond.png -t %{buildroot}%{_hicolordir}/512x512/apps/
%{cargo_license_online} > LICENSE.dependencies
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
%posttrans
/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor/ &>/dev/null || :
%files
%doc ../README.md
%license ../LICENSE.md
%{_bindir}/%{name}
%{_hicolordir}/512x512/apps/falcond.png
%{_appsdir}/%{name}.desktop
%changelog
* Thu Jan 1 2026 Gilver E. <roachy@fyralabs.com> - 1.0.0-1
- Initial package
-1
View File
@@ -1 +0,0 @@
rpm.version(get("https://git.pika-os.com/api/v1/repos/general-packages/falcond-gui/releases").json_arr()[0].tag_name);
+1 -1
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: feishin
Version: 1.4.2
Version: 0.22.0
Release: 1%?dist
Summary: A modern self-hosted music player
License: GPL-3.0
+2 -2
View File
@@ -1,9 +1,9 @@
#? https://github.com/flameshot-org/flameshot/blob/master/packaging/rpm/fedora/flameshot.spec
%global ver 13.3.0
%global commit c4000368c8f48d726d38c3458300e1a4f3fc53a0
%global commit bee989ec55e7034a782fd18bd4e694b74a62ac32
%global shortcommit %{sub %{commit} 1 7}
%global commit_date 20260204
%global commit_date 20251224
%global devel_name QtColorWidgets
%global _distro_extra_cflags -fuse-ld=mold
%global _distro_extra_cxxflags -fuse-ld=mold
+1 -1
View File
@@ -1,5 +1,5 @@
Name: flatpost
Version: 1.2.0
Version: 1.1.1
Release: 1%?dist
License: BSD-2-Clause
Summary: Desktop environment agnostic Flathub software center.
@@ -1,10 +1,11 @@
%global commit 43fc986a36f10da2fab4924d4e2974b30d53e311
%global commit 8076be6b34f72b721f9bc00d9e3f8cbe26dfeb9b
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20260205
%global ver 2.0.1^
%global commit_date 20251226
%global ver 1.11.4^
%global base_name goofcord
%global git_name GoofCord
%global appid io.github.milkshiift.GoofCord
%electronmeta
Name: %{base_name}-nightly
Version: %{ver}%{commit_date}.git.%{shortcommit}
@@ -16,28 +17,25 @@ URL: https://github.com/Milkshiift/%{git_name}
Source0: %{url}/archive/%{commit}/%{git_name}-%{commit}.tar.gz
BuildRequires: anda-srpm-macros >= 0.2.26
BuildRequires: bun-bin
Packager: Gilver E. <roachy@fyralabs.com>
%electronmeta -D
Packager: Gilver E. <rockgrub@disroot.org>
%description
A highly configurable and privacy minded Discord client.
%prep
%autosetup -n %{git_name}-%{commit}
%ifarch %{arm64} armv7l armv7hl armv7hnl
sed -i '/\"x64\",/d' electron-builder.ts
%endif
%build
%bun_build
%ifarch %{arm64} armv7hl armv7l
sed -i '/\"x64\",/d' electron-builder.ts
%endif
%bun_build -r build -R
%install
%electron_install -d %{base_name} -s %{base_name} -b %{base_name} -i %{base_name} -D -O -U %U -E UseOzonePlatform,WaylandWindowDecorations -I
install -Dm644 assetsDev/%{appid}.metainfo.xml -t %{buildroot}%{_metainfodir}
%electron_install -d %{base_name} -s %{base_name} -i %{base_name} -D -O -U %U -E UseOzonePlatform,WaylandWindowDecorations
%check
%desktop_file_validate %{buildroot}%{_datadir}/applications/%{base_name}.desktop
desktop-file-validate %{buildroot}%{_datadir}/applications/%{base_name}.desktop
%files
%doc README.md
@@ -45,15 +43,14 @@ install -Dm644 assetsDev/%{appid}.metainfo.xml -t %{buildroot}%{_metainfodir}
%{_bindir}/%{base_name}
%{_datadir}/applications/%{base_name}.desktop
%{_libdir}/%{base_name}/
%{_metainfodir}/%{appid}.metainfo.xml
%{_hicolordir}/16x16/apps/%{base_name}.png
%{_hicolordir}/32x32/apps/%{base_name}.png
%{_hicolordir}/48x48/apps/%{base_name}.png
%{_hicolordir}/64x64/apps/%{base_name}.png
%{_hicolordir}/128x128/apps/%{base_name}.png
%{_hicolordir}/256x256/apps/%{base_name}.png
%{_hicolordir}/512x512/apps/%{base_name}.png
%{_hicolordir}/1024x1024/apps/%{base_name}.png
%{_iconsdir}/hicolor/16x16/apps/%{base_name}.png
%{_iconsdir}/hicolor/32x32/apps/%{base_name}.png
%{_iconsdir}/hicolor/48x48/apps/%{base_name}.png
%{_iconsdir}/hicolor/64x64/apps/%{base_name}.png
%{_iconsdir}/hicolor/128x128/apps/%{base_name}.png
%{_iconsdir}/hicolor/256x256/apps/%{base_name}.png
%{_iconsdir}/hicolor/512x512/apps/%{base_name}.png
%{_iconsdir}/hicolor/1024x1024/apps/%{base_name}.png
%changelog
* Sat Jun 28 2025 Gilver E. <rockgrub@disroot.org> - 1.10.1^20250615.git.3f5eda1
+19 -23
View File
@@ -1,39 +1,36 @@
%global git_name GoofCord
%global appid io.github.milkshiift.GoofCord
%electronmeta
Name: goofcord
Version: 2.0.1
Release: 2%{?dist}
Version: 1.11.4
Release: 1%?dist
License: OSL-3.0
Summary: A privacy-minded Legcord fork.
Group: Applications/Internet
URL: https://github.com/Milkshiift/%{git_name}
Source0: %{url}/archive/refs/tags/v%{version}.tar.gz
BuildRequires: anda-srpm-macros >= 0.3.0
BuildRequires: anda-srpm-macros >= 0.2.26
BuildRequires: bun-bin
Packager: Gilver E. <roachy@fyralabs.com>
%electronmeta -D
Packager: Gilver E. <rockgrub@disroot.org>
%description
A highly configurable and privacy minded Discord client.
%prep
%autosetup -n %{git_name}-%{version}
%build
%ifarch %{arm64} armv7hl armv7l
sed -i '/\"x64\",/d' electron-builder.ts
%endif
%build
%bun_build
%bun_build -r build -R
%install
%electron_install -D -O -U %U -E UseOzonePlatform,WaylandWindowDecorations -I
install -Dm644 assetsDev/%{appid}.metainfo.xml -t %{buildroot}%{_metainfodir}
%electron_install -D -O -U %U -E UseOzonePlatform,WaylandWindowDecorations
%check
%desktop_file_validate %{buildroot}%{_datadir}/applications/%{name}.desktop
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
%files
%doc README.md
@@ -41,15 +38,14 @@ install -Dm644 assetsDev/%{appid}.metainfo.xml -t %{buildroot}%{_metainfodir}
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_libdir}/%{name}/
%{_metainfodir}/%{appid}.metainfo.xml
%{_hicolordir}/16x16/apps/%{name}.png
%{_hicolordir}/32x32/apps/%{name}.png
%{_hicolordir}/48x48/apps/%{name}.png
%{_hicolordir}/64x64/apps/%{name}.png
%{_hicolordir}/128x128/apps/%{name}.png
%{_hicolordir}/256x256/apps/%{name}.png
%{_hicolordir}/512x512/apps/%{name}.png
%{_hicolordir}/1024x1024/apps/%{name}.png
%{_iconsdir}/hicolor/16x16/apps/%{name}.png
%{_iconsdir}/hicolor/32x32/apps/%{name}.png
%{_iconsdir}/hicolor/48x48/apps/%{name}.png
%{_iconsdir}/hicolor/64x64/apps/%{name}.png
%{_iconsdir}/hicolor/128x128/apps/%{name}.png
%{_iconsdir}/hicolor/256x256/apps/%{name}.png
%{_iconsdir}/hicolor/512x512/apps/%{name}.png
%{_iconsdir}/hicolor/1024x1024/apps/%{name}.png
%changelog
* Sat Jun 28 2025 Gilver E. <rockgrub@disroot.org> - 1.10.1-1
+1 -1
View File
@@ -4,7 +4,7 @@
%global crate halloy
Name: halloy
Version: 2026.2
Version: 2025.12
Release: 1%?dist
Summary: An open-source IRC client written in Rust, with the Iced GUI library
Packager: Yoong jin <solomoncyj@gmail.com>
@@ -11,7 +11,7 @@
%endif
Name: helium-browser-bin
Version: 0.8.5.1
Version: 0.7.7.1
Release: 1%?dist
Summary: Private, fast, and honest web browser based on Chromium
@@ -24,7 +24,7 @@ Source2: net.imput.helium.metainfo.xml
ExclusiveArch: x86_64 aarch64
BuildRequires: terra-appstream-helper desktop-file-utils
BuildRequires: terra-appstream-helper
Requires: xdg-utils
Requires: liberation-fonts
@@ -39,7 +39,11 @@ Based on ungoogled-chromium with additional privacy and usability improvements.
%autosetup -n helium-%{version}-%{arch}_linux
tar --strip-components=1 -zxvf %{SOURCE1}
sed -i 's/Exec=helium\b/Exec=helium-browser-bin/g' helium.desktop
sed -i \
-e 's/Exec=chromium/Exec=%{name}/' \
-e 's/Name=Helium$/Name=Helium Browser/' \
-e 's/Icon=helium/Icon=%{appid}/' \
helium.desktop
%build
@@ -50,11 +54,8 @@ cp -a * %{buildroot}%{_libdir}/%{name}/
sed -i 's/exists_desktop_file || generate_desktop_file/true/' \
%{buildroot}%{_libdir}/%{name}/chrome-wrapper
install -Dm644 helium.desktop %{buildroot}%{_appsdir}/%{name}.desktop
%__desktop_file_edit --set-icon=net.input.helium %{buildroot}%{_appsdir}/%{name}.desktop
install -Dm644 product_logo_256.png %{buildroot}%{_hicolordir}/256x256/apps/%{appid}.png
install -Dm644 helium.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop
install -Dm644 product_logo_256.png %{buildroot}%{_datadir}/icons/hicolor/256x256/apps/%{appid}.png
rm -f %{buildroot}%{_libdir}/%{name}/helium.desktop
rm -f %{buildroot}%{_libdir}/%{name}/product_logo_256.png
@@ -113,8 +114,8 @@ chmod 755 %{buildroot}%{_bindir}/%{name}
%license LICENSE LICENSE.ungoogled_chromium
%{_libdir}/%{name}/
%{_bindir}/%{name}
%{_appsdir}/%{name}.desktop
%{_hicolordir}/256x256/apps/%{appid}.png
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/256x256/apps/%{appid}.png
%{_metainfodir}/%{appid}.metainfo.xml
%changelog
+5 -1
View File
@@ -1,6 +1,6 @@
Name: juce
Version: 8.0.12
Release: 3%{?dist}
Release: 2%{?dist}
License: AGPL-3.0
Summary: framework for audio application and plug-in development
URL: https://juce.com
@@ -68,7 +68,10 @@ popd
%license LICENSE.md
%{_bindir}/juceaide
%{_bindir}/juce_lv2_helper
%dir %{_libdir}/cmake/%{name}
%{_libdir}/cmake/%{name}/*
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/modules
%{_datadir}/%{name}/modules/*
%files doc
@@ -81,3 +84,4 @@ popd
* Fri Dec 19 2025 metcya <metcya@gmail.com> - 8.0.12
- Package juce
+2 -2
View File
@@ -3,10 +3,10 @@
%global gtk4_version 4.14.4
%global libadwaita_version 1.5.1
%global pure_protobuf_version 2.0.0
%global raw_ver v1.102.0
%global raw_ver v1.98.0
Name: komikku
Version: 1.102.0
Version: 1.98.0
%forgemeta
Release: 1%?dist
Summary: A manga reader for GNOME
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "kopia.spec"
}
}
@@ -1,13 +0,0 @@
diff --git a/app/package.json b/app/package.json
index bd3a699a..df05befa 100644
--- a/app/package.json
+++ b/app/package.json
@@ -45,7 +45,7 @@
],
"directories": {
"buildResources": "assets",
- "output": "../dist/kopia-ui"
+ "output": "./dist"
},
"nsis": {
"oneClick": false,
-7
View File
@@ -1,7 +0,0 @@
[Desktop Entry]
Type=Application
Terminal=false
Name=KopiaUI
Comment=Fast and secure open-source backup/restore tool
Exec=kopia-ui
Icon=kopia
-13
View File
@@ -1,13 +0,0 @@
<component>
<name>KopiaUI</name>
<summary>
A backup/restore tool that allows you to create encrypted snapshots
</summary>
<categories>
<category>System</category>
<category>Network</category>
</categories>
<provides>
<binary>kopia-ui</binary>
</provides>
</component>
-84
View File
@@ -1,84 +0,0 @@
%global appid io.kopia.ui
%global appstream_component desktop-application
Name: kopia
%electronmeta -D
Version: 0.22.3
Release: 1%{?dist}
Summary: A backup/restore tool that allows you to create encrypted snapshots
License: Apache-2.0 AND CC0-1.0 AND %{electron_license}
URL: https://kopia.io/
Source0: https://github.com/kopia/kopia/archive/v%{version}.tar.gz
Source1: io.kopia.ui.desktop
Source2: io.kopia.ui.metainfo.xml
Patch0: fix-electron-output-dir.patch
ExclusiveArch: %{golang_arches_future}
Packager: metcya <metcya@gmail.com>
BuildRequires: go-rpm-macros
BuildRequires: terra-appstream-helper
%global gui_name %{name}-ui
%package -n %{gui_name}
Summary: GUI for %{name}
Requires: %{name} = %{evr}
ExclusiveArch: %{electron_arches}
%description
Kopia is a fast and secure open-source backup/restore tool that allows you to
create encrypted snapshots of your data and save the snapshots to remote or
cloud storage of your choice, to network-attached storage or server, or locally
on your machine. Kopia does not 'image' your whole machine. Rather, Kopia
allows you to backup/restore any and all files/directories that you deem are
important or critical.
%description -n %{gui_name}
A graphical user interface for %{name}.
%prep
%autosetup -p1
%build
%global gomodulesmode GO111MODULE=on
%gobuild -o %{name} .
pushd app
%npm_build -B
popd
%install
install -Dm 755 %{name} -t %{buildroot}%{_bindir}
pushd app
%electron_install -b %{gui_name} -d %{gui_name} -s %{gui_name} -I ../icons
popd
# the offical package for kopia-ui includes a bundled copy of the kopia binary
# but we'll just symlink it
mkdir -p %{buildroot}%{_libdir}/%{gui_name}/resources/server
%{__ln_s} %{_bindir}/%{name} %{buildroot}%{_libdir}/%{gui_name}/resources/server/%{name}
%desktop_file_install %{S:1}
%terra_appstream -o %{S:2}
%check
%desktop_file_validate %{buildroot}%{_appsdir}/%{appid}.desktop
%files
%license README.md
%doc LICENSE
%{_bindir}/%{name}
%files -n %{gui_name}
%{_bindir}/%{gui_name}
%{_libdir}/%{gui_name}/
%{_appsdir}/%{appid}.desktop
%{_metainfodir}/%{appid}.metainfo.xml
%{_hicolordir}/*/apps/kopia.png
%changelog
* Thu Jan 22 2026 metcya <metcya@gmail.com> - 0.22.3-1
- Initial package
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("kopia/kopia"));
@@ -1,5 +1,5 @@
%global commit df59d55a39662553a8f6f1502272bb4b4991e6f7
%global commit_date 20260202
%global commit baf407ce7cf37b279999ca22ca03b06a44415da7
%global commit_date 20251216
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global debug_package %nil
%global __strip /bin/true
@@ -82,10 +82,10 @@ desktop-file-install --set-key=Exec --set-value="%{_datadir}/legcord/legcord %U"
* Mon Aug 26 2024 madonuko <mado@fyralabs.com> - 3.3.0-1
- Update to license.txt
* Sat Jun 17 2023 madonuko <mado@fyralabs.com> - 3.2.0-2
* Sat Jun 17 2023 windowsboy111 <windowsboy111@fyralabs.com> - 3.2.0-2
- Remove libnotify dependency.
- Fix desktop entry.
- Set as noarch package because there are not binary files.
* Sat May 6 2023 madonuko <mado@fyralabs.com> - 3.1.7-1
* Sat May 6 2023 windowsboy111 <windowsboy111@fyralabs.com> - 3.1.7-1
- Initial package
+3 -3
View File
@@ -9,7 +9,7 @@
%endif
Name: legcord
Version: 1.2.1
Version: 1.1.6
Release: 1%?dist
License: OSL-3.0
Summary: Custom lightweight Discord client designed to enhance your experience
@@ -78,10 +78,10 @@ desktop-file-install --set-key=Exec --set-value="%{_datadir}/legcord/legcord %U"
* Mon Aug 26 2024 madonuko <mado@fyralabs.com> - 3.3.0-1
- Update to license.txt
* Sat Jun 17 2023 madonuko <mado@fyralabs.com> - 3.2.0-2
* Sat Jun 17 2023 windowsboy111 <windowsboy111@fyralabs.com> - 3.2.0-2
- Remove libnotify dependency.
- Fix desktop entry.
- Set as noarch package because there are not binary files.
* Sat May 6 2023 madonuko <mado@fyralabs.com> - 3.1.7-1
* Sat May 6 2023 windowsboy111 <windowsboy111@fyralabs.com> - 3.1.7-1
- Initial package
+2 -2
View File
@@ -1,9 +1,9 @@
# Disable X11 for RHEL 10+
%bcond x11 %[%{undefined rhel} || 0%{?rhel} < 10]
%global commit 9ccd8899ff28c4f6bdd113026d307af3d46133c5
%global commit c0d989c83913fb9c990d961c44da4816b8d2de18
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20260207
%global commit_date 20251225
%global ver 0.41.0
Name: mpv-nightly
+13 -15
View File
@@ -1,19 +1,20 @@
%undefine __brp_mangle_shebangs
%global __brp_mangle_shebangs %{nil}
%global appid com.github.neohtop
Name: neohtop
Version: 1.2.0
Release: 4%?dist
Release: 2%?dist
Summary: System monitoring on steroids
SourceLicense: MIT
License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-3-Clause AND MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND (BSD-3-Clause OR MIT) AND BSD-3-Clause AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Apache-2.0) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND MPL-2.0 AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT)
URL: https://abdenasser.github.io/neohtop/
Source0: https://github.com/Abdenasser/neohtop/archive/refs/tags/v%version.tar.gz
License: MIT
URL: https://github.com/Abdenasser/neohtop
Source0: %url/archive/refs/tags/v%version.tar.gz
Source1: NeoHtop.desktop
Source2: com.github.neohtop.metainfo.xml
Packager: Owen Zimmerman <owen@fyralabs.com>
BuildRequires: rust
BuildRequires: %tauri_buildrequires
BuildRequires: nodejs-npm
BuildRequires: webkit2gtk4.1-devel
BuildRequires: javascriptcoregtk4.1-devel
BuildRequires: libsoup3-devel
BuildRequires: gtk3-devel
BuildRequires: rust-gdk-pixbuf-sys-devel
@@ -30,14 +31,14 @@ Provides: NeoHtop
%prep
%autosetup -n neohtop-%version
%tauri_prep
%build
%npm_build -B
npm install
npm run tauri build
%install
install -Dpm755 src-tauri/target/rpm/NeoHtop %{buildroot}%{_bindir}/NeoHtop
%desktop_file_install %{SOURCE1}
install -Dpm755 src-tauri/target/release/NeoHtop %{buildroot}%{_bindir}/NeoHtop
install -Dpm644 %{SOURCE1} %{buildroot}%{_appsdir}/NeoHtop.desktop
# don't mind the numbers not matching, this is how the offical rpm installs these files
install -Dpm644 src-tauri/icons/128x128@2x.png %{buildroot}%{_hicolordir}/256x256@2/apps/NeoHtop.png
install -Dpm644 src-tauri/icons/32x32.png %{buildroot}%{_hicolordir}/32x32/apps/NeoHtop.png
@@ -45,15 +46,12 @@ install -Dpm644 src-tauri/icons/128x128.png %{buildroot}%{_hicolordir}/128x
%terra_appstream -o %{SOURCE2}
%{tauri_cargo_license} > LICENSE.dependencies
%check
%desktop_file_validate %{buildroot}%{_appsdir}/NeoHtop.desktop
desktop-file-validate %{buildroot}%{_appsdir}/NeoHtop.desktop
%files
%doc README.md
%license LICENSE
%license LICENSE.dependencies
%{_bindir}/NeoHtop
%{_appsdir}/NeoHtop.desktop
%{_hicolordir}/256x256@2/apps/NeoHtop.png
-6
View File
@@ -1,6 +0,0 @@
project pkg {
arches = ["x86_64"]
rpm {
spec = "proton-vpn.spec"
}
}
-66
View File
@@ -1,66 +0,0 @@
Name: proton-vpn-gtk-app
Version: 4.14.0
Release: 1%?dist
Summary: Official ProtonVPN Linux app
License: GPL-3.0-only
URL: https://protonvpn.com/download-linux
Source0: https://github.com/ProtonVPN/proton-vpn-gtk-app/archive/refs/tags/v%version.tar.gz
Source1: https://github.com/flathub/com.protonvpn.www/blob/master/com.protonvpn.www.metainfo.xml
BuildArch: noarch
BuildRequires: python3-devel
BuildRequires: python3-build
BuildRequires: python3-wheel
BuildRequires: python3-pip
BuildRequires: python3-setuptools
BuildRequires: python3-gobject
BuildRequires: python3-dbus
BuildRequires: python3-packaging
BuildRequires: gtk3
BuildRequires: libnotify
BuildRequires: python3-proton-vpn-api-core
BuildRequires: librsvg2
Requires: gtk3
Requires: libnotify
Requires: python3-gobject
Requires: python3-dbus
Requires: python3-packaging
Requires: python3-proton-vpn-api-core
Requires: librsvg2
Provides: protonvpn
Provides: proton-vpn
Packager: Owen Zimmerman <owen@fyralabs.com>
%description
The Proton VPN GTK app is intended for every Proton VPN service user,
it provides full access to all functionalities available to authenticated users,
with the user signup process handled on the website.
%prep
%autosetup -n %{name}-%{version}
%build
%pyproject_wheel
%install
%pyproject_install
%pyproject_save_files proton
install -Dm644 rpmbuild/SOURCES/proton-vpn-logo.svg %{buildroot}%{_scalableiconsdir}/proton-vpn-logo.svg
install -Dm644 %{SOURCE1} %{buildroot}%{_metainfodir}/com.protonvpn.www.metainfo.xml
# Match metainfo
install -Dm644 rpmbuild/SOURCES/proton.vpn.app.gtk.desktop %{buildroot}%{_appsdir}/com.protonvpn.www.desktop
%files -f %{pyproject_files}
%doc README.md CONTRIBUTING.md CODEOWNERS
%license LICENSE COPYING.md
%{_bindir}/protonvpn-app
%{_appsdir}/com.protonvpn.www.desktop
%{_scalableiconsdir}/proton-vpn-logo.svg
%{_metainfodir}/com.protonvpn.www.metainfo.xml
%changelog
* Sat Jan 17 2026 Owen Zimmerman <owen@fyralabs.com>
- Initial commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh_tag("ProtonVPN/proton-vpn-gtk-app"));
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "qiqis-notebook.spec"
}
}
@@ -1,8 +0,0 @@
[Desktop Entry]
Name=Qiqi's Notebook
Exec=qiqis-notebook --ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime
Terminal=false
Type=Application
Icon=qiqis-notebook
StartupWMClass=qiqis-notebook
Comment=Qiqi's Notebook desktop app
@@ -1,89 +0,0 @@
# Make electron_license macro properly work
%bcond bundled_electron 1
Name: qiqis-notebook
%electronmeta -D
Version: 1.1.6
Release: 1%?dist
Summary: Qiqi's Notebook desktop app
URL: https://qiqis-notebook.com/
Source0: https://github.com/Qiqis-Notebook/qnb-client/archive/refs/tags/v%{version}.tar.gz
Source1: qiqis-notebook.desktop
License: MIT AND %{electron_license}
Packager: Yoong Jin <solomoncyj@gmail.com>
BuildRequires: nodejs-npm
BuildRequires: squashfs-tools
Provides: qnb-client
%description
Qiqi's Notebook is an application used for launcing
user created farming routes for Genshin Impact and
Wuthering Waves
%prep
%autosetup -n qnb-client-%{version}
%build
%npm_build -r package
#npm i
#npm run package
cd "out/Qiqi's Notebook-linux-%{_electron_cpu}"
mv ./* ..
cd ..
mv "Qiqi's Notebook" ./qiqis-notebook
mv ./LICENSE ./LICENSE.electron
%install
cd ./out
install -Dm755 ./libEGL.so %{buildroot}%{_libdir}/qiqis-notebook/libEGL.so
install -Dm755 ./libGLESv2.so %{buildroot}%{_libdir}/qiqis-notebook/libGLESv2.so
install -Dm755 ./libffmpeg.so %{buildroot}%{_libdir}/qiqis-notebook/libffmpeg.so
install -Dm755 ./libvk_swiftshader.so %{buildroot}%{_libdir}/qiqis-notebook/libvk_swiftshader.so
install -Dm755 ./libvulkan.so.1 %{buildroot}%{_libdir}/qiqis-notebook/libvulkan.so.1
install -Dm644 ./icudtl.dat %{buildroot}%{_libdir}/qiqis-notebook/icudtl.dat
install -Dm644 ./v8_context_snapshot.bin %{buildroot}%{_libdir}/qiqis-notebook/v8_context_snapshot.bin
install -Dm644 ./chrome_100_percent.pak %{buildroot}%{_libdir}/qiqis-notebook/chrome_100_percent.pak
install -Dm644 ./chrome_200_percent.pak %{buildroot}%{_libdir}/qiqis-notebook/chrome_200_percent.pak
install -Dm644 ./resources.pak %{buildroot}%{_libdir}/qiqis-notebook/resources.pak
install -Dm644 ./vk_swiftshader_icd.json %{buildroot}%{_libdir}/qiqis-notebook/vk_swiftshader_icd.json
install -Dm644 ./resources/app.asar %{buildroot}%{_libdir}/qiqis-notebook/resources/app.asar
install -Dm755 ./chrome-sandbox %{buildroot}%{_libdir}/qiqis-notebook/chrome-sandbox
install -Dm755 ./chrome_crashpad_handler %{buildroot}%{_libdir}/qiqis-notebook/chrome_crashpad_handler
install -Dm755 ./qiqis-notebook %{buildroot}%{_libdir}/qiqis-notebook/qiqis-notebook
mkdir %{buildroot}%{_libdir}/qiqis-notebook/locales/
cp -r locales/* %{buildroot}%{_libdir}/qiqis-notebook/locales/
chmod -R 755 %{buildroot}%{_libdir}/qiqis-notebook/locales/
cd ..
install -Dm644 assets/logo.png %{buildroot}%{_hicolordir}/1024x1024/apps/qiqis-notebook.png
install -Dm644 %{SOURCE1} %{buildroot}%{_appsdir}/qiqis-notebook.desktop
mkdir -p %{buildroot}%{_bindir}
ln -s %{_libdir}/qiqis-notebook/qiqis-notebook %{buildroot}%{_bindir}/qiqis-notebook
%check
desktop-file-validate %{buildroot}%{_appsdir}/qiqis-notebook.desktop
%files
%doc README.md
%license ./out/LICENSE.electron
%license ./out/LICENSES.chromium.html
%license LICENSE
%{_bindir}/qiqis-notebook
%{_libdir}/qiqis-notebook/
%{_appsdir}/qiqis-notebook.desktop
%{_hicolordir}/1024x1024/apps/qiqis-notebook.png
%changelog
* Sat Jan 17 2026 Yoong Jin <solomoncyj@gmail.com> - 1.1.6
- Initial package.
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("Qiqis-Notebook/qnb-client"));
+2 -2
View File
@@ -1,5 +1,5 @@
%global commit 605d9dd8c825b650deeaa614e1b83e8dbb41e87d
%global commit_date 20260128
%global commit a822eb767a330711e67714428c1c56cf3c82f044
%global commit_date 20251118
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: rasputin
+2 -2
View File
@@ -1,5 +1,5 @@
%global commit 605d9dd8c825b650deeaa614e1b83e8dbb41e87d
%global commit_date 20260128
%global commit a822eb767a330711e67714428c1c56cf3c82f044
%global commit_date 20251118
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: appset
+2 -2
View File
@@ -1,5 +1,5 @@
%global commit 353e04bf0bc1866cba1f599cd76050890d33ba23
%global commit_date 20260123
%global commit 9527e92f697ad380ce8669a2b6c61260abafab19
%global commit_date 20251126
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: rpcc
+1 -1
View File
@@ -1,4 +1,4 @@
%global ver 2026-02-07
%global ver 2025-12-26
%global goodver %(echo %ver | sed 's/-//g')
%global __brp_mangle_shebangs %{nil}
%bcond_without mold
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "rustnet.spec"
}
}
-64
View File
@@ -1,64 +0,0 @@
Name: rustnet
Version: 0.18.0
Release: 1%{?dist}
Summary: A cross-platform network monitoring terminal UI tool built with Rust
License: Apache-2.0 AND (MIT OR Apache-2.0) AND Unicode-3.0 AND (0BSD OR MIT OR Apache-2.0) AND (Apache-2.0 AND ISC) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND Apache-2.0 AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND BSD-2-Clause AND (BSD-3-Clause OR Apache-2.0) AND BSL-1.0 AND ISC AND (LGPL-2.1-only OR BSD-2-Clause) AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (MIT OR Apache-2.0 OR Zlib) AND (MIT OR Zlib OR Apache-2.0) AND MIT AND (Unlicense OR MIT) AND (Zlib OR Apache-2.0 OR MIT) AND Zlib
URL: https://github.com/domcyrus/rustnet
Source0: %{url}/archive/refs/tags/v%{version}.tar.gz
Packager: Owen Zimmerman <owen@fyralabs.com>
BuildRequires: cargo
BuildRequires: rust
BuildRequires: cargo-rpm-macros
BuildRequires: libpcap-devel
BuildRequires: elfutils-libelf-devel
BuildRequires: clang
BuildRequires: llvm
Requires: libpcap
Requires: elfutils-libelf
%description
A cross-platform network monitoring tool built with Rust. RustNet provides
real-time visibility into network connections with detailed state information,
connection lifecycle management, deep packet inspection, and a terminal user
interface.
Features include:
- Real-time Network Monitoring for TCP, UDP, ICMP, and ARP connections
- Deep Packet Inspection (DPI) for HTTP/HTTPS, DNS, SSH, and QUIC protocols
- Connection lifecycle management with protocol-aware timeouts
- Process identification and service name resolution
- Cross-platform support (Linux, macOS, Windows, BSD)
- Advanced filtering with vim/fzf-style search
- eBPF-enhanced process detection (enabled by default with automatic fallback)
%prep
%autosetup -n %{name}-%{version}
%build
export RUSTFLAGS="%{build_rustflags}"
# Cargo macros fail due to RUSTC_BOOTSTRAP and build target
cargo build
%install
install -Dm755 target/debug/rustnet -t %{buildroot}%{_bindir}/
install -Dm644 assets/services -t %{buildroot}%{_datadir}/%{name}/
install -Dm644 resources/packaging/linux/graphics/rustnet.png -t %{buildroot}%{_hicolordir}/256x256/apps/
install -Dm644 resources/packaging/linux/rustnet.desktop -t %{buildroot}%{_appsdir}/
%{cargo_license_online} > LICENSE.dependencies
%files
%license LICENSE
%license LICENSE.dependencies
%doc *.md
%{_bindir}/rustnet
%{_datadir}/%{name}/services
%{_hicolordir}/256x256/apps/rustnet.png
%{_appsdir}/rustnet.desktop
%changelog
* Mon Jan 12 2026 Owen Zimmerman <owen@fyralabs.com>
- Initial commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("domcyrus/rustnet"));
@@ -1,38 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<component type="desktop">
<id>org.signal.Signal</id>
<name>Signal Desktop</name>
<project_license>AGPL-3.0-only</project_license>
<icon type="local">/usr/share/icons/hicolor/1024x1024/apps/signal.png</icon>
<developer id="org.Signal">
<name>Signal Foundation</name>
</developer>
<summary>A private messenger for Windows, macOS, and Linux</summary>
<metadata_license>CC0-1.0</metadata_license>
<url type="homepage">https://signal.org/</url>
<url type="help">https://support.signal.org/</url>
<url type="donation">https://signal.org/donate/</url>
<url
type="contribute"
>https://github.com/signalapp/Signal-Desktop/blob/main/CONTRIBUTING.md</url>
<launchable type="desktop-id">org.signal.Signal.desktop</launchable>
<description>
<p>
Signal Desktop links with Signal on Android or iOS and lets you message from your Windows, macOS, and Linux computers.
</p>
</description>
<provides>
<binary>signal-desktop</binary>
</provides>
<keywords>
<keyword>signal</keyword>
</keywords>
<screenshots>
<screenshot type="default">
<image
type="source"
>https://web.archive.org/web/20240219132433if_/https://signal.org/assets/images/screenshots/download-desktop-windows.png</image>
<caption>Typical view of the window (Windows version)</caption>
</screenshot>
</screenshots>
</component>
+86 -37
View File
@@ -1,25 +1,45 @@
%define appid org.signal.Signal
#? https://gitlab.archlinux.org/archlinux/packaging/packages/signal-desktop/-/blob/main/PKGBUILD
%define debug_package %{nil}
# Make electron_license macro properly work
%bcond bundled_electron 1
# Exclude private libraries
%global __requires_exclude libffmpeg.so
%global __provides_exclude ^lib.*\\.so.*$
%ifarch x86_64
%define arch %{nil}
%elifarch aarch64
%define arch arm64-
%endif
Name: signal-desktop
%electronmeta -aD
Version: 7.88.0
Version: 7.83.0
Release: 1%?dist
Summary: A private messenger for Windows, macOS, and Linux
URL: https://signal.org
Source0: https://github.com/signalapp/Signal-Desktop/archive/refs/tags/v%{version}.tar.gz
# signal.desktop from https://github.com/signalflatpak/signal/blob/master/org.signal.Signal.desktop
Source1: signal.desktop
Source2: org.signal.Signal.metainfo.xml
License: AGPL-3.0 AND %{electron_license}
ExclusiveArch: x86_64 aarch64
BuildRequires: pulseaudio-libs-devel
BuildRequires: pulseaudio-libs-devel
BuildRequires: libX11-devel
BuildRequires: git-lfs
BuildRequires: git-lfs
BuildRequires: git-core
BuildRequires: anda-srpm-macros
BuildRequires: pnpm
BuildRequires: pnpm
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: git-core
BuildRequires: make
BuildRequires: nodejs
BuildRequires: nodejs-npm
BuildRequires: python3
BuildRequires: terra-appstream-helper
BuildRequires: nodejs-full-i18n
Requires: gtk3
Requires: libwayland-cursor
Requires: libwayland-client
Requires: libxkbcommon
@@ -38,19 +58,27 @@ Requires: cairo
Requires: xz-libs
Requires: libxcb
Requires: nss-util
Requires: nss
Requires: dbus-libs
Requires: mesa-libgbm
Requires: at-spi2-atk
Requires: expat
Requires: alsa-lib
Requires: xdg-utils
Requires: re2
Requires: (libXtst or libXtst6)
Requires: libXScrnSaver
Requires: libnotify
Requires: (libuuid or libuuid1)
Requires: at-spi2-core
Requires: c-ares
Requires: gtk3
Requires: minizip
Provides: signal
Provides: Signal
Provides: Signal-Desktop
Packager: junefish <june@fyralabs.com>
%description
Signal Desktop links with Signal on Android or iOS and lets you message from your Windows, macOS, and Linux computers.
@@ -58,51 +86,72 @@ Signal Desktop links with Signal on Android or iOS and lets you message from you
%autosetup -n Signal-Desktop-%{version}
%build
export SIGNAL_ENV=production
%{__pnpm} install
%{__pnpm} run clean-transpile
pnpm install --frozen-lockfile
pushd sticker-creator
%{__pnpm} install
%{__pnpm} run build
pnpm install --frozen-lockfile
pnpm build
popd
%pnpm_build -r generate,prepare-beta-build
pnpm run build-linux --dir
%install
%electron_install -i signal -l -I build/icons/png
install -Dm755 release/linux-%{arch}unpacked/libEGL.so %{buildroot}%{_libdir}/signal-desktop/libEGL.so
install -Dm755 release/linux-%{arch}unpacked/libGLESv2.so %{buildroot}%{_libdir}/signal-desktop/libGLESv2.so
install -Dm755 release/linux-%{arch}unpacked/libffmpeg.so %{buildroot}%{_libdir}/signal-desktop/libffmpeg.so
install -Dm755 release/linux-%{arch}unpacked/libvk_swiftshader.so %{buildroot}%{_libdir}/signal-desktop/libvk_swiftshader.so
install -Dm755 release/linux-%{arch}unpacked/libvulkan.so.1 %{buildroot}%{_libdir}/signal-desktop/libvulkan.so.1
install -Dm644 release/linux-%{arch}unpacked/icudtl.dat %{buildroot}%{_libdir}/signal-desktop/icudtl.dat
install -Dm644 release/linux-%{arch}unpacked/v8_context_snapshot.bin %{buildroot}%{_libdir}/signal-desktop/v8_context_snapshot.bin
install -Dm644 release/linux-%{arch}unpacked/chrome_100_percent.pak %{buildroot}%{_libdir}/signal-desktop/chrome_100_percent.pak
install -Dm644 release/linux-%{arch}unpacked/chrome_200_percent.pak %{buildroot}%{_libdir}/signal-desktop/chrome_200_percent.pak
install -Dm644 release/linux-%{arch}unpacked/resources.pak %{buildroot}%{_libdir}/signal-desktop/resources.pak
install -Dm644 release/linux-%{arch}unpacked/vk_swiftshader_icd.json %{buildroot}%{_libdir}/signal-desktop/vk_swiftshader_icd.json
install -Dm644 release/linux-%{arch}unpacked/resources/app.asar %{buildroot}%{_libdir}/signal-desktop/resources/app.asar
cp -r release/linux-%{arch}unpacked/resources/app.asar.unpacked %{buildroot}%{_libdir}/signal-desktop/resources/
%desktop_file_install %{SOURCE1}
install -Dm755 release/linux-%{arch}unpacked/chrome-sandbox %{buildroot}%{_libdir}/signal-desktop/chrome-sandbox
install -Dm755 release/linux-%{arch}unpacked/chrome_crashpad_handler %{buildroot}%{_libdir}/signal-desktop/chrome_crashpad_handler
for policy in org.signalapp.view-aep.policy org.signalapp.enable-backups.policy; do
install -Dm644 $OUTDIR/resources/$policy %{buildroot}%{_datadir}/polkit-1/rules.d/$policy
rm $OUTDIR/resources/$policy
done
install -Dm755 release/linux-%{arch}unpacked/signal-desktop %{buildroot}%{_libdir}/signal-desktop/signal-desktop
%terra_appstream -o %{SOURCE2}
install -Dm644 release/linux-%{arch}unpacked/resources/org.signalapp.view-aep.policy %{buildroot}%{_datadir}/polkit-1/rules.d/org.signalapp.view-aep.policy
install -Dm644 release/linux-%{arch}unpacked/resources/org.signalapp.enable-backups.policy %{buildroot}%{_datadir}/polkit-1/rules.d/org.signalapp.enable-backups.policy
%check
%desktop_file_validate %{buildroot}%{_appsdir}/signal.desktop
install -Dm644 build/icons/png/1024x1024.png %{buildroot}%{_iconsdir}/hicolor/1024x1024/apps/signal.png
install -Dm644 build/icons/png/128x128.png %{buildroot}%{_iconsdir}/hicolor/128x128/apps/signal.png
install -Dm644 build/icons/png/16x16.png %{buildroot}%{_iconsdir}/hicolor/16x16/apps/signal.png
install -Dm644 build/icons/png/24x24.png %{buildroot}%{_iconsdir}/hicolor/24x24/apps/signal.png
install -Dm644 build/icons/png/256x256.png %{buildroot}%{_iconsdir}/hicolor/256x256/apps/signal.png
install -Dm644 build/icons/png/32x32.png %{buildroot}%{_iconsdir}/hicolor/32x32/apps/signal.png
install -Dm644 build/icons/png/48x48.png %{buildroot}%{_iconsdir}/hicolor/48x48/apps/signal.png
install -Dm644 build/icons/png/512x512.png %{buildroot}%{_iconsdir}/hicolor/512x512/apps/signal.png
install -Dm644 build/icons/png/64x64.png %{buildroot}%{_iconsdir}/hicolor/64x64/apps/signal.png
install -Dm644 %{SOURCE1} %{buildroot}%{_datadir}/applications/signal.desktop
mkdir -p %{buildroot}%{_bindir}
ln -s %{_libdir}/signal-desktop/signal-desktop %{buildroot}%{_bindir}/signal-desktop
%files
%license LICENSE
%doc README.md CONTRIBUTING.md ACKNOWLEDGMENTS.md
%license bundled_licenses/*
%license release/linux-%{arch}unpacked/LICENSE.electron.txt
%license release/linux-%{arch}unpacked/LICENSES.chromium.html
%{_bindir}/signal-desktop
%{_libdir}/signal-desktop/
%{_datadir}/polkit-1/rules.d/org.signalapp.view-aep.policy
%{_datadir}/polkit-1/rules.d/org.signalapp.enable-backups.policy
%{_appsdir}/signal.desktop
%{_hicolordir}/*x*/apps/signal.png
%{_metainfodir}/org.signal.Signal.metainfo.xml
%{_datadir}/applications/signal.desktop
%{_iconsdir}/hicolor/1024x1024/apps/signal.png
%{_iconsdir}/hicolor/128x128/apps/signal.png
%{_iconsdir}/hicolor/16x16/apps/signal.png
%{_iconsdir}/hicolor/24x24/apps/signal.png
%{_iconsdir}/hicolor/256x256/apps/signal.png
%{_iconsdir}/hicolor/32x32/apps/signal.png
%{_iconsdir}/hicolor/48x48/apps/signal.png
%{_iconsdir}/hicolor/512x512/apps/signal.png
%{_iconsdir}/hicolor/64x64/apps/signal.png
%changelog
* Mon Dec 22 2025 Owen Zimmerman <owen@fyralabs.com>
- Use more electron macros, correct build failures
* Wed Dec 10 2025 Owen Zimmerman <owen@fyralabs.com>
- Add metainfo
* Tue Nov 11 2025 Owen Zimmerman <owen@fyralabs.com>
- Add more Requires:, fix electron_license macro application, fix some formatting
* Fri Aug 8 2025 june-fish <git@june.fish>
- Initial Package
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" ?>
<component type="desktop-application">
<id>com.github.snow</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>MIT</project_license>
<icon
type="local"
>/usr/share/icons/hicolor/1024x1024/apps/snow_icon.png</icon>
<name>snow</name>
<summary>Classic Macintosh emulator</summary>
<description>
<p>
Snow emulates classic (Motorola 68k-based) Macintosh computers.
It features a graphical user interface to operate and debug the emulated machine.
The aim of this project is to emulate the Macintosh on a hardware-level as much as possible,
as opposed to emulators that patch the ROM or intercept system calls.
</p>
</description>
<launchable type="desktop-id">snow.desktop</launchable>
<url type="homepage">https://github.com/twvd/snow</url>
<provides>
<binary>snowemu</binary>
</provides>
<keywords>
<keyword>macintosh</keyword>
</keywords>
<releases>
<release version="1.2.0" />
</releases>
</component>
+7
View File
@@ -0,0 +1,7 @@
[Desktop Entry]
Categories=System;Emulator;
Comment=Classic Macintosh emulator
Exec=snowemu
Icon=snow_icon
Name=snow
Type=Application
+23 -9
View File
@@ -1,10 +1,14 @@
%global appid com.github.snow
Name: snow
Version: 1.3.0
Release: 1%?dist
Version: 1.2.0
Release: 2%?dist
Summary: Classic Macintosh emulator
URL: https://github.com/twvd/snow
Source0: %url/archive/refs/tags/v%version.tar.gz
License: MIT AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND Apache-2.0 AND BSD-2-Clause AND Zlib AND (MIT OR Apache-2.0 OR LGPL-2.1-or-later) AND (BSD-3-Clause OR Apache-2.0) AND BSD-3-Clause AND BSL-1.0 AND CC0-1.0 OR MIT-0 OR Apache-2.0 AND ISC AND (Apache-2.0 OR BSL-1.0) AND (MIT OR Apache-2.0 OR Zlib) AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (BSD-2-Clause OR Apache-2.0 OR MIT) AND
Source1: snow.desktop
Source2: %appid.metainfo.xml
License: MIT
BuildRequires: cargo
BuildRequires: gcc-c++
@@ -12,6 +16,7 @@ BuildRequires: mold
BuildRequires: anda-srpm-macros
BuildRequires: cargo-rpm-macros
BuildRequires: desktop-file-utils
BuildRequires: terra-appstream-helper
BuildRequires: SDL2-devel
Provides: snowemu
@@ -38,17 +43,26 @@ Documentation files for %{name}
%install
mkdir -p %{buildroot}%{_pkgdocdir}
install -Dm755 target/rpm/snow_frontend_egui %{buildroot}%{_bindir}/snowemu
install -Dm644 assets/snow_icon.png %{buildroot}%{_hicolordir}/1024x1024/apps/snow_icon.png
%desktop_file_install assets/snow.desktop
install -Dm644 assets/dev.thomasw.snow.metainfo.xml %{buildroot}%{_metainfodir}/dev.thomasw.snow.metainfo.xml
install -Dm755 target/rpm/snow_frontend_egui %{buildroot}%{_bindir}/snowemu
cp -a docs/* %{buildroot}%{_pkgdocdir}/
install -Dm644 docs/images/snow_icon.png %{buildroot}%{_hicolordir}/1024x1024/apps/snow_icon.png
install -Dm644 %{SOURCE1} %{buildroot}%{_appsdir}/snow.desktop
cp -a docs/* %{buildroot}%{_pkgdocdir}/
rm %{buildroot}%{_pkgdocdir}/*.toml
rm %{buildroot}%{_pkgdocdir}/images/*.icns
rm %{buildroot}%{_pkgdocdir}/images/*.ico
rm -r %{buildroot}%{_pkgdocdir}/theme
%terra_appstream -o %{SOURCE2}
%cargo_license_summary_online
%{cargo_license_online} > LICENSE.dependencies
%check
desktop-file-validate %{buildroot}%{_appsdir}/snow.desktop
%files
%doc README.md
%license LICENSE
@@ -56,7 +70,7 @@ rm -r %{buildroot}%{_pkgdocdir}/theme
%{_bindir}/snowemu
%{_hicolordir}/1024x1024/apps/snow_icon.png
%{_appsdir}/snow.desktop
%{_metainfodir}/dev.thomasw.snow.metainfo.xml
%{_metainfodir}/%appid.metainfo.xml
%files doc
%license LICENSE
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "socktop.spec"
}
}
-54
View File
@@ -1,54 +0,0 @@
%global ver v1.55.0-test2
%global download_ver %(echo %{ver} | sed 's/v//g')
%global sanitized_ver %(echo %{ver} | sed 's/-//g')
Name: socktop
Version: %sanitized_ver
Release: 1%?dist
Summary: socktop is a remote system monitor with a rich TUI interface
URL: https://github.com/jasonwitty/socktop
Source0: %{url}/archive/refs/tags/%{ver}.tar.gz
License: MIT
BuildRequires: rust libdrm-devel systemd-rpm-macros cargo-rpm-macros
Requires: libdrm
Packager: lux8149 <julianbashirisasimp@gmail.com>
%description
socktop is a remote system monitor with a rich TUI interface, inspired by `top` and `btop`,
that communicates with a lightweight remote agent over WebSockets.
%prep
%autosetup -n %{name}-%{download_ver}
%cargo_prep_online
%build
%cargo_build
%install
install -Dm 755 target/rpm/socktop %{buildroot}%{_bindir}/socktop
install -Dm 755 target/rpm/socktop_agent %{buildroot}%{_bindir}/socktop_agent
install -Dm 644 target/rpm/libsocktop_connector.so %{buildroot}%{_libdir}/libsocktop_connector.so
install -Dm 644 docs/socktop-agent.service %{buildroot}%{_unitdir}/socktop-agent.service
%{cargo_license_online} > LICENSE.dependencies
%post
%systemd_post socktop-agent.service
%preun
%systemd_preun socktop-agent.service
%postun
%systemd_postun_with_restart socktop-agent.service
%files
%doc README.md
%license LICENSE
%license LICENSE.dependencies
%{_bindir}/socktop
%{_bindir}/socktop_agent
%{_libdir}/libsocktop_connector.so
%{_unitdir}/socktop-agent.service
%changelog
* Sun Jan 04 2026 lux8149 <julianbashirisasimp@gmail.com>
- Initial Package
-1
View File
@@ -1 +0,0 @@
rpm.global("ver", gh("jasonwitty/socktop"));
+1 -1
View File
@@ -2,7 +2,7 @@
%global realname subtitleedit
Name: %realname.bin
Version: 4.0.15
Version: 4.0.14
Release: 1%?dist
Summary: An advanced subtitle editor and converter
License: GPL-3.0-only
@@ -1 +1 @@
v1.12.20
v1.12.14
+7 -1
View File
@@ -1,7 +1,7 @@
#? https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=throne-git
Name: throne
Version: 1.0.13
Version: 1.0.12
Release: 1%?dist
Summary: Qt based cross-platform GUI proxy configuration manager (backend: sing-box)
URL: https://github.com/throneproj/Throne
@@ -24,6 +24,12 @@ BuildRequires: rpm_macro(cmake_build)
BuildRequires: rpm_macro(cmake_install)
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: pkgconfig(protobuf)
BuildRequires: pkgconfig(libcurl)
BuildRequires: cmake(yaml-cpp)
BuildRequires: cmake(ZXing)
BuildRequires: cmake(absl)
BuildRequires: cmake(cpr)
BuildRequires: cmake(Qt6)
BuildRequires: cmake(Qt6Svg)
BuildRequires: cmake(Qt6Linguist)
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "ttop.spec"
}
}
-33
View File
@@ -1,33 +0,0 @@
Name: ttop
Version: 1.5.7
Release: 1%?dist
Summary: System monitoring tool with historical data service, triggers and top-like TUI
License: MIT
URL: https://github.com/inv2004/ttop
Source0: %url/archive/refs/tags/v%version.tar.gz
BuildRequires: anda-srpm-macros
BuildRequires: nim
Packager: Owen Zimmerman <owen@fyralabs.com>
%description
%summary.
%prep
%autosetup -n ttop-%version
%nim_prep
%build
%nim_c src/ttop
%install
install -Dm755 src/ttop.out %{buildroot}%{_bindir}/ttop
%files
%doc README.md
%license LICENSE
%{_bindir}/ttop
%changelog
* Sun Jan 04 2026 Owen Zimmerman <owen@fyralabs.com>
- Initial commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("inv2004/ttop"));
-6
View File
@@ -1,6 +0,0 @@
project "pkg" {
arches = ["x86_64"]
rpm {
spec = "twintaillauncher.spec"
}
}
@@ -1,77 +0,0 @@
%undefine __brp_mangle_shebangs
%global toolchain clang
Name: twintaillauncher
Version: 1.1.15
Release: 1%{?dist}
Summary: A multi-platform launcher for your anime games
Packager: Yoong Jin <solomoncyj@gmail.com>
SourceLicense: GPL-3.0-or-later
License: GPL-3.0-or-later AND (((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND (0BSD OR Apache-2.0 OR MIT) AND (Apache-2.0) AND (Apache-2.0 AND ISC) AND (Apache-2.0 AND MIT) AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR CC0-1.0) AND (Apache-2.0 OR Apache-2.0 WITH LLVM-exception OR MIT) AND (Apache-2.0 OR BSD-2-Clause OR MIT) AND (Apache-2.0 OR BSD-3-Clause) AND (Apache-2.0 OR BSD-3-Clause OR MIT) AND (Apache-2.0 OR BSL-1.0 OR MIT) AND (Apache-2.0 OR CC0-1.0 OR MIT-0) AND (Apache-2.0 OR ISC OR MIT) AND (Apache-2.0 OR LGPL-2.1-or-later OR MIT) AND (Apache-2.0 OR MIT) AND (Apache-2.0 OR MIT OR Zlib) AND (Apache-2.0 WITH LLVM-exception) AND (BSD-2-Clause) AND (BSD-3-Clause) AND (BSD-3-Clause AND MIT) AND (BSD-3-Clause OR MIT) AND CC0-1.0 AND (CC0-1.0 OR MIT-0) AND (CDLA-Permissive-2.0) AND ISC AND (ISC AND (Apache-2.0 OR ISC)) AND (ISC AND (Apache-2.0 OR ISC) AND OpenSSL) AND (LGPL-3.0-or-later OR MIT) AND MIT AND (MIT OR Unlicense) AND MPL-2.0 AND Unicode-3.0 AND Zlib AND bzip2-1.0.6)
URL: https://twintaillauncher.app/
Source0: https://github.com/TwintailTeam/TwintailLauncher/archive/refs/tags/ttl-v%{version}.tar.gz
ExclusiveArch: x86_64
Requires: hicolor-icon-theme
# Build requires
BuildRequires: pnpm
BuildRequires: %{tauri_buildrequires}
BuildRequires: protobuf-devel
BuildRequires: webkit2gtk4.1-devel
BuildRequires: desktop-file-utils
BuildRequires: hicolor-icon-theme
BuildRequires: perl
BuildRequires: zlib-ng-devel
BuildRequires: clang
BuildRequires: mold
Provides: ttl
%description
Twintaillauncher is a multi-platform launcher that brings mod support, quality-of-life improvements, and advanced features to a variety of anime-styled games.
TTL is an all-in-one tool for downloading, managing, and launching your favorite anime games. Its designed with flexibility, ease of use, and customization in mind.
%prep
%autosetup -n TwintailLauncher-ttl-v%{version}
cd src-tauri
cargo update
cd ..
%tauri_prep
%build
%pnpm_build
%install
%tauri_install_bin
%tauri_cargo_license_summary
%{tauri_cargo_license} > LICENSE.dependencies
%desktop_file_install -f ./twintaillauncher.desktop
install -Dm644 public/launcher-icon.png %{buildroot}%{_hicolordir}/512x512/apps/%{name}.png
install -Dm644 public/launcher-icon-128.png %{buildroot}%{_hicolordir}/128x128/apps/%{name}.png
%files
%license LICENSE.dependencies
%license LICENSE
%doc README.md
%{_bindir}/twintaillauncher
%{_hicolordir}/512x512/apps/%{name}.png
%{_hicolordir}/128x128/apps/%{name}.png
%_appsdir/twintaillauncher.desktop
%changelog
* Tue Feb 3 2026 Yoong Jin <solomoncyj@gmail.com> - 1.1.15-0
- Initial Package
-2
View File
@@ -1,2 +0,0 @@
// index of 5 skips 'ttl-v'
rpm.version(gh_tag("TwintailTeam/TwintailLauncher")[5..]);
+18 -20
View File
@@ -1,8 +1,5 @@
%define debug_package %nil
%global giturl https://github.com/Vencord/Vesktop
%global appid dev.vencord.Vesktop
# Exclude private libraries
%global __requires_exclude libffmpeg.so
%global __provides_exclude_from %{_datadir}/vesktop/.*\\.so
@@ -10,27 +7,28 @@
Name: vesktop
Obsoletes: VencordDesktop < 1.5.8-1
Obsoletes: vencord-desktop < 1.5.8-1
Version: 1.6.4
Release: 3%?dist
License: GPL-3.0-or-later
Version: 1.6.3
Release: 1%?dist
License: GPL-3.0
Summary: Vesktop is a cross platform desktop app aiming to give you a snappier Discord experience with Vencord pre-installed
URL: https://vesktop.dev
URL: https://github.com/Vencord/Vesktop
Group: Applications/Internet
Source0: %{giturl}/archive/refs/tags/v%{version}.tar.gz
Source1: %{giturl}/releases/download/v%{version}/%{appid}.metainfo.xml
#Source1: launch.sh
Source0: https://github.com/Vencord/Vesktop/archive/refs/tags/v%{version}.tar.gz
Requires: xdg-utils
%if 0%{?fedora} >= 44
BuildRequires: nodejs24-npm-bin git
%else
BuildRequires: nodejs-npm git
%endif
# Conflicts: vesktop-bin
%description
vesktop is a custom client designed to enhance your Discord experience
while keeping everything lightweight.
%prep
%git_clone %giturl v%version
git init
git remote add origin %url || :
git reset --hard
git fetch
git checkout v%version
cat <<EOF > vesktop.desktop
[Desktop Entry]
@@ -46,11 +44,14 @@ StartupWMClass=vesktop
Keywords=discord;vesktop;vencord;shelter;armcord;electron;
EOF
%build
%__npx pnpm install --no-frozen-lockfile
%__npx pnpm package:dir
npx pnpm install --no-frozen-lockfile
npx pnpm package:dir
%install
mkdir -p %buildroot/usr/share/vesktop
cp -r dist/*-unpacked/. %buildroot/usr/share/vesktop/.
@@ -59,7 +60,6 @@ ln -sf /usr/share/vesktop/vesktop %buildroot/usr/bin/vesktop
ln -sf /usr/bin/vesktop %buildroot/usr/bin/vencorddesktop
install -Dm644 vesktop.desktop %{buildroot}%{_datadir}/applications/vesktop.desktop
install -Dm644 build/icon.svg %{buildroot}%{_iconsdir}/hicolor/scalable/apps/vesktop.svg
install -Dm644 %{SOURCE1} %{buildroot}%{_metainfodir}/%{appid}.metainfo.xml
%files
%doc README.md
@@ -69,12 +69,10 @@ install -Dm644 %{SOURCE1} %{buildroot}%{_metainfodir}/%{appid}.metainfo.xml
%{_datadir}/applications/vesktop.desktop
%{_iconsdir}/hicolor/scalable/apps/vesktop.svg
%{_datadir}/vesktop/*
%{_metainfodir}/%{appid}.metainfo.xml
%changelog
* Wed Feb 04 2026 Kaitlyn <kaitlynyaa@kaitlynyaa.dev> - 1.6.4
- Added appstream metainfo and fixed buildrequires to adhere to new npm package naming scheme
* Thu Jul 24 2025 Atmois <info@atmois.com> - 1.5.8-2
- Rename from vencord-desktop to vesktop and amend the spec file accordingly
* Tue Nov 07 2023 Cappy Ishihara <cappy@cappuchino.xyz> - 0.4.3-1
- Initial package
@@ -0,0 +1,38 @@
From 3039aec58203513f29edb03f84471ea941a0c226 Mon Sep 17 00:00:00 2001
From: Nicolas Chauvet <kwizart@gmail.com>
Date: Mon, 24 Sep 2018 18:28:26 +0200
Subject: [PATCH] Use @SYSTEM wide ciphers for gnutls
Gnutls upstream has support for system defined ciphers list
This is decribed at
https://fedoraproject.org/wiki/Packaging:CryptoPolicies
Also found on the debian wiki
https://wiki.debian.org/CryptoPolicy
Signed-off-by: Nicolas Chauvet <kwizart@gmail.com>
---
modules/misc/gnutls.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/modules/misc/gnutls.c b/modules/misc/gnutls.c
index 7b63cc34c4..3ca665f3d3 100644
--- a/modules/misc/gnutls.c
+++ b/modules/misc/gnutls.c
@@ -768,12 +768,14 @@ static void CloseServer (vlc_tls_creds_t *crd)
"hash functions and compression methods can be selected. " \
"Refer to GNU TLS documentation for detailed syntax.")
static const char *const priorities_values[] = {
+ "@SYSTEM",
"PERFORMANCE",
"NORMAL",
"SECURE128",
"SECURE256",
};
static const char *const priorities_text[] = {
+ N_("System (default to system crypto ciphers policy)"),
N_("Performance (prioritize faster ciphers)"),
N_("Normal"),
N_("Secure 128-bits (exclude 256-bits ciphers)"),
--
2.25.4
+775
View File
@@ -0,0 +1,775 @@
From 81d6d56df6e5a66ed99970e2c559539858f4a0b7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
Date: Sat, 5 May 2018 15:28:15 +0300
Subject: [PATCH 01/11] avcodec: avoid signedness mismatch warning
Bitmask should be unsigned, but ffmpeg seems confused with itself.
(cherry picked from commit 8544233e7fde2965435e32a445494898440ecc30)
---
modules/codec/avcodec/audio.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
index 50a76c7a18e..e5af0ca5f2f 100644
--- a/modules/codec/avcodec/audio.c
+++ b/modules/codec/avcodec/audio.c
@@ -593,9 +593,9 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
uint32_t pi_order_src[i_order_max];
int i_channels_src = 0;
- int64_t channel_layout =
+ uint64_t channel_layout =
p_sys->p_context->channel_layout ? p_sys->p_context->channel_layout :
- av_get_default_channel_layout( p_sys->p_context->channels );
+ (uint64_t)av_get_default_channel_layout( p_sys->p_context->channels );
if( channel_layout )
{
--
GitLab
From c7709e7a048eb69b656d7f9663debbc1dde1f591 Mon Sep 17 00:00:00 2001
From: Ilkka Ollakka <ileoo@videolan.org>
Date: Wed, 5 Jul 2023 12:51:34 +0300
Subject: [PATCH 02/11] avcodec: use p_dec->fmt_out instead of context channels
on audio channel-count
reduces the need of ifdefs when adding ch_layout support
(cherry picked from commit bddf5ba19111d1cc4463d9876c4bc4ba75f82d7f)
---
modules/codec/avcodec/audio.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
index e5af0ca5f2f..26166c084e5 100644
--- a/modules/codec/avcodec/audio.c
+++ b/modules/codec/avcodec/audio.c
@@ -484,15 +484,15 @@ static block_t * ConvertAVFrame( decoder_t *p_dec, AVFrame *frame )
/* Interleave audio if required */
if( av_sample_fmt_is_planar( ctx->sample_fmt ) )
{
- p_block = block_Alloc(frame->linesize[0] * ctx->channels);
+ p_block = block_Alloc(frame->linesize[0] * p_dec->fmt_out.audio.i_channels );
if ( likely(p_block) )
{
- const void *planes[ctx->channels];
- for (int i = 0; i < ctx->channels; i++)
+ const void *planes[p_dec->fmt_out.audio.i_channels];
+ for (int i = 0; i < p_dec->fmt_out.audio.i_channels; i++)
planes[i] = frame->extended_data[i];
aout_Interleave(p_block->p_buffer, planes, frame->nb_samples,
- ctx->channels, p_dec->fmt_out.audio.i_format);
+ p_dec->fmt_out.audio.i_channels, p_dec->fmt_out.audio.i_format);
p_block->i_nb_samples = frame->nb_samples;
}
av_frame_free(&frame);
@@ -511,7 +511,7 @@ static block_t * ConvertAVFrame( decoder_t *p_dec, AVFrame *frame )
{
aout_ChannelExtract( p_buffer->p_buffer,
p_dec->fmt_out.audio.i_channels,
- p_block->p_buffer, ctx->channels,
+ p_block->p_buffer, p_dec->fmt_out.audio.i_channels,
p_block->i_nb_samples, p_sys->pi_extraction,
p_dec->fmt_out.audio.i_bitspersample );
p_buffer->i_nb_samples = p_block->i_nb_samples;
@@ -600,13 +600,13 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
if( channel_layout )
{
for( unsigned i = 0; i < i_order_max
- && i_channels_src < p_sys->p_context->channels; i++ )
+ && i_channels_src < p_dec->fmt_out.audio.i_channels; i++ )
{
if( channel_layout & pi_channels_map[i][0] )
pi_order_src[i_channels_src++] = pi_channels_map[i][1];
}
- if( i_channels_src != p_sys->p_context->channels && b_trust )
+ if( i_channels_src != p_dec->fmt_out.audio.i_channels && b_trust )
msg_Err( p_dec, "Channel layout not understood" );
/* Detect special dual mono case */
--
GitLab
From 99b14966182995314f5b29fd972d6a9000ea3e00 Mon Sep 17 00:00:00 2001
From: Ilkka Ollakka <ileoo@videolan.org>
Date: Wed, 5 Jul 2023 13:33:09 +0300
Subject: [PATCH 03/11] avcodec: audio decoder to use ch_layout
(cherry picked from commit 496f0f2a659c1339d1e37330d446e9b6ce96e76b)
---
modules/codec/avcodec/audio.c | 42 ++++++++++++++++++++++++++++-------
1 file changed, 34 insertions(+), 8 deletions(-)
diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
index 26166c084e5..ad8a40ab4ed 100644
--- a/modules/codec/avcodec/audio.c
+++ b/modules/codec/avcodec/audio.c
@@ -139,7 +139,11 @@ static int OpenAudioCodec( decoder_t *p_dec )
}
ctx->sample_rate = p_dec->fmt_in.audio.i_rate;
+#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ av_channel_layout_default( &ctx->ch_layout, p_dec->fmt_in.audio.i_channels );
+#else
ctx->channels = p_dec->fmt_in.audio.i_channels;
+#endif
ctx->block_align = p_dec->fmt_in.audio.i_blockalign;
ctx->bit_rate = p_dec->fmt_in.i_bitrate;
ctx->bits_per_coded_sample = p_dec->fmt_in.audio.i_bitspersample;
@@ -395,12 +399,17 @@ static int DecodeBlock( decoder_t *p_dec, block_t **pp_block )
ret = avcodec_receive_frame( ctx, frame );
if( ret == 0 )
{
+#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ int channels = frame->ch_layout.nb_channels;
+#else
+ int channels = ctx->channels;
+#endif
/* checks and init from first decoded frame */
- if( ctx->channels <= 0 || ctx->channels > INPUT_CHAN_MAX
+ if( channels <= 0 || channels > INPUT_CHAN_MAX
|| ctx->sample_rate <= 0 )
{
msg_Warn( p_dec, "invalid audio properties channels count %d, sample rate %d",
- ctx->channels, ctx->sample_rate );
+ channels, ctx->sample_rate );
goto drop;
}
else if( p_dec->fmt_out.audio.i_rate != (unsigned int)ctx->sample_rate )
@@ -580,6 +589,16 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
p_dec->fmt_out.audio.i_rate = p_sys->p_context->sample_rate;
/* */
+#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ if( p_sys->i_previous_channels == p_sys->p_context->ch_layout.nb_channels &&
+ p_sys->i_previous_layout == p_sys->p_context->ch_layout.u.mask )
+ return;
+ if( b_trust )
+ {
+ p_sys->i_previous_channels = p_sys->p_context->ch_layout.nb_channels;
+ p_sys->i_previous_layout = p_sys->p_context->ch_layout.u.mask;
+ }
+#else
if( p_sys->i_previous_channels == p_sys->p_context->channels &&
p_sys->i_previous_layout == p_sys->p_context->channel_layout )
return;
@@ -588,25 +607,32 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
p_sys->i_previous_channels = p_sys->p_context->channels;
p_sys->i_previous_layout = p_sys->p_context->channel_layout;
}
+#endif
const unsigned i_order_max = sizeof(pi_channels_map)/sizeof(*pi_channels_map);
uint32_t pi_order_src[i_order_max];
int i_channels_src = 0;
- uint64_t channel_layout =
+#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ uint64_t channel_layout_mask = p_sys->p_context->ch_layout.u.mask;
+ int channel_count = p_sys->p_context->ch_layout.nb_channels;
+#else
+ uint64_t channel_layout_mask =
p_sys->p_context->channel_layout ? p_sys->p_context->channel_layout :
(uint64_t)av_get_default_channel_layout( p_sys->p_context->channels );
+ int channel_count = p_sys->p_context->channels;
+#endif
- if( channel_layout )
+ if( channel_layout_mask )
{
for( unsigned i = 0; i < i_order_max
- && i_channels_src < p_dec->fmt_out.audio.i_channels; i++ )
+ && i_channels_src < channel_count; i++ )
{
- if( channel_layout & pi_channels_map[i][0] )
+ if( channel_layout_mask & pi_channels_map[i][0] )
pi_order_src[i_channels_src++] = pi_channels_map[i][1];
}
- if( i_channels_src != p_dec->fmt_out.audio.i_channels && b_trust )
+ if( i_channels_src != channel_count && b_trust )
msg_Err( p_dec, "Channel layout not understood" );
/* Detect special dual mono case */
@@ -638,7 +664,7 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
{
msg_Warn( p_dec, "no channel layout found");
p_dec->fmt_out.audio.i_physical_channels = 0;
- p_dec->fmt_out.audio.i_channels = p_sys->p_context->channels;
+ p_dec->fmt_out.audio.i_channels = channel_count;
}
aout_FormatPrepare( &p_dec->fmt_out.audio );
--
GitLab
From c44edb85e4f25cbc7a848211d2d3ca9f03bd46e6 Mon Sep 17 00:00:00 2001
From: Ilkka Ollakka <ileoo@videolan.org>
Date: Tue, 4 Jul 2023 16:52:38 +0300
Subject: [PATCH 04/11] avcodec: use p_enc audio channels instead of context
channels in encoder
Allows to have less conditions in code when adding new ch_layout use
(cherry-picked from commit 29747a8abb98ba53a64aa6761983891eeed2e0e4)
---
modules/codec/avcodec/encoder.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
index 4919ccf0e0e..52848de0658 100644
--- a/modules/codec/avcodec/encoder.c
+++ b/modules/codec/avcodec/encoder.c
@@ -790,7 +790,7 @@ int InitVideoEnc( vlc_object_t *p_this )
}
}
}
- if( i_channels_src != p_context->channels )
+ if( i_channels_src != p_enc->fmt_out.audio.i_channels )
msg_Err( p_enc, "Channel layout not understood" );
p_sys->i_channels_to_reorder =
@@ -897,7 +897,7 @@ int InitVideoEnc( vlc_object_t *p_this )
if( ret )
{
if( p_enc->fmt_in.i_cat != AUDIO_ES ||
- (p_context->channels <= 2 && i_codec_id != AV_CODEC_ID_MP2
+ (p_enc->fmt_out.audio.i_channels <= 2 && i_codec_id != AV_CODEC_ID_MP2
&& i_codec_id != AV_CODEC_ID_MP3) )
errmsg:
{
@@ -922,7 +922,7 @@ errmsg:
goto error;
}
- if( p_context->channels > 2 )
+ if( p_enc->fmt_out.audio.i_channels > 2 )
{
p_context->channels = 2;
p_context->channel_layout = channel_mask[p_context->channels][1];
@@ -1028,7 +1028,7 @@ errmsg:
p_context->frame_size :
AV_INPUT_BUFFER_MIN_SIZE;
p_sys->i_buffer_out = av_samples_get_buffer_size(NULL,
- p_sys->p_context->channels, p_sys->i_frame_size,
+ p_enc->fmt_out.audio.i_channels, p_sys->i_frame_size,
p_sys->p_context->sample_fmt, DEFAULT_ALIGN);
p_sys->p_buffer = av_malloc( p_sys->i_buffer_out );
if ( unlikely( p_sys->p_buffer == NULL ) )
@@ -1278,7 +1278,7 @@ static block_t *handle_delay_buffer( encoder_t *p_enc, encoder_sys_t *p_sys, uns
{
block_t *p_block = NULL;
//How much we need to copy from new packet
- const size_t leftover = leftover_samples * p_sys->p_context->channels * p_sys->i_sample_bytes;
+ const size_t leftover = leftover_samples * p_enc->fmt_out.audio.i_channels * p_sys->i_sample_bytes;
av_frame_unref( p_sys->frame );
p_sys->frame->format = p_sys->p_context->sample_fmt;
@@ -1301,7 +1301,7 @@ static block_t *handle_delay_buffer( encoder_t *p_enc, encoder_sys_t *p_sys, uns
// We need to deinterleave from p_aout_buf to p_buffer the leftover bytes
if( p_sys->b_planar )
aout_Deinterleave( p_sys->p_interleave_buf, p_sys->p_buffer,
- p_sys->i_frame_size, p_sys->p_context->channels, p_enc->fmt_in.i_codec );
+ p_sys->i_frame_size, p_enc->fmt_out.audio.i_channels, p_enc->fmt_in.i_codec );
else
memcpy( p_sys->p_buffer + buffer_delay, p_aout_buf->p_buffer, leftover);
@@ -1319,7 +1319,7 @@ static block_t *handle_delay_buffer( encoder_t *p_enc, encoder_sys_t *p_sys, uns
memset( p_sys->p_buffer + (leftover+buffer_delay), 0, padding_size );
buffer_delay += padding_size;
}
- if( avcodec_fill_audio_frame( p_sys->frame, p_sys->p_context->channels,
+ if( avcodec_fill_audio_frame( p_sys->frame, p_enc->fmt_out.audio.i_channels,
p_sys->p_context->sample_fmt, p_sys->b_planar ? p_sys->p_interleave_buf : p_sys->p_buffer,
p_sys->i_buffer_out,
DEFAULT_ALIGN) < 0 )
@@ -1349,7 +1349,7 @@ static block_t *EncodeAudio( encoder_t *p_enc, block_t *p_aout_buf )
//i_bytes_left is amount of bytes we get
i_samples_left = p_aout_buf ? p_aout_buf->i_nb_samples : 0;
- buffer_delay = p_sys->i_samples_delay * p_sys->i_sample_bytes * p_sys->p_context->channels;
+ buffer_delay = p_sys->i_samples_delay * p_sys->i_sample_bytes * p_enc->fmt_out.audio.i_channels;
//p_sys->i_buffer_out = p_sys->i_frame_size * chan * p_sys->i_sample_bytes
//Calculate how many bytes we would need from current buffer to fill frame
@@ -1418,12 +1418,12 @@ static block_t *EncodeAudio( encoder_t *p_enc, block_t *p_aout_buf )
p_sys->frame->channels = p_sys->p_context->channels;
const int in_bytes = p_sys->frame->nb_samples *
- p_sys->p_context->channels * p_sys->i_sample_bytes;
+ p_enc->fmt_out.audio.i_channels* p_sys->i_sample_bytes;
if( p_sys->b_planar )
{
aout_Deinterleave( p_sys->p_buffer, p_aout_buf->p_buffer,
- p_sys->frame->nb_samples, p_sys->p_context->channels, p_enc->fmt_in.i_codec );
+ p_sys->frame->nb_samples, p_enc->fmt_out.audio.i_channels, p_enc->fmt_in.i_codec );
}
else
@@ -1431,7 +1431,7 @@ static block_t *EncodeAudio( encoder_t *p_enc, block_t *p_aout_buf )
memcpy(p_sys->p_buffer, p_aout_buf->p_buffer, in_bytes);
}
- if( avcodec_fill_audio_frame( p_sys->frame, p_sys->p_context->channels,
+ if( avcodec_fill_audio_frame( p_sys->frame, p_enc->fmt_out.audio.i_channels,
p_sys->p_context->sample_fmt,
p_sys->p_buffer,
p_sys->i_buffer_out,
@@ -1457,7 +1457,7 @@ static block_t *EncodeAudio( encoder_t *p_enc, block_t *p_aout_buf )
if( p_aout_buf->i_nb_samples > 0 )
{
memcpy( p_sys->p_buffer + buffer_delay, p_aout_buf->p_buffer,
- p_aout_buf->i_nb_samples * p_sys->i_sample_bytes * p_sys->p_context->channels);
+ p_aout_buf->i_nb_samples * p_sys->i_sample_bytes * p_enc->fmt_out.audio.i_channels);
p_sys->i_samples_delay += p_aout_buf->i_nb_samples;
}
--
GitLab
From b8ad80a20e9e84082dac2848070d251fa68412c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Cartegnie?= <fcvlcdev@free.fr>
Date: Tue, 23 Apr 2024 13:13:30 +0700
Subject: [PATCH 05/11] codec: avcodec: map AYUV as RAWVIDEO with ffmpeg 6.0
(cherry picked from commit 955ef939467a628eb8da08e0d5eaefc9a3484cba)
---
modules/codec/avcodec/fourcc.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/modules/codec/avcodec/fourcc.c b/modules/codec/avcodec/fourcc.c
index 33c6cae09ab..97f3188211d 100644
--- a/modules/codec/avcodec/fourcc.c
+++ b/modules/codec/avcodec/fourcc.c
@@ -182,8 +182,12 @@ static const struct vlc_avcodec_fourcc video_codecs[] =
/* AV_CODEC_ID_V210X */
{ VLC_CODEC_TMV, AV_CODEC_ID_TMV },
{ VLC_CODEC_V210, AV_CODEC_ID_V210 },
-#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 54, 50, 100 ) && LIBAVCODEC_VERSION_MICRO >= 100
+#if LIBAVCODEC_VERSION_MICRO >= 100
+# if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 59, 42, 102 )
+ { VLC_CODEC_VUYA, AV_CODEC_ID_RAWVIDEO },
+# elif LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 54, 50, 100 )
{ VLC_CODEC_VUYA, AV_CODEC_ID_AYUV },
+# endif
#endif
/* AV_CODEC_ID_DPX */
{ VLC_CODEC_MAD, AV_CODEC_ID_MAD },
--
GitLab
From 58c05240c26b6eef56e7c5ab35b14ccd8377667f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Cartegnie?= <fcvlcdev@free.fr>
Date: Thu, 13 Jun 2024 12:21:58 +0700
Subject: [PATCH 06/11] avcodec: encoder: fix channel_layout conditionals
---
modules/codec/avcodec/encoder.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
index 52848de0658..6bd58f5071d 100644
--- a/modules/codec/avcodec/encoder.c
+++ b/modules/codec/avcodec/encoder.c
@@ -43,12 +43,13 @@
#include <vlc_cpu.h>
#include <libavcodec/avcodec.h>
-#include <libavutil/channel_layout.h>
#include "avcodec.h"
#include "avcommon.h"
-#if LIBAVUTIL_VERSION_CHECK( 52,2,6,0,0 )
+#define API_CHANNEL_LAYOUT (LIBAVUTIL_VERSION_CHECK( 52, 2, 6, 0, 100))
+
+#if API_CHANNEL_LAYOUT
# include <libavutil/channel_layout.h>
#endif
@@ -157,6 +158,7 @@ struct encoder_sys_t
/* Taken from audio.c*/
+#if API_CHANNEL_LAYOUT
static const uint64_t pi_channels_map[][2] =
{
{ AV_CH_FRONT_LEFT, AOUT_CHAN_LEFT },
@@ -193,6 +195,7 @@ static const uint32_t channel_mask[][2] = {
{AOUT_CHANS_7_1, AV_CH_LAYOUT_7POINT1},
{AOUT_CHANS_8_1, AV_CH_LAYOUT_OCTAGONAL},
};
+#endif
static const char *const ppsz_enc_options[] = {
"keyint", "bframes", "vt", "qmin", "qmax", "codec", "hq",
@@ -746,7 +749,7 @@ int InitVideoEnc( vlc_object_t *p_this )
p_context->time_base.num = 1;
p_context->time_base.den = p_context->sample_rate;
p_context->channels = p_enc->fmt_out.audio.i_channels;
-#if LIBAVUTIL_VERSION_CHECK( 52, 2, 6, 0, 0)
+#if API_CHANNEL_LAYOUT
p_context->channel_layout = channel_mask[p_context->channels][1];
/* Setup Channel ordering for multichannel audio
@@ -925,7 +928,9 @@ errmsg:
if( p_enc->fmt_out.audio.i_channels > 2 )
{
p_context->channels = 2;
+#if API_CHANNEL_LAYOUT
p_context->channel_layout = channel_mask[p_context->channels][1];
+#endif
/* Change fmt_in in order to ask for a channels conversion */
p_enc->fmt_in.audio.i_channels =
--
GitLab
From 3db6e677680a1a94e473fe9d9fc121af34cdcf2b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Cartegnie?= <fcvlcdev@free.fr>
Date: Sat, 17 Aug 2024 11:22:33 +0700
Subject: [PATCH 07/11] codec: avcodec: fix audio channel_layout conditionals
---
modules/codec/avcodec/audio.c | 23 +++++++++++++++--------
1 file changed, 15 insertions(+), 8 deletions(-)
diff --git a/modules/codec/avcodec/audio.c b/modules/codec/avcodec/audio.c
index ad8a40ab4ed..c74757c76ae 100644
--- a/modules/codec/avcodec/audio.c
+++ b/modules/codec/avcodec/audio.c
@@ -41,8 +41,11 @@
#include <libavcodec/avcodec.h>
#include <libavutil/mem.h>
-#include <libavutil/channel_layout.h>
+#define API_CHANNEL_LAYOUT (LIBAVUTIL_VERSION_CHECK( 52, 2, 6, 0, 100))
+#if API_CHANNEL_LAYOUT
+# include <libavutil/channel_layout.h>
+#endif
/*****************************************************************************
* decoder_sys_t : decoder descriptor
@@ -598,7 +601,7 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
p_sys->i_previous_channels = p_sys->p_context->ch_layout.nb_channels;
p_sys->i_previous_layout = p_sys->p_context->ch_layout.u.mask;
}
-#else
+#elif API_CHANNEL_LAYOUT
if( p_sys->i_previous_channels == p_sys->p_context->channels &&
p_sys->i_previous_layout == p_sys->p_context->channel_layout )
return;
@@ -612,15 +615,19 @@ static void SetupOutputFormat( decoder_t *p_dec, bool b_trust )
const unsigned i_order_max = sizeof(pi_channels_map)/sizeof(*pi_channels_map);
uint32_t pi_order_src[i_order_max];
- int i_channels_src = 0;
+ int i_channels_src = 0, channel_count;
+ uint64_t channel_layout_mask;
#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
- uint64_t channel_layout_mask = p_sys->p_context->ch_layout.u.mask;
- int channel_count = p_sys->p_context->ch_layout.nb_channels;
-#else
- uint64_t channel_layout_mask =
+ channel_layout_mask = p_sys->p_context->ch_layout.u.mask;
+ channel_count = p_sys->p_context->ch_layout.nb_channels;
+#elif API_CHANNEL_LAYOUT
+ channel_layout_mask =
p_sys->p_context->channel_layout ? p_sys->p_context->channel_layout :
(uint64_t)av_get_default_channel_layout( p_sys->p_context->channels );
- int channel_count = p_sys->p_context->channels;
+ channel_count = p_sys->p_context->channels;
+#else
+ channel_layout_mask = NULL;
+ channel_count = p_sys->p_context->channels;
#endif
if( channel_layout_mask )
--
GitLab
From b5bb9bda03a06fc1cfd682dacb571b688b5558d9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Cartegnie?= <fcvlcdev@free.fr>
Date: Tue, 23 Apr 2024 13:14:53 +0700
Subject: [PATCH 08/11] demux/mux: avformat: use ch_layout from ffmpeg 5.1
merger pick from commit a55ec32ab3760d9edb6f05481cd3a981aa42878d
and fixup 195f0c98599b55950c49a62f98d9d3495be310df
---
modules/demux/avformat/demux.c | 4 ++++
modules/demux/avformat/mux.c | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c
index 3b355bb3fae..830dc0157e2 100644
--- a/modules/demux/avformat/demux.c
+++ b/modules/demux/avformat/demux.c
@@ -401,7 +401,11 @@ int avformat_OpenDemux( vlc_object_t *p_this )
es_format_Init( &es_fmt, AUDIO_ES, fcc );
es_fmt.i_original_fourcc = CodecTagToFourcc( cp->codec_tag );
es_fmt.i_bitrate = cp->bit_rate;
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 59, 24, 100 ) && LIBAVCODEC_VERSION_MICRO >= 100
+ es_fmt.audio.i_channels = cp->ch_layout.nb_channels;
+#else
es_fmt.audio.i_channels = cp->channels;
+#endif
es_fmt.audio.i_rate = cp->sample_rate;
es_fmt.audio.i_bitspersample = cp->bits_per_coded_sample;
es_fmt.audio.i_blockalign = cp->block_align;
diff --git a/modules/demux/avformat/mux.c b/modules/demux/avformat/mux.c
index c708276954c..8bf8735885f 100644
--- a/modules/demux/avformat/mux.c
+++ b/modules/demux/avformat/mux.c
@@ -267,7 +267,11 @@ static int AddStream( sout_mux_t *p_mux, sout_input_t *p_input )
{
case AUDIO_ES:
codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT( 59, 24, 100 ) && LIBAVCODEC_VERSION_MICRO >= 100
+ av_channel_layout_default( &codecpar->ch_layout, fmt->audio.i_channels );
+#else
codecpar->channels = fmt->audio.i_channels;
+#endif
codecpar->sample_rate = fmt->audio.i_rate;
stream->time_base = (AVRational){1, codecpar->sample_rate};
if (fmt->i_bitrate == 0) {
--
GitLab
From fa001cda7f6b22843438c39dfc078050bb54c72a Mon Sep 17 00:00:00 2001
From: Ilkka Ollakka <ileoo@videolan.org>
Date: Tue, 4 Jul 2023 16:53:43 +0300
Subject: [PATCH 09/11] avcodec: add handling of new ch_layout in audio encoder
conditioned to avcodec version where is it added
(cherry picked from commit c4302ca59dd79efd7208a45a3fcdc44388fd03a8)
---
modules/codec/avcodec/encoder.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
index 6bd58f5071d..757f93b4684 100644
--- a/modules/codec/avcodec/encoder.c
+++ b/modules/codec/avcodec/encoder.c
@@ -927,11 +927,14 @@ errmsg:
if( p_enc->fmt_out.audio.i_channels > 2 )
{
+#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ av_channel_layout_default( &p_context->ch_layout, 2 );
+#else
p_context->channels = 2;
-#if API_CHANNEL_LAYOUT
+# if API_CHANNEL_LAYOUT
p_context->channel_layout = channel_mask[p_context->channels][1];
+# endif
#endif
-
/* Change fmt_in in order to ask for a channels conversion */
p_enc->fmt_in.audio.i_channels =
p_enc->fmt_out.audio.i_channels = 2;
@@ -1288,8 +1291,12 @@ static block_t *handle_delay_buffer( encoder_t *p_enc, encoder_sys_t *p_sys, uns
av_frame_unref( p_sys->frame );
p_sys->frame->format = p_sys->p_context->sample_fmt;
p_sys->frame->nb_samples = leftover_samples + p_sys->i_samples_delay;
+#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ av_channel_layout_copy(&p_sys->frame->ch_layout, &p_sys->p_context->ch_layout);
+#else
p_sys->frame->channel_layout = p_sys->p_context->channel_layout;
p_sys->frame->channels = p_sys->p_context->channels;
+#endif
p_sys->frame->pts = date_Get( &p_sys->buffer_date ) * p_sys->p_context->time_base.den /
CLOCK_FREQ / p_sys->p_context->time_base.num;
@@ -1419,8 +1426,12 @@ static block_t *EncodeAudio( encoder_t *p_enc, block_t *p_aout_buf )
p_sys->frame->pts = date_Get( &p_sys->buffer_date ) * p_sys->p_context->time_base.den /
CLOCK_FREQ / p_sys->p_context->time_base.num;
+#if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ av_channel_layout_copy(&p_sys->frame->ch_layout, &p_sys->p_context->ch_layout);
+#else
p_sys->frame->channel_layout = p_sys->p_context->channel_layout;
p_sys->frame->channels = p_sys->p_context->channels;
+#endif
const int in_bytes = p_sys->frame->nb_samples *
p_enc->fmt_out.audio.i_channels* p_sys->i_sample_bytes;
--
GitLab
From bb62989ccc12866d308e6f38dc1513de9cb1c6da Mon Sep 17 00:00:00 2001
From: Ilkka Ollakka <ileoo@videolan.org>
Date: Tue, 4 Jul 2023 16:55:28 +0300
Subject: [PATCH 10/11] avcodec: use ch_layout for channel layout in audio
encoder
channels and channel_layout has been deprecated in FFMPEG 5.1 and will be removed eventually
also always create the mapping, as ch_layout is always there
(cherry picked from commit b73dc8841d999c6be9de718cd2cd3aeb13279792)
---
modules/codec/avcodec/encoder.c | 53 ++++++++++++++-------------------
1 file changed, 22 insertions(+), 31 deletions(-)
diff --git a/modules/codec/avcodec/encoder.c b/modules/codec/avcodec/encoder.c
index 757f93b4684..ae746c99fc8 100644
--- a/modules/codec/avcodec/encoder.c
+++ b/modules/codec/avcodec/encoder.c
@@ -183,6 +183,7 @@ static const uint64_t pi_channels_map[][2] =
{ AV_CH_STEREO_RIGHT, 0 },
};
+# if !LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
static const uint32_t channel_mask[][2] = {
{0,0},
{AOUT_CHAN_CENTER, AV_CH_LAYOUT_MONO},
@@ -195,6 +196,7 @@ static const uint32_t channel_mask[][2] = {
{AOUT_CHANS_7_1, AV_CH_LAYOUT_7POINT1},
{AOUT_CHANS_8_1, AV_CH_LAYOUT_OCTAGONAL},
};
+# endif
#endif
static const char *const ppsz_enc_options[] = {
@@ -748,49 +750,36 @@ int InitVideoEnc( vlc_object_t *p_this )
date_Set( &p_sys->buffer_date, AV_NOPTS_VALUE );
p_context->time_base.num = 1;
p_context->time_base.den = p_context->sample_rate;
- p_context->channels = p_enc->fmt_out.audio.i_channels;
-#if API_CHANNEL_LAYOUT
- p_context->channel_layout = channel_mask[p_context->channels][1];
- /* Setup Channel ordering for multichannel audio
+ /* Setup Channel ordering for audio
* as VLC channel order isn't same as libavcodec expects
*/
p_sys->i_channels_to_reorder = 0;
- /* Specified order
+ /* Create channel layout for avcodec
* Copied from audio.c
*/
- const unsigned i_order_max = 8 * sizeof(p_context->channel_layout);
- uint32_t pi_order_dst[AOUT_CHAN_MAX] = { };
+#if API_CHANNEL_LAYOUT
+ uint32_t pi_order_dst[AOUT_CHAN_MAX] = { 0 };
uint32_t order_mask = 0;
int i_channels_src = 0;
-
- if( p_context->channel_layout )
- {
- msg_Dbg( p_enc, "Creating channel order for reordering");
- for( unsigned i = 0; i < sizeof(pi_channels_map)/sizeof(*pi_channels_map); i++ )
- {
- if( p_context->channel_layout & pi_channels_map[i][0] )
- {
- msg_Dbg( p_enc, "%d %"PRIx64" mapped to %"PRIx64"", i_channels_src, pi_channels_map[i][0], pi_channels_map[i][1]);
- pi_order_dst[i_channels_src++] = pi_channels_map[i][1];
- order_mask |= pi_channels_map[i][1];
- }
- }
- }
- else
+ msg_Dbg( p_enc, "Creating channel order for reordering");
+# if LIBAVCODEC_VERSION_CHECK(59, 999, 999, 24, 100)
+ av_channel_layout_default( &p_context->ch_layout, p_enc->fmt_out.audio.i_channels );
+ uint64_t channel_mask = p_context->ch_layout.u.mask;
+# else
+ p_context->channels = p_enc->fmt_out.audio.i_channels;
+ p_context->channel_layout = channel_mask[p_context->channels][1];
+ uint64_t channel_mask = p_context->channel_layout;
+# endif
+ for( unsigned i = 0; i < sizeof(pi_channels_map)/sizeof(*pi_channels_map); i++ )
{
- msg_Dbg( p_enc, "Creating default channel order for reordering");
- /* Create default order */
- for( unsigned int i = 0; i < __MIN( i_order_max, (unsigned)p_sys->p_context->channels ); i++ )
+ if( channel_mask & pi_channels_map[i][0] )
{
- if( i < sizeof(pi_channels_map)/sizeof(*pi_channels_map) )
- {
- msg_Dbg( p_enc, "%d channel is %"PRIx64"", i_channels_src, pi_channels_map[i][1]);
- pi_order_dst[i_channels_src++] = pi_channels_map[i][1];
- order_mask |= pi_channels_map[i][1];
- }
+ msg_Dbg( p_enc, "%d %"PRIx64" mapped to %"PRIx64"", i_channels_src, pi_channels_map[i][0], pi_channels_map[i][1]);
+ pi_order_dst[i_channels_src++] = pi_channels_map[i][1];
+ order_mask |= pi_channels_map[i][1];
}
}
if( i_channels_src != p_enc->fmt_out.audio.i_channels )
@@ -799,6 +788,8 @@ int InitVideoEnc( vlc_object_t *p_this )
p_sys->i_channels_to_reorder =
aout_CheckChannelReorder( NULL, pi_order_dst, order_mask,
p_sys->pi_reorder_layout );
+#else
+ p_context->channels = p_enc->fmt_out.audio.i_channels;
#endif
if ( p_enc->fmt_out.i_codec == VLC_CODEC_MP4A )
--
GitLab
From e020f9abb31809584e33d740593d6ae5a190771d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Cartegnie?= <fcvlcdev@free.fr>
Date: Mon, 12 Aug 2024 19:32:42 +0700
Subject: [PATCH 11/11] codec: avcodec: bypass removed define for Intel
workarounds
adapted from cherry picked commit 1280728ad305f00ceba3491ce11bf66107017a6c
---
modules/codec/avcodec/d3d11va.c | 4 ++++
modules/codec/avcodec/dxva2.c | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/modules/codec/avcodec/d3d11va.c b/modules/codec/avcodec/d3d11va.c
index e1560a9312c..5260628364f 100644
--- a/modules/codec/avcodec/d3d11va.c
+++ b/modules/codec/avcodec/d3d11va.c
@@ -55,6 +55,10 @@
#define D3D_DecoderSurface ID3D11VideoDecoderOutputView
#include "directx_va.h"
+#ifndef FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO
+# define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO 2 // moved to libavcodec/dxva2_internal.h :/
+#endif
+
static int Open(vlc_va_t *, AVCodecContext *, const AVPixFmtDescriptor *, enum PixelFormat,
const es_format_t *, picture_sys_t *p_sys);
static void Close(vlc_va_t *, void **);
diff --git a/modules/codec/avcodec/dxva2.c b/modules/codec/avcodec/dxva2.c
index 2e6809a0541..037ad7d4488 100644
--- a/modules/codec/avcodec/dxva2.c
+++ b/modules/codec/avcodec/dxva2.c
@@ -43,6 +43,10 @@
#define D3D_DecoderSurface IDirect3DSurface9
#include "directx_va.h"
+#ifndef FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO
+# define FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO 2 // moved to libavcodec/dxva2_internal.h :/
+#endif
+
static int Open(vlc_va_t *, AVCodecContext *, const AVPixFmtDescriptor *, enum PixelFormat,
const es_format_t *, picture_sys_t *p_sys);
static void Close(vlc_va_t *, void **);
--
GitLab
+28
View File
@@ -0,0 +1,28 @@
From a761e1c202b632e7865d18fcf11a2b9e285ea9ae Mon Sep 17 00:00:00 2001
From: Tristan Matthews <tmatth@videolan.org>
Date: Wed, 1 Feb 2023 23:39:36 -0500
Subject: [PATCH] opus_header: fix channel mapping family 1 parsing
Fixes #27808
(cherry picked from commit 79fa6af0a98921f9d34933761f4fe20ef6c35309)
---
modules/codec/opus_header.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/codec/opus_header.c b/modules/codec/opus_header.c
index 4069a5cf4613..b134b20b625b 100644
--- a/modules/codec/opus_header.c
+++ b/modules/codec/opus_header.c
@@ -205,7 +205,7 @@ int opus_header_parse(const unsigned char *packet, int len, OpusHeader *h)
h->nb_coupled = ch;
/* Multi-stream support */
- if(h->channel_mapping == 2)
+ if(h->channel_mapping <= 2)
{
if (h->nb_coupled + h->nb_streams > 255)
return 0;
--
GitLab
+82
View File
@@ -0,0 +1,82 @@
From a618e31cf209168ae420e95750734a37359969e1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Cartegnie?= <fcvlcdev@free.fr>
Date: Sun, 7 Jul 2024 11:14:05 +0200
Subject: [PATCH] mux: avformat: fix avio callbacks signature with ffmpeg 6.1
API signature changes introduced depending on a positive define,
then removed later, making it break prior or post removal...
(adapted from commit 503c04fad9239420be26d67aab4d5f63c53eb4f7)
---
modules/codec/avcodec/avcommon_compat.h | 3 +++
modules/demux/avformat/mux.c | 18 ++++++++++++++++++
2 files changed, 21 insertions(+)
diff --git a/modules/codec/avcodec/avcommon_compat.h b/modules/codec/avcodec/avcommon_compat.h
index 9d16b3dc47d9..561ad83f99f9 100644
--- a/modules/codec/avcodec/avcommon_compat.h
+++ b/modules/codec/avcodec/avcommon_compat.h
@@ -77,6 +77,9 @@
#ifndef FF_MAX_B_FRAMES
# define FF_MAX_B_FRAMES 16 // FIXME: remove this
#endif
+#ifndef FF_API_AVIO_WRITE_NONCONST // removed in ffmpeg 7
+# define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 61)
+#endif
#endif /* HAVE_LIBAVCODEC_AVCODEC_H */
diff --git a/modules/demux/avformat/mux.c b/modules/demux/avformat/mux.c
index 8bf8735885f5..033a87bdaaad 100644
--- a/modules/demux/avformat/mux.c
+++ b/modules/demux/avformat/mux.c
@@ -74,11 +74,20 @@ static int AddStream( sout_mux_t *, sout_input_t * );
static void DelStream( sout_mux_t *, sout_input_t * );
static int Mux ( sout_mux_t * );
+#if FF_API_AVIO_WRITE_NONCONST
static int IOWrite( void *opaque, uint8_t *buf, int buf_size );
+#else
+static int IOWrite( void *opaque, const uint8_t *buf, int buf_size );
+#endif
static int64_t IOSeek( void *opaque, int64_t offset, int whence );
#if LIBAVFORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 )
+# if FF_API_AVIO_WRITE_NONCONST
static int IOWriteTyped(void *opaque, uint8_t *buf, int buf_size,
enum AVIODataMarkerType type, int64_t time);
+# else
+int IOWriteTyped(void *opaque, const uint8_t *buf, int buf_size,
+ enum AVIODataMarkerType type, int64_t time);
+# endif
#endif
/*****************************************************************************
@@ -411,8 +420,13 @@ static int MuxBlock( sout_mux_t *p_mux, sout_input_t *p_input )
}
#if LIBAVFORMAT_VERSION_CHECK( 57, 7, 0, 40, 100 )
+# if FF_API_AVIO_WRITE_NONCONST
int IOWriteTyped(void *opaque, uint8_t *buf, int buf_size,
enum AVIODataMarkerType type, int64_t time)
+# else
+int IOWriteTyped(void *opaque, const uint8_t *buf, int buf_size,
+ enum AVIODataMarkerType type, int64_t time)
+# endif
{
VLC_UNUSED(time);
@@ -512,7 +526,11 @@ static int Control( sout_mux_t *p_mux, int i_query, va_list args )
/*****************************************************************************
* I/O wrappers for libavformat
*****************************************************************************/
+#if FF_API_AVIO_WRITE_NONCONST
static int IOWrite( void *opaque, uint8_t *buf, int buf_size )
+#else
+static int IOWrite( void *opaque, const uint8_t *buf, int buf_size )
+#endif
{
sout_mux_t *p_mux = opaque;
sout_mux_sys_t *p_sys = p_mux->p_sys;
--
GitLab
File diff suppressed because it is too large Load Diff
+46
View File
@@ -0,0 +1,46 @@
From a945944c2d50cacfacdd5b16d4ea5e7b4766a9fc Mon Sep 17 00:00:00 2001
From: Steve Lhomme <robux4@ycbcr.xyz>
Date: Mon, 16 Dec 2024 09:28:55 +0100
Subject: [PATCH] nfs: fix libnfs API v2 support
Introduced in libnfs 6.0.0.
Co-authored-by: ronnie sahlberg <ronniesahlberg@gmail.com>
Co-authored-by: Thomas Guillem <thomas@gllm.fr>
---
modules/access/nfs.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/modules/access/nfs.c b/modules/access/nfs.c
index f164cda86499..3510c3fe1f14 100644
--- a/modules/access/nfs.c
+++ b/modules/access/nfs.c
@@ -188,7 +188,8 @@ nfs_read_cb(int i_status, struct nfs_context *p_nfs, void *p_data,
else
{
p_sys->res.read.i_len = i_status;
- memcpy(p_sys->res.read.p_buf, p_data, i_status);
+ if (p_sys->res.read.p_buf != NULL && p_data != NULL)
+ memcpy(p_sys->res.read.p_buf, p_data, i_status);
}
}
@@ -208,9 +209,15 @@ FileRead(stream_t *p_access, void *p_buf, size_t i_len)
return 0;
p_sys->res.read.i_len = 0;
+#ifdef LIBNFS_API_V2
+ p_sys->res.read.p_buf = NULL;
+ if (nfs_read_async(p_sys->p_nfs, p_sys->p_nfsfh, p_buf, i_len, nfs_read_cb,
+ p_access) < 0)
+#else
p_sys->res.read.p_buf = p_buf;
if (nfs_read_async(p_sys->p_nfs, p_sys->p_nfsfh, i_len, nfs_read_cb,
p_access) < 0)
+#endif
{
msg_Err(p_access, "nfs_read_async failed");
return 0;
--
GitLab
+149
View File
@@ -0,0 +1,149 @@
From ba5dc03aecc1d96f81b76838f845ebde7348cf62 Mon Sep 17 00:00:00 2001
From: David Rosca <nowrep@gmail.com>
Date: Fri, 20 Dec 2024 20:24:36 +0100
Subject: [PATCH] avcodec: vaapi: Support VAAPI with latest FFmpeg
---
configure.ac | 20 +------------
modules/codec/Makefile.am | 2 +-
modules/codec/avcodec/avcommon_compat.h | 3 ++
modules/codec/avcodec/vaapi.c | 38 +++++++++++++++++++++++--
4 files changed, 41 insertions(+), 22 deletions(-)
diff --git a/configure.ac b/configure.ac
index 00afb063c455..089339e10e0b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2550,25 +2550,7 @@ AM_CONDITIONAL([HAVE_VAAPI], [test "${have_vaapi}" = "yes"])
AM_CONDITIONAL([HAVE_VAAPI_DRM], [test "${have_vaapi_drm}" = "yes"])
AM_CONDITIONAL([HAVE_VAAPI_X11], [test "${have_vaapi_x11}" = "yes"])
AM_CONDITIONAL([HAVE_VAAPI_WL], [test "${have_vaapi_wl}" = "yes"])
-
-have_avcodec_vaapi="no"
-AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
- VLC_SAVE_FLAGS
- CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
- CFLAGS="${CFLAGS} ${AVCODEC_CFLAGS}"
- AC_CHECK_HEADERS([libavcodec/vaapi.h], [
- AC_MSG_NOTICE([VA API acceleration activated])
- have_avcodec_vaapi="yes"
- ],[
- AS_IF([test -n "${enable_libva}"], [
- AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
- ], [
- AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
- ])
- ])
- VLC_RESTORE_FLAGS
-])
-AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_avcodec_vaapi}" = "yes"])
+AM_CONDITIONAL([HAVE_AVCODEC_VAAPI], [test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"])
dnl
dnl dxva2 needs avcodec
diff --git a/modules/codec/Makefile.am b/modules/codec/Makefile.am
index 6d9465fdaef9..dd04391c1bf7 100644
--- a/modules/codec/Makefile.am
+++ b/modules/codec/Makefile.am
@@ -416,7 +416,7 @@ libvaapi_plugin_la_SOURCES = \
codec/avcodec/vaapi.c hw/vaapi/vlc_vaapi.c hw/vaapi/vlc_vaapi.h
libvaapi_plugin_la_CPPFLAGS = $(AM_CPPFLAGS)
libvaapi_plugin_la_CFLAGS = $(AM_CFLAGS) $(AVCODEC_CFLAGS)
-libvaapi_plugin_la_LIBADD = $(LIBVA_LIBS)
+libvaapi_plugin_la_LIBADD = $(LIBVA_LIBS) $(AVCODEC_LIBS)
if HAVE_AVCODEC_VAAPI
if HAVE_VAAPI_DRM
codec_LTLIBRARIES += libvaapi_drm_plugin.la
diff --git a/modules/codec/avcodec/avcommon_compat.h b/modules/codec/avcodec/avcommon_compat.h
index ac02c06d2339..8ab6910f3250 100644
--- a/modules/codec/avcodec/avcommon_compat.h
+++ b/modules/codec/avcodec/avcommon_compat.h
@@ -84,6 +84,9 @@
#ifndef FF_API_AVIO_WRITE_NONCONST // removed in ffmpeg 7
# define FF_API_AVIO_WRITE_NONCONST (LIBAVFORMAT_VERSION_MAJOR < 61)
#endif
+#ifndef FF_API_STRUCT_VAAPI_CONTEXT
+# define FF_API_STRUCT_VAAPI_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 59)
+#endif
#endif /* HAVE_LIBAVCODEC_AVCODEC_H */
diff --git a/modules/codec/avcodec/vaapi.c b/modules/codec/avcodec/vaapi.c
index c83269e43f30..e203baaf9ee2 100644
--- a/modules/codec/avcodec/vaapi.c
+++ b/modules/codec/avcodec/vaapi.c
@@ -42,12 +42,25 @@
# include <va/va_drm.h>
#endif
#include <libavcodec/avcodec.h>
+#if FF_API_STRUCT_VAAPI_CONTEXT
#include <libavcodec/vaapi.h>
+#else
+#include <libavutil/hwcontext_vaapi.h>
+#endif
#include "avcodec.h"
#include "va.h"
#include "../../hw/vaapi/vlc_vaapi.h"
+#if !FF_API_STRUCT_VAAPI_CONTEXT
+struct vaapi_context
+{
+ VADisplay display;
+ VAConfigID config_id;
+ VAContextID context_id;
+};
+#endif
+
struct vlc_va_sys_t
{
struct vlc_vaapi_instance *va_inst;
@@ -145,8 +158,10 @@ static void Delete(vlc_va_t *va, void **hwctx)
(void) hwctx;
- vlc_vaapi_DestroyContext(o, sys->hw_ctx.display, sys->hw_ctx.context_id);
- vlc_vaapi_DestroyConfig(o, sys->hw_ctx.display, sys->hw_ctx.config_id);
+ if (sys->hw_ctx.context_id != VA_INVALID_ID)
+ vlc_vaapi_DestroyContext(o, sys->hw_ctx.display, sys->hw_ctx.context_id);
+ if (sys->hw_ctx.config_id != VA_INVALID_ID)
+ vlc_vaapi_DestroyConfig(o, sys->hw_ctx.display, sys->hw_ctx.config_id);
vlc_vaapi_ReleaseInstance(sys->va_inst);
free(sys);
}
@@ -196,6 +211,7 @@ static int Create(vlc_va_t *va, AVCodecContext *ctx, const AVPixFmtDescriptor *d
sys->hw_ctx.config_id = VA_INVALID_ID;
sys->hw_ctx.context_id = VA_INVALID_ID;
+#if FF_API_STRUCT_VAAPI_CONTEXT
sys->hw_ctx.config_id =
vlc_vaapi_CreateConfigChecked(o, sys->hw_ctx.display, i_profile,
VAEntrypointVLD, i_vlc_chroma);
@@ -211,6 +227,24 @@ static int Create(vlc_va_t *va, AVCodecContext *ctx, const AVPixFmtDescriptor *d
goto error;
ctx->hwaccel_context = &sys->hw_ctx;
+#else
+ AVBufferRef *hwdev_ref = av_hwdevice_ctx_alloc(AV_HWDEVICE_TYPE_VAAPI);
+ if (hwdev_ref == NULL)
+ goto error;
+
+ AVHWDeviceContext *hwdev_ctx = (void *) hwdev_ref->data;
+ AVVAAPIDeviceContext *vadev_ctx = hwdev_ctx->hwctx;
+ vadev_ctx->display = va_dpy;
+
+ if (av_hwdevice_ctx_init(hwdev_ref) < 0)
+ {
+ av_buffer_unref(&hwdev_ref);
+ goto error;
+ }
+
+ ctx->hw_device_ctx = hwdev_ref;
+#endif
+
va->sys = sys;
va->description = vaQueryVendorString(sys->hw_ctx.display);
va->get = Get;
--
GitLab
+11
View File
@@ -0,0 +1,11 @@
project pkg {
arches = ["x86_64", "aarch64", "i386"]
rpm {
spec = "vlc.spec"
extra_repos = ["https://repos.fyralabs.com/terrarawhide-multimedia"]
}
labels {
mock = 1
subrepo = "multimedia"
}
}
+19
View File
@@ -0,0 +1,19 @@
diff --git a/share/vlc.appdata.xml.in.in b/share/vlc.appdata.xml.in.in
index cc9c39a..3c55620 100644
--- a/share/vlc.appdata.xml.in.in
+++ b/share/vlc.appdata.xml.in.in
@@ -18,7 +18,7 @@
<url type="bugtracker">https://trac.videolan.org/vlc/</url>
<url type="donation">https://www.videolan.org/contribute.html</url>
<releases>
- <release version="@VERSION@" />
+ <release version="@VERSION@" date="@DATE@" />
</releases>
<provides>
<library>libvlc.so.5</library>
@@ -38,4 +38,5 @@
<image>http://images.videolan.org/vlc/screenshots/2.0.0/vlc-2.0-gnome3-debian.jpg</image>
</screenshot>
</screenshots>
+ <content_rating type="oars-1.1" />
</component>
+84
View File
@@ -0,0 +1,84 @@
From 6ea9b13fe82fae2b25b7371c6c36d6296db28ccb Mon Sep 17 00:00:00 2001
From: Antonio Larrosa <antonio.larrosa@gmail.com>
Date: Thu, 14 Feb 2019 10:09:30 +0100
Subject: [PATCH] Fix building vlc with libfdk-aac v2
When flushing the encoder, we now need to provide non-null buffer
parameters for everything, even if they are unused.
The encoderDelay parameter has been replaced by two, nDelay and
nDelayCore.
This is based on:
https://git.libav.org/?p=libav.git;a=commitdiff_plain;h=141c960e21d2860e354f9b90df136184dd00a9a8;hp=c8bca9fe466f810fd484e2c6db7ef7bc83b5a943
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
---
modules/codec/fdkaac.c | 27 +++++++++++++++++++++------
1 file changed, 21 insertions(+), 6 deletions(-)
diff --git a/modules/codec/fdkaac.c b/modules/codec/fdkaac.c
index e0b3088c4a..3ac7b756a3 100644
--- a/modules/codec/fdkaac.c
+++ b/modules/codec/fdkaac.c
@@ -92,6 +92,11 @@ static void CloseEncoder(vlc_object_t *);
#define SIGNALING_COMPATIBLE 1
#define SIGNALING_HIERARCHICAL 2
+#define FDKENC_VER_AT_LEAST(vl0, vl1) \
+ (defined(AACENCODER_LIB_VL0) && \
+ ((AACENCODER_LIB_VL0 > vl0) || \
+ (AACENCODER_LIB_VL0 == vl0 && AACENCODER_LIB_VL1 >= vl1)))
+
static const int pi_aot_values[] = { PROFILE_AAC_LC, PROFILE_AAC_HE, PROFILE_AAC_HE_v2, PROFILE_AAC_LD, PROFILE_AAC_ELD };
static const char *const ppsz_aot_descriptions[] =
{ N_("AAC-LC"), N_("HE-AAC"), N_("HE-AAC-v2"), N_("AAC-LD"), N_("AAC-ELD") };
@@ -288,7 +293,11 @@ static int OpenEncoder(vlc_object_t *p_this)
p_sys->i_maxoutputsize = 768*p_enc->fmt_in.audio.i_channels;
p_enc->fmt_in.audio.i_bitspersample = 16;
p_sys->i_frame_size = info.frameLength;
+#if FDKENC_VER_AT_LEAST(4, 0)
+ p_sys->i_encoderdelay = info.nDelay;
+#else
p_sys->i_encoderdelay = info.encoderDelay;
+#endif
p_enc->fmt_out.i_extra = info.confSize;
if (p_enc->fmt_out.i_extra) {
@@ -351,21 +360,27 @@ static block_t *EncodeAudio(encoder_t *p_enc, block_t *p_aout_buf)
int out_identifier = OUT_BITSTREAM_DATA;
int out_size, out_elem_size;
void *in_ptr, *out_ptr;
+ uint8_t dummy_buf[1];
if (unlikely(i_samples == 0)) {
// this forces the encoder to purge whatever is left in the internal buffer
+ /* Must be a non-null pointer, even if it's a dummy. We could use
+ * the address of anything else on the stack as well. */
+ in_ptr = dummy_buf;
+ in_size = 0;
+
in_args.numInSamples = -1;
} else {
in_ptr = p_buffer + (i_samples - i_samples_left)*p_enc->fmt_in.audio.i_channels;
in_size = 2*p_enc->fmt_in.audio.i_channels*i_samples_left;
- in_elem_size = 2;
in_args.numInSamples = p_enc->fmt_in.audio.i_channels*i_samples_left;
- in_buf.numBufs = 1;
- in_buf.bufs = &in_ptr;
- in_buf.bufferIdentifiers = &in_identifier;
- in_buf.bufSizes = &in_size;
- in_buf.bufElSizes = &in_elem_size;
}
+ in_elem_size = 2;
+ in_buf.numBufs = 1;
+ in_buf.bufs = &in_ptr;
+ in_buf.bufferIdentifiers = &in_identifier;
+ in_buf.bufSizes = &in_size;
+ in_buf.bufElSizes = &in_elem_size;
block_t *p_block;
p_block = block_Alloc(p_sys->i_maxoutputsize);
p_block->i_buffer = p_sys->i_maxoutputsize;
--
2.11.0
+239
View File
@@ -0,0 +1,239 @@
From 1c27f57498b7e0f52acc7b4520c4172a2462632d Mon Sep 17 00:00:00 2001
From: Juliane de Sartiges <jill@videolabs.io>
Date: Wed, 27 Jul 2022 09:32:25 +0200
Subject: [PATCH] freerdp: update to freerdp2 api
---
configure.ac | 2 +-
modules/access/rdp.c | 85 ++++++++++++++++++++------------------------
2 files changed, 40 insertions(+), 47 deletions(-)
diff --git a/configure.ac b/configure.ac
index b454198157..cb23a9b2ab 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2094,7 +2094,7 @@ PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client su
dnl RDP/Remote Desktop access module
dnl
-PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
+PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp2 >= 2.0.0], (RDP/Remote Desktop client support) )
dnl
dnl Real RTSP plugin
diff --git a/modules/access/rdp.c b/modules/access/rdp.c
index 0c39663c64..04ae005938 100644
--- a/modules/access/rdp.c
+++ b/modules/access/rdp.c
@@ -45,18 +45,6 @@
# include <freerdp/version.h>
#endif
-#if !defined(FREERDP_VERSION_MAJOR) || \
- (defined(FREERDP_VERSION_MAJOR) && !(FREERDP_VERSION_MAJOR > 1 || (FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR >= 1)))
-# define SoftwareGdi sw_gdi
-# define Fullscreen fullscreen
-# define ServerHostname hostname
-# define Username username
-# define Password password
-# define ServerPort port
-# define EncryptionMethods encryption
-# define ContextSize context_size
-#endif
-
#include <errno.h>
#ifdef HAVE_POLL
# include <poll.h>
@@ -75,6 +63,8 @@
#define CFG_PREFIX "rdp-"
+#define FREERDP_PIXEL_BPP(_format) (_format >> 24)
+
/*****************************************************************************
* Module descriptor
*****************************************************************************/
@@ -139,11 +129,12 @@ typedef struct vlcrdp_context_t vlcrdp_context_t;
/* updates handlers */
-static void desktopResizeHandler( rdpContext *p_context )
+static BOOL desktopResizeHandler( rdpContext *p_context )
{
vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_context;
demux_sys_t *p_sys = p_vlccontext->p_demux->p_sys;
rdpGdi *p_gdi = p_context->gdi;
+ int i_colordepth = FREERDP_PIXEL_BPP( p_gdi->dstFormat );
if ( p_sys->es )
{
@@ -151,11 +142,13 @@ static void desktopResizeHandler( rdpContext *p_context )
p_sys->es = NULL;
}
- /* Now init and fill es format */
vlc_fourcc_t i_chroma;
- switch( p_gdi->bytesPerPixel )
+ /* Now init and fill es format */
+ switch ( i_colordepth )
{
default:
+ msg_Dbg( p_vlccontext->p_demux, "invalid color depth %d", i_colordepth);
+ /* fallthrough */
case 16:
i_chroma = VLC_CODEC_RGB16;
break;
@@ -163,7 +156,7 @@ static void desktopResizeHandler( rdpContext *p_context )
i_chroma = VLC_CODEC_RGB24;
break;
case 32:
- i_chroma = VLC_CODEC_RGB32;
+ i_chroma = VLC_CODEC_ARGB;
break;
}
es_format_t fmt;
@@ -176,7 +169,7 @@ static void desktopResizeHandler( rdpContext *p_context )
fmt.video.i_height = p_gdi->height;
fmt.video.i_frame_rate_base = 1000;
fmt.video.i_frame_rate = 1000 * p_sys->f_fps;
- p_sys->i_framebuffersize = p_gdi->width * p_gdi->height * p_gdi->bytesPerPixel;
+ p_sys->i_framebuffersize = p_gdi->width * p_gdi->height * (i_colordepth >> 3);
if ( p_sys->p_block )
p_sys->p_block = block_Realloc( p_sys->p_block, 0, p_sys->i_framebuffersize );
@@ -184,20 +177,21 @@ static void desktopResizeHandler( rdpContext *p_context )
p_sys->p_block = block_Alloc( p_sys->i_framebuffersize );
p_sys->es = es_out_Add( p_vlccontext->p_demux->out, &fmt );
+ return TRUE;
}
-static void beginPaintHandler( rdpContext *p_context )
+static BOOL beginPaintHandler( rdpContext *p_context )
{
vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_context;
demux_sys_t *p_sys = p_vlccontext->p_demux->p_sys;
rdpGdi *p_gdi = p_context->gdi;
- p_gdi->primary->hdc->hwnd->invalid->null = 1;
- p_gdi->primary->hdc->hwnd->ninvalid = 0;
+ p_gdi->primary->hdc->hwnd->invalid->null = TRUE;
if ( ! p_sys->p_block && p_sys->i_framebuffersize )
p_sys->p_block = block_Alloc( p_sys->i_framebuffersize );
+ return TRUE;
}
-static void endPaintHandler( rdpContext *p_context )
+static BOOL endPaintHandler( rdpContext *p_context )
{
vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_context;
demux_sys_t *p_sys = p_vlccontext->p_demux->p_sys;
@@ -208,11 +202,12 @@ static void endPaintHandler( rdpContext *p_context )
p_sys->p_block->i_buffer = p_sys->i_framebuffersize;
memcpy( p_sys->p_block->p_buffer, p_gdi->primary_buffer, p_sys->p_block->i_buffer );
}
+ return TRUE;
}
/* instance handlers */
-static bool preConnectHandler( freerdp *p_instance )
+static BOOL preConnectHandler( freerdp *p_instance )
{
vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_instance->context;
demux_sys_t *p_sys = p_vlccontext->p_demux->p_sys;
@@ -229,49 +224,54 @@ static bool preConnectHandler( freerdp *p_instance )
p_instance->settings->EncryptionMethods =
var_InheritBool( p_vlccontext->p_demux, CFG_PREFIX "encrypt" );
- return true;
+ return TRUE;
}
-static bool postConnectHandler( freerdp *p_instance )
+static BOOL postConnectHandler( freerdp *p_instance )
{
vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_instance->context;
msg_Dbg( p_vlccontext->p_demux, "connected to desktop %dx%d (%d bpp)",
-#if defined(FREERDP_VERSION_MAJOR) && (FREERDP_VERSION_MAJOR > 1 || (FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR >= 1))
p_instance->settings->DesktopWidth,
p_instance->settings->DesktopHeight,
p_instance->settings->ColorDepth
-#else
- p_instance->settings->width,
- p_instance->settings->height,
- p_instance->settings->color_depth
-#endif
);
p_instance->update->DesktopResize = desktopResizeHandler;
p_instance->update->BeginPaint = beginPaintHandler;
p_instance->update->EndPaint = endPaintHandler;
+ UINT32 format;
+ switch ( p_instance->settings->ColorDepth )
+ {
+ default:
+ msg_Dbg( p_vlccontext->p_demux, "no valid pixel format found for color depth %d bpp", p_instance->settings->ColorDepth);
+ /* fallthrough */
+ case 16:
+ format = PIXEL_FORMAT_RGB16;
+ break;
+ case 24:
+ format = PIXEL_FORMAT_RGB24;
+ break;
+ case 32:
+ format = PIXEL_FORMAT_ARGB32;
+ break;
+ }
gdi_init( p_instance,
- CLRBUF_16BPP |
-#if defined(FREERDP_VERSION_MAJOR) && defined(FREERDP_VERSION_MINOR) && \
- !(FREERDP_VERSION_MAJOR > 1 || (FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR >= 2))
- CLRBUF_24BPP |
-#endif
- CLRBUF_32BPP, NULL );
+ format );
desktopResizeHandler( p_instance->context );
- return true;
+ return TRUE;
}
-static bool authenticateHandler( freerdp *p_instance, char** ppsz_username,
+static BOOL authenticateHandler( freerdp *p_instance, char** ppsz_username,
char** ppsz_password, char** ppsz_domain )
{
VLC_UNUSED(ppsz_domain);
vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_instance->context;
*ppsz_username = var_InheritString( p_vlccontext->p_demux, CFG_PREFIX "user" );
*ppsz_password = var_InheritString( p_vlccontext->p_demux, CFG_PREFIX "password" );
- return true;
+ return TRUE;
}
/*****************************************************************************
@@ -432,10 +432,6 @@ static int Open( vlc_object_t *p_this )
if ( p_sys->f_fps <= 0 ) p_sys->f_fps = 1.0;
p_sys->i_frame_interval = 1000000 / p_sys->f_fps;
-#if FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR < 2
- freerdp_channels_global_init();
-#endif
-
p_sys->p_instance = freerdp_new();
if ( !p_sys->p_instance )
{
@@ -512,9 +508,6 @@ static void Close( vlc_object_t *p_this )
freerdp_disconnect( p_sys->p_instance );
freerdp_free( p_sys->p_instance );
-#if FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR < 2
- freerdp_channels_global_uninit();
-#endif
if ( p_sys->p_block )
block_Release( p_sys->p_block );
--
2.45.2
+49
View File
@@ -0,0 +1,49 @@
diff --git a/configure.ac b/configure.ac
index 78b9ce2..b9c1563 100644
--- a/configure.ac
+++ b/configure.ac
@@ -910,9 +910,9 @@ AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
dnl
-dnl Domain name i18n support via GNU libidn
+dnl Domain name i18n support via GNU libidn2
dnl
-PKG_CHECK_MODULES([IDN], [libidn], [
+PKG_CHECK_MODULES([IDN], [libidn2], [
have_libidn="yes"
AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
], [
diff --git a/src/text/url.c b/src/text/url.c
index 2eb4b8d..467b7f3 100644
--- a/src/text/url.c
+++ b/src/text/url.c
@@ -873,7 +873,7 @@ char *vlc_uri_fixup(const char *str)
}
#if defined (HAVE_IDN)
-# include <idna.h>
+# include <idn2.h>
#elif defined (_WIN32)
# include <windows.h>
# include <vlc_charset.h>
@@ -914,16 +914,13 @@ static char *vlc_idna_to_ascii (const char *idn)
#if defined (HAVE_IDN)
char *adn;
- switch (idna_to_ascii_8z(idn, &adn, IDNA_ALLOW_UNASSIGNED))
+ switch (idn2_to_ascii_8z(idn, &adn, IDN2_ALLOW_UNASSIGNED|IDN2_NFC_INPUT|IDN2_NONTRANSITIONAL))
{
- case IDNA_SUCCESS:
+ case IDN2_OK:
return adn;
- case IDNA_MALLOC_ERROR:
+ case IDN2_MALLOC:
errno = ENOMEM;
return NULL;
- case IDNA_DLOPEN_ERROR:
- errno = ENOSYS;
- return NULL;
default:
errno = EINVAL;
return NULL;
+17
View File
@@ -0,0 +1,17 @@
diff -up vlc-3.0.21/modules/access/live555.cpp.orig vlc-3.0.21/modules/access/live555.cpp
--- vlc-3.0.21/modules/access/live555.cpp.orig 2024-06-05 17:56:07.000000000 +0200
+++ vlc-3.0.21/modules/access/live555.cpp 2024-12-06 11:41:08.633053039 +0100
@@ -236,8 +236,13 @@ struct demux_sys_t
bool b_no_data; /* if we never received any data */
int i_no_data_ti; /* consecutive number of TaskInterrupt */
+#if LIVEMEDIA_LIBRARY_VERSION_INT >= 1732752000
+ std::atomic_char event_rtsp;
+ std::atomic_char event_data;
+#else
char event_rtsp;
char event_data;
+#endif
bool b_get_param; /* Does the server support GET_PARAMETER */
bool b_paused; /* Are we paused? */

Some files were not shown because too many files have changed in this diff Show More