mirror of
https://github.com/terrapkg/packages.git
synced 2026-05-31 17:11:56 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4f0619c573 | |||
| e37d1e4fba |
+1
-1
@@ -2,7 +2,7 @@
|
||||
"repoOwner": "terrapkg",
|
||||
"repoName": "packages",
|
||||
"resetAuthor": true,
|
||||
"targetBranchChoices": ["frawhide", "f43", "f42", "el10"],
|
||||
"targetBranchChoices": ["el10", "f41", "f42", "f43", "frawhide"],
|
||||
"branchLabelMapping": {
|
||||
"^sync-(.+)$": "$1"
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
@@ -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}`);
|
||||
}
|
||||
};
|
||||
@@ -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();
|
||||
};
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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-
|
||||
|
||||
@@ -13,8 +13,9 @@ jobs:
|
||||
matrix:
|
||||
branch:
|
||||
- frawhide
|
||||
- f43
|
||||
- f41
|
||||
- f42
|
||||
- f43
|
||||
- el10
|
||||
container:
|
||||
image: ghcr.io/terrapkg/builder:frawhide
|
||||
|
||||
@@ -8,6 +8,7 @@ on:
|
||||
- frawhide
|
||||
- f43
|
||||
- f42
|
||||
- f41
|
||||
- el10
|
||||
paths:
|
||||
- comps.xml
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Vendored
+1
-4
@@ -1,8 +1,5 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"rhaiscript.vscode-rhai",
|
||||
"1dot75cm.rpmspec",
|
||||
"hashicorp.hcl",
|
||||
"redhat.vscode-xml"
|
||||
"rhaiscript.vscode-rhai"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
# Terra Sources
|
||||
|
||||
[](https://repology.org/repository/terra_40)
|
||||
[](https://repology.org/repository/terra_41)
|
||||
[](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!
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
13.0.0.50
|
||||
@@ -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.9.0
|
||||
Release: 1%?dist
|
||||
Summary: Bitwarden command-line client
|
||||
License: GPL-3.0-only
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%endif
|
||||
|
||||
Name: bitwarden-cli
|
||||
Version: 2025.12.0
|
||||
Version: 2025.9.0
|
||||
Release: 1%?dist
|
||||
Summary: Bitwarden command-line client
|
||||
License: GPL-3.0-only
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "chdig.spec"
|
||||
}
|
||||
}
|
||||
@@ -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 +0,0 @@
|
||||
rpm.version(gh("azat/chdig"));
|
||||
@@ -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: 2.2.2
|
||||
Release: 1%?dist
|
||||
Summary: Cooling device control for Linux
|
||||
License: GPL-3.0-or-later
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord-canary-openasar
|
||||
Version: 0.0.839
|
||||
Version: 0.0.758
|
||||
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-canary
|
||||
Version: 0.0.839
|
||||
Version: 0.0.758
|
||||
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.111
|
||||
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.161
|
||||
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
|
||||
Version: 0.0.171
|
||||
Version: 0.0.161
|
||||
Release: 1%?dist
|
||||
Summary: Free Voice and Text Chat for Gamers.
|
||||
URL: https://discord.com
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: discord
|
||||
Version: 0.0.119
|
||||
Version: 0.0.111
|
||||
Release: 1%?dist
|
||||
Summary: Free Voice and Text Chat for Gamers
|
||||
URL: https://discord.com
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "dorion.spec"
|
||||
}
|
||||
}
|
||||
@@ -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 +0,0 @@
|
||||
rpm.version(gh_rawfile("SpikeHD/Dorion", "main", "package.json").json().version);
|
||||
@@ -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
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
Name: feishin
|
||||
Version: 0.22.0
|
||||
Version: 0.20.1
|
||||
Release: 1%?dist
|
||||
Summary: A modern self-hosted music player
|
||||
License: GPL-3.0
|
||||
|
||||
@@ -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 095dcba94f201b088552f3f1341b55847197104f
|
||||
%global shortcommit %{sub %{commit} 1 7}
|
||||
%global commit_date 20251224
|
||||
%global commit_date 20250923
|
||||
%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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ project pkg {
|
||||
rpm {
|
||||
spec = "goofcord.spec"
|
||||
}
|
||||
labels {
|
||||
mock = 1
|
||||
}
|
||||
labels {
|
||||
mock = 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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.10.3
|
||||
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 +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"));
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 +0,0 @@
|
||||
rpm.version(gh("imputnet/helium-linux"));
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "juce.spec"
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -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 +0,0 @@
|
||||
rpm.version(gh("juce-framework/JUCE"));
|
||||
@@ -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.88.0
|
||||
|
||||
Name: komikku
|
||||
Version: 1.98.0
|
||||
Version: 1.88.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 b55a0f58bae0c633498948ddab054f96da6da2d0
|
||||
%global commit_date 20250911
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global debug_package %nil
|
||||
%global __strip /bin/true
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>
|
||||
@@ -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
|
||||
@@ -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);
|
||||
@@ -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
|
||||
|
||||
@@ -3,6 +3,6 @@ project pkg {
|
||||
spec = "mpv-nightly.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
nightly = "1"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
# Disable X11 for RHEL 10+
|
||||
%bcond x11 %[%{undefined rhel} || 0%{?rhel} < 10]
|
||||
|
||||
%global commit c0d989c83913fb9c990d961c44da4816b8d2de18
|
||||
%global commit ee0f7013478abad3f7fcd05a7f61d360b7447b18
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
%global commit_date 20251225
|
||||
%global ver 0.41.0
|
||||
%global commit_date 20250923
|
||||
%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>
|
||||
@@ -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
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "newsraft.spec"
|
||||
}
|
||||
}
|
||||
@@ -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 +0,0 @@
|
||||
rpm.version(gh("newsraft/newsraft"));
|
||||
@@ -2,8 +2,8 @@
|
||||
%define debug_package %nil
|
||||
|
||||
Name: peazip
|
||||
Version: 10.8.0
|
||||
Release: 3%?dist
|
||||
Version: 10.6.1
|
||||
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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "rasputin.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -1,5 +0,0 @@
|
||||
rpm.global("commit", gh_commit("raspberrypi-ui/appset"));
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
rpm.global("commit_date", date());
|
||||
}
|
||||
@@ -2,7 +2,4 @@ project pkg {
|
||||
rpm {
|
||||
spec = "rp-appset.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
%global commit a822eb767a330711e67714428c1c56cf3c82f044
|
||||
%global commit_date 20251118
|
||||
%global commit 5b4b8f65c3d2795a61e765a01e07af9bfe3d1990
|
||||
%global commit_date 20250501
|
||||
%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
|
||||
|
||||
@@ -2,7 +2,4 @@ project pkg {
|
||||
rpm {
|
||||
spec = "rp-bookshelf.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
%global commit a720bf5041fd832a278378fd6f5cf9a0b3f8cc6f
|
||||
%global commit_date 20251217
|
||||
%global commit 53102fb6f4b0324cc89635f0ef58966c6b847a74
|
||||
%global commit_date 20250327
|
||||
%global shortcommit %(c=%{commit}; echo ${c:0:7})
|
||||
|
||||
Name: rp-bookshelf
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "rpcc.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -1,5 +0,0 @@
|
||||
rpm.global("commit", gh_commit("raspberrypi-ui/rpcc"));
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
rpm.global("commit_date", date());
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
project pkg {
|
||||
rpm {
|
||||
spec = "rpinters.spec"
|
||||
}
|
||||
labels {
|
||||
nightly = 1
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -1,5 +0,0 @@
|
||||
rpm.global("commit", gh_commit("raspberrypi-ui/rpinters"));
|
||||
if rpm.changed() {
|
||||
rpm.release();
|
||||
rpm.global("commit_date", date());
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
%global ver 2025-12-26
|
||||
%global ver 2025-09-23
|
||||
%global goodver %(echo %ver | sed 's/-//g')
|
||||
%global __brp_mangle_shebangs %{nil}
|
||||
%bcond_without mold
|
||||
@@ -17,7 +17,7 @@ Source0: https://github.com/ruffle-rs/ruffle/archive/refs/tags/nightly-%v
|
||||
Provides: ruffle
|
||||
BuildRequires: cargo-rpm-macros >= 24
|
||||
BuildRequires: anda-srpm-macros mold
|
||||
BuildRequires: gcc-c++ cmake
|
||||
BuildRequires: gcc-c++ cmake java
|
||||
BuildRequires: java-latest-openjdk-headless
|
||||
BuildRequires: pkgconfig(alsa)
|
||||
BuildRequires: pkgconfig(gtk+-3.0)
|
||||
|
||||
@@ -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.2
|
||||
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
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
#? 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.*$
|
||||
%global __provides_exclude_from %{_datadir}/%{name}/.*\\.so
|
||||
|
||||
%ifarch x86_64
|
||||
%define arch %{nil}
|
||||
@@ -14,34 +11,21 @@
|
||||
%define arch arm64-
|
||||
%endif
|
||||
|
||||
Name: signal-desktop
|
||||
Version: 7.83.0
|
||||
Release: 1%?dist
|
||||
Name: signal-desktop
|
||||
Version: 7.71.0
|
||||
Release: 1%?dist
|
||||
Summary: A private messenger for Windows, macOS, and Linux
|
||||
URL: https://signal.org
|
||||
Source0: https://github.com/signalapp/Signal-Desktop/archive/refs/tags/v%{version}.tar.gz
|
||||
# signal.desktop from https://github.com/signalflatpak/signal/blob/master/org.signal.Signal.desktop
|
||||
Source1: signal.desktop
|
||||
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,33 +48,17 @@ Requires: mesa-libgbm
|
||||
Requires: at-spi2-atk
|
||||
Requires: expat
|
||||
Requires: alsa-lib
|
||||
Requires: xdg-utils
|
||||
Requires: re2
|
||||
Requires: (libXtst or libXtst6)
|
||||
Requires: libXScrnSaver
|
||||
Requires: libnotify
|
||||
Requires: (libuuid or libuuid1)
|
||||
Requires: at-spi2-core
|
||||
Requires: c-ares
|
||||
Requires: gtk3
|
||||
Requires: minizip
|
||||
|
||||
Provides: signal
|
||||
Provides: Signal
|
||||
Provides: Signal-Desktop
|
||||
|
||||
%description
|
||||
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 +95,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 +119,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
|
||||
|
||||
@@ -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>
|
||||
@@ -1,7 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Categories=System;Emulator;
|
||||
Comment=Classic Macintosh emulator
|
||||
Exec=snowemu
|
||||
Icon=snow_icon
|
||||
Name=snow
|
||||
Type=Application
|
||||
@@ -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 +0,0 @@
|
||||
rpm.version(gh("twvd/snow"));
|
||||
@@ -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
|
||||
|
||||
@@ -1 +1 @@
|
||||
v1.12.14
|
||||
v1.11.15
|
||||
@@ -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
|
||||
|
||||
@@ -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"));
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
*.deb
|
||||
@@ -1,6 +0,0 @@
|
||||
project pkg {
|
||||
arches = ["x86_64", "aarch64"]
|
||||
rpm {
|
||||
spec = "tracktion-waveform.spec"
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
%undefine __brp_mangle_shebangs
|
||||
%define debug_package %nil
|
||||
%global __strip /bin/true
|
||||
|
||||
Name: tracktion-waveform
|
||||
Version: 13.5.13
|
||||
Packager: Cappy Ishihara <cappy@fyralabs.com>
|
||||
Release: 1%{?dist}
|
||||
Summary: Tracktion Waveform DAW
|
||||
ExclusiveArch: x86_64 aarch64
|
||||
%global majver %(echo %{version} | cut -d '.' -f 1)
|
||||
%global truncated_ver %(echo %{version} | tr -d .)
|
||||
|
||||
%ifarch x86_64
|
||||
%global pkgarch amd64
|
||||
%endif
|
||||
|
||||
%ifarch aarch64
|
||||
%global pkgarch arm64
|
||||
%endif
|
||||
|
||||
License: Proprietary
|
||||
URL: https://www.tracktion.com/products/waveform-free
|
||||
Source0: https://downloads.tracktion.com/w%{majver}/%{truncated_ver}b/waveform%{majver}_%{version}_%{pkgarch}.deb
|
||||
|
||||
BuildRequires: tar
|
||||
BuildRequires: binutils
|
||||
|
||||
%description
|
||||
%{summary}
|
||||
|
||||
%prep
|
||||
%autosetup -Tc
|
||||
|
||||
ar x %{SOURCE0}
|
||||
%install
|
||||
tar xvf data.tar.gz -C %{buildroot}
|
||||
export QA_RPATHS="[0-7]"
|
||||
|
||||
%files
|
||||
%{_bindir}/Waveform%{majver}
|
||||
%{_datadir}/pixmaps/*
|
||||
%{_datadir}/mime/packages/waveform13.xml
|
||||
%{_datadir}/applications/waveform13.desktop
|
||||
%{_docdir}/Waveform%{majver}/*
|
||||
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Oct 07 2025 Cappy Ishihara <cappy@cappuchino.xyz>
|
||||
- Initial Release
|
||||
@@ -7,8 +7,8 @@
|
||||
Name: vesktop
|
||||
Obsoletes: VencordDesktop < 1.5.8-1
|
||||
Obsoletes: vencord-desktop < 1.5.8-1
|
||||
Version: 1.6.3
|
||||
Release: 1%?dist
|
||||
Version: 1.5.8
|
||||
Release: 2%?dist
|
||||
License: GPL-3.0
|
||||
Summary: Vesktop is a cross platform desktop app aiming to give you a snappier Discord experience with Vencord pre-installed
|
||||
URL: https://github.com/Vencord/Vesktop
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user