Compare commits

..

1 Commits

Author SHA1 Message Date
madonuko 1a0ff3e3cb add: telegram-desktop 2025-10-20 17:06:54 +08:00
1002 changed files with 8612 additions and 22233 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
"repoOwner": "terrapkg",
"repoName": "packages",
"resetAuthor": true,
"targetBranchChoices": ["frawhide", "f43", "f42", "el10"],
"targetBranchChoices": ["el10", "f41", "f42", "f43", "frawhide"],
"branchLabelMapping": {
"^sync-(.+)$": "$1"
}
+4 -5
View File
@@ -1,17 +1,16 @@
{
"name": "Terra Devcontainer",
"image": "ghcr.io/terrapkg/builder:frawhide",
"runArgs": ["--privileged"],
"runArgs": [
"--privileged"
],
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {}
},
"customizations": {
"vscode": {
"extensions": [
"rhaiscript.vscode-rhai",
"1dot75cm.rpmspec",
"hashicorp.hcl",
"redhat.vscode-xml"
"rhaiscript.vscode-rhai"
]
}
},
-172
View File
@@ -1,172 +0,0 @@
// Configure sccache environment variables for GitHub Actions cache integration
//
// This script is still unused until we build terra-sccache with this supported,
// Turns out that Fedora's sccache build has the GHA feature support disabled.
//
// Note: ACTIONS_CACHE_SERVICE_V2 and SCCACHE_GHA_ENABLED are set at workflow level
module.exports = async ({ github, context, core, exec }) => {
// Find sccache path (try which command)
let sccachePath = "sccache";
try {
const result = await exec.getExecOutput("which", ["sccache"], {
ignoreReturnCode: true,
silent: true,
});
if (result.exitCode === 0 && result.stdout.trim()) {
sccachePath = result.stdout.trim();
core.info(`Found sccache at: ${sccachePath}`);
}
} catch (e) {
core.debug(`Could not find sccache path: ${e.message}`);
}
// Check sccache version
try {
const versionResult = await exec.getExecOutput(sccachePath, ["--version"], {
ignoreReturnCode: true,
silent: true,
});
core.info(`sccache version: ${versionResult.stdout.trim()}`);
} catch (e) {
core.warning(`Could not get sccache version: ${e.message}`);
}
// Debug: Show what environment variables are available
core.info("=== Environment Variables Diagnostic ===");
core.info(`SCCACHE_GHA_ENABLED: ${process.env.SCCACHE_GHA_ENABLED}`);
core.info(
`ACTIONS_CACHE_SERVICE_V2: ${process.env.ACTIONS_CACHE_SERVICE_V2}`,
);
core.info(
`ACTIONS_RESULTS_URL: ${process.env.ACTIONS_RESULTS_URL ? "SET (length: " + process.env.ACTIONS_RESULTS_URL.length + ")" : "NOT SET"}`,
);
core.info(
`ACTIONS_RUNTIME_TOKEN: ${process.env.ACTIONS_RUNTIME_TOKEN ? "SET (length: " + process.env.ACTIONS_RUNTIME_TOKEN.length + ")" : "NOT SET"}`,
);
core.info(`RUSTC_WRAPPER: ${process.env.RUSTC_WRAPPER}`);
core.info(`SCCACHE_LOG: ${process.env.SCCACHE_LOG}`);
core.info("========================================");
// Export SCCACHE_PATH so it's available to subsequent steps
core.exportVariable("SCCACHE_PATH", sccachePath);
// Expose the GHA cache related variables to make it easier for users to
// integrate with GHA support (from upstream mozilla/sccache-action)
if (process.env.ACTIONS_RESULTS_URL) {
core.exportVariable("ACTIONS_RESULTS_URL", process.env.ACTIONS_RESULTS_URL);
core.info("✓ Exported ACTIONS_RESULTS_URL");
} else {
core.error(
"ACTIONS_RESULTS_URL is not set - GitHub Actions cache WILL NOT work",
);
}
if (process.env.ACTIONS_RUNTIME_TOKEN) {
core.exportVariable(
"ACTIONS_RUNTIME_TOKEN",
process.env.ACTIONS_RUNTIME_TOKEN,
);
core.info("✓ Exported ACTIONS_RUNTIME_TOKEN");
} else {
core.error(
"ACTIONS_RUNTIME_TOKEN is not set - GitHub Actions cache WILL NOT work",
);
}
// Set cache version and restore keys for this specific build matrix
if (process.env.SCCACHE_GHA_VERSION) {
core.exportVariable("SCCACHE_GHA_VERSION", process.env.SCCACHE_GHA_VERSION);
}
if (process.env.SCCACHE_GHA_CACHE_FROM) {
core.exportVariable(
"SCCACHE_GHA_CACHE_FROM",
process.env.SCCACHE_GHA_CACHE_FROM,
);
}
// Check if cache busting is enabled
const inputs =
(github &&
github.context &&
github.context.payload &&
github.context.payload.inputs) ||
{};
const rawBustCache =
inputs.bust_cache ??
inputs.bustCache ??
process.env.INPUT_BUST_CACHE ??
process.env.BUST_CACHE;
let bustCache = false;
if (typeof rawBustCache === "string") {
const v = rawBustCache.toLowerCase().trim();
bustCache = v === "true" || v === "1" || v === "yes";
} else {
bustCache = !!rawBustCache;
}
if (bustCache) {
core.exportVariable("SCCACHE_RECACHE", "1");
core.info("SCCACHE_RECACHE enabled because bust_cache is true");
}
// Stop any running sccache daemon so it picks up the new environment variables
core.info("Stopping any running sccache daemon to pick up configuration...");
try {
await exec.exec(sccachePath, ["--stop-server"], {
ignoreReturnCode: true,
});
core.info("✓ sccache daemon stopped successfully");
} catch (e) {
core.debug(
`Could not stop sccache daemon (it may not be running): ${e.message}`,
);
}
// Verify sccache can see the GHA environment variables by starting server with explicit env
core.info("Starting sccache server with GHA environment variables...");
const sccacheEnv = {
...process.env,
SCCACHE_GHA_ENABLED: process.env.SCCACHE_GHA_ENABLED || "on",
ACTIONS_CACHE_SERVICE_V2: process.env.ACTIONS_CACHE_SERVICE_V2 || "on",
};
try {
await exec.exec(sccachePath, ["--start-server"], {
ignoreReturnCode: true,
env: sccacheEnv,
});
core.info("✓ sccache server started");
} catch (e) {
core.warning(`Could not start sccache server: ${e.message}`);
}
// Show the current sccache configuration
core.info("Verifying sccache configuration:");
try {
const statsResult = await exec.getExecOutput(
sccachePath,
["--show-stats"],
{
ignoreReturnCode: true,
env: sccacheEnv,
},
);
// Check if it's using GitHub Actions cache
if (statsResult.stdout.includes("GitHub Actions")) {
core.info("✓ sccache is configured to use GitHub Actions cache");
} else if (statsResult.stdout.includes("Local disk")) {
core.error(
"✗ sccache is using Local disk cache instead of GitHub Actions cache!",
);
core.error(
"This means SCCACHE_GHA_ENABLED or required env vars are not being recognized.",
);
core.info("Stats output:");
core.info(statsResult.stdout);
}
} catch (e) {
core.debug(`Could not show sccache stats: ${e.message}`);
}
};
-121
View File
@@ -1,121 +0,0 @@
module.exports = async ({ github, context, core, exec }) => {
if (!exec) {
throw new Error("exec parameter is required but was not provided");
}
// Use SCCACHE_PATH if set, otherwise default to 'sccache' (will use PATH)
const sccachePath = process.env.SCCACHE_PATH || "sccache";
core.debug(`Using sccache path: ${sccachePath}`);
const percentage = (x, y) => Math.round((x / y) * 100 || 0);
const plural = (count, base, pluralForm = base + "s") =>
`${count} ${count === 1 ? base : pluralForm}`;
const sumStats = (stats) =>
Object.values(stats.counts).reduce((acc, val) => acc + val, 0);
const formatDuration = (duration) => {
const ms = duration.nanos / 1e6;
return `${duration.secs}s ${ms}ms`;
};
const formatJsonStats = (stats) => {
const cacheErrorCount = sumStats(stats.stats.cache_errors);
const cacheHitCount = sumStats(stats.stats.cache_hits);
const cacheMissCount = sumStats(stats.stats.cache_misses);
const totalHits = cacheHitCount + cacheMissCount + cacheErrorCount;
const ratio = percentage(cacheHitCount, totalHits);
const writeDuration = formatDuration(stats.stats.cache_write_duration);
const readDuration = formatDuration(stats.stats.cache_read_hit_duration);
const compilerDuration = formatDuration(
stats.stats.compiler_write_duration,
);
const noticeHit = plural(cacheHitCount, "hit");
const noticeMiss = plural(cacheMissCount, "miss", "misses");
const noticeError = plural(cacheErrorCount, "error");
const notice = `${ratio}% - ${noticeHit}, ${noticeMiss}, ${noticeError}`;
const table = [
[{ data: "Cache hit %", header: true }, { data: `${ratio}%` }],
[
{ data: "Cache hits", header: true },
{ data: cacheHitCount.toString() },
],
[
{ data: "Cache misses", header: true },
{ data: cacheMissCount.toString() },
],
[
{ data: "Cache errors", header: true },
{ data: cacheErrorCount.toString() },
],
[
{ data: "Compile requests", header: true },
{ data: stats.stats.compile_requests.toString() },
],
[
{ data: "Requests executed", header: true },
{ data: stats.stats.requests_executed.toString() },
],
[
{ data: "Cache writes", header: true },
{ data: stats.stats.cache_writes.toString() },
],
[
{ data: "Cache write errors", header: true },
{ data: stats.stats.cache_write_errors.toString() },
],
[{ data: "Cache write duration", header: true }, { data: writeDuration }],
[
{ data: "Cache read hit duration", header: true },
{ data: readDuration },
],
[
{ data: "Compiler write duration", header: true },
{ data: compilerDuration },
],
];
return { table, notice };
};
const getOutput = async (command, args = []) => {
core.debug(`get_output: ${command} ${args.join(" ")}`);
const output = await exec.getExecOutput(command, args, {
ignoreReturnCode: false,
silent: false,
});
if (!output.stdout.endsWith("\n")) {
process.stdout.write("\n");
}
return output.stdout.toString();
};
const humanStats = await core.group("Get human-readable stats", async () => {
return getOutput(sccachePath, ["--show-stats"]);
});
const jsonStats = await core.group("Get JSON stats", async () => {
return getOutput(sccachePath, ["--show-stats", "--stats-format=json"]);
});
const stats = JSON.parse(jsonStats);
const formattedStats = formatJsonStats(stats);
core.notice(formattedStats.notice, {
title: `sccache stats - ${context.job}`,
});
core.info("\nFull human-readable stats:");
core.info(humanStats);
core.summary.addHeading("sccache stats", 2);
core.summary.addTable(formattedStats.table);
core.summary.addDetails(
"Full human-readable stats",
"\n\n```\n" + humanStats + "\n```\n\n",
);
core.summary.addDetails(
"Full JSON Stats",
"\n\n```json\n" + JSON.stringify(stats, null, 2) + "\n```\n\n",
);
await core.summary.write();
};
-63
View File
@@ -43,66 +43,3 @@ jobs:
with:
packages: ${{ needs.manifest.outputs.build_matrix }}
publish: ${{ github.event_name == 'push' }}
appstream:
needs: build
runs-on: ubuntu-latest
container:
image: ghcr.io/terrapkg/appstream-generator:main
steps:
- name: Download artifacts
uses: actions/download-artifact@v5
with:
merge-multiple: true
path: ./artifacts
- name: Generate test catalog
# run appstream-builder, then add step summary
run: |
set -x
appstream-builder -v \
--packages-dir=artifacts/rpms \
--icons-dir=icons \
--include-failed \
--output-dir=output \
--uncompressed-icons \
--origin=test \
--basename=test \
--veto-ignore=missing-parents \
--veto-ignore=missing-info 2>&1 | tee asb.log
- name: Export logs
id: export_logs
run: |
echo "## AppStream Builder Log" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo '```log' >> $GITHUB_STEP_SUMMARY
cat asb.log >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo '---' >> $GITHUB_STEP_SUMMARY
- name: Report Summary
id: report_summary
run: |
echo "## AppStream Builder Report" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
if grep -q "veto" asb.log; then
echo "::group::Vetoed packages"
echo "### Vetoed packages" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo '```xml' >> $GITHUB_STEP_SUMMARY
echo "$(grep -i 'veto' asb.log)" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo "::warning file=asb.log::Some packages were vetoed during AppStream generation. Please review the 'Vetoed packages' section in the summary for details."
echo "::endgroup::"
fi
echo "## Full Data Summary" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Generated Appstream files:" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
for file in output/*.xml.gz; do
echo "#### \`$file\`" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo '```xml' >> $GITHUB_STEP_SUMMARY
zcat "$file" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
done
+1 -25
View File
@@ -18,11 +18,6 @@ on:
required: false
type: string
default: ""
bust_cache:
description: "Whether to bust the cache"
required: false
type: boolean
default: false
workflow_dispatch:
inputs:
packages:
@@ -35,12 +30,6 @@ on:
type: boolean
default: true
env:
RUSTC_WRAPPER: sccache
# SCCACHE_NO_DAEMON: "1"
# Disable incremental compilation so sccache works better
CARGO_INCREMENTAL: "false"
jobs:
build:
strategy:
@@ -75,19 +64,6 @@ jobs:
dir=$(dirname ${{ matrix.pkg.pkg }})
dnf5 builddep -y ${dir}/*.spec
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@v0.0.9
- name: Configure sccache
run: |
set -euo pipefail
echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV
if [ "${{ inputs.bust_cache }}" = "true" ]; then
echo "SCCACHE_BUST_CACHE=true" >> $GITHUB_ENV
fi
- name: Build with Andaman
run: anda build -D "vendor Terra" ${{ matrix.pkg.pkg }} -c terra-${{ matrix.version }}-${{ matrix.pkg.arch }} ${{ !matrix.pkg.labels.mock == '1' && '-rrpmbuild' || '' }}
@@ -129,4 +105,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"
+1 -1
View File
@@ -25,7 +25,7 @@ jobs:
git config --global commit.gpgsign true
- name: Backport Action
uses: sorenlouv/backport-github-action@v10.2.0
uses: sorenlouv/backport-github-action@v9.5.1
with:
github_token: ${{ secrets.RABONEKO_BACKPORT_GITHUB_TOKEN }}
auto_backport_label_prefix: sync-
+2 -1
View File
@@ -13,8 +13,9 @@ jobs:
matrix:
branch:
- frawhide
- f43
- f41
- f42
- f43
- el10
container:
image: ghcr.io/terrapkg/builder:frawhide
+1
View File
@@ -8,6 +8,7 @@ on:
- frawhide
- f43
- f42
- f41
- el10
paths:
- comps.xml
+2 -1
View File
@@ -48,8 +48,9 @@ jobs:
git add anda
git commit -S -a -m "$msg"
}
copy_over f43 || true
copy_over f41 || true
copy_over f42 || true
copy_over f43 || true
copy_over el10 || true
git push -u origin --all
fi
+2 -1
View File
@@ -48,8 +48,9 @@ jobs:
git add anda
git commit -S -a -m "$msg"
}
copy_over f43 || true
copy_over f41 || true
copy_over f42 || true
copy_over f43 || true
copy_over el10 || true
git push -u origin --all
fi
+2 -1
View File
@@ -48,8 +48,9 @@ jobs:
git add anda
git commit -S -a -m "$msg"
}
copy_over f43 || true
copy_over f41 || true
copy_over f42 || true
copy_over f43 || true
copy_over el10 || true
git push -u origin --all
fi
+1 -4
View File
@@ -1,8 +1,5 @@
{
"recommendations": [
"rhaiscript.vscode-rhai",
"1dot75cm.rpmspec",
"hashicorp.hcl",
"redhat.vscode-xml"
"rhaiscript.vscode-rhai"
]
}
-9
View File
@@ -1,9 +0,0 @@
// There is no HCL extension, but the Terraform extension grants HCL support
{
"auto_install_extensions": {
"RPM Spec": true,
"XML": true,
"rhai": true,
"Terraform": true
}
}
+2 -15
View File
@@ -1,5 +1,7 @@
# Terra Sources
[![Repository status](https://repology.org/badge/repository-big/terra_40.svg?header=Terra+40)](https://repology.org/repository/terra_40)
[![Repository status](https://repology.org/badge/repository-big/terra_41.svg?header=Terra+41)](https://repology.org/repository/terra_41)
[![Repository status](https://repology.org/badge/repository-big/terra_rawhide.svg?header=Terra+Rawhide)](https://repology.org/repository/terra_rawhide)
Terra is a rolling-release Fedora repository for all the software you need.
@@ -11,8 +13,6 @@ This monorepo contains the package manifests for all packages in Terra.
## Installation
The latest detailed instructions are available in our Devdocs: https://developer.fyralabs.com/terra/installing
### Fedora
```bash
@@ -44,23 +44,10 @@ And Terra EL itself can be installed with:
sudo dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terrael$releasever' terra-release
```
## Contributions
First of all, thanks for being interested in contributing to Terra! If you have any questions about contributing, please [join our chats](https://wiki.ultramarine-linux.org/en/community/community/).
- [Contribution Guide](https://developer.fyralabs.com/terra/contributing)
- [FAQ](https://developer.fyralabs.com/terra/faq)
- [Policy](https://developer.fyralabs.com/terra/policy)
## Documentation
Our documentation can be found on our [Devdocs](https://developer.fyralabs.com/terra/).
## Searching Packages
[pkgs.org](https://fedora.pkgs.org/rawhide/terra/) and [Repology](https://repology.org/) provide a list of the packages available in Terra.
## Questions?
Feel free to reach out by [joining our community](https://wiki.ultramarine-linux.org/en/community/community/). We're always happy to help!
@@ -1,7 +1,7 @@
%global __requires_exclude ^lib-.*.so
%global __provides_exclude ^lib-.*.so
%global ver Audacity-3.7.7
%global ver Audacity-3.7.5
%global sanitized_ver %(echo %{ver} | sed 's/Audacity-//g')
Name: audacity-freeworld
@@ -1,5 +1,5 @@
Name: bitwarden-cli.bin
Version: 2025.12.0
Version: 2025.10.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: 2025.12.0
Version: 2025.10.0
Release: 1%?dist
Summary: Bitwarden command-line client
License: GPL-3.0-only
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "chdig.spec"
}
}
-35
View File
@@ -1,35 +0,0 @@
%undefine __brp_mangle_shebangs
Name: chdig
Version: 25.12.1
Release: 1%?dist
Summary: Dig into ClickHouse with TUI interface
URL: https://github.com/azat/chdig
Source0: %url/archive/refs/tags/v%{version}.tar.gz
License: MIT
BuildRequires: cargo anda-srpm-macros cargo-rpm-macros mold clang fontconfig-devel glib2 libgcc
%description
%{summary}.
%prep
%autosetup -n %{name}-%{version}
%cargo_prep_online
%build
%cargo_build
%install
install -Dm755 target/rpm/chdig %{buildroot}%{_bindir}/chdig
%cargo_license_summary_online
%{cargo_license_online -a} > LICENSE.dependencies
%files
%doc README.md
%license LICENSE
%license LICENSE.dependencies
%{_bindir}/chdig
%changelog
* Fri Nov 14 2025 Owen Zimmerman <owen@fyralabs.com>
- Intial Commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("azat/chdig"));
+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.0.2
Version: 3.0.1
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.839
Version: 0.0.789
Release: 1%?dist
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
+2 -2
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-canary
Version: 0.0.839
Version: 0.0.789
Release: 1%?dist
Summary: Free Voice and Text Chat for Gamers
URL: discord.com
@@ -33,7 +33,7 @@ mkdir -p %{buildroot}%{_datadir}/applications/
mkdir -p %{buildroot}%{_datadir}/pixmaps
ln -s %_datadir/discord-canary/discord-canary.desktop %{buildroot}%{_datadir}/applications/
ln -s %_datadir/discord-canary/discord.png %{buildroot}%{_datadir}/pixmaps/discord-canary.png
ln -s %_datadir/discord-canary/DiscordCanary %buildroot%_bindir/discord-canary
ln -s %_datadir/discord/DiscordCanary %buildroot%_bindir/discord-canary
%files
%_bindir/discord-canary
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-openasar
Version: 0.0.119
Version: 0.0.112
Release: 1%?dist
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-ptb-openasar
Version: 0.0.171
Version: 0.0.163
Release: 1%?dist
Summary: A snappier Discord rewrite with features like further customization and theming
License: MIT AND https://discord.com/terms
+1 -1
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord-ptb
Version: 0.0.171
Version: 0.0.163
Release: 1%?dist
Summary: Free Voice and Text Chat for Gamers.
URL: https://discord.com
+1 -1
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: discord
Version: 0.0.119
Version: 0.0.112
Release: 1%?dist
Summary: Free Voice and Text Chat for Gamers
URL: https://discord.com
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "dorion.spec"
}
}
-63
View File
@@ -1,63 +0,0 @@
%undefine __brp_mangle_shebangs
Name: dorion
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
License: ((Apache-2.0 OR MIT) AND BSD-3-Clause) AND ((MIT OR Apache-2.0) AND Unicode-3.0) AND 0BSD AND (0BSD OR MIT OR Apache-2.0) AND Apache-2.0 AND (Apache-2.0 AND ISC) AND (Apache-2.0 AND MIT) AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR ISC OR MIT) 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 BSD-3-Clause AND (BSD-3-Clause AND MIT) AND (BSD-3-Clause OR Apache-2.0) AND (BSD-3-Clause OR MIT) AND (BSD-3-Clause OR MIT OR Apache-2.0) AND CC0-1.0 AND (CC0-1.0 OR MIT-0 OR Apache-2.0) AND CDLA-Permissive-2.0 AND ISC AND MIT AND (MIT 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 Zlib OR Apache-2.0) AND MPL-2.0 AND Unicode-3.0 AND (Unlicense OR MIT) AND Zlib AND (Zlib OR Apache-2.0 OR MIT)
URL: https://spikehd.dev/projects/dorion
Source0: https://github.com/SpikeHD/Dorion/archive/refs/tags/v%version.tar.gz
Source1: https://raw.githubusercontent.com/uwu/shelter-builds/main/shelter.js
Packager: madonuko <mado@fyralabs.com>
BuildRequires: pnpm rpm_macro(cargo_install) rust-packaging
BuildRequires: cmake gcc-c++
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(webkit2gtk-web-extension-4.1)
BuildRequires: pkgconfig(openssl)
%description
Dorion is an alternative Discord client aimed towards lower-spec or storage-sensitive PCs that supports themes, plugins, and more!
%prep
%autosetup -n Dorion-%version
pnpm i
cat<<EOF > Dorion.desktop
[Desktop Entry]
Categories=Network;
Exec=Dorion
Icon=Dorion
Name=Dorion
Terminal=false
Type=Application
MimeType=x-scheme-handler/discord
EOF
cd src-tauri
%cargo_prep_online
cp %{S:1} injection/shelter.js
%build
pnpm run build:js
cd src-tauri
cd extension_webkit
%cmake
%cmake_build
cp %__cmake_builddir/libextension.so .
cd ..
%cargo_license_summary_online
%{cargo_license_online} > ../LICENSE.dependencies
%install
install -Dpm655 Dorion.desktop -t %buildroot%_datadir/applications
cd src-tauri
%cargo_install
install -Dpm644 icons/icon.png %buildroot%_iconsdir/hicolor/512x512/apps/Dorion.png
%files
%doc README.md
%license LICENSE LICENSE.dependencies
%_bindir/Dorion
%_iconsdir/hicolor/512x512/apps/Dorion.png
%_datadir/applications/Dorion.desktop
-1
View File
@@ -1 +0,0 @@
rpm.version(gh_rawfile("SpikeHD/Dorion", "main", "package.json").json().version);
+2 -2
View File
@@ -1,5 +1,5 @@
%global commit b50c32d7c3e74af4faeb92fb0e8f49108d85ff90
%global commit_date 20251211
%global commit 5470662f25a0fc9cdb024d2e3dce4108f5cc529a
%global commit_date 20250917
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: envision-nightly
+1 -1
View File
@@ -6,7 +6,7 @@
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
Name: feishin
Version: 0.22.0
Version: 0.21.2
Release: 1%?dist
Summary: A modern self-hosted music player
License: GPL-3.0
+3 -3
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 bee989ec55e7034a782fd18bd4e694b74a62ac32
%global ver 13.1.0
%global commit f8ab6a67517476522631fb0838eab3fa58093402
%global shortcommit %{sub %{commit} 1 7}
%global commit_date 20251224
%global commit_date 20251007
%global devel_name QtColorWidgets
%global _distro_extra_cflags -fuse-ld=mold
%global _distro_extra_cxxflags -fuse-ld=mold
@@ -1,22 +1,38 @@
%global commit 8076be6b34f72b721f9bc00d9e3f8cbe26dfeb9b
%global commit 3f5eda113f33fead76a5a53e0b71c11b254d68fd
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20251226
%global ver 1.11.4^
%global commit_date 20250615
%global ver 1.10.1
%global base_name goofcord
%global git_name GoofCord
%electronmeta
%global debug_package %{nil}
# Exclude private libraries
%global __provides_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
%ifnarch aarch64 armv7hl armv7l
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\aarch64*\\.so.*))$
%elifarch aarch64 armv7hl armv7l
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\x86_64*\\.so.*)|(.*\\x86-64*\\.so.*))$
%endif
Name: %{base_name}-nightly
Version: %{ver}%{commit_date}.git.%{shortcommit}
Release: 1%?dist
Version: %{ver}^%{commit_date}.git.%{shortcommit}
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/%{commit}/%{git_name}-%{commit}.tar.gz
BuildRequires: anda-srpm-macros >= 0.2.26
BuildRequires: bun-bin
BuildRequires: desktop-file-utils
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: git
BuildRequires: make
BuildRequires: nodejs
BuildRequires: nodejs-npm
BuildRequires: python3
%ifarch aarch64
BuildRequires: zlib-ng-compat-devel
%endif
Packager: Gilver E. <rockgrub@disroot.org>
%description
@@ -26,31 +42,59 @@ A highly configurable and privacy minded Discord client.
%autosetup -n %{git_name}-%{commit}
%build
%ifarch %{arm64} armv7hl armv7l
%ifarch aarch64 armv7hl armv7l
sed -i '/\"x64\",/d' electron-builder.ts
%endif
%bun_build -r build -R
bun install
bun run packageLinux --publish=never
%install
%electron_install -d %{base_name} -s %{base_name} -i %{base_name} -D -O -U %U -E UseOzonePlatform,WaylandWindowDecorations
mkdir -p %{buildroot}%{_datadir}/%{git_name}
%ifarch x86_64
mv dist/linux-unpacked/* -t %{buildroot}%{_datadir}/%{git_name}
%elifarch aarch64
mv dist/linux-arm64-unpacked/* -t %{buildroot}%{_datadir}/%{git_name}
%elifarch armv7hl armv7l
mv dist/linux-armv7l-unpacked/* -t %{buildroot}%{_datadir}/%{git_name}
%endif
mkdir -p %{buildroot}%{_bindir}
ln -sf %{_datadir}/%{git_name}/%{git_name} %{buildroot}%{_bindir}/%{git_name}
install -Dm644 dist/.icon-set/icon_16x16.png %{buildroot}/%{_iconsdir}/hicolor/16x16/apps/%{git_name}.png
install -Dm644 dist/.icon-set/icon_32.png %{buildroot}/%{_iconsdir}/hicolor/32x32/apps/%{git_name}.png
install -Dm644 dist/.icon-set/icon_48x48.png %{buildroot}/%{_iconsdir}/hicolor/48x48/apps/%{git_name}.png
install -Dm644 dist/.icon-set/icon_64.png %{buildroot}/%{_iconsdir}/hicolor/64x64/apps/%{git_name}.png
install -Dm644 dist/.icon-set/icon_128.png %{buildroot}/%{_iconsdir}/hicolor/128x128/apps/%{git_name}.png
install -Dm644 dist/.icon-set/icon_256.png %{buildroot}/%{_iconsdir}/hicolor/256x256/apps/%{git_name}.png
install -Dm644 dist/.icon-set/icon_512.png %{buildroot}/%{_iconsdir}/hicolor/512x512/apps/%{git_name}.png
install -Dm644 dist/.icon-set/icon_1024.png %{buildroot}/%{_iconsdir}/hicolor/1024x1024/apps/%{git_name}.png
%ifarch x86_64
dist/%{git_name}-*x86_64.AppImage --appimage-extract '*.desktop'
%elifarch aarch64
dist/%{git_name}-*arm64.AppImage --appimage-extract '*.desktop'
%elifarch armv7hl armv7l
dist/%{git_name}-*armv7l.AppImage --appimage-extract '*.desktop'
%endif
desktop-file-install --set-key=Exec --set-value="%{_datadir}/%{git_name}/%{git_name} --enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform-hint=auto %U" squashfs-root/%{git_name}.desktop
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/%{base_name}.desktop
desktop-file-validate %{buildroot}%{_datadir}/applications/%{git_name}.desktop
%files
%doc README.md
%license LICENSE
%{_bindir}/%{base_name}
%{_datadir}/applications/%{base_name}.desktop
%{_libdir}/%{base_name}/
%{_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
%{_bindir}/%{git_name}
%{_datadir}/applications/%{git_name}.desktop
%{_datadir}/%{git_name}/
%{_iconsdir}/hicolor/16x16/apps/%{git_name}.png
%{_iconsdir}/hicolor/32x32/apps/%{git_name}.png
%{_iconsdir}/hicolor/48x48/apps/%{git_name}.png
%{_iconsdir}/hicolor/64x64/apps/%{git_name}.png
%{_iconsdir}/hicolor/128x128/apps/%{git_name}.png
%{_iconsdir}/hicolor/256x256/apps/%{git_name}.png
%{_iconsdir}/hicolor/512x512/apps/%{git_name}.png
%{_iconsdir}/hicolor/1024x1024/apps/%{git_name}.png
%changelog
* Sat Jun 28 2025 Gilver E. <rockgrub@disroot.org> - 1.10.1^20250615.git.3f5eda1
+2 -7
View File
@@ -1,13 +1,8 @@
rpm.global("commit", gh_commit("Milkshiift/GoofCord"));
if rpm.changed() {
if rpm.changed {
let v = gh_tag("Milkshiift/GoofCord");
v.crop(1);
if `[\d.]+-beta\.\d+`.find_all(v).len == 1 {
let v = sub(`-beta\.\d+`, `~`, v);
rpm.global("ver", v);
} else {
rpm.global("ver", v + `^`);
}
rpm.global("ver", v);
rpm.global("commit_date", date());
rpm.release();
}
+3 -3
View File
@@ -2,7 +2,7 @@ project pkg {
rpm {
spec = "goofcord.spec"
}
labels {
mock = 1
}
labels {
mock = 1
}
}
+51 -8
View File
@@ -1,17 +1,32 @@
%global git_name GoofCord
%electronmeta
%global debug_package %{nil}
# Exclude private libraries
%global __provides_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*))$
%ifnarch aarch64 armv7hl armv7l
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\aarch64*\\.so.*))$
%elifarch aarch64 armv7hl armv7l
%global __requires_exclude ^((libffmpeg[.]so.*)|(lib.*\\.so.*)|(.*\\x86_64*\\.so.*)|(.*\\x86-64*\\.so.*))$
%endif
Name: goofcord
Version: 1.11.4
Version: 1.11.0
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.2.26
BuildRequires: bun-bin
BuildRequires: desktop-file-utils
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: make
BuildRequires: nodejs
BuildRequires: nodejs-npm
BuildRequires: python3
%ifarch aarch64
BuildRequires: zlib-ng-compat-devel
%endif
Packager: Gilver E. <rockgrub@disroot.org>
%description
@@ -21,13 +36,41 @@ A highly configurable and privacy minded Discord client.
%autosetup -n %{git_name}-%{version}
%build
%ifarch %{arm64} armv7hl armv7l
%ifarch aarch64 armv7hl armv7l
sed -i '/\"x64\",/d' electron-builder.ts
%endif
%bun_build -r build -R
bun install
bun run packageLinux
%install
%electron_install -D -O -U %U -E UseOzonePlatform,WaylandWindowDecorations
mkdir -p %{buildroot}%{_datadir}/%{name}
%ifarch x86_64
mv dist/linux-unpacked/* -t %{buildroot}%{_datadir}/%{name}
%elifarch aarch64
mv dist/linux-arm64-unpacked/* -t %{buildroot}%{_datadir}/%{name}
%elifarch armv7hl armv7l
mv dist/linux-armv7l-unpacked/* -t %{buildroot}%{_datadir}/%{name}
%endif
mkdir -p %{buildroot}%{_bindir}
ln -sf %{_datadir}/%{name}/%{name} %{buildroot}%{_bindir}/%{name}
install -Dm644 dist/.icon-set/icon_16x16.png %{buildroot}/%{_iconsdir}/hicolor/16x16/apps/%{name}.png
install -Dm644 dist/.icon-set/icon_32.png %{buildroot}/%{_iconsdir}/hicolor/32x32/apps/%{name}.png
install -Dm644 dist/.icon-set/icon_48x48.png %{buildroot}/%{_iconsdir}/hicolor/48x48/apps/%{name}.png
install -Dm644 dist/.icon-set/icon_64.png %{buildroot}/%{_iconsdir}/hicolor/64x64/apps/%{name}.png
install -Dm644 dist/.icon-set/icon_128.png %{buildroot}/%{_iconsdir}/hicolor/128x128/apps/%{name}.png
install -Dm644 dist/.icon-set/icon_256.png %{buildroot}/%{_iconsdir}/hicolor/256x256/apps/%{name}.png
install -Dm644 dist/.icon-set/icon_512.png %{buildroot}/%{_iconsdir}/hicolor/512x512/apps/%{name}.png
install -Dm644 dist/.icon-set/icon_1024.png %{buildroot}/%{_iconsdir}/hicolor/1024x1024/apps/%{name}.png
%ifarch x86_64
dist/%{git_name}-*x86_64.AppImage --appimage-extract '*.desktop'
%elifarch aarch64
dist/%{git_name}-*arm64.AppImage --appimage-extract '*.desktop'
%elifarch armv7hl armv7l
dist/%{git_name}-*armv7l.AppImage --appimage-extract '*.desktop'
%endif
desktop-file-install --set-key=Exec --set-value="%{_datadir}/%{name}/%{name} --enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform-hint=auto %U" squashfs-root/%{name}.desktop
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
@@ -37,7 +80,7 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop
%license LICENSE
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_libdir}/%{name}/
%{_datadir}/%{name}/
%{_iconsdir}/hicolor/16x16/apps/%{name}.png
%{_iconsdir}/hicolor/32x32/apps/%{name}.png
%{_iconsdir}/hicolor/48x48/apps/%{name}.png
+1 -5
View File
@@ -1,5 +1 @@
let v = gh_tag("Milkshiift/GoofCord");
if `[\d.]+-beta\.\d+`.find_all(v).len == 0 {
rpm.version(v);
}
rpm.version(gh_tag("Milkshiift/GoofCord"));
+1 -2
View File
@@ -4,7 +4,7 @@
%global crate halloy
Name: halloy
Version: 2025.12
Version: 2025.9
Release: 1%?dist
Summary: An open-source IRC client written in Rust, with the Iced GUI library
Packager: Yoong jin <solomoncyj@gmail.com>
@@ -18,7 +18,6 @@ BuildRequires: alsa-lib-devel
BuildRequires: cargo-rpm-macros >= 24
BuildRequires: desktop-file-utils
BuildRequires: openssl-devel
BuildRequires: pkgconfig(xcb)
%description
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "helium-browser-bin.spec"
}
}
@@ -1,123 +0,0 @@
%define debug_package %{nil}
%global __requires_exclude libffmpeg.so|libvk_swiftshader.so|libvulkan.so|libEGL.so|libGLESv2.so
%global __provides_exclude_from %{_libdir}/%{name}/.*\\.so
%global appid net.imput.helium
%ifarch x86_64
%define arch x86_64
%elifarch aarch64
%define arch arm64
%endif
Name: helium-browser-bin
Version: 0.7.7.1
Release: 1%?dist
Summary: Private, fast, and honest web browser based on Chromium
URL: https://helium.computer
License: GPL-3.0-only AND BSD-3-Clause
Source0: https://github.com/imputnet/helium-linux/releases/download/%{version}/helium-%{version}-%{arch}_linux.tar.xz
Source1: https://github.com/imputnet/helium-linux/archive/refs/tags/%{version}.tar.gz
Source2: net.imput.helium.metainfo.xml
ExclusiveArch: x86_64 aarch64
BuildRequires: terra-appstream-helper
Requires: xdg-utils
Requires: liberation-fonts
Packager: Nadia P <nyadiia@pm.me>
%description
Private, fast, and honest web browser based on Chromium.
Based on ungoogled-chromium with additional privacy and usability improvements.
%prep
%autosetup -n helium-%{version}-%{arch}_linux
tar --strip-components=1 -zxvf %{SOURCE1}
sed -i \
-e 's/Exec=chromium/Exec=%{name}/' \
-e 's/Name=Helium$/Name=Helium Browser/' \
-e 's/Icon=helium/Icon=%{appid}/' \
helium.desktop
%build
%install
install -dm755 %{buildroot}%{_libdir}/%{name}
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}%{_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
install -dm755 %{buildroot}%{_bindir}
cat > %{buildroot}%{_bindir}/%{name} << EOF
#!/bin/bash
set -euo pipefail
XDG_CONFIG_HOME="\${XDG_CONFIG_HOME:-\"\$HOME/.config\"}"
SYS_CONF="%{_sysconfdir}/helium-browser-flags.conf"
USR_CONF="\${XDG_CONFIG_HOME}/helium-browser-flags.conf"
FLAGS=()
append_flags_file() {
local file="\$1"
[[ -r "\$file" ]] || return 0
local line safe_line
while IFS= read -r line; do
[[ "\$line" =~ ^[[:space:]]*(#|\$) ]] && continue
case "\$line" in
*'\$('*|*'\`'*)
echo "Warning: ignoring unsafe line in \$file: \$line" >&2
continue
;;
esac
set -f
safe_line=\${line//\$/\\\\\$}
safe_line=\${safe_line//~/\\\\~}
eval "set -- \$safe_line"
set +f
for token in "\$@"; do
FLAGS+=("\$token")
done
done < "\$file"
}
append_flags_file "\$SYS_CONF"
append_flags_file "\$USR_CONF"
if [[ -n "\${HELIUM_USER_FLAGS:-}" ]]; then
read -r -a ENV_FLAGS <<< "\$HELIUM_USER_FLAGS"
FLAGS+=("\${ENV_FLAGS[@]}")
fi
exec %{_libdir}/%{name}/chrome-wrapper "\${FLAGS[@]}" "\$@"
EOF
chmod 755 %{buildroot}%{_bindir}/%{name}
%terra_appstream -o %{SOURCE2}
%files
%doc README.md
%license LICENSE LICENSE.ungoogled_chromium
%{_libdir}/%{name}/
%{_bindir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/256x256/apps/%{appid}.png
%{_metainfodir}/%{appid}.metainfo.xml
%changelog
* Wed Dec 03 2025 Nadia P <nyadiia@pm.me> - 0.6.9.1-1
- Initial package
@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<component type="runtime">
<id>net.imput.helium</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-only AND BSD-3-Clause</project_license>
<name>Helium Browser</name>
<summary>Private, fast, and honest web browser based on Chromium.</summary>
<icon type="local">
/usr/share/icons/hicolor/256x256/apps/net.imput.helium.png
</icon>
<description>
<p>
Private, fast, and honest web browser based on Chromium.
Based on ungoogled-chromium with additional privacy and usability improvements.
</p>
</description>
<url type="homepage">https://helium.computer</url>
<releases>
<release version="0.6.9.1" />
</releases>
</component>
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("imputnet/helium-linux"));
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "juce.spec"
}
}
-60
View File
@@ -1,60 +0,0 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f8864a6dc5..6518db0532 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -137,10 +137,10 @@ write_basic_package_version_file("${JUCE_BINARY_DIR}/JUCEConfigVersion.cmake"
VERSION ${JUCE_VERSION}
COMPATIBILITY ExactVersion)
-set(JUCE_INSTALL_DESTINATION "lib/cmake/JUCE-${JUCE_VERSION}" CACHE STRING
+set(JUCE_INSTALL_DESTINATION "lib64/cmake/juce" CACHE STRING
"The location, relative to the install prefix, where the JUCE config file will be installed")
-set(JUCE_MODULE_PATH "include/JUCE-${JUCE_VERSION}/modules")
+set(JUCE_MODULE_PATH "share/juce/modules")
set(UTILS_INSTALL_DIR "${JUCE_INSTALL_DESTINATION}")
set(JUCEAIDE_PATH "${JUCE_TOOL_INSTALL_DIR}/${JUCE_JUCEAIDE_NAME}")
configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in"
@@ -148,7 +148,6 @@ configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in"
PATH_VARS UTILS_INSTALL_DIR JUCEAIDE_PATH JUCE_MODULE_PATH
INSTALL_DESTINATION "${JUCE_INSTALL_DESTINATION}")
-set(JUCE_MODULE_PATH "${JUCE_MODULES_DIR}")
set(UTILS_INSTALL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/extras/Build/CMake")
get_target_property(JUCEAIDE_PATH juceaide IMPORTED_LOCATION)
configure_package_config_file("${JUCE_CMAKE_UTILS_DIR}/JUCEConfig.cmake.in"
@@ -181,7 +180,7 @@ if(("${CMAKE_SOURCE_DIR}" STREQUAL "${JUCE_SOURCE_DIR}") AND (NOT JUCE_BUILD_HEL
_juce_add_lv2_manifest_helper_target()
if(TARGET juce_lv2_helper)
- install(TARGETS juce_lv2_helper EXPORT LV2_HELPER DESTINATION "bin/JUCE-${JUCE_VERSION}")
+ install(TARGETS juce_lv2_helper EXPORT LV2_HELPER DESTINATION "bin")
install(EXPORT LV2_HELPER NAMESPACE juce:: DESTINATION "${JUCE_INSTALL_DESTINATION}")
endif()
endif()
diff --git a/extras/Build/juceaide/CMakeLists.txt b/extras/Build/juceaide/CMakeLists.txt
index 17e5520974..afcd55981d 100644
--- a/extras/Build/juceaide/CMakeLists.txt
+++ b/extras/Build/juceaide/CMakeLists.txt
@@ -168,7 +168,7 @@ else()
add_executable(juce::juceaide ALIAS juceaide)
- set(JUCE_TOOL_INSTALL_DIR "bin/JUCE-${JUCE_VERSION}" CACHE STRING
+ set(JUCE_TOOL_INSTALL_DIR "bin" CACHE STRING
"The location, relative to the install prefix, where juceaide will be installed")
install(PROGRAMS "${imported_location}" DESTINATION "${JUCE_TOOL_INSTALL_DIR}")
diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt
index db8a56774d..652da64743 100644
--- a/modules/CMakeLists.txt
+++ b/modules/CMakeLists.txt
@@ -31,7 +31,7 @@
# ==============================================================================
juce_add_modules(
- INSTALL_PATH "include/JUCE-${JUCE_VERSION}/modules"
+ INSTALL_PATH "share/juce/modules"
ALIAS_NAMESPACE juce
juce_analytics
juce_animation
-87
View File
@@ -1,87 +0,0 @@
Name: juce
Version: 8.0.12
Release: 2%{?dist}
License: AGPL-3.0
Summary: framework for audio application and plug-in development
URL: https://juce.com
Source: https://github.com/juce-framework/JUCE/archive/refs/tags/%{version}.tar.gz
Patch0: fix-install-dirs.patch
Packager: metcya <metcya@gmail.com>
BuildRequires: gcc-c++
BuildRequires: cmake
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(flac)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(jack)
BuildRequires: ladspa-devel
BuildRequires: pkgconfig(libjpeg)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(vorbis)
BuildRequires: pkgconfig(zlib)
BuildRequires: pkgconfig(libcurl)
BuildRequires: webkit2gtk4.1-devel
# for building docs
BuildRequires: doxygen
BuildRequires: python3
BuildRequires: graphviz
%description
JUCE is an open-source cross-platform C++ application framework for creating
desktop and mobile applications, including VST, VST3, AU, AUv3, AAX and LV2
audio plug-ins and plug-in hosts. JUCE can be easily integrated with existing
projects via CMake, or can be used as a project generation tool via the
Projucer, which supports exporting projects for Xcode (macOS and iOS), Visual
Studio, Android Studio, and Linux Makefiles as well as containing a source code
editor.
%package doc
Summary: Documentation files for %{name}
%description doc
Documentation files for %{name}
%prep
%autosetup -p1 -n JUCE-%{version}
%build
%cmake -DJUCER_ENABLE_GPL_MODE=1 \
-DJUCE_BUILD_EXTRAS=ON \
-DJUCE_TOOL_INSTALL_DIR=bin
%cmake_build
pushd docs/doxygen
python3 build.py
popd
%install
%cmake_install
pushd docs/doxygen/doc
find -type f -exec install -Dm 644 '{}' -t %{buildroot}%{_pkgdocdir} \;
popd
%files
%doc README.md CODE_OF_CONDUCT.md CHANGE_LIST.md BREAKING_CHANGES.md
%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
%license LICENSE.md
%doc %{_pkgdocdir}/*
%changelog
* Tue Dec 23 2025 Owen Zimmerman <owen@fyralabs.com>
- Install doc subpackage license
* Fri Dec 19 2025 metcya <metcya@gmail.com> - 8.0.12
- Package juce
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("juce-framework/JUCE"));
+3 -3
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.98.0
%global raw_ver v1.89.0
Name: komikku
Version: 1.98.0
Version: 1.89.0
%forgemeta
Release: 1%?dist
Summary: A manga reader for GNOME
@@ -14,7 +14,7 @@ Summary: A manga reader for GNOME
BuildArch: noarch
License: GPL-3.0-or-later
URL: https://apps.gnome.org/Komikku/
URL: https://valos.gitlab.io/Komikku
Source0: https://codeberg.org/valos/%{appname}/archive/%{raw_ver}.tar.gz#/%{name}-%{version}.tar.gz
BuildRequires: desktop-file-utils
@@ -1,5 +1,5 @@
%global commit baf407ce7cf37b279999ca22ca03b06a44415da7
%global commit_date 20251216
%global commit 71a73d9ac15b3c50c80f1a4cffd657f304da79a8
%global commit_date 20251015
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global debug_package %nil
%global __strip /bin/true
+2 -2
View File
@@ -9,8 +9,8 @@
%endif
Name: legcord
Version: 1.1.6
Release: 1%?dist
Version: 1.1.5
Release: 2%?dist
License: OSL-3.0
Summary: Custom lightweight Discord client designed to enhance your experience
URL: https://github.com/Legcord/Legcord
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "librepods.spec"
}
}
@@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<component type="desktop-application">
<id>com.github.librepods</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-only</project_license>
<icon
type="remote"
>https://github.com/kavishdevar/librepods/blob/main/linux/assets/librepods.png</icon>
<name>librepods</name>
<summary>AirPods liberated from Apple's ecosystem</summary>
<description>
<p>
LibrePods unlocks Apple's exclusive AirPods features on non-Apple devices.
Get access to noise control modes, adaptive transparency, ear detection,
hearing aid, customized transparency mode, battery status, and more - all the
premium features you paid for but Apple locked to their ecosystem.
</p>
</description>
<launchable type="desktop-id">me.kavishdevar.librepods.desktop</launchable>
<url type="homepage">https://github.com/kavishdevar/librepods</url>
<provides>
<binary>librepods</binary>
</provides>
<keywords>
<keyword>airpods</keyword>
<keyword>librepods</keyword>
</keywords>
<releases>
<release version="0.1.0" />
</releases>
</component>
-63
View File
@@ -1,63 +0,0 @@
%global appid com.github.librepods
Name: librepods
Summary: AirPods liberated from Apple's ecosystem
Version: 0.1.0
Release: 1%?dist
License: GPL-3.0-only
URL: https://github.com/kavishdevar/librepods
Source0: %url/archive/refs/tags/linux-v%version.tar.gz
Source1: com.github.librepods.metainfo.xml
Packager: Owen Zimmerman <owen@fyralabs.com>
BuildRequires: cmake
BuildRequires: gcc
BuildRequires: g++
BuildRequires: qt6-qtbase-devel
BuildRequires: qt6-qtconnectivity-devel
BuildRequires: qt6-qtmultimedia-devel
BuildRequires: qt6-qtdeclarative-devel
BuildRequires: openssl-devel
BuildRequires: anda-srpm-macros
BuildRequires: terra-appstream-helper
Requires: glibc
Requires: openssl
Requires: qt6-qtbase
Requires: qt6-qtconnectivity
Requires: qt6-qtdeclarative
%description
LibrePods unlocks Apple's exclusive AirPods features on non-Apple devices.
Get access to noise control modes, adaptive transparency, ear detection,
hearing aid, customized transparency mode, battery status, and more - all the
premium features you paid for but Apple locked to their ecosystem.
%prep
%autosetup -n %{name}-linux-v%{version}
%build
pushd linux
%cmake
%cmake_build
popd
%install
install -Dm644 linux-rust/assets/icon.png %{buildroot}%{_iconsdir}/hicolor/512x512/apps/librepods.png
pushd linux
%cmake_install
popd
%terra_appstream -o %{SOURCE1}
%files
%doc README.md linux/README.md CHANGELOG.md
%license LICENSE
%{_bindir}/librepods
%{_datadir}/applications/me.kavishdevar.librepods.desktop
%{_metainfodir}/com.github.librepods.metainfo.xml
%{_iconsdir}/hicolor/512x512/apps/librepods.png
%changelog
* Wed Nov 19 2025 Owen Zimmerman <owen@fyralabs.com>
- Initial commit
-4
View File
@@ -1,4 +0,0 @@
let tags = json_arr(get("https://api.github.com/repos/kavishdevar/librepods/tags"));
let tag = tags.find(|t| t.name.starts_with("linux-v"));
tag.name.crop(7);
rpm.version(tag.name);
+2 -2
View File
@@ -1,9 +1,9 @@
%global forgeurl0 https://gitlab.com/mission-center-devs/mission-center
Version: 1.1.0
Version: 1.0.2
%global tag0 v%{version}
%global forgeurl1 https://gitlab.com/mission-center-devs/gng
%global commit1 1a8916cfeb06a3d63eefa8b17972eb2988e16da3
%global commit1 319d95d29cbc3c373ae61cff228e8440fbaadbbb
%forgemeta -a
+1 -1
View File
@@ -3,6 +3,6 @@ project pkg {
spec = "mpv-nightly.spec"
}
labels {
nightly = 1
nightly = "1"
}
}
+4 -3
View File
@@ -1,10 +1,10 @@
# Disable X11 for RHEL 10+
%bcond x11 %[%{undefined rhel} || 0%{?rhel} < 10]
%global commit c0d989c83913fb9c990d961c44da4816b8d2de18
%global commit 99d6d4c1c21c51ffac5f7b6d6e733a0b05a216ad
%global shortcommit %(c=%{commit}; echo ${c:0:7})
%global commit_date 20251225
%global ver 0.41.0
%global commit_date 20251020
%global ver 0.40.0
Name: mpv-nightly
Version: %ver^%commit_date.%shortcommit
@@ -188,6 +188,7 @@ sed -e "s|/usr/local/etc|%{_sysconfdir}/mpv|" -i etc/mpv.conf
-Dsdl2-audio=enabled \
-Dsdl2-gamepad=enabled \
-Dsdl2-video=enabled \
-Dsdl2=enabled \
-Dshaderc=disabled \
-Dsndio=disabled \
-Dspirv-cross=disabled \
@@ -1,31 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<component type="desktop-application">
<id>com.github.neohtop</id>
<metadata_license>CC0-1.0</metadata_license>
<project_license>MIT</project_license>
<icon type="local">/usr/share/icons/hicolor/128x128/apps/NeoHtop.png</icon>
<name>NeoHtop</name>
<summary>System monitoring on steroids</summary>
<description>
<p>
A modern, cross-platform system monitor built on top of Svelte, Rust, and Tauri.
</p>
</description>
<launchable type="desktop-id">NeoHtop.desktop</launchable>
<url type="homepage">https://abdenasser.github.io/neohtop/</url>
<provides>
<binary>neohtop</binary>
</provides>
<keywords>
<keyword>system monitor</keyword>
</keywords>
<releases>
<release version="1.2.0" />
</releases>
</component>
+11 -28
View File
@@ -1,15 +1,13 @@
%global __brp_mangle_shebangs %{nil}
%global appid com.github.neohtop
Name: neohtop
Version: 1.2.0
Release: 2%?dist
Release: 1%?dist
Summary: System monitoring on steroids
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: nodejs-npm
@@ -20,11 +18,6 @@ BuildRequires: gtk3-devel
BuildRequires: rust-gdk-pixbuf-sys-devel
BuildRequires: glib2-devel
BuildRequires: openssl-devel
BuildRequires: desktop-file-utils
BuildRequires: anda-srpm-macros
BuildRequires: terra-appstream-helper
Provides: NeoHtop
%description
%summary.
@@ -37,32 +30,22 @@ npm install
npm run tauri build
%install
install -Dpm755 src-tauri/target/release/NeoHtop %{buildroot}%{_bindir}/NeoHtop
install -Dpm644 %{SOURCE1} %{buildroot}%{_appsdir}/NeoHtop.desktop
install -Dpm755 src-tauri/target/release/NeoHtop %buildroot%_bindir/NeoHtop
install -Dpm644 %{SOURCE1} %buildroot%{_datadir}/applications/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
install -Dpm644 src-tauri/icons/128x128.png %{buildroot}%{_hicolordir}/128x128/apps/NeoHtop.png
%terra_appstream -o %{SOURCE2}
%check
desktop-file-validate %{buildroot}%{_appsdir}/NeoHtop.desktop
install -Dpm644 src-tauri/icons/128x128@2x.png %buildroot%{_iconsdir}/hicolor/256x256@2/apps/NeoHtop.png
install -Dpm644 src-tauri/icons/32x32.png %buildroot%{_iconsdir}/hicolor/32x32/apps/NeoHtop.png
install -Dpm644 src-tauri/icons/128x128.png %buildroot%{_iconsdir}/hicolor/128x128/apps/NeoHtop.png
%files
%doc README.md
%license LICENSE
%{_bindir}/NeoHtop
%{_appsdir}/NeoHtop.desktop
%{_hicolordir}/256x256@2/apps/NeoHtop.png
%{_hicolordir}/32x32/apps/NeoHtop.png
%{_hicolordir}/128x128/apps/NeoHtop.png
%{_metainfodir}/com.github.neohtop.metainfo.xml
%_bindir/NeoHtop
%{_datadir}/applications/NeoHtop.desktop
%{_iconsdir}/hicolor/256x256@2/apps/NeoHtop.png
%{_iconsdir}/hicolor/32x32/apps/NeoHtop.png
%{_iconsdir}/hicolor/128x128/apps/NeoHtop.png
%changelog
* Wed Dec 24 2025 Owen Zimmerman <owen@fyralabs.com>
- Clean up build, add %check
* Wed Nov 19 2025 Owen Zimmerman <owen@fyralabs.com>
- Add metainfo
* Sat Feb 15 2025 Owen Zimmerman <owen@fyralabs.com>
- Initial package
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "newsraft.spec"
}
}
-61
View File
@@ -1,61 +0,0 @@
%define debug_package %{nil}
Name: newsraft
Version: 0.34
Release: 1%?dist
Summary: Newsraft is a feed reader with text-based user interface.
# It's hosted on codeberg but updates are easier from the github mirror.
URL: https://codeberg.org/newsraft/%{name}
Source0: https://github.com/newsraft/%{name}/archive/refs/tags/%{name}-%{version}.tar.gz
License: ISC
# The Requires and BuildRequires are duplicated because they are used both
# at build and runtime.
BuildRequires: anda-srpm-macros gcc make
BuildRequires: sqlite-devel
BuildRequires: gumbo-parser-devel
BuildRequires: expat-devel
BuildRequires: libcurl-devel
BuildRequires: scdoc %dnl This is just for man pages.
Requires: sqlite-devel
Requires: gumbo-parser-devel
Requires: expat-devel
Requires: libcurl-devel
Packager: arbormoss <arbormoss@woodsprite.dev>
%description
%summary.
It's greatly inspired by Newsboat and tries to be its lightweight counterpart.
%prep
# The source just has an ugly dir name.
%autosetup -n %name-%name-%version
%build
%{make_build}
%{make_build} man
%install
mkdir -p %{buildroot}%{_mandir}/man1/
mkdir -p %{buildroot}%{_iconsdir}/hicolor/scalable/apps/
mkdir -p %{buildroot}%{_datadir}/applications/
install -Dm755 %{name} %{buildroot}%{_bindir}/%{name}
install -Dm644 doc/%{name}.1 %{buildroot}%{_mandir}/man1/
install -Dm644 doc/%{name}.svg %{buildroot}%{_iconsdir}/hicolor/scalable/apps/
install -Dm644 doc/%{name}.desktop %{buildroot}%{_datadir}/applications/
%files
%doc README.md
%license doc/license.txt
%{_bindir}/%{name}
%{_mandir}/man1/%{name}.1.*
%{_datadir}/applications/%{name}.desktop
%{_iconsdir}/hicolor/scalable/apps/%{name}.svg
%changelog
* Wed Dec 10 2025 arbormoss <arbormoss@woodsprite.dev>
- Intial Commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("newsraft/newsraft"));
+11 -16
View File
@@ -2,8 +2,8 @@
%define debug_package %nil
Name: peazip
Version: 10.8.0
Release: 3%?dist
Version: 10.7.0
Release: 1%?dist
Summary: Free Zip / Unzip software and Rar file extractor. Cross-platform file and archive manager
License: LGPL-3.0-only
URL: https://peazip.github.io
@@ -88,20 +88,15 @@ Qt6 version of pea.
%build
cd peazip-sources
rm res/portable
# use system binaries
sed -E -e 's&(\bHSYSBIN\b\s*)=\s*[0-9];&\1= 2;&' -i dev/peach.pas
# set paths, needs trailing slash
sed -E -e 's&(\bHBINPATH\b\s*)=\s*'"''"';&\1= '"'"'%_bindir'"'"';&' -i dev/peach.pas
lazbuild --add-package $(pwd)/dev/metadarkstyle/metadarkstyle.lpk
lazbuild --ws=gtk2 $(pwd)/dev/project_peach.lpi && cp dev/peazip ../peazip.gtk2
lazbuild --ws=gtk3 $(pwd)/dev/project_peach.lpi && cp dev/peazip ../peazip.gtk3
lazbuild --ws=qt5 $(pwd)/dev/project_peach.lpi && cp dev/peazip ../peazip.qt5
lazbuild --ws=qt6 $(pwd)/dev/project_peach.lpi && cp dev/peazip ../peazip.qt6
lazbuild --ws=gtk2 $(pwd)/dev/project_pea.lpi && cp dev/pea ../pea.gtk2
lazbuild --ws=gtk3 $(pwd)/dev/project_pea.lpi && cp dev/pea ../pea.gtk3
lazbuild --ws=qt5 $(pwd)/dev/project_pea.lpi && cp dev/pea ../pea.qt5
lazbuild --ws=qt6 $(pwd)/dev/project_pea.lpi && cp dev/pea ../pea.qt6
lazbuild --add-package dev/metadarkstyle/metadarkstyle.lpk
lazbuild --ws=gtk2 dev/project_peach.lpi && cp dev/peazip ../peazip.gtk2
lazbuild --ws=gtk3 dev/project_peach.lpi && cp dev/peazip ../peazip.gtk3
lazbuild --ws=qt5 dev/project_peach.lpi && cp dev/peazip ../peazip.qt5
lazbuild --ws=qt6 dev/project_peach.lpi && cp dev/peazip ../peazip.qt6
lazbuild --ws=gtk2 dev/project_pea.lpi && cp dev/pea ../pea.gtk2
lazbuild --ws=gtk3 dev/project_pea.lpi && cp dev/pea ../pea.gtk3
lazbuild --ws=qt5 dev/project_pea.lpi && cp dev/pea ../pea.qt5
lazbuild --ws=qt6 dev/project_pea.lpi && cp dev/pea ../pea.qt6
%install
install -Dm755 peazip.* -t %buildroot%_bindir
+1 -1
View File
@@ -2,7 +2,7 @@
%global pypi_name protontricks
Name: terra-%{pypi_name}
Version: 1.13.1
Version: 1.13.0
Release: 1%?dist
Summary: Simple wrapper that does winetricks things for Proton enabled games
BuildArch: noarch
-8
View File
@@ -1,8 +0,0 @@
project pkg {
rpm {
spec = "rasputin.spec"
}
labels {
nightly = 1
}
}
-45
View File
@@ -1,45 +0,0 @@
%global commit a822eb767a330711e67714428c1c56cf3c82f044
%global commit_date 20251118
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: rasputin
Version: 0~%commit_date.git~%shortcommit
Release: 1%?dist
Summary: Mouse and keyboard settings for Raspberry Pi Desktop
License: BSD-3-Clause
URL: https://github.com/raspberrypi-ui/rasputin
Source0: %url/archive/%commit.tar.gz
Packager: Owen Zimmerman <owen@fyralabs.com>
BuildRequires: meson
BuildRequires: ninja-build
BuildRequires: gtk3-devel
BuildRequires: libxml2-devel
BuildRequires: intltool
BuildRequires: gcc
Requires: libxml2
%description
%summary.
%prep
%autosetup -n rasputin-%{commit}
%build
%meson
%meson_build
%install
%meson_install
%find_lang rpcc_rasputin
%files -f rpcc_rasputin.lang
%license debian/copyright
%{_datadir}/rpcc/ui/rasputin.ui
%{_libdir}/rpcc/librpcc_rasputin.so
%changelog
* Sun Oct 26 2025 Owen Zimmerman <owen@fyralabs.com>
- Initial commit
-5
View File
@@ -1,5 +0,0 @@
rpm.global("commit", gh_commit("raspberrypi-ui/appset"));
if rpm.changed() {
rpm.release();
rpm.global("commit_date", date());
}
-3
View File
@@ -2,7 +2,4 @@ project pkg {
rpm {
spec = "rp-appset.spec"
}
labels {
nightly = 1
}
}
+8 -12
View File
@@ -1,5 +1,5 @@
%global commit a822eb767a330711e67714428c1c56cf3c82f044
%global commit_date 20251118
%global commit 8bae0939b3e40fa9a2becfb8e0f05f293ee5ef9f
%global commit_date 20251014
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: appset
@@ -19,6 +19,7 @@ BuildRequires: intltool
BuildRequires: gcc
Requires: libxml2
Requires: gtk3
Provides: pipanel
Provides: rp-appset
@@ -36,20 +37,15 @@ Provides: rp-appset
%install
%meson_install
%find_lang rpcc_pipanel
%find_lang pipanel
%files -f rpcc_pipanel.lang
%files -f pipanel.lang
%doc README
%license debian/copyright
%{_datadir}/rpcc/ui/pipanel.ui
%{_libdir}/rpcc/librpcc_pipanel.so
%{_iconsdir}/hicolor/24x24/apps/appset-desktop.png
%{_iconsdir}/hicolor/24x24/apps/appset-taskbar.png
%{_iconsdir}/hicolor/32x32/apps/appset-desktop.png
%{_iconsdir}/hicolor/32x32/apps/appset-taskbar.png
%{_bindir}/pipanel
%{_datadir}/applications/pipanel.desktop
%{_datadir}/pipanel/ui/pipanel.ui
%changelog
* Sat Oct 25 2025 Owen Zimmerman <owen@fyralabs.com>
- Follow upstream by changing to build plugin instead of application
* Fri Aug 15 2025 Owen Zimmerman <owen@fyralabs.com>
- Package appset
-3
View File
@@ -2,7 +2,4 @@ project pkg {
rpm {
spec = "rp-bookshelf.spec"
}
labels {
nightly = 1
}
}
+2 -2
View File
@@ -1,5 +1,5 @@
%global commit a720bf5041fd832a278378fd6f5cf9a0b3f8cc6f
%global commit_date 20251217
%global commit c1c0aaff854d01fb8e8bf31a204fd03f8e81daab
%global commit_date 20251014
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: rp-bookshelf
-8
View File
@@ -1,8 +0,0 @@
project pkg {
rpm {
spec = "rpcc.spec"
}
labels {
nightly = 1
}
}
-57
View File
@@ -1,57 +0,0 @@
%global commit 9527e92f697ad380ce8669a2b6c61260abafab19
%global commit_date 20251126
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: rpcc
Version: 0~%commit_date.git~%shortcommit
Release: 1%?dist
Summary: Raspberry Pi Control Centre - an extensible settings application for the Raspberry Pi Desktop
License: BSD-3-Clause
URL: https://github.com/raspberrypi-ui/rpcc
Source0: %url/archive/%commit.tar.gz
Packager: Owen Zimmerman <owen@fyralabs.com>
BuildRequires: meson
BuildRequires: ninja-build
BuildRequires: gtk3-devel
BuildRequires: libxml2-devel
BuildRequires: intltool
BuildRequires: gcc
Requires: libxml2
Requires: gtk3
%description
Raspberry Pi Control Centre - an extensible settings application for the Raspberry Pi Desktop
rpcc is a settings application which loads tab pages at runtime from plugin modules.
A number of packages contain plugins which are installed as standard on Raspberry Pi images:
- pipanel - appearance settings
- rc-gui - Raspberry Pi Configuration
- raindrop - screen layout
- rasputin - mouse and keyboard input
- rpinters - printers
%prep
%autosetup -n rpcc-%commit
%build
%meson
%meson_build
%install
%meson_install
%find_lang rpcc
%files -f rpcc.lang
%doc README
%license debian/copyright
%{_bindir}/rpcc
%{_datadir}/applications/rpcc.desktop
%{_datadir}/rpcc/ui/rpcc.ui
%changelog
* Sat Oct 25 2025 Owen Zimmerman <owen@fyralabs.com>
- Initial commit
-5
View File
@@ -1,5 +0,0 @@
rpm.global("commit", gh_commit("raspberrypi-ui/rpcc"));
if rpm.changed() {
rpm.release();
rpm.global("commit_date", date());
}
-8
View File
@@ -1,8 +0,0 @@
project pkg {
rpm {
spec = "rpinters.spec"
}
labels {
nightly = 1
}
}
-45
View File
@@ -1,45 +0,0 @@
%global commit 1815ad67432803843058a3cf7eefbf376e9c02c9
%global commit_date 20251029
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: rpinters
Version: 0~%commit_date.git~%shortcommit
Release: 1%?dist
Summary: Raspberry Pi printing utility module
License: GPL-2+ AND BSD-3-Clause
URL: https://github.com/raspberrypi-ui/rpinters
Source0: %url/archive/%commit.tar.gz
Packager: Owen Zimmerman <owen@fyralabs.com>
BuildRequires: meson
BuildRequires: ninja-build
BuildRequires: gcc
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(smbclient)
BuildRequires: pkgconfig(cups)
BuildRequires: pkgconfig(polkit-gobject-1)
BuildRequires: pkgconfig(gsettings-desktop-schemas)
%description
%summary.
%prep
%autosetup -n rpinters-%commit
%build
%meson
%meson_build
%install
%meson_install
%find_lang rpcc_%{name}
%files -f rpcc_%{name}.lang
%doc README
%license debian/copyright
%{_datadir}/rpcc/ui/%{name}.ui
%{_libdir}/rpcc/librpcc_rpinters.so
%changelog
* Fri Aug 08 2025 Owen Zimmerman <owen@fyralabs.com>
- Package bookshelf
-5
View File
@@ -1,5 +0,0 @@
rpm.global("commit", gh_commit("raspberrypi-ui/rpinters"));
if rpm.changed() {
rpm.release();
rpm.global("commit_date", date());
}
+1 -1
View File
@@ -1,4 +1,4 @@
%global ver 2025-12-26
%global ver 2025-10-20
%global goodver %(echo %ver | sed 's/-//g')
%global __brp_mangle_shebangs %{nil}
%bcond_without mold
+7 -92
View File
@@ -1,34 +1,10 @@
%global __requires_exclude_from %{_datadir}/%{name}/.*
%bcond_without server_prebuilt
%global appid com.genymobile.scrcpy
%global org com.genymobile
%global appstream_component desktop-application
# NOTE: We only do this on aarch64 to avoid
# duplicate build artifacts on x86_64
#
# If you are building this package locally,
# set --with server to cross-compile/bundle the server APK subpackage.
#
# The server APK is architecture independent.
%ifarch aarch64
%bcond_without server
%else
%bcond_with server
%endif
Name: scrcpy
Version: 3.3.4
Version: 3.3.3
Release: 1%?dist
Summary: Display and control your Android device
License: Apache-2.0 AND Proprietary
License: Apache-2.0
URL: https://github.com/Genymobile/scrcpy
Source0: %url/archive/refs/tags/v%version.tar.gz
Source1: https://developer.android.com/studio/terms.html
%if %{with server_prebuilt}
Source10: https://github.com/Genymobile/scrcpy/releases/download/v%{version}/scrcpy-server-v%{version}
%endif
Packager: madonuko <mado@fyralabs.com>
BuildRequires: meson ninja-build cmake nasm gcc
BuildRequires: pkgconfig(sdl2)
@@ -42,78 +18,29 @@ BuildRequires: pkgconfig(libv4l2)
BuildRequires: cmake(VulkanHeaders)
BuildRequires: vulkan-loader
BuildRequires: OpenCL-ICD-Loader
BuildRequires: python3-sdkmanager
Requires: %{name}-server
# Gradle here really wants Java 21-23 to work properly
# Java 25 breaks the build
BuildRequires: java-21-openjdk-devel
BuildConflicts: dkms-nvidia akmod-nvidia
Requires: android-tools
%description
This application mirrors Android devices (video and audio) connected via USB or TCP/IP and allows control using the computer's keyboard and mouse. It does not require root access or an app installed on the device. It works on Linux, Windows, and macOS.
%if %{with server}
%package server
# This package is architecture independent, it's
# an Android APK file.
Summary: Android server for %{name}
BuildArch: noarch
%description server
Android server for %{name}
%endif
%pkg_completion -Bz
%prep
%autosetup
mkdir -p /tmp/android_sdk
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export ANDROID_SDK_ROOT=/tmp/android_sdk
sdkmanager --install tools --sdk_root /tmp/android_sdk
echo y | sdkmanager --license
%build
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk
export PATH=$JAVA_HOME/bin:$PATH
export WORK_DIR=$PWD/work
export OUTPUT_DIR=$PWD/output
%dnl #export CFLAGS="$(echo $CFLAGS | sed 's/-D_GNU_SOURCE[=1]*//g')"
%dnl #export CPPFLAGS="$(echo $CPPFLAGS | sed 's/-D_GNU_SOURCE[=1]*//g')"
export VERSION=v%version
export ANDROID_SDK_ROOT=/tmp/android_sdk
# TODO: Gradle 8.9 seems to have problems with Java
# 21-25, so we can't build the APK here at all
# For now, let's use the prebuilt server
# https://github.com/gradle/gradle/issues/35111
%if %{with server}
%if %{with server_prebuilt}
%meson -Dprebuilt_server=%{SOURCE10}
%else
%meson -Dcompile_server=true
%endif
%else
%meson -Dcompile_server=false
%endif
%meson \
-Dcompile_server=false \
-Dportable=false \
-Dstatic=false
%meson_build
rm -rf /tmp/android_sdk
%install
pushd "%_vpath_builddir"
%ninja_install
popd
ls -la
%if %{with server}
install -Dm 644 %{SOURCE1} %{buildroot}%{_datadir}/licenses/LICENSE.android-sdk-license
%endif
%terra_appstream
%meson_install
%files
%doc README.md
@@ -121,17 +48,5 @@ install -Dm 644 %{SOURCE1} %{buildroot}%{_datadir}/licenses/LICENSE.android-sdk-
%_bindir/scrcpy
%_datadir/applications/scrcpy-console.desktop
%_datadir/applications/scrcpy.desktop
%_datadir/bash-completion/completions/scrcpy
%_iconsdir/hicolor/*/apps/scrcpy.png
%_metainfodir/%{appid}.metainfo.xml
%_mandir/man1/scrcpy.1.*
%if %{with server}
%files server
%license %{_datadir}/licenses/LICENSE.android-sdk-license
%_datadir/scrcpy/scrcpy-server
%endif
%changelog
* Thu Oct 02 2025 june-fish <june@fyralabs.com>
- fix android sdk bug
+12 -42
View File
@@ -1,9 +1,6 @@
#? 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.*$
@@ -14,34 +11,21 @@
%define arch arm64-
%endif
Name: signal-desktop
Version: 7.83.0
Release: 1%?dist
Name: signal-desktop
Version: 7.75.1
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
License: AGPL-3.0 AND %{electron_license}
License: AGPL-3.0 AND %electron_licenses
ExclusiveArch: x86_64 aarch64
BuildRequires: pulseaudio-libs-devel
BuildRequires: libX11-devel
BuildRequires: git-lfs
BuildRequires: git-core
BuildRequires: anda-srpm-macros
BuildRequires: pnpm
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: git-core
BuildRequires: make
BuildRequires: nodejs
BuildRequires: nodejs-npm
BuildRequires: python3
BuildRequires: pulseaudio-libs-devel libX11-devel pnpm make gcc g++ python3
BuildRequires: git-lfs
Requires: gtk3
Requires: libwayland-cursor
Requires: libwayland-client
Requires: libwayland-client
Requires: libxkbcommon
Requires: gdk-pixbuf2
Requires: libthai
@@ -64,16 +48,6 @@ 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
@@ -83,14 +57,12 @@ Provides: Signal-Desktop
Signal Desktop links with Signal on Android or iOS and lets you message from your Windows, macOS, and Linux computers.
%prep
%autosetup -n Signal-Desktop-%{version}
%autosetup -n Signal-Desktop-%{version} -p1
%build
pnpm install --frozen-lockfile
pushd sticker-creator
pnpm install --frozen-lockfile
pnpm build
popd
pnpm --prefix sticker-creator install
pnpm --prefix sticker-creator build
pnpm run build-linux --dir
%install
@@ -127,8 +99,8 @@ install -Dm644 build/icons/png/512x512.png %{buildroot}%{_iconsdir}/hicolor/512x
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
mkdir -p %buildroot%_bindir
ln -s %_libdir/signal-desktop/signal-desktop %buildroot%_bindir/signal-desktop
%files
%license LICENSE
@@ -151,7 +123,5 @@ ln -s %{_libdir}/signal-desktop/signal-desktop %{buildroot}%{_bindir}/signal-des
%{_iconsdir}/hicolor/64x64/apps/signal.png
%changelog
* 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
-5
View File
@@ -1,5 +0,0 @@
project pkg {
rpm {
spec = "snow.spec"
}
}
@@ -1,36 +0,0 @@
<?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
@@ -1,7 +0,0 @@
[Desktop Entry]
Categories=System;Emulator;
Comment=Classic Macintosh emulator
Exec=snowemu
Icon=snow_icon
Name=snow
Type=Application
-81
View File
@@ -1,81 +0,0 @@
%global appid com.github.snow
Name: snow
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
Source1: snow.desktop
Source2: %appid.metainfo.xml
License: MIT
BuildRequires: cargo
BuildRequires: gcc-c++
BuildRequires: mold
BuildRequires: anda-srpm-macros
BuildRequires: cargo-rpm-macros
BuildRequires: desktop-file-utils
BuildRequires: terra-appstream-helper
BuildRequires: SDL2-devel
Provides: snowemu
Packager: Owen Zimmerman <owen@fyralabs.com>
%description
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.
%package doc
Summary: Documentation files for %{name}
%description doc
Documentation files for %{name}
%prep
%autosetup -n %{name}-%{version}
%cargo_prep_online
%build
%cargo_build
%install
mkdir -p %{buildroot}%{_pkgdocdir}
install -Dm755 target/rpm/snow_frontend_egui %{buildroot}%{_bindir}/snowemu
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
%license LICENSE.dependencies
%{_bindir}/snowemu
%{_hicolordir}/1024x1024/apps/snow_icon.png
%{_appsdir}/snow.desktop
%{_metainfodir}/%appid.metainfo.xml
%files doc
%license LICENSE
%doc %{_pkgdocdir}/*
%changelog
* Tue Dec 23 2025 Owen Zimmerman <owen@fyralabs.com>
- Initial commit
-1
View File
@@ -1 +0,0 @@
rpm.version(gh("twvd/snow"));
+1 -1
View File
@@ -2,7 +2,7 @@
%global realname subtitleedit
Name: %realname.bin
Version: 4.0.14
Version: 4.0.13
Release: 1%?dist
Summary: An advanced subtitle editor and converter
License: GPL-3.0-only
+5
View File
@@ -0,0 +1,5 @@
project pkg {
rpm {
spec = "telegram-desktop.spec"
}
}
@@ -0,0 +1,32 @@
Name: telegram-desktop
Version: 6.2.3
Release: 1%?dist
Summary: Telegram Desktop messaging app
License: GPL-3.0-or-later WITH OpenSSL-exception
URL: https://desktop.telegram.org
Packager: madonuko <mado@fyralabs.com>
BuildRequires: boost-regex
BuildRequires: cmake
BuildRequires: cmake(ada)
BuildRequires: cmake(Qt6Core)
BuildRequires: cmake(OpenAL)
BuildRequires: cmake(KF6CoreAddons)
BuildRequires: pkgconfig(protobuf)
BuildRequires: pkgconfig(opus)
%description
%summary.
%prep
%git_clone https://github.com/telegramdesktop/tdesktop v%version
%build
%cmake -DTD_E2E_ONLY=ON -DDESKTOP_APP_DISABLE_AUTOUPDATE=ON
%cmake_build
%install
%cmake_install
%files
%doc README.md changelog.txt
%license LICENSE LEGAL
@@ -1 +1 @@
v1.12.14
v1.11.15
+5 -12
View File
@@ -1,8 +1,8 @@
#? https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=throne-git
Name: throne
Version: 1.0.12
Release: 1%?dist
Version: 1.0.5
Release: 3%?dist
Summary: Qt based cross-platform GUI proxy configuration manager (backend: sing-box)
URL: https://github.com/throneproj/Throne
License: GPLv3
@@ -17,7 +17,6 @@ Source2: Sagernet.SingBox.Version.txt
Source3: %{name}.desktop
Source4: %{name}.sh
Source5: https://raw.githubusercontent.com/throneproj/routeprofiles/rule-set/srslist.h
BuildRequires: rpm_macro(cmake)
BuildRequires: rpm_macro(cmake_build)
@@ -39,7 +38,6 @@ BuildRequires: sed
BuildRequires: golang
BuildRequires: rpm_macro(gobuildflags)
BuildRequires: protobuf-compiler
BuildRequires: desktop-file-utils
Requires: %{name}-core
%define core Core
@@ -67,8 +65,6 @@ cd gen
protoc -I . --go_out=. --protorpc_out=. libcore.proto
%build
mkdir -p %__cmake_builddir
cp %{S:5} %__cmake_builddir/
%cmake
%cmake_build
DEST=$PWD/%{__cmake_builddir}/%{core}
@@ -87,20 +83,17 @@ popd
install -Dm755 %__cmake_builddir/Throne %buildroot%_libdir/%name/%name
install -Dm755 %__cmake_builddir/%core %buildroot%_libdir/%name/%core
install -Dpm755 %{SOURCE4} %{buildroot}%{_bindir}/%{name}
install -Dpm644 %{SOURCE3} %{buildroot}%{_appsdir}/%{name}.desktop
install -Dpm644 %{SOURCE3} %{buildroot}%{_datadir}/applications/%{name}.desktop
install -Dpm644 res/Throne.ico -t %buildroot%_iconsdir/
install -Dpm644 res/public/Throne.png -t %buildroot%_datadir/pixmaps/
patchelf --remove-rpath %{buildroot}%{_libdir}/%{name}/%{name}
patchelf --remove-rpath %{buildroot}%{_libdir}/%{name}/%{core}
%check
desktop-file-validate %{buildroot}%{_appsdir}/%{name}.desktop
%files
%attr(0755, -, -) %{_bindir}/%{name}
%attr(0755, -, -) %{_libdir}/%{name}/%{name}
%attr(0644, -, -) %{_iconsdir}/Throne.ico
%attr(0644, -, -) %{_appsdir}/%{name}.desktop
%attr(0644, -, -) %{_datadir}/icons/Throne.ico
%attr(0644, -, -) %{_datadir}/applications/%{name}.desktop
%_datadir/pixmaps/Throne.png
%files core
+2 -1
View File
@@ -1,2 +1,3 @@
rpm.version(gh("throneproj/Throne"));
rpm.version(find(`([\d.]+)-\d+-\d+-\d+`, gh_rawfile("throneproj/Throne", "dev", "throne_version.txt"), 1));
open_file("anda/apps/throne/Sagernet.SingBox.Version.txt", "w").write(gh("sagernet/sing-box"));
+8 -8
View File
@@ -7,7 +7,7 @@
Name: vesktop
Obsoletes: VencordDesktop < 1.5.8-1
Obsoletes: vencord-desktop < 1.5.8-1
Version: 1.6.3
Version: 1.6.0
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
@@ -58,17 +58,17 @@ cp -r dist/*-unpacked/. %buildroot/usr/share/vesktop/.
install -Dm755 dist/*-unpacked/vesktop %buildroot/usr/bin/vesktop
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 vesktop.desktop %buildroot/usr/share/applications/vesktop.desktop
install -Dm644 build/icon.png %buildroot/usr/share/pixmaps/vesktop.png
%files
%doc README.md
%license LICENSE
%{_bindir}/vesktop
%{_bindir}/vencorddesktop
%{_datadir}/applications/vesktop.desktop
%{_iconsdir}/hicolor/scalable/apps/vesktop.svg
%{_datadir}/vesktop/*
/usr/bin/vesktop
/usr/bin/vencorddesktop
/usr/share/applications/vesktop.desktop
/usr/share/pixmaps/vesktop.png
/usr/share/vesktop/*
%changelog
* Thu Jul 24 2025 Atmois <info@atmois.com> - 1.5.8-2
@@ -1,38 +0,0 @@
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
@@ -1,775 +0,0 @@
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
@@ -1,28 +0,0 @@
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
@@ -1,82 +0,0 @@
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
@@ -1,46 +0,0 @@
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

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